毕业设计-智能充电器的设计.doc_第1页
毕业设计-智能充电器的设计.doc_第2页
毕业设计-智能充电器的设计.doc_第3页
毕业设计-智能充电器的设计.doc_第4页
毕业设计-智能充电器的设计.doc_第5页
免费预览已结束,剩余44页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计(论文)-智能充电器的设计 elec前言随着越来越多的手持式电器的出现对高性能小尺寸重量轻的电池充电器的需求也越来越大电池技术的持续进步也要求更复杂的充电算法以实现快速安全的充电因此需要对充电过程进行更精确的监控以缩短充电时间达到最大的电池容量并防止电池损坏AVR 已经在竞争中领先了一步被证明是下一代充电器的完美控制芯片Atmel AVR 微处理器是当前市场上能够以单片方式提供FlashEEPROM 和10 位ADC的最高效的8 位RISC 微处理器由于程序存储器为Flash因此可以不用象MASK ROM一样有几个软件版本就库存几种型号Flash 可以在发货之前再进行编程或是在PCB贴装之后再通过ISP 进行编程从而允许在最后一分钟进行软件更新EEPROM 可用于保存标定系数和电池特性参数如保存充电记录以提高实际使用的电池容量10位AD 转换器可以提供足够的测量精度使得充好后的容量更接近其最大容量而其他方案为了达到此目的可能需要外部的ADC不但占用PCB 空间也提高了系统成本AVR 是目前唯一的针对像 C这样的高级语言而设计的8 位微处理器C 代码似的设计很容易进行调整以适合当前和未来的电池而本次智能型充电器显示程序的编写则就是用C语言写的第一章概述第一节绪论com景如今随着越来越多的手持式电器的出现对高性能小尺寸重量轻的电池充电器的需求也越来越大电池技术的持续进步也要求更复杂的充电算法以实现快速安全的充电因此需要对充电过程进行更精确的监控以缩短充电时间达到最大的电池容量并防止电池损坏与此同时对充电电池的性能和工作寿命的要求也不断地提高从20世纪60年代的商用镍镉和密封铅酸电池到近几年的镍氢和锂离子技术可充电电池容量和性能得到了飞速的发展目前各种电器使用的充电电池主要有镍镉电池NiCd镍氢电池NiMH锂电池Lion和密封铅酸电池SLA四种类型目前市场上卖得最多的是旅行充电器但是严格从充电电路上分析只有很少部分充电器才能真正意义上被称为智能充电器随着越来越多的手持式电器的出现对高性能小尺寸轻重量的电池充电器的需求也越来越大电池技术的持续进步也要求更复杂的充电算法以实现快速安全地充电因此需要对充电过程进行更精确地监控 例如对充放电电流充电电压温度等的监控 以缩短充电时间达到最大的电池容量并防止电池损坏因此智能型充电电路通常包括了恒流恒压控制环路电池电压监测电路电池温度检测电路外部显示电路 LED或LCD显示 等基本单元其框图如下图1-1 智能充电器基本框图Atmel AVR 微处理器是当前市场上能够以单片方式提供FlashEEPROM 和10 位ADC的最高效的8 位RISC 微处理器由于程序存储器为Flash因此可以不用象MASK ROM一样有几个软件版本就库存几种型号Flash 可以在发货之前再进行编程或是在PCB贴装之后再通过ISP 进行编程从而允许在最后一分钟进行软件更新EEPROM 可用于保存标定系数和电池特性参数如保存充电记录以提高实际使用的电池容量10位AD 转换器可以提供足够的测量精度使得充好后的容量更接近其最大容量而其他方案为了达到此目的可能需要外部的ADC不但占用PCB 空间也提高了系统成本AVR 是目前唯一的针对象 C这样的高级语言而设计的8 位微处理器com电电池特性及其充电方式电池充电是通过逆向化学反应将能量存储到化学系统里实现的由于使用的化学物质的不同电池的特性也不同其充电的方式也不大一样电池的安全充电 现代的快速充电器 即电池可以在小于3 个小时的时间里充满电通常是一个小时 需要能够对单元电压充电电流和电池温度进行精确地测量在充满电的同时避免由于过充电造成的损坏充电方法 SLA 电池和锂电池的充电方法为恒定电压法要限流 NiCd 电池和NiMH 电池的充电方法为恒定电流法且具有几个不同的停止充电的判断方法最大充电电流 最大充电电流与电池容量 C 有关最大充电电流往往以电池容量的数值来表示例如电池的容量为750 mAh充电电流为750 mA则充电电流为1C 1 倍的电池容量 若涓流充电时电流为C40则充电电流即为电池容量除以40过热 电池充电是将电能传输到电池的过程能量以化学反应的方式保存了下来但不是所有的电能都转化为了电池中的化学能一些电能转化成了热能对电池起了加热的作用当电池充满后若继续充电则所有的电能都将转化为电池的热能在快速充电时这将使电池快速升温若不及时停止充电就会造成电池的损坏因此在设计电池充电器时对温度进行监控并及时停止充电是非常重要的现代消费类电器主要使用如下四种电池 密封铅酸电池 SLA 镍镉电池 NiCd 镍氢电池 NiMH 锂电池 Li-Ion 在正确选择电池和充电算法时需要了解这些电池的背景知识密封铅酸电池 SLA 密封铅酸电池主要用于成本比空间和重量更重要的场合如UPS和报警系统的备份电池SLA 电池以恒定电压进行充电辅以电流限制以避免在充电过程的初期电池过热只要电池单元电压不超过生产商的规定 典型值为22V SLA 电池可以无限制地充电镍镉电池 NiCd NiCd 电池目前使用得很普遍它的优点是相对便宜易于使用缺点是自放电率比较高典型的NiCd 电池可以充电1000 次失效机理主要是极性反转在电池包里第一个被完全放电的单元会发生反转为了防止损坏电池包需要不间断地监控电压一旦单元电压下降到10V 就必须停机NiCd 电池以恒定电流的方式进行充电镍氢电池 NiMH 在轻重量的手持设备中如手机手持摄象机等等镍氢电池是使用最广的这种电池的容量比NiCd 的大由于过充电会造成NiMH 电池的失效在充电过程中进行精确地测量以在合适的时间停止是非常重要的和NiCd 电池一样极性反转时电池也会损坏NiMH 电池的自放电率大概为20 月和NiCd 电池一样NiMH 电池也为恒定电流充电锂电池 Li-Ion 和本文中所述的其他电池相比锂电池具有最高的能量 重量比和能量 体积比锂电池以恒定电压进行充电同时要有电流限制以避免在充电过程的初期电池过热当充电电流下降到生产商设定的最小电流时就要停止充电过充电将造成电池损坏甚至爆炸com 主要芯片的选择 ATMEL公司是世界上有名的生产高性能低功耗非易失性存储器和各种数字模拟IC芯片的半导体制造公司在单片机微控制器方面ATMEL公司有AT89 AT90和ARM三个系列单片机的产品由于8051本身结构的先天性不足和近年来各种采用新型结构和新技术的单片机的不断涌现现在的单片机市场是百花齐放ATMEL在这种强大市场压力下发挥Flash存储器的技术特长于1997年研发并推出了个新配置的采用精简指令集RISC Reduced Instruction Set CPU 结构的新型单片机简称AVR单片机 精简指令集RISC结构是20世纪90年代开发出来的综合了半导体案成技术和软例-性能的新结构AVR单片机采用RISC结构具有1MIPS MHz的高速运行处理能力为了缩短产品进入市场的时间简化系统的维护和支持对于由单片机组成的嵌入式系统来说用高级语言编程已成为一种标准编程方法AVR结构单片机的开发日的就在于能够更好地采用高级语言例如C语言BASIC语言来编写嵌入式系统的系统程序从而能高效地开发出目标代码为了对目标代码大小性能及功耗进行优化AYR单片机的结构中采用了大型快速存取寄存器组和快速的单周期指令系统 AVR单片机运用Harvard结构在前一条指令执行的时候就取出现行的指令然后以一个周期执行指令在其他的CISC以及类似的RISC结构的单片机中外部振荡器的时钟被分频降低到传统的内部指令执行周期这种分频最大达12倍 8051 AVR单片机是用一个时钟周期执行一条指令的它是在8位单片机中第一个真正的RISC结构的单片机 由于AVR单片机采用了Harvard结构所以它的程序存储器和数据存储器是分开组织和寻址的寻址空间分别为可直接访问8M字节的程序存储器和8M字节的数据存储器同时由32个通用工作寄存器所构成的寄存器组被双向映射因此可以采用读写寄存器和读写片内快速SRAM存储器两种方式来访问32个通用工作寄存器AVR主要有单片机有ATtinyAT90和ATmega三种系列其结构和基本原理都相类似本次设计所用到的Atmega16L芯片便是ATmega系列中的一种在这里作为充电器的核心部件它是一种具有40引脚的高性能低功耗的8位微处理器其功能特性如下 1 8位CPU 2 先进的RISC 结构131 条指令 大多数指令执行时间为单个时钟周期32个8 位通用工作寄存器全静态工作 3 非易失性数据和程序存储器16K 字节的系统内可编程Flash擦写寿命可达到10000 次以上具有独立锁定位的可选Boot代码区通过片上Boot程序实现系统内编程512 字节的EEPROM可连续擦写100000 次1K字节的片内SRAM可以对锁定位进行编程以实现用户程序的加密 4 可通过JTAG接口实现对FLASHEEPROM的编程 5 32个可编程的IO引线40引脚PDIP封装 6 两个具有独立预分频器和比较器功能的8位定时器 计数器一个具有预分频器比较功能和捕捉功能的16位定时器 计数器 7 片内 片外中断源 8 具有一个10位的AD转换器能对来自端口A的8位单端输入电压进行采样 9 工作电压2755V速度等级08MHzAVR单片机的主要特点如下1片内集成可擦写10000次以上的Flash程序存储器由于AVR采用16位的指令所以一个程序存储器的存储单元为16位即XXXX1116 也可理解为8位即2XXXX8 AVR的数据存储器还是以8个Bit 位 为一个单元因此AVR还是属于8位单片机2采用CMOS工艺技术高速度 50ns 低功耗具有SLEEP 休眠 功能AVR的指令执行速度可达50ns 20MHz AVR运用Harvard结构概念具有预取指令的特性即对程序存储和数据存取使用不同的存储器和总线当执行某一指令时下一指令被预先从程序存储器中取出这使得指令可以在每一个时钟周期内执行3高度保密 LOCK 可多次擦写的FLASH具有多重密码保护锁死 LOCK 功能因此可低成本高速度地完成产品商品化并且可多次更改程序 产品升级 而不必浪费1C或电路板大大提高了产品的质量及竞争力4超功能精简指令具有32个通用作寄存器 相当于8051中的32个累加器 克服了单一累加器数据处理造成的瓶须现象1284K字节SRAM可灵活使用指令计算并可用功能很强的C语言编程易学易写易移植5程序写入器件可以并行写入 用编程器写入 也可使用串行在线编程 ISP 方法下载写入也就是说不必将单片机芯片从系统上拆下拿到万用编程器上烧写而可直接在电路板上进行程序的修改烧写等操作方便产品升级尤其是采用SMD封装更利于产品微型化com60V电源抗干扰性能强7AVR单片机还在片内集成了可擦写100000次的PROM数据存储器等于又增加了一个芯片可用于保存系统的设定参数固定表格和掉电后的数据既方便了使用减小了系统的空间又大大提高了系统的保密性8有8位和16位的计数器定时器 CT 可作比较器计数器外部中断和PWM也可作DA 用于控制输出com示模块的选择LCD显示模块是一种被动显示器具有功耗低显示信息大寿命长和抗干扰能力强等优点在低功耗的单片机系统中得到大量使用液晶显示模块和键盘输入模块作为便携式仪表的通用器件在单片机系统的开发过程中也可以作为常用的程序和电路模块进行整体设计液晶显示的原理是利用液晶的物理特性通过电压对其显示区域进行控制有电就显示黑色这样即可显示出图形在单片机系统中使用液晶显示模块作为输出器件有以下优点显示质量高液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度恒定发光因此液晶显示器画质高而且不会闪烁数字式接口液晶显示器都是数字式的和单片机系统的接口更加简单体积小重量轻功率消耗小液晶显示器的功耗主要消耗在其内部的电极和驱动IC上因此耗电量比其它显示器要小得多第二节毕业设计任务和要求智能充电器的设计包括硬件和软件两大部分本人的主要任务是完成充电器设计的LCD显示部分其主要涉及的知识包括自学AVR单片机的相关内容设计电源电路设计12864液晶显示控制电路和用C语言编制LCD显示程序用图形方式显示充电器电压电流等参数手工焊接和ICCAVR编译器的应用这次设计要解决的关键问题是如何用Atmega16L芯片控制LCD模块及用C语言编制相应的显示程序随着单片机的开发应用其相应的汇编编程和所暴露的问题也越来越多逐渐引入了高级语言C语言就是其中的一种在大一时就曾接触过C语言由于时间较短重视程度不够后来又一直没用过只能对它有一个大概的了解而对于AVR单片机的相关知识和液晶显示模块的使用则完全是一片空白这次毕业设计就不得不花大量的时间在这些基础知识的学习上为了更有效地完成这个课题特列出了如下计划表1-1 毕业设计进度表 起止时间 工 作 内 容第12周熟悉课题的基本要求查阅相关资料初步拟定设计的整体方案完成开题报告 第38周自学这次课题所涉及的相关内容包括C语言基础知识AVR单片机主要是Atmega16L芯片和ICCAVR编译器的使用以及液晶显示的相关内容并设计一些简单的实际电路熟练所学内容并加以巩固熟悉绘图软件Protel99的使用 第912周设计LCD显示电路电源电路用Protel99绘制原理图和同学一起完成整个充电电路原理图并绘制印制电路板编写显示程序 第1315周焊接调试电路根据各部分的作用对硬件电路进行调试最后联机调试 最后数周写毕业设计论文完成全部毕业设计 这次毕业设计是由郭伟同学和本人共同合作完成由他完成充电部分的硬件电路的设计和这边的显示部分相结合共同完成智能充电器的设计第二章 硬件电路设计经过前面对充电器原理液晶模块ATmega16L等的总体了解和掌握以及对各种元器件和电路图的分析和比较后现在就可以开始进入硬件电路的设计了在本章里首先将介绍一下液晶模块访问方式的两种接口电路然后对LCD显示电路原理图作一个详细的介绍接着介绍充电电路中所用到的各种芯片和元器件的原理和一些功能最后对PROTEL99的使用和PCB板的绘制以及焊接做一简单介绍然后再将自己的设计思想和同组人所设计的两部分结合达成统一 第一节 液晶显示模块两种访问方式接口电路的选择单片机与液晶显示模块之间的连接方式分为直接访问方式和为间接控制方式两种如图2-1和图2-2所示其中左为单片机右为液晶显示模块 一 直接访问方式 数据总线 GND 5V电位器 负电源 1 374LS00A11A10A9A8MPU 图2-1 直接访问方式电路图 LCM接口直接访问方式就是将液晶显示模块的接口作为存储器或IO设备直接挂在单片机总线上单片机以访问存储器或IO设备的方式操作液晶显示模块的工作直接访问方式的接口电路如图2-1所示在图中单片机通过高位地址A11控制CSAA10控制CSB以选通液晶显示屏上各区的控制器同时用地址A9作为RW信号控制数据总线的数据流向用地址A8作为DI信号控制寄存器的选择E 使能 信号由RD和WE共同产生这样就实现了单片机对液晶显示模块的电路边接电位器用于显示对比度的调节 二 间接控制方式10K负电源 GND MPU LCM接口图2-2 间接控制方式电路图间接控制方式是单片机通过自身的或系统中的并行接口与液晶显示模块连接单片机通过对这些接口的操作以达到对液晶显示模块的控制这种方式的特点就是电路简单控制时序由软件实现可以实现高速单片机与液晶显示模块的接口电路图如图2-2所示在图中以 P1口作为数据口P34为CSAP33为CSBP32为使能端P31为RW和P30为DI信号电位器用于显示对比度的调节通过比较再结合本次设计的实际条件由于Atmega16L芯片没有WRRD管脚而且为了使电路简单且方便软件实现所以最终决定采用间接控制的方式来设计LCD显示电路第二节 硬件电路主要芯片com ATmega16L主要引脚说明以下是ATmega16L的引脚配置 图2-3 ATmega16L芯片引脚引脚说明VCC 数字电路的电源GND 地端口A PA7PA0 端口A 作为AD 转换器的模拟输入端端口A 为8 位双向IO 口具有可编程的内部上拉电阻其输出缓冲器具有对称的驱动特性可以输出和吸收大电流作为输入使用时若内部上拉电阻使能端口被外部电路拉低时将输出电流在复位过程中即使系统时钟还未起振端口A 处于高阻状态端口B PB7PB0 端口B 为8 位双向IO 口具有可编程的内部上拉电阻其输出缓冲器具有对称的驱动特性可以输出和吸收大电流作为输入使用时若内部上拉电阻使能端口被外部电路拉低时将输出电流在复位过程中即使系统时钟还未起振端口B 处于高阻状态端口C PC7PC0 端口C 为8 位双向IO 口具有可编程的内部上拉电阻其输出缓冲器具有对称的驱动特性可以输出和吸收大电流作为输入使用时若内部上拉电阻使能端口被外部电路拉低时将输出电流在复位过程中即使系统时钟还未起振端口C 处于高阻状态如果JTAG接口使能即使复位出现引脚PC5 TDI PC3 TMS 与PC2 TCK 的上拉电阻被激活端口D PD7PD0 端口D 为8 位双向IO 口具有可编程的内部上拉电阻其输出缓冲器具有对称的驱动特性可以输出和吸收大电流作为输入使用时若内部上拉电阻使能则端口被外部电路拉低时将输出电流在复位过程中即使系统时钟还未起振端口D处于高阻状态RESET XTAL1 反向振荡放大器与片内时钟操作电路的输入端XTAL2 反向振荡放大器的输出端AVCCAVCCA与AD转换器的电源不使用ADC时该引脚应直接与VCC连接使用ADC时应通过一个低通滤波器与VCC相连AREFAD 的模拟基准输入引脚com Atmega16L的存储器AVR结构有两个主要的存储空间数据存储器空间和程序存储器空间此外Atmega16L还有一个EEPROM存储器以保存数据这三个存储器都为线性的平面结构 1 Atmega16L具有16K字节的在线编程Flashlash组织成8K16的形式用户程序的安全性要根据Flash程序存储器的两个区引导 Boot 程序区和应用程序区分开来考虑Flash存储器至少可以擦写10000次Atmega16L的程序存储器为13位因此可以寻址8K的存储器空间关于用SPI 或JTAG 接口实现对Flash 的串行下载将在软件部分作详细的介绍 2 数据存储器的寻址方式分为5种直接寻址带偏移量的间接寻址间接寻址带预减量的间接寻址和带后增量的间接寻址ATmega16L的全部32个通用寄存器64个IO寄存器及1024个字节的内部数据SRAM可以通过所有上述的寻址模式进行访问 3 ATmega16L 包含512 字节的EEPROM 数据存储器它是作为一个独立的数据空间而存在的可以按字节读写EEPROM 的寿命至少为100000 次擦除周期EEPROM 的访问由地址寄存器数据寄存器和控制寄存器决定com Atmega16L的时钟电路单片机的时钟用于产生工作所需要的时序其连接电路如下图 图2-4 晶体振荡器连接图XTAL1 与XTAL2 分别为用作片内振荡器的反向放大器的输入和输出考虑到其最大频率不超过8MHz3728MHzcom Atmega16L的系统复位Atmega16L有五个复位源上电复位电源电压低于上电复位门限Vpot时MCU复位如果在单片机加Vcc电压的同时保持RESET引脚为低电平则可延长复位周期Vcc Vpot VpotRESET Vrst VrstTIME-OUTINTERINAL tTOUT tTOUT RESET 图2-5 RESET引脚与VCC相连时 图2-6 RESET引脚由外部控制时 单片机的复位电平 单片机的复位电平外电复位引脚RESET上的低电平持续时间大于最小脉冲宽度时MCU复位VccRESET VrstTIME-OUT tTOUTINTERNALRESET 图2-7 外部复位时序图看门狗复位看门狗使能并且看门狗定时器溢出时复位发生看门狗计数器溢出时将产生一个晶振的复位脉冲Vcc RESET WDT 1 XTAL CycleTIME-OUT RESET tTOUT TIME-OUTINTERNAL RESET 图2-8 看门狗复位时序图掉电检测复位掉电检测复位功能使能且电源电压低于掉电检测复位门限Vpot时MCU即复位JTAG AVR复位复位寄存器为1时MCU复位第三节LCD液晶显示 com LCD的显示原理液晶显示器是一种功耗极低的显示器随着液晶显示技术的发展LCD显示器的规格众多其专用驱动芯片也相互配套使LCD在控制和仪表系统中广泛应用提供了极大的方便根据LCD显示原理的不同常见和常用的LCD可以分为字符型LCD和点阵型LCD两种不同的显示原理使得这两种LCD的指令系统接口和功能等是不相同的各有优缺点但结合到本次设计的实际要求经过比较还是选用点阵型LCD现就点阵型LCD的显示原理模块特点等做一简要介绍要想在液晶模块上显示一个汉字或字符需要3个最基本的控制操作分别向3个控制器写指令代码写显示数据和读显示数据这里要特别引起注意的是完成这3项操作的前提条件是KS0108B控制器处于准备好的状态即BUSY 0由模块的软件特性知道当BUSY 1时系统的接口电路处于被封锁的状态是不能接受除读状态指令外的任何操作的因此在访问控制器之前一定要判断控制器的当前状态具体到软件设计时则需设计一判忙程序在判断BUSY 0后再往下进行操作在本模块中每个汉字的大小是1616点阵而每个字符的大小是816点阵即字符的宽度为汉字的12它们都是以二维数组的格式存放在ROM中向液晶模块显示一个汉字的过程就是由液晶屏显示区的指定字符行的指定列开始连续输出该字符对应的字符库中的16个列数据如果是显示字符则输出8个列数据即可上面已经介绍到MGLS-19264液晶模块中液晶屏显示区为19264点阵其中它们的每8个像素行组成一页整个显示区共分为8页每64列为一个区这样它就有左中右3个区它的显示区示意图如下左区 中区 右区0 1 2 62 63 64 65 127128 129 191DB0DB7DB0DB7 图2-9 液晶屏显示区示意图液晶模块显示字符是从上到下从左到右进行显示的假设定义从最左上角开始显示则先从上到下显示第0页的第一列依次从左向右开始显示MGLS-19264LCM的显示部分为左中右3个区可以由CS片选的取值分别进行控制其接口的片选定义如下表2-1 MGLS的片选定义表CS1CS2选中区域 0 0 左区 0 1 中区 1 0 右区 1 1 未选 有了上面的知识就可以编写显示界面这一块程序由于每个汉字或字符在图中位置是固定的只要定义了相应的选区及XY地址就可以显示出具体的位置用lr来表示汉字的区域当lr 0表示左区lr 1表示中区lr 2表示右区X表示页面Y表示列地址则 com 就可以定义出这个字在屏上的实际位置以第一行的智字为例这个字位于模块的左区则lr 0 com 精确地表示出它的位置这里要注意的是每个汉字占用的行地址是两页如智字占的就是X0和X1即第二行的汉字其X 2而不是1因此第二行的电就应该表示为 com 其它字符依此设计即可com 液晶显示控制驱动器HD61202及其兼容液晶显示控制器是一种带有驱动输出的图形液晶显示控制器而在小规模点阵液晶显示模块上使用液晶显示驱动器组成液晶显示驱动控制系统是非常有益的这将使液晶显示模块的硬件电路简单化从而降低模块的成本同时也提高了对软件功能的要求许多显示功能如光标字符库闪烁都需要由软件编制而成HD61203和HD61202就是这类液晶显示驱动控制器套件之所以称它们为套件是因为HD61203和HD61202必须配套使用通常有12864和19264两种规格其特点如下1内藏6464 4096位显示RAMRAM中每位数据对应LCD屏上的一个点的亮暗状态2HD61202及其兼容控制器是列驱动器具有64路列驱动输出3HD61202及其兼容控制驱动器读写时序与68系列微处理妻相符因此它可直接与68系列微处理器借口相联4HD61202及其兼容控制器的占空比为132164com 液晶显示模块的特点MGLS-12864图形液晶显示模块的驱动和控制系统是由一片KS0107B或兼容驱动器 HD61203 作为行驱动器和两片KS0108B或兼容驱动器 HD61203 作为列驱动器组成的它的主要技术参数及其供电特点如下电源DC5V模块内自带用于LCD驱动的负压电路显示内容12864全屏幕点阵指令形式七种指令接口形式与控制器采用8位数据总线和8位控制线相连工作环境1050模块应用有三种电源逻辑电源液晶驱动电压背光电压本次选用的模块是双电源供电VDDV0需要提供一个液晶驱动电压用以调节对比度接在液晶模块的V0引脚上由于液晶的对比度会随着温度的变化而相应变化所以其液晶显示驱动电压值应随着温度作相应的调整这里采用了一个电位器调整电压值背光供电为38-41V的支流电源选用电源太大不仅增加功耗更有可能损坏背光灯和缩短模块的使用寿命MGLS-12864的逻辑电路图如下图2-8 MGLS-12864的逻辑电路图MGLS-12864液晶显示模块一共有20个引脚它的接口定义如下表2-2 MGLS-12864的接口电路序号符号状态功能D7三态数据总线D6三态数据总线D5三态数据总线4D4三态数据总线5D3三态数据总线6D2三态数据总线7D1三态数据总线8D0三态数据总线9E输入RW LE的下降沿锁存数据线RW HE为H时数据由控制器输出至数据线10RW输入RW LE H数据由控制器输出数据线RW HE的下降沿数据由数据线输入到控制器11DI输入DI L表示DB7DB0为显示数据DI H表示DB7DB0为显示指令12V0液晶显示器驱动电压13VCC电源正14GND电源地15CS1输入片选信号16CS2输入片选信号17VOUTLCD负压驱动电压18RET输入复位信号19LED显示模块背光电源20LED-显示模块背光电源第四节 电源电路的设计在本次的设计中要供电给mega16和LCD显示模块两部分而一个LM7805的输出电流不足所以本人打算将mega16和显示模块分别供电所以实际电路中用到了两片7805下面就一个电源电路给出设计方案另一个同样原理5V电源电路的设计加图 图2-9 5V的电源电路设计原理图上图是LM78作为输出电压固定的典型电路图正常工作时输入输出电压差为3-8V输入电压PS为9V电路中接入电容C5用来实现频率补偿防止稳压器产生高频自激振荡和抑止电路引入的干扰C11是有极性的电解电容以减小稳压电压输出端由输入电源引入的电平干扰D1是保护二极管当输入端短路时给输出电容器C11一个放电电路防止C11两端电压作用于调压管的be结造成调压管be结击穿而损坏其中C5C11两个电容只是起滤波作用选用的大小没有特别的要求第五节 硬件电路设计经过对以上对ATmega16L芯片的端口存储器时钟电路以及复位电路和LCD液晶显示等原理的介绍后现在就可以完成对这部分硬件电路的设计了再结合前面的分析采用间接访问的方式实现单片机与液晶显示模块之间的连接LCD模块的8位数据线接在了Atmega16L芯片B口的8位数据线上这里用了一个74LS24作为锁存器使它们间接连接在一起LCD的ENDICS1CS2RW分别连接到PA3PA7上其详细的接法见下图 图2-10 硬件接线图第六节 PROTEL99的应用简介经过前面的努力智能充电器硬件电路的设计在本人及同组人的共同努力下已经完成接下来便是根据前面的设计用软件画出其原理图并生成板PROTEL99SE是一个全32位的电路板设计软件使用该软件可以容易地设计电路原理图画元件图设计电路板图画元件封装图和电路仿真在这里主要用它来绘制电路原理图和生成印制电路板原理图的设计步骤如下设置原理图设计环境其中工作环境设置是使用DesignOptions和Tool和Preferences菜单进行的画原理图环境的设置主要包括图纸大小捕捉栅格电气栅格模板设置等放置元件将电气和电子元件放置在图纸上原理图布线元件一旦放置在原理图上不需要用导线将元件连接起来连接时一定要符合电气规则编辑和调整编辑元件的属性包括元件名参数封装图等调整元件和导线的位置等操作 本次设计所用的主要元件属性如下表2-3 主要元件表说明编号封装元件名称 单片机U1DIP-40Atmega16LCDJ2DIP-20LCD模块电阻RAXIAL03RES2电容CRAD01CAP锁存器U5DIP-2074LS245NPN三极管QTO462N2222A晶体XXTAL-1XTAL通用运放U2AU2BDIP8LM358检查原理图使用电气规则功能 ERC 检查原理图的连接是否合理和正确给出检查报告若有错误则要根据错误进行改正生成网络表所谓网络表就是元件名封装参数及元件之间的连接表通过该表可以确认各个元件和它们之间的关系打印原理图对电路板的设计主要分为以下几个步骤使用原理图编辑器设计原理图进行电气检查 ERC 并生成原理图的网络表进入电路板 PCB 环境使用电路向导确定电路板的层数尺寸等电路板参数使用DesignNetlist菜单调入网络表由于在前面的元件封装不规范这里面出现了许多错误通过请教老师及自己的不懈努力花了数天的时间才全部改了出来布置元件就是将元件合理地分布在电路板上自动布置元件或人工布置元件多次布置直到自己满意为止人工布线是画电路板的基础但比较耗时和费力另外由于自身经验的不足只得先采用自动布线在此基础上作了适当的修改完成修饰等工作完成整个电路板的设计接下来是焊接的工作这部分相对来说并不陌生在大二时曾进行过电子课程的实习主要就是完成收音机的焊接虽然以后接触得比较少但通过几天的练习还是基本圆满地完成了任务焊接通常要求焊点接触良好尤其避免虚焊的产生焊点要有足够的机械强度以保证被焊点不致滑落焊点表面应美观有光泽这块板子面积不算大 约90cm70cm 元器件引脚多看起来很密集从焊下来的结果来看焊点还可以也算比较美观最关键的是没有短路的情况发生焊接完成后整个硬件电路原理绘制原理路焊接等工作已全部完成下面转到软件部分的设计第三章 软件设计由于本人主要负责设计软件部分而本人之前对C语言这门课的学习不是非常的精通因此在着手本章之前本人对C语言以及AVR单片机与C语言编程方面的书籍做了认真仔细的回顾学习和再研究这样才对下面设计工作的开展打下了基础在本章里本人将先介绍C语言开发的优势然后介绍LCD的显示原理模块的软件特性等接下来便是最主要的整个程序的设计com开发单片机的优势C语言是一种编译型的结构化程序设计语言具有简单的语法结构和强大的处理功能具有运行速度快编译效率高移植性好和可读性强等多种优点可以实现对系统便件的直接操作用C语言来编写目标系统软件可以大大缩短开发周期且明显地增加软件的可读性便于改进和扩充从而开发出大规模高性能的应用系统其优势如下可以大幅度加快开发进度程序量越大用C语言就越有优势无需精通单片机指令集和具体的硬件也能够编出符合硬件实际专业水平的程序可以实现软件的结构化编程使得软件的逻辑结构变得清晰有条理便于开发小组计划任务分工合作源程序的可读性和可维护性都很好省去了人工分配单片机资源的工作在汇编语言中要为每一个子程序分配单片机的资源在使用C语言后只要在代码中申明一下变量的类型编译器就会自动分配相关资源根本不需要人工干预从而有效地避免了人工分配单片机资源的差错汇编语言的可移植性很差而C语言只要将一些与硬件相关的代码作适当的修改就可以方便地移植到其它种类的单片机上C语言提供autostaticflash等存储类型针对单片机的程序存储空间数据存储空间及EEPROM空间自动为变量合理地分配空间而且C语言提供复杂的数据类型极大地增强了程序处理能力和灵活性C编译器能够自动实现中断服务程序的现场保护和恢复并且提供常用的标准函数库供用户使用并且C编译器能自动生成一些硬件的初始化代码对于一些复杂系统的开发可以通过移植 或C编译器提供 的实时操作系统来实现正由于C语言在系统开发中的优势这次设计的所有程序设计都将采用C语言编写且通过ICCAVR编译器操作AVR的硬件资源32 液晶显示汉字或字符的原理 LCD本身不发光只是调节光的亮度目前市面上的LCD显示器都是利用液晶的扭曲一向列效应制成这是一种电场效应夹在两片导电玻璃电极间的液晶经过一定处理它内部的分子呈直角扭曲当线性偏振光透过其偏振面便会旋转一个直角当在玻璃电极上加上电压后在电场作用下液晶的扭曲结构消失偏振光便可以直接通过当去掉电场后液晶分子又恢复取扭曲结构把这样的液晶置于两个偏振片之间改变偏振片相对位置就可以得到白底黑子或黑底白字的显示形式结合以上知识具体显示原理如下 1 线段的显示点阵图形式液晶由MN个显示单元组成假设LCD显示屏有64行每行有128列每8列对应1字节的8位即每行由16字节共168 128个点组成屏上6416个显示单元与显示RAM区1024字节相对应每一字节的内容和显示屏上相应位置的亮暗对应例如屏的第一行的亮暗由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显示一个字符时比较复杂因为一个字符由68或88点阵组成既要找到和显示屏上某几个位置对应的显示RAM区的8字节还要使每字节的不同的位为1其它的为0为1的点亮为0的不亮这样一来就组成某个字符但对于内带字符发生器的控制器 如HD61202 来说显示字符就比较简单了可让控制器工作在文本方式根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址设立光标在此送上该字符对应的代码即可 3 汉字的显示汉字的显示一般采用图形方式事先从微机中提取要显示的汉字的点阵码每个汉字占32B分左右两半部各占16B左边为135右边为246根据在LCD上开始显示的行列号及每行的列数可找到显示RAM对应的地址设立光标送上要显示的汉字的一字节光标位置加1送第二字节按行按列对齐送第三字节直到32B显示完就可在LCD上得到一个完整的汉字33 LCD模块的指令说明要完成显示程序的设计必须了解LCD液晶模块的指令系统这里采用的LCD是北京精电蓬远显示技术公司生产的MGLS系列图形液晶显示模块其内藏KS0108BHD61202控制器KS0108B及其兼容控制驱动器 HD61202 的指令系统比较简单一共只有7条指令从作用上可分为两类第一条指令和第二条指令为显示状态设置类其余指令为数据读写操作指令下面是各个指令的功能读状态指令RW RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01 0BUSY 0 ONOFF REST 0 0 0 0状态字是计算机了解HD61202及其兼容控制驱动器当前状态或是HD61202及其兼容控制驱动器向计算机提供其内部状态的唯一的信息渠道状态字为一字节其中仅有3位有效位它们是BUSY表示当前HD61202接口控制电路运行状态BUSY 1表示HD61202正在处理计算机发来的指令或数据此时接口电路被封锁不能接受除读状态字以外的任何操作BUSY 0表示HD61202接口电路已处于准备好状态等待计算机的访问ONOFF表示当前的显示状态ONOFF 1表示关显示状态ONOFF 0表示开显示状态RESET表示当前HD61202的工作状态即反映RST端的电平状态当RST为低电平状态时HD61202处于复位工作状态RESET 1当RST为高电平状态时HD61202为正常工作状态RESET 0在指令设置和数据读写时要注意状态字中的BUSY标志只有在BUSY 0时计算机对HD61202的操作才能有效因此计算机在每次对HD61202操作之前都要读出状态字以判断BUSY是不为0若不为0则计算机需要等待直至BUSY 0为止显示开关指令RW RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 00 0 1 1 1 1 1 10该指令设置显示开关触发器的状态由此控制显示数据锁存器的工作方式从而控制显示屏上的显示状态D位为显示开关控制位当D 1为开显示设置显示数据锁存器正常工作显示屏上呈现所需的显示效果此时在状态字中ONOFF 0当D 0为关显示设置显示数据锁存器被置零显示屏呈不显示状态但显示存储器并没有被破坏在状态字中ONOFF 1显示起始行设置指令RW RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 01 1 显示起始行 0-63 该指令设置了显示起始行寄存器的内容HD61202有64行显示的管理能力该指令中L5L0为显示起始行的地址取值在03FH 164行 范围内它规定了显示屏上最顶一行所对应的显示存储器的行地址如果定时间隔地等间距地修改 如加1或减1 显示起始行寄存器的内容则显示屏将呈现显示内容向上或向下平滑滚动的显示效果页面地址设置指令RW RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 01 0 1 1 1 页号 07 该指令设置了页面地址X地址寄存器的内容HD61202将显示存储器分成8页指令代码中P2-P0就是要确定当前所要选择的页面地址取值范围为0-7H代表第1-8页该指令规定了以后的读写操作将在哪一个页面上进行列地址设置指令RW RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 00 1 显示列地址 063 该指令设置了Y地址计数器的内容C5C0 03FH 164 代表了某一页面上的某一个单元地址随后的一次读或写数据将在这个单元上进行Y地址计数器具有自动加1功能在每上次读写数据后它将自动加1所以在连续进行读写数据时Y地址计数器不必每次都设置一次页面地址的设置和列地址的设置将显示存储器单元唯一的确定下来为后来的显示数据的读写作了地址的选通写数据指令RW RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 1写数据该操作将8位数据写入先前已确定的显示存储器的单元内操作完成后列地址计数器自动加1读数据指令RW RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01 1读显示数据该操作将HD61202接口部的输出寄存器内容读出然后列地址计数器自动加一必须注意的是进行读操作之前必须有一次空读操作紧接着再读才会读出所要读的单元中的数据34 液晶显示界面本着简单明了的基本思想前面提到结合液晶显示模块的相关知识设计出如下界面图3-1 LCD界面显示这次设计采用的液晶显示模块本是由北京精电公司所造的图形式的MGLS-12864芯片其用一片KS0107B或兼容驱动器 HD61203 作为行驱动器和三片KS0108B或兼容驱动器 HD61203 作为列驱动器组成的液晶显示的第一行为智能型充电器由左起第四列开始显示这样正好左右平均

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论