内容:与同学配合,完成职能型充电器的设计,包括自学AVR单片机的相关内容;设计电源电路,设计128·64液晶现实控制电路。用C语言控制LCD显示程序,用图形方式显示充电器电压,电流等参数。 意义:在大学的最后一个学期,学校为我们安排了为期一学期的毕业设计,对于一个即将走出校园的毕业生而言可谓意义重大。作为一个工科院校的大学生,在大学的几年学习中除了扎实的理论学习外,一定的自己动手设计能力更是必不可少的,它可以较全面直观的反映一个应届毕业生的能力。我们在将来的工作中绝大部分都将是社会上各行各业里的技术人员,这要求我们必须具备一个21世纪大学生,特别是对学以致用更为要求的工科学生所应有的理论与动手能力。这学期,学校为我们安排的为期一学期的毕业设计将切实的考验和提高我们的理论和联系实际的能力,为我们做了一个工作前的大演练,我们也应该充分的利用好这次机会,把这次毕业设计做到自己老师都满意! | ||||
文献综述 | 由于本次毕业设计是用AVR单片机来控制并要求对于LCD显示程序要用C语言来编写,所以所参考的资料主要为AVR单片机和C语言的相关书籍上。 AVR单片机是Atmel公司1997年推出的RISC单片机。RISC(精简指令系统计算机)是相对于CISC(复杂指令系统计算机)而言的。RISC并非只是简单地去减少指令,而是通过使计算机的结构更加简单合理而提高运算速度的。RISC优先选取使用频率最高的简单指令,避免复杂指令;并固定指令长度,减少指令格式和寻址方式的种类,从而缩短指令周期,提高运算速度。由于AVR采用了RISC这种结构,使AVR系列的单片机都具备了1MIPS/MHz的高速处理能力。 AVR单片机吸收了DSP双总线的特点,采用Harvard总线结构,因此单片机的程序存储器和数据存储器是分离的,并且可对具有相同地址的程序存储器和数据存储器进行独立的寻址。 目前,AVR单片机具有多个系列,包括ATtiny、AT90和ATmega。虽然在功能和存储器容量等方面有很大的不同,但基本结构和原理都类似。同传统的MCS51单片机相比,AVR单片机的主要特点有: (1) AVR单片机中,CPU执行当前指令时取出将要执行的下一条指令放入指令寄存器中,从而避免了传统MCS51系列单片机中多指令周期的出现。 (2) 传统的MCS51系列单机所有的数据处理都是基于一个累加器的,因此累加器与程序存储器、数据存储器之间的数据交换就成了单片机的瓶颈;在AVR单片机中,寄存器由32个通用寄存器组成,并且任何一个寄存器都可以充当累加器,从而有效地避免了累加器的瓶颈效应,提高了系统的性能。 (3) AVR单片机具有良好的集成性能。AVR系列的单片机都具备在线编程接口,含有片内看门狗电路、片内程序Flash、同步串口SPI等;AVR单片机的I/O接口还具有很强的驱动能力,灌电流可直接驱动继电器、LED等器件,从而省去驱动电路,节约系统成本。 (4) AVR单片机采用低功率、非挥发的CMOS工艺制造,除具有低功耗、高密度的特点外,还支持低电压的联机Flash、EEPROM写入功能。 (5) AVR单片机支持Basic、C等高级语言编程。 此外在传统的单片机系统中,都是用汇编语言作为系统的编程语言。汇编语言作为嵌入式系统的编程语言,具有执行效率高等优点,但其本身是一种低级语言,编程效率低下,且可移植性和可读性差,维护极不方便,从而导致整个系统的可靠性也较差。而C语言以其结构化和能产生高效代码等优势满足了电子工程师的需要。用C语言进行嵌入式系统的开发,具有汇编语言编程所不可比拟的优势 | |||
研究内容 |
4.编写LCD显示的C程序设计 | |||
研究计划 | 本设计要求用AVR单片机完全实现电池充电器设计,可以对各种流行的电池类型进行快速充电而无须修改硬件,从而围绕单个硬件平台实现一个完整的充电器。
电池充电是通过逆向化学反应将能量存储到化学系统里实现的。由于使用的化学物质的不同,电池有自己的特性。设计充电器时要仔细了解这些特性以防止过度充电而损坏电池。 电池技术现代消费类电器主要使用如下四种电池: • 密封铅酸电池 (SLA) • 镍镉电池 (NiCd) • 镍氢电池(NiMH) • 锂电池(Li-Ion) 电池的安全充电 停止充电的判别
在编译时要确定电池类型。软件可以进行扩展以支持多个电池同时充电。一个直接的方案是在进行涓流充电时对各个电池进行分时充电。若每个电池的电池单元数目一样,则SLA 电池和Li-Ion 电池 可以恒定电压的方式并行充电。每个电池单元的充电电流是受限的,电压也一样。“电池特性” (b_car.h)的所有数据都根据标度因子计算得到。这些数据在包含文件里定义,在编译时计算,在程序运行时以常数方式处理。所有从ADC 输出的数据都可以直接与这些常数进行比较。也就是说,在程序运行过程当中不需要进行实时计算,从而节省了计算时间和程序空间。计算公式以及数据都是从“测量电路”一节获取的。 对于NiCd 电池,如果电池温度在允许范围之内,充电程序就会启动。在温度超出限制,或电压超过最大值,或超出最大快速充电时间时停止。检测电池已经充满的普通方法是检测温度上升速率(dT/dt) 和电压降低速率(-dV/dt)。因此,充电器会每隔一分钟检测一次温度,每隔一秒钟检测一次电压。这些数据将与上一次数据进行比较。一旦电池充满,充电状态就自动切换到涓流充电,充电程序跳转到trickle_charge() 函数。trickle_charge() 循环检测充电状态、温度/ 电压的改变,并适当地调节充电电流。一旦温度或电压超标,错误标志置位,函数终止。若没有错误,用户也没有改变充电状态,函数将一直循环工作。
| |||
特色与创新 | 特点 •完整的电池充电器设计方案 •模块化的“C”源代码和极紧凑的汇编代码 •低成本 •支持多数电池类型 •快速充电算法 •可选的串行接口 •充电参数易修改 •片内EEPROM 可用于存储电池信息 |
智能型充电器的电源和显示的设计
最新推荐文章于 2024-09-04 13:11:33 发布