基于单片机的通用智能充电器的设计毕业论文.doc_第1页
基于单片机的通用智能充电器的设计毕业论文.doc_第2页
基于单片机的通用智能充电器的设计毕业论文.doc_第3页
基于单片机的通用智能充电器的设计毕业论文.doc_第4页
基于单片机的通用智能充电器的设计毕业论文.doc_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的通用智能充电器的设计摘 要 现代通讯设备、便携式电子产品、笔记本电脑、电动汽车、小卫星等普遍使用蓄电池作为电源,它的应用非常广泛。然而大多数设备中的蓄电池,只能使用专用的充电器,而且普通的充电器大多充电时间长,无法判断其充电参数和剩余的充电时间。现在国内外智能充电器充电电池基本有3种类型,不同类型的电池如镍镉电池(Nicd)、镍氢电池(NiMH)和锂离子电池具有不同的充电特性和过程。不同的电池应采用不同的充电控制技术,常用的控制技术有:电压负增量控制、时间控制、温度控制、最高电压控制技术等。其中,电压负增量控制是目前公认的较先进的控制方法之一。充电时,当测量到电池电压负增量时就可以确定该电池已经充满,从而将充电转变为涓流充电。时间控制预定充电时间,当充电时间达到后,使充电器停止充电或转为涓流充电,这种方法较安全。温度控制法是当电池达到充满状态时,电池温度上升较快,测量电池温度或温度的变化,从而确定是否对电池停止充电。最高电压控制则是根据充电电池的最高允许电压来判断充电状态,这种方法灵活性较好。本文介绍一种基于单片机的通用智能充电器的设计。充电器可以实时采集电池的电压、电流,对充电过程进行智能控制,计算电池已充的电量和剩余的充电时间;还可以通过1602液晶显示屏给用户显示必要的信息。另外,它也可以适应各种不同电池的充电。这里通过镍镉电池和镍氢电池来说明智能充电器的实用价值。关键词:单片机;智能充电器 ;1602液晶显示器 ;镍镉电池 ;镍氢电池AbstractAs a power source , the useful of batteries is very extensive, such as in modern communications equipment, portable electronic products, notebook computers, electric vehicles, small satellites, and so on. But most of the equipment only use a dedicated charger of the batteries, and most ordinary charger charging time is long, while it is unable to judge its parameters and the remaining charge time. Domestic and foreign intelligence rechargeable battery chargers are three basic types at present. Different types of batteries have different characteristics and processes. such as nickel-cadmium batteries (Nicd) nickel-hydrogen batteries (NiMH) and lithium ion battery with Different battery using different control technology. The commonly used control technologies : incremental negative voltage control, time control, temperature control, maximum voltage control technologies. There into incremental which negative voltage control is recognized as the more advanced control method. Charging, when the battery voltage measurement of negative incremental determine when the battery has been full, thus charging into trickle charger. Time Control is scheduled recharging time, when the recharging time is attained, Chargers stop charging or charging to the Trickle Up, That approach would be more security. Temperature Control Act is achieved when the battery is full of state, a faster increase in battery temperature, measure the battery temperature or temperature changes in order to determine whether the right to stop charging the battery. The maximum voltage control is based on a rechargeable battery to allow the maximum charging voltage to judge the state, which means better flexibility.This paper presents a generic intelligent Charger design based on SCM. Chargers can collect real-time battery voltage, current to control the process of charging intelligently, so as to calculate the owned batteries electricity and the remaining charge time; it can also display the necessary information to the user through the LCD 1602; In addition, it can also adapt to a variety of rechargeable batteries. Here we illustrate smart charger practical value through nickel-cadmium batteries and nickel-hydrogen batteries.Keywords: SCM; Intelligent Charger; LCD1602; nickel-cadmium batteries; nickel-hydrogen batteries 目 录摘 要I1 可行性分析与总体设计21.1 可行性分析21.2 总体设计22 硬件设计42.1 充电电池内部工作原理介绍42.1.1镍镉蓄电池的工作原理42.1.4电池充电特性52.1.5电池的充电过程62.2 芯片介绍部分62.2.1微控制器AT89S5162.2.2 ADC0809芯片简介82.2.3 MC1403芯片简介92.2.5 74LS164芯片简介102.2.6 1602液晶简介112.3 电气部分122.3.1 微控制器AT89S51/52122.3.2 充放电电路132.3.3 ADC0809电路及其MC1403132.3.4数字电路电源模块153 软件设计173.1 函数定义模块183.2 主程序194 调试284.1 调试方法284.1.1 硬件284.1.2 软件284.2 性能295 总结30谢 辞31参考文献32附录A 智能充电器系统电路原理图34附 录 B 源程序35基于单片机的通用智能充电器的设计前言随着便携式设备不断小型化、轻量化和高性能化,作为其电源的二次电池的使用率日益提高,智能充电器因此而得到了广泛的应用。智能充电器是一种可以实时采集电池的电压,电流,对充电过程进行智能控制的充电器,它能计算电池已充的电量,还可以通过串口和上位机进行通讯并给用户显示必要的信息,另外,它也可以适应各种不同电池的充电。现在国内外智能充电器充电电池基本有3种类型。不同类型的电池如镍镉电池(Nicd)、镍氢电池(NiMH)和锂离子电池具有不同的充电特性和过程。不同的电池应采用不同的充电控制技术。常用的控制技术有:电压负增量控制、时间控制、温度控制、最高电压控制技术等。其中电压负增量控制是目前公认的较先进的控制方法之一。充电时,当测量到电池电压负增量时就可以确定该电池己经充满,从而将充电转变为涓流充电。时间控制预定充电时间,当充电时间达到后,使充电器停止充电或转为涓流充电,这种方法较安全。温度控制法是当电池达到充满状态时,电池温度上升较快,测量电池温度或温度的变化,从而确定是否对电池停止充电。最高电压控制则是根据充电电池的最高允许电压来判断充电状态,这种方法灵活性较好。本文介绍的一种智能充电器将采用最高电压控制,根据电池的当前电压判断电池是否适合充电和放电,并对充电电池具有自动检测能力。1 可行性分析与总体设计1.1 可行性分析为了让本设计富有条理性,在设计之前需对系统进行可行性分析,对设计的思路有一个明确的指示。本次智能充电器的设计要达到如下目标:智能充电器能根据电池的特性进行充电。如当用户待冲的电池是镍镉电池时,由于镍镉电池有记忆效应,充电器会将电池放完电才会对电池进行充电,但是对于镍氢电池和锂离子电池,由于没有记忆效应,所以可以直接进行充电。电池的保护。由于电池的过渡充电和过渡放电会导致电池损坏或减短电池的寿命,所以这个充电器会根据电池的当前电压判断电池是否适合充电和放电。能进行快速充电和涓流冲电。辨别充电的状态。充电状态的显示。参考前人的智能充电器以及结合自己的具体情况,可以选用如下器件来实现上面描述的功能:选用大家很熟悉的MCS-51单片机作为控制器;选用ADC0809来实现模拟量到数字量的转换;选用MC1403来输出2.5V的基准电压;选用SW-SPDT单刀双置开关实现对镍镉电池和镍氢电池充电方式的选择;选用74LS164进行串口并口的转换;选用1602液晶来进行显示;选用MC7805进行5V稳压。1.2 总体设计系统的组成如图1-1所示,系统的整个工作过程如下:用手机充电器作为MC7805的输入端,通过MC7805稳压输出5V作为整个电路的标准电源,给各个模块供电。通过单片机来控制充/放电电路,充/放电电路再通过ADC0809将模拟量转换成数字量再传给单片机,单片机再通过74LS164把当前状态传送给1602液晶屏进行实时显示。对于任何一个软件与硬件相结合的系统的设计过程,将其中的硬件设计与软件设计绝对分开是不可行的,因为它们之间有着密切的联系,我们在设计过程中必须把这两者结合在一起考虑。但要将一个已经设计好的系统清楚地介绍给读者,一个较好的办法就是把系统分为硬件和软件两部分并分别加以介绍。下面将分别对这两部分进行详细的介绍。图1-1 智能充电器模块图2 硬件设计介绍硬件部分设计主要有以下部分构成:1 充电电池内部工作原理简介;2 芯片简介部分,对该电路所采用的芯片作一些详细介绍3 电气部分,分别介绍各个模块的功能和作用。2.1 充电电池内部工作原理介绍2.1.1镍镉蓄电池的工作原理镍镉蓄电池的正极材料为氢氧化亚镍和石墨粉的混合物,负极材料为海绵状镉粉和氧化镉粉,电解液通常为氢氧化钠或氢氧化钾溶液。当环境温度较高时,使用密度为1.171.19(15时)的氢氧化钠溶液。当环境温度较低时,使用密度为1.191.21(15时)的氢氧化钾溶液。在-15以下时,使用密度为1.251.27(15时)的氢氧化钾溶液。为兼顾低温性能和荷电保持能力,密封镍镉蓄电池采用密度为1.40(15时)的氢氧化钾溶液。为了增加蓄电池的容量和循环寿命,通常在电解液中加入少量的氢氧化锂(大约每升电解液加1520g)。镍镉蓄电池充电后,正极板上的活性物质变为氢氧化镍NiOOH,负极板上的活性物质变为金属镉;镍镉电池放电后,正极板上的活性物质变为氢氧化亚镍,负极板上的活性物质变为氢氧化镉。2.1.2记忆效应 镍镉电池使用过程中,如果电量没有全部放完就开始充电,下次再放电时,就不能放出全部电量。比如,镍镉电池只放出80%的电量后就开始充电,充足电后,该电池也只能放出80%的电量,这种现象称为记忆效应。电池全部放完电后,极板上的结晶体很小。电池部分放电后,氢氧化亚镍没有完全变为氢氧化镍,剩余的氢氧化亚镍将结合在一起,形成较大的结晶体。结晶体变大是镍镉电池产生记忆效应的主要原因。2.1.3镍氢电池的工作原理 镍氢电池和同体积的镍镉电池相比,容量增加一倍,充放电循环寿命也较长,并且无记忆效应。镍氢电池正极的活性物质为NiOOH(放电时)和Ni(OH)(充电时),负极板的活性物质为H(放电时)和HO(充电时),电解液采用30%的氢氧化钾溶液,充放电时的电化学反应如下: 从方程式看出:充电时,负极析出氢气,贮存在容器中,正极由氢氧化亚镍变成氢氧化镍(NiOOH)和HO;放电时氢气在负极上被消耗掉,正极由氢氧化镍变成氢氧化亚镍。2.1.4电池充电特性 镍镉电池充电特性曲线如图2-1所示。当恒定电流刚充入放完电的电池时,由于电池内阻产生压降,所以电池电压很快上升(A点)。此后,电池开始接受电荷,电池电压以较低的速率持续上升。在这个范围内(AB之间),电化学反应以一定的速率产生氧气,同时氧气也以同样的速率与氢气化合,因此,电池内部的温度和气体压力都很低。图2-1镍镉电池充电特性曲线镍氢电池的充电特性与镍镉电池类似,充电过程中二者的电压、温度曲线如图1-2所示。可以看出,充电终止时,镍镉电池电压下降比镍氢电池要大得多。当电池容量达到额定容量的80%以前,镍镉电池的温度缓慢上升,当电池容量达到90%以后,镍镉电池的温度才很快上升。当电池基本充足电时,镍镉/镍氢电池的温度上升率基本相同。图2-2 镍镉/镍氢电池充电电压曲线2.1.5电池的充电过程 电池的充电过程通常可分为预充电、快速充电、补足充电、涓流充电四个阶段。对长期不用的或新电池充电时,一开始就采用快速充电,会影响电池的寿命。 因此,这种电池应先用小电流充电,使其满足一定的充电条件,这个阶段称为预充电。快速充电就是用大电流充电,迅速恢复电池电能。快速充电速率一般在1C以上,快速充时间由电池容量和充电速率决定。为了避免过充电,一些充电器采用小电流充电。镍镉电池正常充电时,可以接受C/10或更低的充电速率,这样充电时间要10h以上。采用小电流充电,电池内不会产生过多的气体,电池温度也不会过高。只要电池接到充电器上,低速率恒流充电器就能对电池提供很小的涓流充电电流。电池采用小电流充电时,电池内产生的热量可以自然散去。涓流充电器的主要问题是充电速度太慢,例如,容量为1Ah的电池,采用C/10充电速率时,充电时间要10h以上。此外,电池采用低充电速率反复充电时,还会产生枝晶。大部分涓流充电器中,都没有任何电压或温度反馈控制,因而不能保证电池充足电后,立即关断充电器。2.2 芯片介绍部分2.2.1微控制器AT89S51 AT89S51是美国ATMEL公司生产的高性能低价格8位单片机,其特性如下:与MCS-51产品兼容4K字节的在线可编程(ISP)闪存,可擦写1000次电压范围:4.0V-5.5V晶振频率:0Hz-33MHz三种程序存储器加密方式1288-bit的内部RAM32位可编程I/O口两个16位的定时/计数器六个中断源全双工的UART串行通道空闲省电模式和掉电模式看门狗定时器双数据指针掉电标志位 图2-3 89S51的管脚图编程时间快灵活的在线编程(字节模式和页面模式)图2-3是89S51的管脚图,说明如下: VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每一个管脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻态输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。当P2口用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为一些特殊功能口,如下所示:P3口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记数器0外部输入)P3.5 T1(记数器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。 89S51的振荡器特性说明如下:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器,石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。由于输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。2.2.2 ADC0809芯片简介ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。 图2-4ADC0809的内部逻辑结构(1)ADC0809的内部逻辑结构如图2-4由上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。(2)引脚结构 如图2-4图2-4 ADC0809引脚结构IN0IN7:8条模拟量输入通道 2.2.3 MC1403芯片简介MC1403是低压基准芯片。一般用作812bit的D/A芯片的基准电压等一些需要基本精准的基准电压的场合。 输出电压: 2.5 V /- 25 mV 输入电压范围: 4.5 V 40 V 输出电流: 10 mA .Vin.|1.8|.NC .Vout.|2.7|.NC .GND.|3.6|.NC .NC.|4.5|.NC芯片引脚图2-5 因为输出是固定的,所以电路很简单。Vin接电源输入,GND接地,Vout加一个0.1uf1uf的电容就可以。Vout一般用作812bit的D/A芯片的基准电压。2.2.4 7805芯片简介芯片管脚如下图2-6所示:图2-6 7805芯片引脚内部原理图2-7:图2-7 7805内部原理7805属于三端稳压管,输入电压在7-25V左右,输出电压为5V,由于稳压过程中产生了纹波,需用电容进行滤波处理。2.2.5 74LS164芯片简介74LS164为8位移位寄存器,其主要电特性的典型值如下: 型号 fm Pn 54/74164 36MHz 185mW 54/74LS164 36 MHz 80mW 当清除端(CLEAR)为低电平时,输出端(QAQH)均为低电平。 串行数据输入端(A,B)可控制数据。当 A、B 任意一个为低电平,则禁止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下 Q0 为低电平。当 A、B有一个为高电平,则另一个就允许输入数据,并在 CLOCK 上升沿作用下决定Q0 的状态。引出端符号 CLOCK 时钟输入端 CLEAR 同步清除输入端(低电平有效) A,B 串行数据输入端 QAQH 输出端 极限值 电源电压 7V 输入电压 5.5V 工作环境温度 54164 -55125 74164 -070 2.2.6 1602液晶简介字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。1602接口功能:脚号符号引脚功能脚号符号引脚功能1GND电源地9D22VDD电源正10D33V0显示偏压信号11D44RS数据/命令控制,H/L12D55R/W读/写控制,H/L13D66E使能信号14D7数据I/O7D0数据I/O15BL1背光源正8D116BL2背光源负指令1:清显示,指令码01H,光标复位到地址00H位置指令2:光标复位,光标返回到地址00H指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符指令7:字符发生器RAM地址设置指令8:DDRAM地址设置指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据指令11:读数据2.3 电气部分电气部分的设计主要是根据所要实现的功能考虑系统的可实现性、复杂性、费用以及如何对将要运行在其上的程序提供支持。一般来说,电气设计要和软件设计一起考虑,使其具有软件可实现性。当然,在这个环节没有必要将软件结构搞得十分清楚,这样会浪费大量的精力。硬件设计将完成对本控制系统各个框图的物理实现,以及如何分配单片机的I/O端口从而保证系统各个部分能够协调地工作。通常我们应先了解构建系统所需的器件的参数和性能指标。2.3.1 微控制器AT89S51/52 本次设计采用Atmel89S51作为控制器,这是艾特梅尔公司生产的广为人知的At89C51的替代品,At89C51已经停产。Atmel89S51与89C51完全兼容,并且支持更高的处理速度。89S51有较多的I/O口线,有两个定时计数器,两个外部中断,可以在线编程,因此选用此芯片作为控制器比较合适。由于此系统处理数据不算复杂,我们可以选用12MHz的晶振。单片机有三种复位电路:上电复位、按键电平复位、按键脉冲复位。本次设计采用按键电压复位方式。整个电路如图2.1所示:图2-8 AT89S52以及周边电路图 从图2-8中看出,复位电路采用了电平复位,采用了频率为12MHz的晶振来提供单片机的工作频率。右图显示了2块4.7K的排阻,在所用单片机P0口和P2口引脚处分别接上上拉排阻,可以增强I/O口的驱动能力,可以让其更加稳定的工作。2.3.2 充放电电路充放电电路如图2-9所示:图2-9 充放电电路 根据图2-9所示,P20,P21,P22口分别与单片机的P20,P21,P22的引脚相连。当P20=1时,充电选择类型为镍氢电池;当P20=0时,充电选择类型为镍镉电池充电。下面详细介绍充电放电过程,以镍氢电池为例。图中BAT1代表被充放电的镍氢电池。充电时:P22为低电平,P21为低电平,S8550导通,S8050截止,从而电阻,电源与电池形成一回路,此时电池不断充电,当充满电后,P22置1,形成另一回路,由于R2的电阻很大,所以电流很小,此时进入涓流充电状态;放电过程:P22置1,P21置1,S8050导通,形成放电回路,此时涓流充电状态仍旧进行,但相对于放电,基本上可忽略不计。此时ADC0809不断进行采样以便及时反馈给单片机进行数据比较判断目前的状态。由于电池的内部结构,基本上达到1.4V时为充满状态,0.9V左右时为放电完毕状态。2.3.3 ADC0809电路及其MC1403两部分的电路结构如图2-10所示。ADC0809对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。地址输入和控制线:4条 ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量转换器进行转换。A,B和C为地址输入线,用于选通IN0IN7上的一路模拟量输入。数字量输出及控制线:11条ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE1,输出转换得到的数据;OE0,输出数据线呈高阻状态。D7D0为数字量输出线。 CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ, VREF(),VREF()为参考电压输入。图2-10 ADC0809及其MC1403电路电路如图所示,MC1403输入端的电压为+5V,输出为+2.5V,其具体特性我们将在后面部分介绍。其中电容C10和电容C9分别去除由于稳压引起的高频波和低频波。2.5V电压接入ADC0809的基准电压端,我们很容易的得出ADC0809的转换精度为2.5/256。P00-P07为8位模数转换端,ADD-A,ADD-B,ADD-C为通道选择端,通过不同的0,1组合可以选择8种通道。从图中可以看出,我们选择是通道0。ADC0809通过实时采集充放电电路的数据,经过模拟量到数字量的转换,然后再传递给单片机,再通过液晶实时显示数据。2.3.4数字电路电源模块数字电路电源模块如下图2-11所示。图2-11 数字电路电源模块电路如图所示,图中+8V电源由手机充电器提供,接上开关按钮,通过7805转换为+5V电源,电容起滤波作用。2.3.5串口转并口芯片74LS164模块 串口转并口模块如图2-12所示。图2-12 串口转并口模块如图所示74LS164芯片通过单片机,DAT接单片机RXD作为数据输出线,CLK接单片机TXD作为移位时钟脉冲。74LS164为TTL单向8位移位寄存器,可实现串行输入,并行输出。其中第1、2脚为串行数据输入端,2个引脚按逻辑与运算规律输入信号,一个输入信号时可并接(此图为并接)。第8脚为时钟输入端,可连接到串行口的TXD端。每一个时钟信号的上升沿加到T端时,移位寄存器移一位,8个时钟脉冲过后,8位二进制数全部移入74LS164中。第9脚为复位端,当R=0时,移位寄存器各位复0,只有当R=1时,时钟脉冲才起作用。8个引脚通过连接1602液晶显示屏进行数据显示。2.3.6 1602液晶显示模块液晶显示模块如图2-13所示。图2-13 1602液晶显示模块第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第1516脚:空脚它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)。 电路如图2-13所示,1602字符型液晶模块是一种用5x7点阵图形来显示字符的液晶显示器,可以显示2行16个字符。背光为黄色。D0D7为8位双向数据线,通过单片机指令在液晶上显示我们所需要的数据。3 软件设计在编写程序前我们至少要考虑两个问题:第一,采用何种语言;第二,选用哪一种编程软件作为开发平台。单片机的编程语言大致有两种,汇编语言和C语言。汇编语言是低级语言,C语言是高级语言。本次设计采用C语言是因为它更有利于开发和维护,节省开发时间并减少工作量。然后,选用Keil C51作为开发平台。Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。比如,C语言可以让开发者不必过多地关心运算如何实现等等一些底层的东西,而只考虑用语言直接去实现系统功能。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。做完了以上的两步,我们还不能马上就写程序。通常我们还应该对程序的总的结构作一个规划,以使我们能够从总体上把握它。程序的结构化水平以及合理性很大程度上受制于这一步。一般采用流程图来表示程序的结构。图3.1 程序流程图图3-1就是本系统的总流程图,它大致反映了需要设计哪些程序模块以及在哪里调用它。3.1 函数定义模块函数名:液晶数据发送delaydelay(uchar n)uchar f,m;for(m=n;m0;m-) for(f=248;f0;f-) 函数名: 模拟串行数据发送函数功能: 将要发送的数据转成串行数据 注意: 这里使用164芯片转换corr(uchar dat) uchar ADS,n; ADS=dat; for(n=8;n0;n-) TD=0; RDat=ADS&0x80; TD=1; ADS=ADS0;m-);void time_init(void) ST=0; OE=0; TMOD=0x21; /*16位定时器*/ EA=1; ET0=1; ET1=1; TH0=(65535-50000)/256; TL0=(65535-50000)%256; /*此两行定时器0产生中断50毫秒*/ TH1=216; TL1=216; /*AD时钟线定时*/ TR0=1; /*timer run*/ TR1=1;/*定时器0中断程序*/void timer0(void) interrupt 1 using 2/*定时器中断服务函数 每50毫秒进入这个中断处理函数*/TL0=(65535-50000)%256; TH0=(65535-50000)/256; /*定时初值装载*/counter+; if(counter=20) counter=0; second+; void t1(void) interrupt 3 using 0/*定时器中断服务函数为AD提供时钟*/ CLK=CLK;/*时间处理*/void proccess(void)if(second=60) second=0; min+; if(min=60) min=0; if(hour23) hour+; else hour=0; void show(void)/*显示电压值*/a0=table1hour; a1=:; a2=table1(min/10); a3=table1(min%10); a4= ;a5=0x00;ADC0809在此电路里面也起着关键的作用,它将采用通道1进行数据的转换。ADC0809对输入模拟量要求为:信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。 地址输入和控制线:4条 ALE为地址锁存允许输入线,高电平有

温馨提示

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

评论

0/150

提交评论