0093、智能型充电器的电源和显示的设计资料
收藏
资源目录
压缩包内文档预览:(预览前20页/共43页)
编号:533662
类型:共享资源
大小:1.12MB
格式:ZIP
上传时间:2015-11-26
上传人:QQ28****1120
认证信息
个人认证
孙**(实名认证)
辽宁
IP属地:辽宁
20
积分
- 关 键 词:
-
机械毕业设计全套
- 资源描述:
-
0093、智能型充电器的电源和显示的设计资料,机械毕业设计全套
- 内容简介:
-
1 前言 随着越来越多的手持式电器的出现,对高性能、小尺寸、重量轻的电池充电器的需求也越来越大。电池技术的持续进步也要求更复杂的充电算法以实现快速、安全的充电。因此需要对充电过程进行更精确的监控,以缩短充电时间、达到最大的电池容量,并防止电池损坏。 AVR 已经在竞争中领先了一步,被证明是下一代充电器的完美控制芯片。 Atmel AVR 微处理器是当前市场上能够以单片方式提供 Flash、 EEPROM 和 10 位 ADC的最高效的 8 位 RISC 微处理器。由于程序存储器为 Flash,因此可以不用象 MASK ROM一样, 有几个软件版本就库存几种型号。Flash 可以在发货之前再进行编程,或是在 PCB贴装之后再通过 ISP 进行编程,从而允许在最后一分钟进行软件更新。 EEPROM 可用于保存标定系数和电池特性参数,如保存充电记录以提高实际使用的电池容量。 10位 A/D 转换器可以提供足够的测量精度,使得充好后的容量更接近其最大容量。而其他方案为了达到此目的,可能需要外部的 ADC,不但占用 PCB 空间,也提高了系统成本。 AVR 是目前唯一的针对 像 “ C” 这样的高级语言而设计的 8 位微处理器。 C 代码似的 设计很容易进行调整以适合当前 和未来的电池, 而 本次智能型充电器显示程序的编写 则就 是用 C语言写的。 nts 2 第一章 概述 第一节 绪论 1.1.1 课题背景 如今,随着越来越多的 手持式电器的出现,对高性能、小尺寸、重量轻的电池充电器的需求也越来越大。电池技术的持续进步也要求更复杂的充电算法以实现快速、安全的充电。因此需要对充电过程进行更精确的监控,以缩短充电时间、达到最大的电池容量,并防止电池损坏。 与此同时,对充电电池的性能和工作寿命的要求也不断地提高。从 20世纪 60年代的商 用镍镉和密封铅酸电池到近几年的镍氢和锂离子技术,可充电 电池容量和性能得到了飞速的发展。目前各种电器使用的充电电池主要有镍镉电池( NiCd)、镍氢电池( NiMH)、锂电池( Li-Ion) 和密封铅酸电池( SLA)四种类型。 电池充电是通过逆向化学反应将能量存储到化学系统里实现的。由于使用的化学物质的不同,电池有自己的特性。设计充电器时要仔细了解这些特性以防止过度充电而损坏电。 目前,市场上卖得最多的是旅行充电器,但是严格从充电电路上分析,只有很少部分充电器才能真正意义上被称为智能充电器,随着越来越多的手持式电器的出现,对高性能、小尺寸、轻重量的电池充电器的需求也越 来越大。电池技术的持续进步也要求更复杂的充电算法以实现快速、安全地充电,因此,需要对充电过程进行更精确地监控 (例如对充、放电电流、充电电压、温度等的监控 ),以缩短充电时间,达到最大的电池容量,并防止电池损坏。因此,智能型充电电路通常包括了 恒流恒压控制环路、电池电压监测电路、电池温度检测电路、外部显示电路 (LED 或 LCD 显示 )等基本单元。其框图如下: nts 3 图 1-1 智能充电器基本框图 Atmel AVR 微处理器是当前市场上能够以单片方式提供 Flash、 EEPROM 和 10 位 ADC的最高效的 8 位 RISC 微处理器。由于程序存储器为 Flash,因此可以不用象 MASK ROM一样,有几个软件版本就库存几种型号。 Flash 可以在发货之前再进行编程,或是在 PCB贴装之后再通过 ISP 进行编程,从而允许在最后一分钟进行软件更新。 EEPROM 可用于保存标定系数和电池特性参数,如保存充电记录以提高实际使用的电池容量。 10位 A/D 转换器可以提供足够的测量精度,使得充好后的容量更接近其最大容量。而其他方案为了达到此目的,可能需要外部的 ADC,不但占用 PCB 空间,也提高了系统成本。 AVR 是目前唯一的针对象 “C” 这样的高级语言而设计的 8 位微处理器。 1.1.2 常见充电电池特性及其充电方式 电池充电是通过逆向化学反应将能量存储到化学系统里实现的,由于使用的化学物质的不同,电池的特性也不同,其充电的方式也不大一样。 电池的安全充电 现代的快速充电器 ( 即电池可以在小于 3 个小时的时间里充满电,通常是一个小时 ) 需要能够对单元电压、充电电流和电池温度进行精确地测量,在充满电的同时避免由于过充电造成的损坏。 充电方法 SLA 电池和锂电池的充电方法为恒定电压法要限流; NiCd 电池nts 4 和 NiMH 电池的充电方法为恒定电流法,且具有几个不同的停止充电的判断方法。 最大充电电流 最大充电电流与电池容量 (C) 有关。最大充电电流往往以电池容量的数值来表示。例如,电池的容量为 750 mAh,充电电流为 750 mA,则充电电流为 1C (1 倍的电池容量 )。若涓流充电时电流为 C/40,则充电电流即为电池容量除以 40。 过热 电池充电是将电能传输到电池的过程。能量以化学反应的方式保存了下来。但不是所有的电能都转化为了电池中的化学能。一些电能转化成了热能,对电池起了加热的作用。当电池充满后,若继续充 电,则所有的电能都将转化为电池的热能。在快速充电时这将使电池快速升温,若不及时停止充电就会造成电池的损坏。因此,在设计电池充电器时,对温度进行监控并及时停止充电是非常重要的。 现代消费类电器主要使用如下四种电池: 密封铅酸电池 (SLA) 镍镉电池 (NiCd) 镍氢电池 (NiMH) 锂电池 (Li-Ion) 在正确选择电池和充电算法时需要了解这些电池的背景知识。 密封铅酸电池 (SLA) 密封铅酸电池主要用于成本比空间和重量更重要的场合,如 UPS和报警系统的备份电池。 SLA 电池以恒定电压进行 充电,辅以电流限制以避免在充电过程的初期电池过热。只要电池单元电压不超过生产商的规定( 典型值为 2.2V), SLA 电池可以无限制地充电。 镍镉电池 (NiCd) NiCd 电池目前使用得很普遍。它的优点是相对便宜,易于使用;缺点是自放电率比较高。典型的 NiCd 电池可以充电 1000 次。失效机理主要是极性反转。在电池包里第一个被完全放电的单元会发生反转。为了防止损坏电池包,需要不间断地监控电压。一旦单元电压下降到 1.0V 就必须停机。 NiCd 电池以恒定电流的方式进行充电。 镍氢电池 (NiMH) 在轻重量 的手持设备中如手机、手持摄象机,等等镍氢电池是使用最广的。这种电池的容量比 NiCd 的大。由于过充电会造成 NiMH 电池的失效,在充电过程中进行精确地测量以在合适的时间停止是非常重要的。和 NiCd 电池一样,极性反转时电池也会损坏。 NiMH 电池的自放电率大概为 20%/ 月。和NiCd 电池一样, NiMH 电池也为恒定电流充电。 nts 5 锂电池 (Li-Ion) 和本文中所述的其他电池相比,锂电池具有最高的能量 / 重量比和能量 / 体积比。锂电池以恒定电压进行充电,同时要有电流限制以避免在充电过程的初期电池过热。当充 电电流下降到生产商设定的最小电流时就要停止充电。过充电将造成电池损坏,甚至爆炸。 1.1.3 主要芯片的选择 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主要有单片机有 ATtiny、 AT90和 ATmega 三种系列,其结构和基本原理nts 6 都相类似。本次设计所用到的 Atmega16L 芯片便是 ATmega 系列中的一种,在这里作为充电器的核心部件。它是一种具有 40 引脚的高性能、低功耗的 8 位微处理器。其功能特性如下: (1) 8位 CPU。 (2) 先进的 RISC 结构: 131 条指令 大多数指令执行时间为单个时钟周期 32个 8 位通用工作寄存器 全静态工作 (3) 非易失性数据和程序存储器: 16K 字节的系统内可编程 Flash,擦写寿命可达到 10,000 次以上 。 具有独立锁定位的可选 Boot代码区,通过片上 Boot程序实现系统内编程。 512 字节的 EEPROM,可连续擦写 100,000 次。 1K字节的片内 SRAM, 可以对锁定位进行编程以实现用户程序的加密。 (4) 可通过 JTAG接口实现对 FLASH、 EEPROM的编程。 (5) 32个可编程的 I/O引线, 40引脚 PDIP封装。 (6) 两个具有独立预分频器和比较器功能的 8位定时器 / 计数器,一个具有预分频器、比较功能和捕捉功能的 16位定时器 / 计数器 。 (7) 片内 / 片外中断源。 (8) 具有一个 10位的 AD转换器,能对来自端口 A的 8位单端输入电压进行采样。 (9) 工作电压: 2.7 5.5V。 速度等级: 0 8MHz。 AVR单片机的主要特点如下: 1.片内集成可擦写 10000次以上的 Flash 程序存 储器。由于 AVR 采用 16位的指令,所以一个程序存储器的存储单元为 16位,即 XXXX*1116(也可理解为 8位,即 2*XXXX*8)。 AVR的数据存储器还是以 8个 Bit(位 )为一个单元,因此 AVR还是属于 8位单片机。 2.采用 CMOS工艺技术,高速度 (50ns)、低功耗、具有 SLEEP(休眠 )功能。AVR的指令执行速度可达 50ns (20MHz)。 AVR 运用 Harvard结构概念,具有预取指令的特性,即对程序存储和数据存取使用不同的存储器和总线。当执行某一指令时,下一指令被预先从程序存储器中取出,这使得指令可 以在每一个时钟周期内执行。 nts 7 3.高度保密 (LOCK)。可多次擦写的 FLASH 具有多重密码保护锁死 (LOCK)功能,因此可低成本高速度地完成产品商品化,并且可多次更改程序 (产品升级 )而不必浪费 1C或电路板,大大提高了产品的质量及竞争力。 4.超功能精简指令。具有 32个通用作寄存器 (相当于 8051中的 32个累加器 ),克服了单一累加器数据处理造成的瓶须现象, 1284K字节 SRAM 可灵活使用指令计算,并可用功能很强的 C语言编程,易学、易写、易移植。 5.程序写入器件可以并行写入 (用编程器写入 ),也可使用串行在线编 程 (ISP)方法下载写入,也就是说不必将单片机芯片从系统上拆下,拿到万用编程器上烧写,而可直接在电路板上进行程序的修改、烧写等操作,方便产品升级,尤其是采用 SMD封装,更利于产品微型化。 6.工作电压范围为 2.7V6.0V,电源抗干扰性能强。 7.AVR单片机还在片内集成了可擦写 100000 次的 2E PROM数据存储器,等于又增加了一个芯片,可用于保存系统的设定参数、固定表格和掉电后的数据,既方便了使用,减小了系统的空间,又大大提高了系统的保密性。 8.有 8位和 16 位的计数器定时器 (C/T),可作比较器、计数器、外部中断和PWM(也可作 D/A )用于控制输出。 1.1.4 液晶显示模块 的选择 LCD显示模块是一种被动显示器,具有功耗低,显示信息大,寿命长和抗干扰能力强等优点,在低功耗的单片机系统中得到大量使用。 液晶显示模块和键盘输入模块作为便携式仪表的通用器件,在单片机系统的开发过程中也可以作为常用的程序和电路模块进行整体设计。液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就显示黑色,这样即可显示出图形。 在单片机系统中使用液晶显示模块作为输出器 件有以下优点 : (1)显示质量高 液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,因此液晶显示器画质高而且不会闪烁。 (2)数字式接口 液晶显示器都是数字式的,和单片机系统的接口更加简单。 (3)体积小,重量轻 (4)功率消耗小 液晶显示器的功耗主要消耗在其内部的电极和驱动 IC 上,因此耗电量 比其nts 8 它显示器要小得多。 第二节 毕业设计任务和要求 智能充电器的设计包括硬件和软件两大部分,本人的主要任务是完成充电器设计的 LCD 显示部分,其主要涉及的知识包括: (1) 自学 AVR 单片机的相关内容。 (2) 设计电源电路。 (3) 设计 128*64 液晶显示控制电路和用 C 语言编制 LCD 显示程序,用图形方式显示充电器电压、电流等参数。 (4) 手工焊接和 ICCAVR 编译器的应用。 这次设计要解决的关键问题是如何用 Atmega16L 芯片控制 LCD 模块及用 C语言编制相应的显示程序随着单片机的开发应用,其相应的汇编编程和所暴露的问题也越来越多,逐渐引入了高级语言, C 语言就是其中的一种。在大一时就曾接触过 C 语言,由于时间较短,重视程度不够,后来又一直没用过,只能对它有一个大概的了解。而对于 AVR 单片机的相关知识和液晶显示模块的使用,则完全是一片空白。这次毕业设计,就不 得不花大量的时间在这些基础知识的学习上。为了更有效地完成这个课题,特列出了如下计划: 表 1-1 毕业设计进度表 起止时间 工 作 内 容 第 12 周 熟悉课题的基本要求,查阅相关资料,初步拟定设计的整体方案,完成开题报告。 第 38 周 1. 自学这次课题所涉及的相关内容,包括 C 语言基础知识, AVR单片机(主要是 Atmega16L 芯片)和 ICCAVR 编译器的使用以及液晶显示的相关内容。并设计一些简单的实际电路,熟练所学内容并加以巩固。 2. 熟悉绘图软件 Protel99 的使用。 第 912 周 1. 设计 LCD 显示电路, 电源电路, 用 Protel99 绘制原理图,和同学一起完成整个充电电路原理图,并绘制印制电路板。 2. 编写显示程序。 第 1315 周 焊接调试电路,根据各部分的作用对硬件电路进行调试,最后联机调试。 最后数周 写毕业设计论文,完成全部毕业设计。 nts 9 这次毕业设计是由郭伟同学和本人共同合作完成,由他完成充电部分的硬件电路的设计,和这边的显示部分相结合,共同完成智能充电器的设计。 nts 10 第二章 硬件电路设计 经过前面对充电器原理、液晶模块、 ATmega16L 等的总体了解和掌握以及对各种元器件和电路图的分析和比较后,现在就可以开始进入硬件电路的设计了。在本章里,首先将介绍一下液晶模块访问方式的两种接口电路,然后对 LCD显示电路原理图作一个详细的介绍,接着介绍充电电路中所用到的各种芯片和元器件的原理和一些功能,最后对 PROTEL99 的使用和 PCB 板的绘制以及焊接做一简单介绍,然后再将自己的设计思想和同组人所设计的两部分结合,达成统一。 第一节 液晶显示模块两种访问方式接口电路的 选择 单片机与液晶显示模块之间的连接方式分为直接访问方式和为间接控制方式两种。如图 2-1 和图 2-2 所示,其中左为单片机,右为液晶显示模块。 (一 ) 直接访问方式 数据总线 GND +5V 电位器 负电源 1 3 2 74LS00 A11 A10 A9 A8 MPU 图 2-1 直接访问方式电路图 LCM接口 直接访问方式就是将液晶显示模块的接口作为存储器或 I/O设备直接挂在单PD0 PD1 PD2 PD3 PD4 PD5 PD6 PD7 RD WE P2.3 P2.2 P2.1 P2.0 DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 GND VCC V0 E /CSA /CSB R/W D/I 10K nts 11 片机总线上,单片机以访问存储器或 I/O 设备的方式操作液晶显示模块的工作。直接访问方式的接口电路如图 2-1 所示,在图中,单片机通过高位地址 A11 控制CSA, A10 控制 CSB,以选通液晶显示屏上各区的控制器;同时用地址 A9 作为R/W 信号控制数据总线的数据流向;用地址 A8 作为 D/I 信号控制寄存器的选择,E(使能 )信号由 RD 和 WE 共同产生,这样就实现了单片机对液晶显示模块的电路边接。电位器用于显示对比度的调节。 (二 )间接控制方式 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信号。电位器用于显示对比度的调节。 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 P3.4 P3.3 P3.2 P3.1 P3.0 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 /CSA /CSB E R/W D/I VCC V0 GND 电 位 器 +5V nts 12 通过比较再结合本次设计的实际条件,由于 Atmega16L芯片没有 WR、 RD管脚,而且为了使电路简单且方便软件实现,所以最终决定采用间接控制的方式来设计 LCD显示电路。 第二节 硬件电路主要芯片 2.2.1 ATmega16L 主要引脚说明 以下是 ATmega16L的引脚配置: 图 2-3 ATmega16L 芯片引脚 引脚说明: VCC 数字电路的电源 GND 地 端口 A(PA7 PA0) 端口 A 作为 A/D 转换器的模拟输入端。 端口 A 为 8 位双向 I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中, 即使系统时钟还未起振,端口 A 处于高阻状态。 端口 B(PB7 PB0) 端口 B 为 8 位双向 I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉nts 13 低时将输出电流。在复位过程中,即使系统时钟还未起振,端口 B 处于高阻状态。 端口 C(PC7 PC0) 端口 C 为 8 位双向 I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将 输出电流。在复位过程中,即使系统时钟还未起振,端口 C 处于高阻状态。如果 JTAG接口使能,即使复位出现引脚 PC5(TDI)、 PC3(TMS)与 PC2(TCK)的上拉电阻被激活。 端口 D(PD7 PD0) 端口 D 为 8 位双向 I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口 D处于高阻状态。 RESET 复位输入引脚。持续时间超过最小门限时 间的低电平将引起系统复位。 XTAL1 反向振荡放大器与片内时钟操作电路的输入端。 XTAL2 反向振荡放大器的输出端。 AVCC AVCC是端口 A与 A/D转换器的电源。不使用 ADC时,该引脚应直接与 VCC连接。使用 ADC时应通过一个低通滤波器与 VCC相连。 AREF A/D 的模拟基准输入引脚。 2.2.2 Atmega16L的存储器 AVR结构有两个主要的存储空间:数据存储器空间和程序存储器空间,此外,Atmega16L还有一个 EEPROM存储器以保存数 据。这三个存储器都为线性的平面结构。 (1) Atmega16L具有 16K字节的在线编程 Flash, 用于存储程序指令代码。因为 AVR指令为 16位或 32位,故 Flash组织成 8K 16的形式。用户程序的安全性要根据Flash程序存储器的两个区: 引导 (Boot) 程序区和应用程序区,分开来考虑 。 Flash存储器至少可以擦写 10,000次。 Atmega16L的程序存储器为 13位,因此可以寻址 8K的存储器空间。关于 用 SPI 或 JTAG 接口实现对 Flash 的串行下载 ,nts 14 将在软件部分作详细的介绍。 (2) 数据存储器的寻址方式分为 5种:直接寻址、带偏移量的间接寻址、间接寻址、带预减量的间接寻址和带后增量的间接寻址。 ATmega16L的全部 32个通用寄存器、 64个 I/O寄存器及 1024个字节的内部数据SRAM可以通过所有上述的寻址模式进行访问。 (3) ATmega16L 包含 512 字节的 EEPROM 数据存储器。它是作为一个独立的数据空间而存在的,可以按字节读写。 EEPROM 的寿命至少为 100,000 次擦除周期。EEPROM 的访问由地址寄存器、数据寄存器和控制寄存 器决定。 2.2.3 Atmega16L的时钟电路 单片机的时钟用于产生工作所需要的时序, 其连接电路如下图: 图 2-4 晶体振荡器连接图 XTAL1 与 XTAL2 分别为用作片内振荡器的反向放大器的输入和输出,考虑到其最大频率不超过 8MHz, 这里选用的晶振为 7.3728MHz。 2.2.4 Atmega16L的系统复位 Atmega16L有五个复位源: (1) 上电复位。电源电压低于上电复位门限 Vpot时, MCU复位。如果在单片机加Vcc电压的同时,保持 RESET引脚为低 电平,则可延长复位周期。 Vcc Vpot Vpot RESET Vrst Vrst TIME-OUT INTERINAL tTOUT tTOUT RESET nts 15 图 2-5 RESET引脚与 VCC相连时, 图 2-6 RESET引脚由外部控制时 , 单片机的复位电平 单片机的复位电平 (2) 外电复位。引脚 RESET上的低电平持续时间大于最小脉冲宽度时 MCU复位。 Vcc RESET Vrst TIME-OUT tTOUT INTERNAL RESET 图 2-7 外部复位时序图 (3) 看门狗复位。 看门狗使能并且看门狗定时器溢出时复位发生。看门狗计数器溢出时,将产生一个晶振的复位脉冲。 Vcc RESET WDT 1 XTAL Cycle TIME-OUT RESET tTOUT TIME-OUT INTERNAL RESET 图 2-8 看门狗复位时序图 (4) 掉电检测复位。掉电检测复位功能使能,且电源电压低于掉电检测复位门限Vpot时 MCU即复位。 (5) JTAG AVR复位。复位寄存器为 1时 MCU复位。 第三节 LCD液晶显示 2.3.1 LCD的显示原理 液晶显示器是一种功耗极低的显示器。随着液晶显示技术的发展, LCD显示器的规格众多,其专用驱动芯片也相互配套,使 LCD在控制和仪表系统中广泛应nts 16 用提供了极大的方便。根据 LCD显示原理的不同, 常见和常用的 LCD可以分为字符型 LCD和点阵型 LCD两种。不同的显示原理使得这两种 LCD的指令系统、接口和功能等是不相同的,各有优缺点,但结合到本次设计的实际要求,经过比较还是选用点阵型 LCD。现就点阵型 LCD的显示原理、模块特点等做一简要介绍。 要想在液晶模块上显示一个汉字或字符,需要 3个最基本的控制操作:分别向 3个控制器写指令代码、写显示数据和读显示数据。这里要特别引起注意的是完成这 3 项操作的前提条件是 KS0108B 控制器处于准备好的状态,即 BUSY=0,由模块的软件特性知道,当 BUSY=1 时,系统的接 口电路处于被封锁的状态,是不能接受除读状态指令外的任何操作的。因此在访问控制器之前,一定要判断控制器的当前状态。具体到软件设计时,则需设计一判忙程序,在判断 BUSY=0后,再往下进行操作。 在本模块中,每个汉字的大小是 16 16 点阵,而每个字符的大小是 8 16点阵,即字符的宽度为汉字的 1/2。它们都是以二维数组的格式存放在 ROM中。向液晶模块显示一个汉字的过程就是:由液晶屏显示区的指定字符行的指定列开始,连续输出该字符对应的字符库中的 16 个列数据,如果是显示字符,则输出 8个列数据即可。 上面已经介绍到, MGLS-19264 液晶模块中液晶屏显示区为 192 64 点阵,其中,它们的每 8 个像素行组成一页,整个显示区共分为 8 页,每 64 列为一个区,这样,它就有左、中、右 3个区,它的显示区示意图如下: 左区 中区 右区 0 1 2 62 63 64 65 127 128 129 191 DB0 DB7 DB0 DB7 图 2-9 液晶屏显示区示意图 液晶模块显示字符是从上到下 ,从左到右进行显示的。假设定义从最左上第0页 第七页 nts 17 角开始显示,则先从上到下显示第 0页的第一列,依次从左向右开始显示。 MGLS-19264LCM 的显示部分为左、中、右 3 个区,可以由 CS 片选的取值分别进行控制,其接口的片选定义如下: 表 2-1 MGLS 的片选定义表 CS1 CS2 选中区域 0 0 左区 0 1 中区 1 0 右区 1 1 未选 有了上面的知识,就可以编写显示界面这一块程序。 由于每个汉字或字符在图中位置是固定的,只要定义了相应的选区及 X、 Y 地址,就可以显示出具体的位置。用 lr来表示汉字的区域,当 lr=0,表示左区; lr=1,表示中区; lr=2,表示右区。 X 表示页面, Y 表示列地址。则 (lr.X.Y)就可以定义出这个字在屏上的实际位置。以第一行的“智”字为例,这个字位于模块的左区,则 lr=0; 它位于第一页和第二页,则 X=0;它位于列地址的 48-63字节, Y=48,那么“智”就可以通过 (0.0.48)精确地表示出它的位置。这里要注意的是每个汉字占用的行地址是两页,如“智”字占的就是 X0 和 X1,即第二行的汉字其 X=2 而不是 1。因此,第二行的“电”就应该表示为 (0.2.0),其它字符依此设计即可。 2.3.2 液晶显示控制驱动器 HD61202及其兼容液晶显示控制器是一种带有驱动输出的图形液晶显示控制器,而在小规模点阵液晶显示模块上使用液晶显示驱动器组成液晶显示驱动控制系统是非常有益的,这将使液晶显示模块的硬件电路简单化,从而降低模块的成本,同时也提高了对软件功能的要求。许多显示功能如光标、字符库、闪烁都需要由软件编制而成。 HD61203和 HD61202就是这类液晶显示驱动控制器套件。之 所以称它们为套件是因为 HD61203和 HD61202必须配套使用,通常有 12864和19264两种规格。其特点如下: 1内藏 64*64=4096位显示 RAM, RAM中每位数据对应 LCD屏上的一个点的亮、暗状态。 nts 18 2 HD61202及其兼容控制器是列驱动器,具有 64路列驱动输出。 3 HD61202及其兼容控制驱动器读、写时序与 68系列微处理妻相符,因此它可直接与 68系列微处理器借口相联。 4 HD61202及其兼容控制器的占空比为 1/321/64。 2.3.3 液晶显示模块的特点 MGLS-12864图 形液晶显示模块的驱动和控制系统是由一片 KS0107B或兼容驱动器 ( HD61203 )作为行驱动器和两片 KS0108B或兼容驱动器 (HD61203) 作为列驱动器组成的。 它的主要技术参数及其供电特点如下: (1) 电源: DC+5V,模块内自带用于 LCD驱动的负压电路。 (2) 显示内容: 128 64全屏幕点阵。 (3) 指令形式:七种指令。 (4) 接口形式:与控制器采用 8位数据总线和 8位控制线相连。 (5) 工作环境: 10+50。 (6) 模块应用有三种电源:逻辑电源、液晶驱动电压、背光电压。 (7) 本次选 用的模块是双电源供电( VDD/V0),需要提供一个液晶驱动电压,用以调节对比度,接在液晶模块的 V0引脚上,由于液晶的对比度会随着温度的变化而相应变化,所以其液晶显示驱动电压值应随着温度作相应的调整,这里采用了一 个 电位器,调整电压值。 (8) 背光供电为 3.8-4.1V的支 流电源,选用电源太大不仅增加功耗,更有可能损坏背光灯和缩短模块的使用寿命。 nts 19 MGLS-12864 的逻辑电路图如下: 图 2-8 MGLS-12864 的逻辑电路图 MGLS-12864液晶显示模块一共有 20个引脚,它的接口定义如下: 表 2-2 MGLS-12864 的接口电路 序号 符号 状态 功 能 D7 三态 数据总线 D6 三态 数据总线 D5 三态 数据总线 4 D4 三态 数据总线 5 D3 三态 数据总线 6 D2 三态 数据总线 7 D1 三态 数据总线 8 D0 三态 数据总线 9 E 输入 R/W=“ L”, E 的下降沿锁存数据线 R/W=“ H”, E 为“ H”时,数据由控制器输出至数据线 10 R/W 输入 R/W=“ L”, E=“ H”数据由控制器输出数据线 R/W=“ H” , E 的下降沿,数据由数据线输入到控制器 11 D/I 输入 D/I=“ L”,表示 DB7DB0 为显示数据 D/I=“ H”,表示 DB7DB0 为显示指令 12 V0 液晶显示器驱动电压 HD61202 * LCD: VGLS-12864 128 64 DOTS 64 HD61202 (1) HD61202 (2) 64 64 VDD VSS V0 /CSA /CSB DB0 DB7 D/I R/W E nts 20 13 VCC 电源正 14 GND 电源地 15 CS1 输入 片选信号 16 CS2 输入 片选信号 17 VOUT LCD 负压驱动电压 18 RET 输入 复位信号 19 LED+ 显示模块背光电源 20 LED- 显示模块背光电源 第四节 电源电路的设计 在本次的设计中,要供电给 mega16 和 LCD 显示模块 两部分 ,而一个 LM7805的输出电流不足,所以本人打算将 mega16 和显示模块分别供电,所以实际电路中用到了两片 7805。下面就一个电源电路给出设计方案,另一个同样原理。 5V 电源电路的设计 加图 图 2-9 5V 的电源电路设计原理图 上图是 LM78作为输出电压固定的典型电路图,正常工作时,输入、输出电压差为 3-8V。输入电压 PS 为 9V。电路中接入电容 C5 用来实现 频率补偿,防止稳压器产生高频自激振荡和抑止电路引入的干扰, C11 是有极性的电解电容,以减小稳压电压输出端由输入电源引入的电平干扰。 D1 是保护二极管,当输入端短路时,给输出电容器 C11 一个放电电路,防止 C11 两端电压作用于调压管的 be 结,造成调压管 be 结击穿而损坏。其中 C5、 C11 两个电容只是起滤波作用选用的大小没有特别的要求。 第五节 硬件电路设计 经过对以上对 ATmega16L 芯片的端口、存储器、时钟电路、以及复位电路和 LCD 液晶显示等原理的介绍后,现在就可以完成对这部分硬件电路的设计了。再结合前面的分析 采用间接访问的方式实现单片机与液晶显示模块之间的连接。nts 21 LCD 模块的 8 位数据线接在了 Atmega16L 芯片 B 口的 8 位数据线上,这里用了一个 74LS24 作为锁存器使它们间接连接在一起。 LCD 的 EN、 D/I、 CS1、 CS2、R/W 分别连接到 PA3PA7 上,其详细的接法见 下 图 图 2-10 硬件接线图 第六节 PROTEL99 的应用简介 经过前面的努力,智能充电器硬件电路的设计在本人及同组人的共同努力下已经完成,接下来便是根据前面的设计用软件画出其原理图并生成板。PROTEL99SE是一个全 32位的电路板设计软件,使用该软件可以容易地设计电路原理图、画元件图、设计电路板图、画元件封装图和电路仿真。 在这里主要用它来绘制电路原理图和生成印制电路板。原理图的设计步骤如下: (1) 设置原理图设计环境。其中,工作环境设置是使用 Design/Options和 Tool 和 Preferences菜单进行的,画原理图环境的设置主要包括nts 22 图纸大小、捕捉栅格、电气 栅格、模板设置等。 (2) 放置元件,将电气和电子元件放置在图纸上。 (3) 原理图布线。元件一旦放置在原理图上,不需要用导线将元件连接起来,连接时一定要符合电气规则。 (4) 编辑和调整。编辑元件的属性。包括元件名、参数、封装图等。调整元件和导线的位置等操作。 本次设计所用的主要元件属性如下: 表 2-3 主要元件表 说明 编号 封装 元件名称 单片机 U1 DIP-40 Atmega16 LCD J2 DIP-20 LCD模块 电阻 R AXIAL0.3 RES2 电容 C RAD0.1 CAP 锁存器 U5 DIP-20 74LS245 NPN三极管 Q TO46 2N2222A 晶体 X XTAL-1 XTAL 通用运放 U2A, U2B DIP8 LM358 (5) 检查原理图。使用电气规则功能 (ERC)检查原理图的连接是否合理和正确。给出检查报告,若有错误则要根据错误进行改正。 (6) 生成网络表。所谓网络表就是元件名、封装、参数及元件之间的连接表,通过该表可以确认各个元件和它们之间的关系。 (7) 打印原理图。 对电路板的设计主要分为以下几个步骤; (1)使用原理图编辑器设计原理图,进行电气检查 (ERC)并生成原理图的网络表。 (2)进 入电路板 (PCB)环境,使用电路向导确定电路板的层数、尺寸等电路板参数。 (3)使用 Design/Netlist 菜单,调入网络表。 由于在前面的元件封装不规范,这里面出现了许多错误,通过请教老师及自己的不懈努力,花了数天的时间才全部改了出来。 (4)布置元件,就是将元件合理地分布在电路板上。自动布置元件或人工布置元件,多次布置直到自己满意为止。 人工布线是画电路板的基础,但比较耗时和费力,另外由于自身经验的不足,nts 23 只得先采用自动布线,在此基础上作了适当的修改。 (5)完成修饰等工作,完成整个电路板的设计。 接下来是焊接的工作, 这部分相对来说并不陌生,在大二时曾进行过电子课程的实习,主要就是完成收音机的焊接。虽然以后接触得比较少,但通过几天的练习,还是基本圆满地完成了任务。焊接通常要求:焊点接触良好,尤其避免虚焊的产生;焊点要有足够的机械强度以保证被焊点不致滑落;焊点表面应美观,有光泽。这块板子面积不算大 (约 90cm 70cm),元器件引脚多,看起来很密集。从焊下来的结果来看,焊点还可以,也算比较美观,最关键的是没有短路的情况发生。 焊接完成后,整个硬件电路原理、绘制原理路、焊接等 工作已全部完成,下面转到软件部分的设计。 第三章 软件设计 由于本人主要负责设计软件部分,而本人之前对 C语言这门课的学习不是非常的精通,因此在着手本章之前本人对 C语言以及 AVR单片机与 C语言编程方面的书籍做了认真仔细的回顾、学习和再研究,这样才对下面设计工作的开展打下了基础。在本章里,本人将先介绍 C语言开发的优势,然后介绍 LCD 的显示原理、模块的软件特性等 ,接下来便是最主要的整个程序的设计。 3.1.用 C 语言开发单片机的优势 nts 24 C语言是一种编译型的结构化程序设计语言,具有简单的语法结构和 强大的处理功能,具有运行速度快、编译效率高,移植性好和可读性强等多种优点,可以实现对系统便件的直接操作。用 C语言来编写目标系统软件,可以大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而开发出大规模、高性能的应用系统。其优势如下: (1) 可以大幅度加快开发进度,程序量越大,用 C语言就越有优势。 (2) 无需精通单片机指令集和具体的硬件,也能够编出符合硬件实际专业水平的程序。 (3) 可以实现软件的结构化编程,使得软件的逻辑结构变得清晰、有条理、便于开发小组计划任务、分工合作。源程序的可读性和可维护性都很好。 (4) 省去了 人工分配单片机资源的工作,在汇编语言中要为每一个子程序分配单片机的资源。在使用 C语言后,只要在代码中申明一下变量的类型,编译器就会自动分配相关资源,根本不需要人工干预,从而有效地避免了人工分配单片机资源的差错。 (5) 汇编语言的可移植性很差,而 C语言只要将一些与硬件相关的代码作适当的修改,就可以方便地移植到其它种类的单片机上。 (6) C语言提供 auto、 static、 flash等存储类型,针对单片机的程序存储空间、数据存储空间及 EEPROM空间自动为变量合理地分配空间,而且 C语言提供复杂的数据类型,极大地增强了程序处理 能力和灵活性。 C编译器能够自动实现中断服务程序的现场保护和恢复,并且提供常用的标准函数库,供用户使用。并且 C编译器能自动生成一些硬件的初始化代码。 (7) 对于一些复杂系统的开发,可以通过移植 (或 C编译器提供 )的实时操作系统来实现。 正由于 C语言在系统开发中的优势,这次设计的所有程序设计都将采用 C语言编写,且通过 ICCAVR编译器操作 AVR 的硬件资源。 3.2 液晶显示汉字或字符的原理 LCD本身不发光只是调节光的亮度,目前市面上的 LCD显示器都是利用液晶的扭曲一向列效应制成,这是一种电场效应,夹在两片导电 玻璃电极间的液晶经过一定处理,它内部的分子呈直角扭曲,当线性偏振光透过其偏振面便会旋转一个直角。当在玻璃电极上加上电压后,在电场作用下,液晶的扭曲结构消失,偏振光便可以直接通过。当去掉电场后液晶分子又恢复取扭曲结构。把这样的液晶nts 25 置于两个偏振片之间,改变偏振片相对位置就可以得到白底黑子或黑底白字的显示形式。结合以上知识具体显示原理如下: ( 1 ) 线段的显示 点阵图形式液晶由 M*N个显示单元组成,假设 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段暗线组成的虚线。这就是 LCD显示的基本原 理。 ( 2 ) 字符的显示 用 LCD显示一个字符时比较复杂,因为一个字符由 6*8或 8*8点阵组成,既要找到和显示屏上某几个位置对应的显示 RAM区的 8字节,还
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。