《智能型充电器的电源和显示的设计.doc》由会员分享,可在线阅读,更多相关《智能型充电器的电源和显示的设计.doc(22页珍藏版)》请在三一办公上搜索。
1、课题名称 智能型充电器的电源和显示的设计 摘 要本文对基于单片机的LCD液晶显示器控制系统进行了研究。首先在绪论中介绍了本课题的课题背景、研究意义及完成的功能。本系统是以单片机的基本语言汇编语言来进行软件设计,指令的执行速度快,节省存储空间。软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。正文中首先简单描述系统硬件工作原理,且附以系统硬件设计框图,其次阐述了程序的流程和实现过程。本文撰写的主导思想是软、硬件相结合,以硬件为基础,来进行各功能模块的编写。关键词 单片机;微处理器;LCD; 8279第一章概述1.1.1课题背景如今,随着越来越多的手持式电器的出现,对高性能、小尺寸、重量
2、轻的电池充电器的需求也越来越大。电池技术的持续进步也要求更复杂的充电算法以实现快速、安全的充电。因此需要对充电过程进行更精确的监控,以缩短充电时间、达到最大的电池容量,并防止电池损坏。与此同时,对充电电池的性能和工作寿命的要求也不断地提高。从20世纪60年代的商用镍镉和密封铅酸电池到近几年的镍氢和锂离子技术,可充电电池容量和性能得到了飞速的发展。目前各种电器使用的充电电池主要有镍镉电池(NiCd)、镍氢电池(NiMH)、锂电池(Li-Ion)和密封铅酸电池(SLA)四种类型。1.1.2常见充电电池特性及其充电方式电池的安全充电 现代的快速充电器( 即电池可以在小于3 个小时的时间里充满电,通常
3、是一个小时) 需要能够对单元电压、充电电流和电池温度进行精确地测量,在充满电的同时避免由于过充电造成的损坏。充电方法 SLA 电池和锂电池的充电方法为恒定电压法要限流; NiCd 电池和NiMH 电池的充电方法为恒定电流法,且具有几个不同的停止充电的判断方法。最大充电电流 最大充电电流与电池容量(C) 有关。最大充电电流往往以电池容量的数值来表示。例如,电池的容量为750 mAh,充电电流为750 mA,则充电电流为1C (1 倍的电池容量)。若涓流充电时电流为C/40,则充电电流即为电池容量除以40。过热 电池充电是将电能传输到电池的过程。能量以化学反应的方式保存了下来。但不是所有的电能都转
4、化为了电池中的化学能。一些电能转化成了热能,对电池起了加热的作用。当电池充满后,若继续充电,则所有的电能都将转化为电池的热能。在快速充电时这将使电池快速升温,若不及时停止充电就会造成电池的损坏。因此,在设计电池充电器时,对温度进行监控并及时停止充电是非常重要的。1.1.3 主要芯片的选择 ATMEL公司是世界上有名的生产高性能、低功耗、非易失性存储器和各种数字模拟IC芯片的半导体制造公司。在单片机微控制器方面,ATMEL公司有AT89, AT90和ARM三个系列单片机的产品。AVR单片机采用RISC结构,具有1MIPS/ MHz的高速运行处理能力。为了缩短产品进入市场的时间,简化系统的维护和支
5、持,对于由单片机组成的嵌入式系统来说,用高级语言编程已成为一种标准编程方法。AVR结构单片机的开发日的就在于能够更好地采用高级语言(例如C语言、BASIC语言)来编写嵌入式系统的系统程序,从而能高效地开发出目标代码。为了对目标代码大小、性能及功耗进行优化,AYR单片机的结构中采用了大型快速存取寄存器组和快速的单周期指令系统。 1.1.4液晶显示模块的选择LCD显示模块是一种被动显示器,具有功耗低,显示信息大,寿命长和抗干扰能力强等优点,在低功耗的单片机系统中得到大量使用。液晶显示模块和键盘输入模块作为便携式仪表的通用器件,在单片机系统的开发过程中也可以作为常用的程序和电路模块进行整体设计。液晶
6、显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就显示黑色,这样即可显示出图形。第二章 硬件电路设计 第一节 液晶显示模块两种访问方式接口电路的选择单片机与液晶显示模块之间的连接方式分为直接访问方式和为间接控制方式两种。如图2-1和图2-2所示,其中左为单片机,右为液晶显示模块。 (一) 直接访问方式PD0PD1PD2PD3PD4PD5PD6PD7RDWEP2.3P2.2P2.1P2.0DB0DB1DB2DB3DB4DB5DB6DB7GNDVCCV0E/CSA/CSBR/WD/I10K 数据总线 GND +5V电位器 负电源 1 32 74LS00A11A10A9A8MPU
7、图2-1 直接访问方式电路图 LCM接口直接访问方式就是将液晶显示模块的接口作为存储器或I/O设备直接挂在单片机总线上,单片机以访问存储器或I/O设备的方式操作液晶显示模块的工作。直接访问方式的接口电路如图2-1所示,在图中,单片机通过高位地址A11控制CSA,A10控制CSB,以选通液晶显示屏上各区的控制器;同时用地址A9作为R/W信号控制数据总线的数据流向;用地址A8作为D/I信号控制寄存器的选择,E(使能)信号由RD和WE共同产生,这样就实现了单片机对液晶显示模块的电路边接。电位器用于显示对比度的调节。(二)间接控制方式 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.
8、1 P1.0 P3.4 P3.3 P3.2 P3.1 P3.0DB7DB6DB5DB4DB3DB2DB1DB0/CSA/CSBER/WD/IVCCV0GND电位器+5V 10K 负电源 GND MPU LCM接口图2-2 间接控制方式电路图间接控制方式是单片机通过自身的或系统中的并行接口与液晶显示模块连接。单片机通过对这些接口的操作,以达到对液晶显示模块的控制。这种方式的特点就是电路简单,控制时序由软件实现,可以实现高速单片机与液晶显示模块的接口。电路图如图2-2所示。在图中以 P1口作为数据口,P3.4为CSA,P3.3为CSB,P3.2为使能端,P3.1为R/W和P3.0为D/I信号。电位
9、器用于显示对比度的调节。通过比较再结合本次设计的实际条件,由于Atmega16L芯片没有WR、RD管脚,而且为了使电路简单且方便软件实现,所以最终决定采用间接控制的方式来设计LCD显示电路。第二节 硬件电路主要芯片2.2.1 ATmega16L主要引脚说明以下是ATmega16L的引脚配置: 图2-3 ATmega16L芯片引脚引脚说明:VCC 数字电路的电源GND 地端口A(PA7PA0) 端口A 作为A/D 转换器的模拟输入端。端口A 为8 位双向I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉
10、低时将输出电流。在复位过程中,即使系统时钟还未起振,端口A 处于高阻状态。端口B(PB7PB0) 端口B 为8 位双向I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口B 处于高阻状态。端口C(PC7PC0) 端口C 为8 位双向I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口C 处于高阻状态。如
11、果JTAG接口使能,即使复位出现引脚PC5(TDI)、PC3(TMS)与PC2(TCK)的上拉电阻被激活。端口D(PD7PD0) 端口D 为8 位双向I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口D处于高阻状态。RESET 复位输入引脚。持续时间超过最小门限时间的低电平将引起系统复位。XTAL1 反向振荡放大器与片内时钟操作电路的输入端。XTAL2 反向振荡放大器的输出端。AVCCAVCC是端口A与A/D转换器的电源。不使用ADC时,该引脚
12、应直接与VCC连接。使用ADC时应通过一个低通滤波器与VCC相连。AREFA/D 的模拟基准输入引脚。2.2.2 Atmega16L的存储器AVR结构有两个主要的存储空间:数据存储器空间和程序存储器空间,此外,Atmega16L还有一个EEPROM存储器以保存数据。这三个存储器都为线性的平面结构。2.2.3 Atmega16L的时钟电路单片机的时钟用于产生工作所需要的时序,其连接电路如下图: 图2-4 晶体振荡器连接图XTAL1 与XTAL2 分别为用作片内振荡器的反向放大器的输入和输出,考虑到其最大频率不超过8MHz,这里选用的晶振为7.3728MHz。2.2.4 Atmega16L的系统复
13、位Atmega16L有五个复位源:(1) 上电复位。电源电压低于上电复位门限Vpot时,MCU复位。如果在单片机加Vcc电压的同时,保持RESET引脚为低电平,则可延长复位周期。(2) 外电复位。引脚RESET上的低电平持续时间大于最小脉冲宽度时MCU复位。 (3) 看门狗复位。看门狗使能并且看门狗定时器溢出时复位发生。看门狗计数器溢出时,将产生一个晶振的复位脉冲。(4) 掉电检测复位。掉电检测复位功能使能,且电源电压低于掉电检测复位门限Vpot时MCU即复位。(5) JTAG AVR复位。复位寄存器为1时MCU复位。第三节LCD液晶显示 2.3.1 LCD的显示原理现就点阵型LCD的显示原理
14、、模块特点等做一简要介绍。要想在液晶模块上显示一个汉字或字符,需要3个最基本的控制操作:分别向3个控制器写指令代码、写显示数据和读显示数据。在本模块中,每个汉字的大小是1616点阵,而每个字符的大小是816点阵,即字符的宽度为汉字的1/2。它们都是以二维数组的格式存放在ROM中。向液晶模块显示一个汉字的过程就是:由液晶屏显示区的指定字符行的指定列开始,连续输出该字符对应的字符库中的16个列数据,如果是显示字符,则输出8个列数据即可。上面已经介绍到,MGLS-19264液晶模块中液晶屏显示区为19264点阵,其中,它们的每8个像素行组成一页,整个显示区共分为8页,每64列为一个区,这样,它就有左
15、、中、右3个区,它的显示区示意图如下:左区 中区 右区0 1 2 62 63 64 65 127128 129 191DB0DB7第0页第七页DB0DB7 图2-5 液晶屏显示区示意图液晶模块显示字符是从上到下,从左到右进行显示的。假设定义从最左上角开始显示,则先从上到下显示第0页的第一列,依次从左向右开始显示。MGLS-19264LCM的显示部分为左、中、右3个区,可以由CS片选的取值分别进行控制,其接口的片选定义如下:表2-1 MGLS的片选定义表CS1CS2选中区域 0 0 左区 0 1 中区 1 0 右区 1 1 未选2.3.2 液晶显示控制驱动器HD61202及其兼容液晶显示控制器是
16、一种带有驱动输出的图形液晶显示控制器,而在小规模点阵液晶显示模块上使用液晶显示驱动器组成液晶显示驱动控制系统是非常有益的,这将使液晶显示模块的硬件电路简单化,从而降低模块的成本,同时也提高了对软件功能的要求。许多显示功能如光标、字符库、闪烁都需要由软件编制而成。HD61203和HD61202就是这类液晶显示驱动控制器套件。之所以称它们为套件是因为HD61203和HD61202必须配套使用,通常有12864和19264两种规格。2.3.3 液晶显示模块的特点MGLS-12864图形液晶显示模块的驱动和控制系统是由一片KS0107B或兼容驱动器( HD61203 )作为行驱动器和两片KS0108B
17、或兼容驱动器(HD61203) 作为列驱动器组成的。它的主要技术参数及其供电特点如下:(1) 电源:DC+5V,模块内自带用于LCD驱动的负压电路。(2) 显示内容:12864全屏幕点阵。(3) 指令形式:七种指令。(4) 接口形式:与控制器采用8位数据总线和8位控制线相连。(5) 工作环境:10+50。(6) 模块应用有三种电源:逻辑电源、液晶驱动电压、背光电压。(7) 本次选用的模块是双电源供电(VDD/V0),需要提供一个液晶驱动电压,用以调节对比度,接在液晶模块的V0引脚上,由于液晶的对比度会随着温度的变化而相应变化,所以其液晶显示驱动电压值应随着温度作相应的调整,这里采用了一个电位器
18、,调整电压值。(8) 背光供电为3.8-4.1V的支流电源,选用电源太大不仅增加功耗,更有可能损坏背光灯和缩短模块的使用寿命。MGLS-12864液晶显示模块一共有20个引脚,它的接口定义如下:表2-2 MGLS-12864的接口电路序号符号状态功能D7三态数据总线D6三态数据总线D5三态数据总线4D4三态数据总线5D3三态数据总线6D2三态数据总线7D1三态数据总线8D0三态数据总线9E输入R/W=“L”,E的下降沿锁存数据线R/W=“H”,E为“H”时,数据由控制器输出至数据线10R/W输入R/W=“L”,E=“H”数据由控制器输出数据线R/W=“H”,E的下降沿,数据由数据线输入到控制器
19、11D/I输入D/I=“L”,表示DB7DB0为显示数据D/I=“H”,表示DB7DB0为显示指令12V0液晶显示器驱动电压13VCC电源正14GND电源地15CS1输入片选信号16CS2输入片选信号17VOUTLCD负压驱动电压18RET输入复位信号19LED+显示模块背光电源20LED-显示模块背光电源第四节 硬件电路设计经过对以上对ATmega16L芯片的端口、存储器、时钟电路、以及复位电路和LCD液晶显示等原理的介绍后,现在就可以完成对这部分硬件电路的设计了。再结合前面的分析采用间接访问的方式实现单片机与液晶显示模块之间的连接。LCD模块的8位数据线接在了Atmega16L芯片B口的8
20、位数据线上,这里用了一个74LS24作为锁存器使它们间接连接在一起。LCD的EN、D/I、CS1、CS2、R/W分别连接到PA3PA7上,其详细的接法见下图 图2-6 硬件接线图第三章 软件设计3.1.用C语言开发单片机的优势C语言是一种编译型的结构化程序设计语言,具有简单的语法结构和强大的处理功能,具有运行速度快、编译效率高,移植性好和可读性强等多种优点,可以实现对系统便件的直接操作。用C语言来编写目标系统软件,可以大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而开发出大规模、高性能的应用系统。其优势如下:(1) 可以大幅度加快开发进度。(2) 无需精通单片机指令集和具体的硬
21、件。(3) 可以实现软件的结构化编程,源程序的可读性和可维护性都很好。(4) 省去了人工分配单片机资源的工作。(5) C语言只要将一些与硬件相关的代码作适当的修改,就可以方便地移植到其它种类的单片机上。(6) C语言提供auto、static、flash等存储类型,复杂的数据类型,极大地增强了程序处理能力和灵活性。(7) 对于一些复杂系统的开发,可以通过移植(或C编译器提供)的实时操作系统来实现。正由于C语言在系统开发中的优势,这次设计的所有程序设计都将采用C语言编写,且通过ICCAVR编译器操作AVR的硬件资源。3.2 液晶显示汉字或字符的原理 ( 1 ) 线段的显示点阵图形式液晶由M*N个
22、显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16*8=128个点组成,屏上64*16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的00H00FH的16字节的内容决定,当(000)=FFH时,如屏的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则显示屏的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=FFH,(003H)=00H,(00EH)=FFH,(00FH)=00H时,则在屏的顶部显示一条由8段亮线和8段暗线组成
23、的虚线。这就是LCD显示的基本原理。( 2 ) 字符的显示用LCD显示一个字符时比较复杂,因为一个字符由6*8或8*8点阵组成,既要找到和显示屏上某几个位置对应的显示RAM区的8字节,还要使每字节的不同的位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮,这样一来就组成某个字符。但对于内带字符发生器的控制器 (如HD61202)来说,显示字符就比较简单了,可让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。( 3 ) 汉字的显示汉字的显示一般采用图形方式,事先从微机中提取要显示的汉字的点阵码,每个汉字占3
24、2B,分左右两半部,各占16B,左边为1、3、5右边为2、4、6根据在LCD上开始显示的行列号及每行的列数可找到显示RAM对应的地址,设立光标,送上要显示的汉字的一字节,光标位置加1,送第二字节,按行按列对齐,送第三字节直到32B显示完就可在LCD上得到一个完整的汉字。3.3 LCD模块的指令说明要完成显示程序的设计,必须了解LCD液晶模块的指令系统。这里采用的LCD是北京精电蓬远显示技术公司生产的MGLS系列图形液晶显示模块,其内藏KS0108B/HD61202控制器。KS0108B及其兼容控制驱动器( HD61202 )的指令系统比较简单,一共只有7条指令,从作用上可分为两类。第一条指令和
25、第二条指令为显示状态设置类;其余指令为数据读/写操作指令。下面是各个指令的功能:1. 读状态指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01 0BUSY 0 ON/OFF REST 0 0 0 0状态字是计算机了解HD61202及其兼容控制驱动器当前状态,或是HD61202及其兼容控制驱动器向计算机提供其内部状态的唯一的信息渠道。2. 显示开关指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 00 0 1 1 1 1 1 1/0该指令设置显示开关触发器的状态,由此控制显示数据锁存器的工作方式,从而控制显示屏上的显示状态。3. 显示
26、起始行设置指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 01 1 显示起始行( 0-63 ) 该指令设置了显示起始行寄存器的内容。4. 页面地址设置指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 01 0 1 1 1 页号( 07 ) 该指令设置了页面地址X地址寄存器的内容。5. 列地址设置指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 00 1 显示列地址( 063 )该指令设置了Y地址计数器的内容,C5C0=03FH( 164 )代表了某一页面上的某一个单元地址,随后的一次读或写数据将在
27、这个单元上进行。6. 写数据指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 1写数据该操作将8位数据写入先前已确定的显示存储器的单元内。操作完成后列地址计数器自动加1。7. 读数据指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01 1读显示数据该操作将HD61202接口部的输出寄存器内容读出,然后列地址计数器自动加一。必须注意的是,进行读操作之前,必须有一次空读操作,紧接着再读才会读出所要读的单元中的数据。3.4 液晶显示界面本着简单明了的基本思想前面提到,结合液晶显示模块的相关知识,设计出如下界面:智能型充电器电池:电压: V节
28、数;电流: A状态:温度: 图3-1 LCD界面显示这次设计采用的液晶显示模块本是由北京精电公司所造的图形式的MGLS-12864芯片,其用一片KS0107B或兼容驱动器( HD61203 )作为行驱动器和三片KS0108B或兼容驱动器(HD61203) 作为列驱动器组成的。液晶显示的第一行为“智能型充电器”,由左起第四列开始显示,这样正好左右平均分配。第二行左起顶格显示“电池”,表示对充电电池的选择,可进行“锂电、镍镉、镍氢、铅酸”四种电池的选取,第三行显示电池的节数,第四行显示状态,可以在“快充、涓充、充满、放电”四个选项间进行选取,第二行到第四行左起分别显示电压、电流和温度数值。由此可见
29、,左边的两选项在充放电的过程中是不变的,而右边的三个参数在充电过程中随时发生变化。3.5 系统程序流程图为了方便程序的设计,使自己在设计过程中做到思路清晰,设计起来游刃有余。这里首先画出了程序流程图,后面根据次流程图具体设计程序,现具体分析如下:(一)主程序流程图这次设计课题的主要内容是在充电器的充电过程中,采集参数,进行电压、电流、温度的实时显示。其主流程图设计如下:按 键 调 节采样V、A、T显示V、A、T 充满?结 束YN 初 始 化采 集 电 池 电 压0开 始Y有 电 池无 电 池等 待扫 描 按 键有键按下?YNN (1) 图3-2主程序流程图(二)控制程序流程图要想在液晶模块上显
30、示一个字符或汉字,首先必须得对控制字进行写指令代码、写显示数据和读显示数据3项操作。完成这3项工作都必须保证控制器处于不忙的情况下,这就必须有一个判忙子程序,其流程图如下:开 始读左边控制器的状态字驱动器忙?送 状 态 字返 回YN 图3-3 判忙程序流程图 (三)显示程序流程图根据上面采用的方法设置汉字的初始值(lr、X、Y),当显示完第一列的8字节以后,跳到第二列又从上往下显示。由于一个汉字每一列有16字节,则当一页的16列显示完,只相当于显示的汉字的上半部分,则再次跳到下一页的初始位,进行汉字下半部分的显示,值到16列显示完成,才表示一个汉字全部显示结束。通过上面的介绍,一个汉字的显示流
31、程图编写如下:满16列?NY汉显完成,继续吗?NY返 回设lr、X、Y初始值lr选取控制器X页面值,Y列地址值开 始 显 示显示满16列?NYX+1显示下半部分开 始初 始 化 图3-4 汉字显示流程图第四章 系统调试完成对系统的硬、软件设计后,就可以对系统进行调试了。本次设计本人采用了ICCAVR编译器作为系统的开发工具,进行程序的烧录和仿真。在这里设计了一些最简单的单片机系统实例进行调试,其核心部件采用Atmega16L芯片。一个最简单的单片机系统的开发也需要电路设计、单片机器件选择和程序编写3个步骤。对于单片机系统,最简单的功能无非是控制输出电平的高低。单片机的最简单系统是指单片机能正常
32、工作所必须的外围元件,主要由单片机、晶振电路和复位电路组成。同传统的单片机系统一样,Atmega16L的晶振电路也分为外部时钟模式和内部时钟模式两种,其内部时钟电路如下图:XTAL2XTAL1MPUGNDC1 C2 图4-4 晶振电路 鉴于Atmega16L的主频范围为0-8MHz,这里选用的是晶振为7.3728MHz。复位电路采用了上电复位电路,其电路图如下: MPU RESET+RGND1K22UfVCC 图4-5 复位电路注意这一点和有51系列的单片机是不同的,Atmega16的RST是低电平复位,而8051系列单片机是高电平才发生复位,换句话说,这两种单片机复位电路的设计完全相反。了解
33、了以上两部分电路,再配合I/O接口中,就可以进行电路的设计了。编写好的程序通过并行通信下裁AVR-ISP烧到板子里面,其下裁电缆的电源由目标板提供,其管脚如下: 图4-6 目标板管脚图前面说到,测试单片机的最简单系统最简单的就是控制输出电平的高低,这里采用发光二极管作为它的输出器件,用二极管的亮或灭表示自己设计的单片机系统是否能够正常工作。具体进行了以下实际电路的设计。(一)一个灯的闪烁。通过上面的介绍,Atmega16L有32个I/O输出口,作为第一功能时,它们是没有区别的。这次主要用它的B口进行实验。在万用板上插上Atmega16L芯片,按上面的方法接上晶振电路和复位电路。接通电源(5V)
34、,用万用表测B0口压降,测得电压+5V,可知系统正常。在B0端接上一发光二极管。打开ICCAVR编译器,按照上面的步骤进行构筑向导框的操作。在PORTS的选项中,把B口设置为输出口,值为“1”。其它按上面的设置,进入到IDE环境。编辑显示程序,编辑窗口里面已经有初始化程序、看门狗程序等基本程序。只要进行主函数的编写就可以了。要让输出口电平发生转换,采用了两种方法。一种是用延时的办法。初始设B0口为0,二极管不亮,经过一定时间的延时后,B0口变为1,二极管发光。再过相同时间,B0口再为0按上述步骤循环,就可以实现二极管的亮灭了。第二种利用中断。主程序将B0口置1,使小灯发亮。在timer0中设置
35、计数操作,当到达一定的数值时,B0口跳为0。程序跳到timer0中运行,实现中断。然后跳出中断,每计数到一固定的数值时,程序就执行中断操作。(二)灯的循环显示这一实验主要实现在B口接8个小灯,让小灯从B0到B7逐个发亮。通过上面的两种方法的比较,当小灯个数较多时,对逐个实现延时比较麻烦。而采用中断实现时,初设小灯全部发亮,当每计数到一固定时间时,点亮1个灯,8个灯全亮时作为总的循环时间,用for语句实现,里面用switchcase语句分为8种情况。设置的时间不同,其循环时间就不一样。经过运行,小灯的显示达到了预期目标。1第五章 毕业设计总结本次毕业设计在自己的努力,同学的帮助,老师的指点下已全
36、部完成,结果重要,过程也很珍贵,因为好的结果必然得经过一个艰辛的过程,而从这个坚信的过程中我获得了珍贵的经验和教训,仔细认真的总结将对自己是个质的提升。现先将此次毕业设计的成果简要汇报如下:完整的电池充电器设计方案模块化的 “C”源代码支持多数电池类型快速充电算法充电参数易修改片内EEPROM 可用于存储电池信息支持在线编程,低成本致 谢参考文献1 谭浩强著 C程序设计(第二版) 清华大学出版社 19992 沈文、Eagle、詹卫前编著 AVR单片机C语言开发入门指导 清华大学出版社 20033 金春林、邱慧芳、张皆喜编著 AVR系列单片机C语言编程与应用实例 清华大学出版社 20034 武锋、陈新建编著 PIC单片机C语言开发入门 北京航空航天大学出版社 20055 夏路易、石宗义编著 电路原理图与电路板设计教程 北京希望电子出版社 20026 图形液晶显示模块使用手册(第二版) 北京精电蓬远显示技术有限公司7 郭永贞主编 数字电子技术 西安电子科技大学出版社 2000