




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、毕业设计(论文)题目: 基于单片机的智能充电器的设计院 (系): 机电工程学院 专 业: 应用电子技术 姓 名: 学 号: 指导教师: 二一三年十一月二十日毕业设计(论文)任务书学生姓名学号专 业应用电子技术院(系)机电工程学院毕业设计(论文)题目基于单片机的智能充电器的设计任务与要求任务:与同学配合,完成基于单片机的智能充电器的的设计,包括自学AVR单片机的相关内容;设计电源电路,设计LCD液晶实现控制电路。用C语言控制LCD显示程序,用图形方式显示充电器电压,电流等参数。本设计要求用AVR单片机完全实现电池充电器设计,可以对各种流行的电池类型进行快速充电而无须修改硬件,从而围绕单个硬件平台
2、实现一个完整的充电器。电池充电是通过逆向化学反应将能量存储到化学系统里实现的。由于使用的化学物质的不同,电池有自己的特性。设计充电器时要仔细了解这些特性以防止过度充电而损坏电池。 及停止充电的判别。完成时间段2013年6月15日 至2013年12月5日 共24周指导教师单位职称讲师院(系)审核意见毕业设计(论文)进度计划表日 期工 作 内 容执 行 情 况指导教师签 字2013.6.15-2013.6.28查找资料,选题2013.6.29-2013.8.30完成论文的初稿2013.8.31-2013.9.30完成论文二稿的写作2013.-2013.10.20完成论文的终稿及格式修改2013.1
3、0.21-2013.11.20进一步修改论文、定稿,打印论文,做好答辩的准备2013.做好论文答辩准备教师对进度计划实施情况总评 签名 年 月 日 本表作评定学生平时成绩的依据之一。毕业设计(论文)中期检查记录表学生填写毕业设计(论文)题目:基于单片机的智能充电器的设计学生姓名: 学号:专业:应用电子技术指导教师姓名: 职称:讲师检查教师填写毕业设计(论文)题目工作量饱满一般不够毕业设计(论文)题目难度大适中不够毕业设计(论文)题目涉及知识点丰富比较丰富较少毕业设计(论文)题目价值很有价值一般价值不大学生是否按计划进度独立完成工作任务学生毕业设计(论文)工作进度填写情况指导次数学生工作态度认真
4、一般较差其他检查内容:存在问题及采取措施:检查教师签字: 年 月 日院(系)意见(加盖公章): 年 月 日摘 要本毕业设计正文中首先简单描述系统硬件工作原理,且附以系统硬件设计框图,并介绍了单片机微处理器的发展史,论述了本次毕业设计所应用的各硬件接口技术和各个接口模块的功能及工作过程,并具体描述了ATmega16L外接电路接口的软、硬件调试。其次阐述了基于单片机充电器设计程序的流程和实现过程。LCD液晶显示已经是人机界面的关键技术。本文对基于单片机的LCD液晶显示器控制系统进行了研究。首先在概述中介绍了本课题的课题背景、研究意义及完成的功能。本系统是以单片机的C关键词: 锂电池 微处理器 LC
5、D液晶AbstractFirst, a brief description of the body of the working principle of the system hardware , and attached to the system hardware design diagram , first briefly describe the system hardware works, and attached to the system hardware design diagram , and describes the history of the development
6、 of single-chip microprocessor , discusses this graduation functional design applied technology and the various hardware interfaces for each interface module and work processes, and specifically describes ATmega16L external circuit interface software and hardware debugging. The second section descri
7、bes the process and the implementation process based on single-chip charger design process. LCD display technology has been the key to the man-machine interface. In this paper, the LCD display control system is studied based microcontroller . First introduced the subject of this topic outlined in th
8、e background , significance and completion of the function. The system is based on single-chip C language for software design, instruction execution speed, to save storage space. In order to facilitate the expansion and change , the software is designed with modular structure, so that logic programm
9、ing is more concise . So in co-operation with the hardware under software control . And describes the 8052,8279 and SED1520 external circuit interface software and hardware debugging. The second section describes the process and the implementation process of the program. This article was written by
10、the dominant ideology of hardware and software combined hardware-based , for the preparation of various functional modules. Finally, I had developed a liquid crystal display LCD with MCU control principle of design ideas and software and hardware debugging discussed in detail.KEY WORDS:Lithium Micro
11、processor LCD 目 录 TOC o 1-2 h z u HYPERLINK l _Toc373418093 第一章 绪言 PAGEREF _Toc373418093 h 1 HYPERLINK l _Toc373418094 第二章 硬件电路设计 PAGEREF _Toc373418094 h 7 HYPERLINK l _Toc373418095 第一节 硬件电路介绍 PAGEREF _Toc373418095 h 7 HYPERLINK l _Toc373418096 第二节 LCD液晶显示 PAGEREF _Toc373418096 h 9 HYPERLINK l _Toc3
12、73418097 第三节 电路的设计 PAGEREF _Toc373418097 h 13 HYPERLINK l _Toc373418098 第三章 软件设计 PAGEREF _Toc373418098 h 17 HYPERLINK l _Toc373418099 第一节 程序的设计 PAGEREF _Toc373418099 h 17 HYPERLINK l _Toc373418100 第二节 液晶显示的设计 PAGEREF _Toc373418100 h 19 HYPERLINK l _Toc373418101 第四章 系统调试 PAGEREF _Toc373418101 h 22 HY
13、PERLINK l _Toc373418102 第一节 系统调试软件介绍 PAGEREF _Toc373418102 h 22 HYPERLINK l _Toc373418103 第二节 调试过程 PAGEREF _Toc373418103 h 24 HYPERLINK l _Toc373418104 结论 PAGEREF _Toc373418104 h 28 HYPERLINK l _Toc373418105 致谢 PAGEREF _Toc373418105 h 29 HYPERLINK l _Toc373418106 参考文献 PAGEREF _Toc373418106 h 30第一章 绪
14、言第一节 课题背景如今,随着越来越多的手持式电器的出现,对高性能、小尺寸、重量轻的电池充电器的需求也越来越大。目前常用的四种化学电池是铅酸电池(PbSO4)、锂离子电池(Li)、镍铬电池(NiCd)和镍氢电池(NiMH)。由于环保问题和对电池的要求越来越高等综合因素,推动了新电池技术的发展。电池技术的持续进步也要求更复杂的充电算法以实现快速、安全的充电。因此需要对充电过程进行更精确的监控,以缩短充电时间、达到最大的电池容量,并防止电池损坏。与此同时,对充电电池的性能和工作寿命的要求也不断地提高。从20世纪60年代的商用镍镉和密封铅酸电池到近几年的镍氢和锂离子技术,可充电电池容量和性能得到了飞速
15、的发展。目前各种电器使用的充电电池主要有镍镉电池(NiCd)、镍氢电池(NiMH)、锂电池(Li-Ion)和密封铅酸电池(SLA)四种类型。电池充电是通过逆向化学反应将能量存储到化学系统里实现的。由于使用的化学物质的不同,电池有自己的特性。设计充电器时要仔细了解这些特性以防止过度充电而损坏电。目前,市场上卖得最多的是旅行充电器,但是严格从充电电路上分析,只有很少部分充电器才能真正意义上被称为智能充电器,随着越来越多的手持式电器的出现,对高性能、小尺寸、轻重量的电池充电器的需求也越来越大。电池技术的持续进步也要求更复杂的充电算法以实现快速、安全地充电,因此,需要对充电过程进行更精确地监控(例如对
16、充、放电电流、充电电压、温度等的监控),以缩短充电时间,达到最大的电池容量,并防止电池损坏。因此,智能型充电电路通常包括了恒流恒压控制环路、电池电压监测电路、电池温度检测电路、外部显示电路(LED或LCD显示)等基本单元。其框图如下:图1.1 智能充电器基本框图Atmel AVR微处理器是当前市场上能够以单片方式提供Flash、EEPROM和10位ADC的最高效的8位RISC 微处理器。由于程序存储器为Flash,因此可以不用象MASK ROM一样,有几个软件版本就库存几种型号。Flash可以在发货之前再进行编程,或是在PCB贴装之后再通过ISP 进行编程,从而允许在最后一分钟进行软件更新。E
17、EPROM 可用于保存标定系数和电池特性参数,如保存充电记录以提高实际使用的电池容量。10位A/D 转换器可以提供足够的测量精度,使得充好后的容量更接近其最大容量。而其他方案为了达到此目的,可能需要外部的ADC,不但占用PCB空间,也提高了系统成本。AVR是目前唯一的针对“C”这样的高级语言而设计的8位微处理器。一、常见充电电池特性及其充电方式电池充电是通过逆向化学反应将能量存储到化学系统里实现的,由于使用的化学物质的不同,电池的特性也不同,其充电的方式也不大一样。电池的安全充电:现代的快速充电器(即电池可以在小于3个小时的时间里充满电,通常是一个小时)需要能够对单元电压、充电电流和电池温度进
18、行精确地测量,在充满电的同时避免由于过充电造成的损坏。充电方法:SLA电池和锂电池的充电方法为恒定电压法要限流;NiCd电池和NiMH电池的充电方法为恒定电流法,且具有几个不同的停止充电的判断方法。最大充电电流:最大充电电流与电池容量(C)有关。最大充电电流往往以电池容量的数值来表示。例如,电池的容量为750mAh,充电电流为750mA,则充电电流为1C(1倍的电池容量)。若涓流充电时电流为C/40,则充电电流即为电池容量除以40。过热:电池充电是将电能传输到电池的过程。能量以化学反应的方式保存了下来。但不是所有的电能都转化为了电池中的化学能。一些电能转化成了热能,对电池起了加热的作用。当电池
19、充满后,若继续充电,则所有的电能都将转化为电池的热能。在快速充电时这将使电池快速升温,若不及时停止充电就会造成电池的损坏。因此,在设计电池充电器时,对温度进行监控并及时停止充电是非常重要的。现代消费类电器主要使用如下四种电池:(1)密封铅酸电池(SLA)(2)镍镉电池(NiCd)(3)镍氢电池(NiMH)(4)锂电池(Li-Ion)在正确选择电池和充电算法时需要了解这些电池的背景知识。密封铅酸电池(SLA):密封铅酸电池主要用于成本比空间和重量更重要的场合,如UPS和报警系统的备份电池。SLA电池以恒定电压进行充电,辅以电流限制以避免在充电过程的初期电池过热。只要电池单元电压不超过生产商的规定
20、(典型值为2.2V), SLA电池可以无限制地充电。镍镉电池(NiCd)NiCd:电池目前使用得很普遍。它的优点是相对便宜,易于使用;缺点是自放电率比较高。典型的NiCd电池可以充电1000次。失效机理主要是极性反转。在电池包里第一个被完全放电的单元会发生反转。为了防止损坏电池包,需要不间断地监控电压。一旦单元电压下降到就必须停机。NiCd电池以恒定电流的方式进行充电。镍氢电池(NiMH):在轻重量的手持设备中如 、手持摄象机,等等镍氢电池是使用最广的。这种电池的容量比NiCd的大。由于过充电会造成NiMH电池的失效,在充电过程中进行精确地测量以在合适的时间停止是非常重要的。和NiCd电池一样
21、,极性反转时电池也会损坏。NiMH 电池的自放电率大概为20%/月。和NiCd电池一样,NiMH电池也为恒定电流充电。锂电池(Li-Ion)和本文中所述的其他电池相比,锂电池具有最高的能量/重量比和能量/体积比。锂电池以恒定电压进行充电,同时要有电流限制以避免在充电过程的初期电池过热。当充电电流下降到生产商设定的最小电流时就要停止充电。过充电将造成电池损坏,甚至爆炸。二、主要芯片的选择ATMEL公司是世界上有名的生产高性能、低功耗、非易失性存储器和各种数字模拟IC芯片的半导体制造公司。在单片机微控制器方面,ATMEL公司有AT89, AT90和ARM三个系列单片机的产品。由于8051本身结构的
22、先天性不足和近年来各种采用新型结构和新技术的单片机的不断涌现,现在的单片机市场是百花齐放。ATMEL在这种强大市场压力下,发挥Flash存储器的技术特长,于1997年研发并推出了个新配置的、采用精简指令集RISC(Reduced Instruction Set CPU)结构的新型单片机,简称AVR单片机。精简指令集RISC结构是20世纪90年代开发出来的,综合了半导体案成技术和软例-性能的新结构。AVR单片机采用RISC结构,具有1MIPS/ MHz的高速运行处理能力。为了缩短产品进入市场的时间,简化系统的维护和支持,对于由单片机组成的嵌入式系统来说,用高级语言编程已成为一种标准编程方法。AV
23、R结构单片机的开发日的就在于能够更好地采用高级语言(例如C语言、BASIC语言)来编写嵌入式系统的系统程序,从而能高效地开发出目标代码。为了对目标代码大小、性能及功耗进行优化,AYR单片机的结构中采用了大型快速存取寄存器组和快速的单周期指令系统。AVR单片机运用Harvard结构,在前一条指令执行的时候就取出现行的指令,然后以一个周期执行指令。在其他的CISC以及类似的RISC结构的单片机中,外部振荡器的时钟被分频降低到传统的内部指令执行周期,这种分频最大达12倍(8051)。AVR单片机是用一个时钟周期执行一条指令的,它是在8位单片机中第一个真正的RISC结构的单片机。由于AVR单片机采用了
24、Harvard结构,所以它的程序存储器和数据存储器是分开组织和寻址的。寻址空间分别为可直接访问8M字节的程序存储器和8M字节的数据存储器。同时,由32个通用工作寄存器所构成的寄存器组被双向映射,因此,可以采用读写寄存器和读写片内快速SRAM存储器两种方式来访问32个通用工作寄存器。AVR主要有单片机有ATtiny、AT90和ATmega三种系列,其结构和基本原理都相类似。本次设计所用到的Atmega16L芯片便是ATmega系列中的一种,在这里作为充电器的核心部件。它是一种具有40引脚的高性能、低功耗的8位微处理器。其功能特性如下:(1)8位CPU。(2)先进的RISC结构:共131条指令,大
25、多数指令执行时间为单个时钟周期,32个8位通用工作寄存器和全静态工作。(3)非易失性数据和程序存储器:16K字节的系统内可编程Flash,擦写寿命可达到10000次以上。具有独立锁定位的可选Boot代码区,通过片上Boot程序实现系统内编程。512字节的EEPROM,可连续擦写100,000次。1K字节的片内SRAM,可以对锁定位进行编程以实现用户程序的加密。(4)可通过JTAG接口实现对FLASH、EEPROM的编程。(5)32个可编程的I/O引线,40引脚PDIP封装。(6)两个具有独立预分频器和比较器功能的8位定时器/计数器,一个具有预分频器、比较功能和捕捉功能的16位定时器/计数器。(
26、7)片内/片外中断源。(8)具有一个10位的AD转换器,能对来自端口A的8位单端输入电压进行采样。(9)工作电压:2.75.5V。三、液晶显示模块的选择LCD显示模块是一种被动显示器,具有功耗低,显示信息大,寿命长和抗干扰能力强等优点,在低功耗的单片机系统中得到大量使用。液晶显示模块和键盘输入模块作为便携式仪表的通用器件,在单片机系统的开发过程中也可以作为常用的程序和电路模块进行整体设计。液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就显示黑色,这样即可显示出图形。在单片机系统中使用液晶显示模块作为输出器件有以下优点:显示质量高液晶显示器每一个点在收到信号后就一直保持那
27、种色彩和亮度,恒定发光,因此液晶显示器画质高而且不会闪烁。如下:(1)数字式接口:液晶显示器都是数字式的,和单片机系统的接口更加简单。(2)体积小,重量轻。(3)功率消耗小。原因是液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因此耗电量比其它显示器要小得多。第二章 硬件电路设计经过前面对充电器原理、液晶模块、ATmega16L等的总体了解和掌握以及对各种元器件和电路图的分析和比较后,现在就可以开始进入硬件电路的设计了。在本章里,首先将介绍一下液晶模块访问方式的两种接口电路,然后对LCD显示电路原理图作一个详细的介绍,接着介绍充电电路中所用到的各种芯片和元器件的原理和一些功能,最后对PRO
28、TEL99的使用和PCB板的绘制以及焊接做一简单介绍,然后再将自己的设计思想和同组人所设计的两部分结合,达成统一。通过比较再结合本次设计的实际条件,由于Atmega16L芯片没有WR、RD管脚,而且为了使电路简单且方便软件实现,所以最终决定采用间接控制的方式来设计LCD显示电路。第一节 硬件电路介绍一、ATmega16L的介绍(1)以下是ATmega16L图2.1 ATmega16L芯片引脚这里只介绍几个重要的引脚功能:RESET:复位输入引脚。持续时间超过最小门限时间的低电平将引起系统复位。XTAL1:反向振荡放大器与片内时钟操作电路的输入端。XTAL2:反向振荡放大器的输出端。AVCC:A
29、VCC是端口A与A/D转换器的电源。ARE:A/D的模拟基准输入引脚。二、Atmega16L的存储器AVR结构有两个主要的存储空间:数据存储器空间和程序存储器空间,此外, Atmega16L还有一个EEPROM存储器以保存数据。这三个存储器都为线性的平面结构。Atmega16L具有16K字节的在线编程Flash,用于存储程序指令代码。因为AVR指令为16位或32位,故Flash组织成8K16的形式。用户程序的安全性要根据Flash程序存储器的两个区:引导(Boot)程序区和应用程序区,分开来考虑。数据存储器的寻址方式分为5种:直接寻址、带偏移量的间接寻址、间接寻址、带预减量的间接寻址和带后增量
30、的间接寻址。ATmega16L的全部32个通用寄存器、64个I/O寄存器及1024个字节的内部数据SRAMATmega16L包含512字节的EEPROM数据存储器。它是作为一个独立的数据空间而存在的,可以按字节读写。EEPROM的寿命至少为100,000次擦除周期。EEPROM三、Atmega16L的系统复位Atmega16L有五个复位源:(1)上电复位。电源电压低于上电复位门限Vpot时,MCU复位。如果在单片机加Vcc电压的同时,保持RESET引脚为低电平,则可延长复位周期。图2.3 ESET引脚由外部控制时单片机的复位电平(2)外电复位。引脚RESET上的低电平持续时间大于最小脉冲宽度时
31、MCU复位。图2.4 外部复位时序图(3)看门狗复位。看门狗使能并且看门狗定时器溢出时复位发生。看门狗计数器溢出时,将产生一个晶振的复位脉冲。图2.5 看门狗复位时序图(4)掉电检测复位。掉电检测复位功能使能,且电源电压低于掉电检测复位门限Vpot时MCU即复位。(5)JTAG AVR复位。复位寄存器为1时MCU复位。第二节 LCD液晶显示一、LCD的显示原理液晶显示器是一种功耗极低的显示器。随着液晶显示技术的发展,LCD显示器的规格众多,其专用驱动芯片也相互配套,使LCD在控制和仪表系统中广泛应用提供了极大的方便。根据LCD显示原理的不同,常见和常用的LCD可以分为字符型LCD和点阵型LCD
32、两种。不同的显示原理使得这两种LCD的指令系统、接口和功能等是不相同的,各有优缺点,但结合到本次设计的实际要求,经过比较还是选用点阵型LCD。现就点阵型LCD的显示原理、模块特点等做一简要介绍。要想在液晶模块上显示一个汉字或字符,需要3个最基本的控制操作:分别向3个控制器写指令代码、写显示数据和读显示数据。这里要特别引起注意的是完成这3项操作的前提条件是KS0108B控制器处于准备好的状态,即BUSY=0,由模块的软件特性知道,当BUSY=1时,系统的接口电路处于被封锁的状态,是不能接受除读状态指令外的任何操作的。因此在访问控制器之前,一定要判断控制器的当前状态。具体到软件设计时,则需设计一判
33、忙程序,在判断BUSY=0后,再往下进行操作。在本模块中,每个汉字的大小是1616点阵,而每个字符的大小是816点阵,即字符的宽度为汉字的1/2。它们都是以二维数组的格式存放在ROM中。向液晶模块显示一个汉字的过程就是:由液晶屏显示区的指定字符行的指定列开始,连续输出该字符对应的字符库中的16个列数据,如果是显示字符,则输出8个列数据即可。液晶模块显示字符是从上到下,从左到右进行显示的。假设定义从最左上角开始显示,则先从上到下显示第0页的第一列,依次从左向右开始显示。MGLS-19264LCM的显示部分为左、中、右3个区,可以由CS片选的取值分别进行控制,其接口的片选定义如下:表2.1 MGL
34、S的片选定义CS1CS2选中区域00左区01中区10右区11未选有了上面的知识,就可以编写显示界面这一块程序。由于每个汉字或字符在图中位置是固定的,只要定义了相应的选区及X、Y地址,就可以显示出具体的位置。用lr来表示汉字的区域,当lr=0,表示左区;lr=1,表示中区;lr=2,表示右区。X表示页面,Y表示列地址。则(lr.X.Y)就可以定义出这个字在屏上的实际位置。以第一行的“智”字为例,这个字位于模块的左区,则lr=0;它位于第一页和第二页,则X=0;它位于列地址的48-63字节,Y=48,那么“智”就可以通过(0)精确地表示出它的位置。这里要注意的是每个汉字占用的行地址是两页,如“智”
35、字占的就是X0和X1,即第二行的汉字其X=2而不是1。因此,第二行的“电”就应该表示为(0.2.0),其它字符依此设计即可。二、液晶显示控制驱动器HD61202及其兼容液晶显示控制器是一种带有驱动输出的图形液晶显示控制器,而在小规模点阵液晶显示模块上使用液晶显示驱动器组成液晶显示驱动控制系统是非常有益的,这将使液晶显示模块的硬件电路简单化,从而降低模块的成本,同时也提高了对软件功能的要求。许多显示功能如光标、字符库、闪烁都需要由软件编制而成。HD61203和HD61202就是这类液晶显示驱动控制器套件。之所以称它们为套件是因为HD61203和HD61202必须配套使用,通常有12864和192
36、64两种规格。其特点如下:(1)内藏64*64=4096位显示RAM,RAM中每位数据对应LCD屏上的一个点的亮、暗状态。(2)HD61202及其兼容控制器是列驱动器,具有64路列驱动输出。(3)HD61202及其兼容控制驱动器读、写时序与68系列微处理妻相符,因此它可直接与68系列微处理器借口相联。(4)HD61202及其兼容控制器的占空比为1/321/64。三、液晶显示模块的特点MGLS-12864图形LCD液晶显示模块的驱动和控制系统是由一片KS0107B或兼容驱动器(HD61203)作为行驱动器和两片KS0108B或兼容驱动器(HD61203)作为列驱动器组成的。块是双电源供电(VDD
37、/V0),需要提供一个液晶驱动电压,用以调节对比度,接在液晶模块的V0引脚上,由于液晶的对比度会随着温度的变化而相应变化,所以其液晶显示驱动电压值应随着温度作相应的调整,这里采用了一个电位器,调整电压值。具体如下:(1)背光供电为3.8-4.1V的支流电源,选用电源太大不仅增加功耗,更有可能损坏背光灯和缩短模块的使用寿命。(2)MGLS-12864液晶显示模块一共有20个引脚,它的接口定义如下: 表2.2 MGLS-12864的接口定义序号符号状态功能D7三态数据总线D6三态数据总线D5三态数据总线4D4三态数据总线5D3三态数据总线6D2三态数据总线7D1三态数据总线8D0三态数据总线9E输
38、入R/W=“L”,E的下降沿锁存数据线;R/W=“H”,E为“H”时,数据由控制器输出至数据线10R/W输入R/W=“L”,E=“H”数据由控制器输出数据线;R/W=“H”,E的下降沿,数据由数据线输入到控制器11D/I输入D/I=“L”,表示DB7DB0为显示数据D/I=“H”,表示DB7DB0为显示指令12V0液晶显示器驱动电压13VCC电源正14GND电源地15CS1输入片选信号16CS2输入片选信号17VOUTLCD负压驱动电压18RET输入复位信号19LED+显示模块背光电源20LED-显示模块背光电源21_(3)MGLS-12864的逻辑电路图如下:图2.6 MGLS-12864的
39、逻辑电路图第三节 电路的设计在本次的设计中,要供电给mega16和LCD显示模块两部分,而一个LM7805的输出电流不足,所以本人打算将mega16和显示模块分别供电,所以实际电路中用到了两片7805。下面就一个电源电路给出设计方案,另一个同样原理。经过对以上对ATmega16L芯片的端口、存储器、复位电路和LCD液晶显示等原理的介绍后,现在就可以完成对这部分硬件电路的设计了。再结合前面的分析采用间接访问的方式实现单片机与液晶显示模块之间的连接。LCD模块的8位数据线接在了Atmega16L芯片B口的8位数据线上,这里用了一个74LS24作为锁存器使它们间接连接在一起。LCD的EN、D/I、C
40、S1、CS2、R/W分别连接到PA3PA7上。下面是详细的电路接法:图2.7 硬件接线图下面分别介绍各电路设计:(1)单片机时钟电路单片机的时钟用于产生工作所需要的时序,其连接电路如下图:图2.8 晶体振荡器连接图XTAL1与XTAL2分别为用作片内振荡器的反向放大器的输入和输出,考虑到其最大频率不超过8MHz,这里选用的晶振为7.3728MHz。(2)LCD模块硬件连接图要想在液晶模块上显示一个汉字或字符,需要3个最基本的控制操作:分别向3个控制器写指令代码、写显示数据和读显示数据。这里要特别引起注意的是完成这3项操作的前提条件是KS0108B控制器处于准备好的状态,即BUSY=0,由模块的
41、软件特性知道,当BUSY=1时,系统的接口电路处于被封锁的状态,是不能接受除读状态指令外的任何操作的。因此在访问控制器之前,一定要判断控制器的当前状态。具体到软件设计时,则需设计一判忙程序,在判断BUSY=0后,再往下进行操作。图2.9 LCD电路图(3)5V电源电路的设计下图是L7805作为输出电压固定的典型电路图,正常工作时,输入、输出电压差为3-8V。L7805是三端稳压集成块。是一块三端正电源稳压集成电路,该电路内置短路保护及热保护电路,具有输出电压固定的特点。其功能是输出稳定的正5伏电压。输入电压PS为9V。电路中接入电容C5用来实现频率补偿,防止稳压器产生高频自激振荡和抑止电路引入
42、的干扰,C11是有极性的电解电容,以减小稳压电压输出端由输入电源引入的电平干扰。D1是保护二极管,当输入端短路时,给输出电容器C11一个放电电路,防止C11两端电压作用于调压管的be结,造成调压管be结击穿而损坏。其中C5、C11两个电容只是起滤波作用选用的大小没有特别的要求。其中电路图中的LM358是双运算放大器。相当于将微弱的信号放大,简单的说相当于三极管。图0 电源电路连接图第三章 软件设计第一节 程序的设计由于本人主要负责设计软件部分,而本人之前对C语言这门课的学习不是非常的精通,因此在着手本章之前本人对C语言以及AVR单片机与C语言编程方面的书籍做了认真仔细的回顾、学习和再研究,这样
43、才对下面设计工作的开展打下了基础。在本章里,本人将先介绍C语言开发的优势,然后介绍LCD的显示原理、模块的软件特性等,接下来便是最主要的整个程序的设计。一、用C语言开发单片机的优势C语言是一种编译型的结构化程序设计语言,具有简单的语法结构和强大的处理功能,具有运行速度快、编译效率高,移植性好和可读性强等多种优点,可以实现对系统便件的直接操作。用C语言来编写目标系统软件,可以大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而开发出大规模、高性能的应用系统。其优势如下:(1)可以大幅度加快开发进度,程序量越大,用C语言就越有优势。(2)无需精通单片机指令集和具体的硬件,也能够编出符合
44、硬件实际专业水平的程序。(3)可以实现软件的结构化编程,使得软件的逻辑结构变得清晰、有条理、便于开发小组计划任务、分工合作。源程序的可读性和可维护性都很好。(4)省去了人工分配单片机资源的工作,在汇编语言中要为每一个子程序分配单片机的资源。在使用C语言后,只要在代码中申明一下变量的类型,编译器就会自动分配相关资源,根本不需要人工干预,从而有效地避免了人工分配单片机资源的差错。(5)汇编语言的可移植性很差,而C语言只要将一些与硬件相关的代码作适当的修改,就可以方便地移植到其它种类的单片机上。(6)C语言提供auto、static、flash等存储类型,针对单片机的程序存储空间、数据存储空间及EE
45、PROM空间自动为变量合理地分配空间,而且C语言提供复杂的数据类型,极大地增强了程序处理能力和灵活性。C编译器能够自动实现中断服务程序的现场保护和恢复,并且提供常用的标准函数库,供用户使用。并且C编译器能自动生成一些硬件的初始化代码。(7)对于一些复杂系统的开发,可以通过移植(或C编译器提供)的实时操作系统来实现。正由于C语言在系统开发中的优势,这次设计的所有程序设计都将采用C语言编写,且通过ICCAVR编译器操作AVR的硬件资源。二、液晶显示汉字或字符的原理LCD本身不发光只是调节光的亮度,目前市面上的LCD显示器都是利用液晶的扭曲一向列效应制成,这是一种电场效应,夹在两片导电玻璃电极间的液
46、晶经过一定处理,它内部的分子呈直角扭曲,当线性偏振光透过其偏振面便会旋转一个直角。当在玻璃电极上加上电压后,在电场作用下,液晶的扭曲结构消失,偏振光便可以直接通过。当去掉电场后液晶分子又恢复取扭曲结构。把这样的液晶置于两个偏振片之间,改变偏振片相对位置就可以得到白底黑子或黑底白字的显示形式。结合以上知识具体显示原理如下:(1)线段的显示点阵图形式液晶由M*N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16*8=128个点组成,屏上64*16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第
47、一行的亮暗由RAM区的00H00FH的16字节的内容决定,当(000)=FFH时,如屏的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则显示屏的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=FFH,(003H)=00H,(00EH)=FFH,(00FH)=00H时,则在屏的顶部显示一条由8段亮线和8段暗线组成的虚线。这就是LCD显示的基本原理。(2)字符的显示用LCD显示一个字符时比较复杂,因为一个字符由6*8或8*8点阵组成,既要找到和显示屏上某几个位置对应的显示RAM区的8字节,还要使每字节的不同的位为“1”,其它的为“0”,为“1”的点
48、亮,为“0”的不亮,这样一来就组成某个字符。但对于内带字符发生器的控制器(如HD61202)来说,显示字符就比较简单了,可让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。(3)汉字的显示汉字的显示一般采用图形方式,事先从微机中提取要显示的汉字的点阵码,每个汉字占32B,分左右两半部,各占16B,左边为1、3、5右边为2、4、6根据在LCD上开始显示的行列号及每行的列数可找到显示RAM对应的地址,设立光标,送上要显示的汉字的一字节,光标位置加1,送第二字节,按行按列对齐,送第三字节直到32B显示完就可在LCD上得
49、到一个完整的汉字。第二节 液晶显示的设计一、液晶显示界面这次设计采用的LCD液晶显示模块是MGLS-12864芯片,其用一片KS0107B或兼容驱动器(HD61203)作为行驱动器和三片KS0108B或兼容驱动器(HD61203)作为列驱动器组成的。液晶显示的第一行为“智能型充电器”,由左起第四列开始显示,这样正好左右平均分配。第二行左起顶格显示“电池”,表示对充电电池的选择,可进行“锂电、镍镉、镍氢、铅酸”四种电池的选取,第三行显示电池的节数,第四行显示状态,可以在“快充、涓充、充满、放电”四个选项间进行选取,第二行到第四行左起分别显示电压、电流和温度数值。由此可见,左边的两选项在充放电的过
50、程中是不变的,而右边的三个参数在充电过程中随时发生变化。二、程序流程图要想在液晶模块上显示一个字符或汉字,首先必须得对控制字进行写指令代码、写显示数据和读显示数据3项操作。完成这3项工作都必须保证控制器处于不忙的情况下,这就必须有一个判忙子程序,其流程图如下:图3.1 判忙程序流程图根据上面采用的方法设置汉字的初始值(lr、X、Y),当显示完第一列的8字节以后,跳到第二列又从上往下显示。由于一个汉字每一列有16字节,则当一页的16列显示完,只相当于显示的汉字的上半部分,则再次跳到下一页的初始位,进行汉字下半部分的显示,值到16列显示完成,才表示一个汉字全部显示结束。下面是实现LCD液晶显示部分
51、的程序代码:void cls_lcd(void)unsigned char R4;unsigned char R3;unsigned char A;unsigned char i;R4=0;A=R4;for(R4=0;R48;R4+)A=0 xB8+R4;for(i=0;i3;i+)WriteCom(i,A);for(i=0;i3;i+)WriteCom(i,0 x40);R3=0 x40;for(R3=0;R364;R3+)for(i=0;i3;i+)WriteDat(i,0 x00);编写程序,由于这里采用的是C语言编写,程序相对来说比较简单,延时程序如下:void delay_1ms(v
52、oid)unsigned int i;for(i=1;i(unsigned int)(xtal*143-2;i+);xtal是晶振频率,这里采用的是7.3728MHz,从理论上讲,应出现1ms左右的延时,实现二极管的亮灭了。第四章 系统调试第一节 系统调试软件介绍完成对系统的硬、软件设计后,就可以对系统进行调试了。本次设计本人采用了ICCAVR编译器作为系统的开发工具,进行程序的烧录和仿真。一、ICCAVR编译器简介及使用(1)ICC AVR编译器的设定如下图:图4.1 应用构筑向导框Ports的设定在具体调试过程中设定。Memory选项:可以设定是否扩展SRAM,是否插入等待周期等内存信息。
53、这里选中“Enable external memory”和“Wait states”的复选框。图4.2 应用构筑向导框Timer0选项:可以设定是否使用Timer0,是否打开Timer0溢出中断以及设定Timer0的周期。在这里选中“Use timer0”和“Overflow interrupt”的复选框。在“Desired Units”中设定100ms,“Rescale select”图4.3应用构筑向导框Timer1选项:同Timer0相同,还可设定比较寄存器以及输入捕获等功能。在这里暂不作任何设定。第二节 调试过程为了巩固前面所学的知识,培养对AVR单片机学习的兴趣,同时也为了学会并熟练
54、掌握ICCAVR编译器的应用,为最后的联机调试打下基础。在这里设计了一些最简单的单片机系统实例进行调试,其核心部件采用Atmega16L芯片。一个最简单的单片机系统的开发也需要电路设计、单片机器件选择和程序编写3个步骤。对于单片机系统,最简单的功能无非是控制输出电平的高低。单片机的最简单系统是指单片机能正常工作所必须的外围元件,主要由单片机、晶振电路和复位电路组成。同传统的单片机系统一样,Atmega16L的晶振电路也分为外部时钟模式和内部时钟模式两种。鉴于Atmega16L的主频范围为0-8MHz,这里选用的是晶振为7.3728MHz。注意这一点和有51系列的单片机是不同的,Atmega16
55、的RST是低电平复位,而8051系列单片机是高电平才发生复位,换句话说,这两种单片机复位电路的设计完全相反。了解了以上两部分电路,再配合I/O接口中,就可以进行电路的设计了。本来这次是准备在面包板上完成实验的,但后来觉得引脚插在面包板里面,松紧不一,且面包板是一个长条形,如果做到后面的实现随着线的增多,空间跨度太大,影响视觉,某根线一旦出了问题也不易检查,综合各方面考虑,最后选用了一次性万用板来进行,这和印制电路板差不多,是通过焊接焊上去的,这既美观,出了问题也方便查找并解决。编写好的程序通过并行通信下裁AVR-ISP烧到板子里面,其下载电缆的电源由目标板提供,其管脚如下:图 目标板管脚图使用
56、广东双龙电子提供的MCU下载程序软件,用数据线将ISP下载插座同电脑相连。就可以进行程序的调试了。将“通信参数设计及器件选择”栏中的“AT89C52”改为“Atmega16”。当下载软件的(1)区域出现“擦除完成,编程开始”字样时,表示它已和AVR的ISP插座连接好,可以进行程序下载的操作了。否则,将显示“程序编程连接失败”的字样。在第一次进行操作时,也出现了连接失败的信号。软件是最新下载的,通过万用表检查,软件周围的接线都没有问题,显然不是自身的问题。再经仔细检查,原来是Atmega16L的芯片的5V电源掉线了。单片机不能运作,当然没法进行程序的下载了。虽然这一过程花了不少时间,吃一堑,长一智。从这也看出了进行电子创作的严谨性,不通过细心的观察,冷静的分析,是不可能完成的。(1)一个灯的闪烁通过上面的介绍,Atmega16L有32个I/O输出口,作为第一功能时,它们是没有区别的。这次主要用它的B口进行实验。在万用板上插上Atmega16L芯片,按上面的方法接上晶振电路和复位电路。接通电源(5V),用万用表测B0口压降,测得电压+5V,可知系统正常。在B0端接上一发光二极管。发光二极管是由于其两端的电压差超出其导通压降时开始工作,它的压降通常为1.7V-1.9V。且工作电流也要满足该二极管的发光要求。满足了这两
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人工作效率统计表格模板(销售人员)
- 全等三角形的判定-角边角课件
- 分数与除法的关系
- 医院临床医院感染管理小组工作手册
- 黄蓝扁平风入职培训模板
- 领导力发展领导团队的艺术
- 音乐节活动的视觉艺术颜色设计与流行元素融合
- 顾客情感在新零售中的影响与策略
- 非遗文化在小学德育课程中的融入与实践
- 顾客体验为核心的新零售办公用品营销
- 第六章神经系统
- 医疗不良事件报告表
- 国开期末考试《建筑制图基础》机考试题及答案(第D-1套)
- SA8000-2014社会责任绩效委员会SPT组织架构、职责和定期检讨及评审会议记录
- 材料加工新技术与新工艺112课件
- 国开作业科研人员TRIZ技术创新方法应用培训-单元测验1(确定项目+描述项目)76参考(含答案)
- 企业安全生产网格化管理体系图空白
- 焊接热处理工艺卡
- 百日咳临床研究进展PPT医学课件
- 大型钢网架整体提升施工工法
- Q∕GDW 12176-2021 反窃电监测终端技术规范
评论
0/150
提交评论