基于单片机的蓄电池容量检测系统的设计【含程序、电路图】
基于单片机的蓄电池容量检测系统的设计【含程序、电路图】,含程序、电路图,基于,单片机,蓄电池,容量,检测,系统,设计,程序,电路图
毕 业 设 计(论 文) 设计(论文)题目: 基于单片机的蓄电池容量检测系 系统的设计 学生姓名:二级学院:班级:提交日期:目 录摘 要IIIAbstractIV第一章 绪 论11.1 课题研究的相关背景11.2 课题研究的意义11.3 国内外研究状况11.4 本课题主要研究的内容2第二章 系统硬件的设计32.1 系统的方案选择32.2 系统的总体设计方案42.3 单片机STC89C52的概况52.4 主要元件72.5 蓄电池容量检测系统硬件电路设计132.6 蓄电池容量算法15第三章 系统软件设计173.1 主程序设计173.2 子程序设计173.3 程序清单19第四章 系统实物制作204.1 系统原理图204.2 实物焊接204.3 器件详细清单204.4 程序的编译204.5 系统调试214.6 实物演示21第五章 总 结31参考文献32附录1 系统原理图34附录2 系统程序清单35致 谢43- IV -基于单片机的蓄电池容量检测系统的设计摘 要本课题为基于单片机的蓄电池容量检测系统的设计。系统以单片机为核心,硬件主要包括单片机、LCD1602的显示器、PCF8591数据采集器、分压器和TC35通信等。当测量蓄电池容量时,系统会通过分压电阻进行分压,PCF8591数据获取器进行数据采集,由单片机进行转换,通过LCD1602显示器进行显示。当观察LCD1602显示器时,可以清楚的看到蓄电池的容量,以此来判断该蓄电池能否满足该电力系统。当检测的蓄电池容量超过14V时向手机发送短信。为了确保用电设备在断电后仍然能正常并且安全的工作,就必须确保蓄电池容量的足够,所以实时的检测蓄电池的容量,对电路安全稳定的工作意义重大。在系统的总体设计方案出来之后,对系统的硬件部分进行了详细的过成设计,并绘制出相应的系统原理图,并根据原理图制作了相应的实物。根据控制的要求,来绘画出系统软件流程图,并且编写了相应的系统程序。最后对实物进行整体的调试,调试的结果说明该系统的设计满足了控制的要求。关键词:STC89C52单片机;PCF8591数据采集器;LCD1602的显示器;直流稳压电源;容量显示;TC35通信 AbstractDesign of microcontroller based on battery capacity detection systemAbstractThis topic is the design of the battery capacity detection system based on single chip microcomputer.System as the core, the hardware mainly includes MCU, LCD1602 display, PCF8591 data collector, voltage divider and TC35 communication.When measuring the capacity of the battery, the system will be divided by the voltage divider resistance, PCF8591 data acquisition device for data collection, by the microcontroller for conversion, through the LCD1602 display.When observing the LCD1602 display, you can clearly see the battery capacity, in order to determine whether the battery can meet the power system.Send text messages to mobile phones when the battery capacity is detected by more than 14V.In order to ensure that the use of electrical equipment in power after the still can be normal and safe work, it is necessary to ensure that the battery capacity is sufficient, so the real-time detection of the battery capacity, the safety and stability of the circuit is of great significance.After the overall design of the system, the hardware part of the system was designed in detail, and the corresponding system schematic diagram was drawn, and the corresponding objects were made according to the principle diagram.According to the control requirements, to draw the system software flow chart, and the preparation of the corresponding system program. Finally, the overall system debugging, debugging results show that the design of the system to meet the requirements of the control.Key words: STC89C52 microcomputer; PCF8591 data acquisition device; LCD1602 Display;DC power supply;Capacity display;TC35 Communications 第一章 绪论第一章 绪 论1.1 课题研究的相关背景在二十一世纪,电力和通信的系统在现代的经济的迅速发展中间发挥着巨大的作用。目前发电厂、变电站和通信基站中的直流电路系统中,基本都是由蓄电池组、充电浮充电装置和熔断器等器件组成的。在电力系统和通信系统中,保护装置以及控制装置等一系列电路设备中都需要使用到蓄电池组,所有它性能和状态的好坏直接影响到这一系列系统运行的安全和可靠性。因此,检查蓄电池组的性能和运行状态的正常,就能够保证这些设备在没有交流电源的特殊的情况下依旧能够安全的运行。对蓄电池实施监测,并重视对它的日常性维护,才能够保证蓄电池拥有足够的放电容量来应付可能会发生的特殊事件,比如火电中断等事件。蓄电池目前是使用的最广泛的一种电源。蓄电池利用其中的化学物质可逆的化学反应来实现再充电,它将化学能转换成可以直接使用的电能并将其存储起来的器件。它的工作原理:充电时它利用化学反应,将电能存储为化学能,使用时再将化学能转换为可用电能对用电器件进行输出。蓄电池它作为一种性能可靠且循环利用的化学电能,它的价值也与日俱增,它广泛应用在电力、交通、通信等部门的设备中,已经成为其不可缺少的重要组成部分。因此蓄电池的容量的多少对系统来说非常重要。1.2 课题研究的意义在二十一世纪,蓄电池组的性能直接关系到设备的正常运行是因为它已经是很多设备的动力源或应急电源。需要经常通过对蓄电池参数进行严格测量,用来保证蓄电池组处于最佳的工作状态来提高电池的使用寿命来让其可靠运行。人工测量,不仅速度慢而且测量精度也有点低,尤其是其中影响人体健康的有害气体。通过进行自动测量蓄电池参数,它的测量速度和测量精度可以得到提高,这是十分重要的。之所以会一个电池的故障破坏到整个系统,是因为系统是由多个单体电池串联而成的,因此通过检测系统电池的充电和放电过程等各方面的数据在线实时检测。要想来提高整个电池系统的安全性和稳定性,就必须要找到损坏的和性能明显下降的电池。在受到环境限制下,为了对单一电池进行维修和日常的维护,单独的电压和电流的变化通过LCD显示,可以每个电池用一个单独的系统来确保系统简单而且实用。1.3 国内外研究状况对单电池电压的监测在我国蓄电池监测系统中是主要内容。目前,测量技术已经成熟的方面是关于温度和电流的常规测量。测量单个电压量的方法在电压的各种测量方法上非常简单的一种。在电池组中,测量其中某一个单电池电压是其中最为关键的。科学家们通过了大量的研究工作来解决如何测量单电池电压问题,其中用继电器来切换电池组中的每只电池是十分有效的。体积较大、成本较高、寿命短暂、速度太慢、电压值计算复杂是触点式继电器切换的缺点,因此提出另外一种方法V/F转换器来转换模拟信号。存在的问题是用V/F转换作为A/D转换器时,如何让输入信号电压高于芯片的最大工作电压。电容上的电压在A/D转换过程中发生变化降低了它的测量精度,测量器件的动作延迟导致采样时间过长,使该方法应用较少。我国研制了ZXJ24/2-1型监测仪。1989年,无人值守场站PBEC铅酸蓄电池综合在线状态监测系统在美国电力研究所和国家电能研究公司合作下成功研发。1994年,耗资200万美元的研究完成样机的现场试验。在每一只电池上安装多传感器电池,每个电池组监测器可以监测256个实时数据。想要监测更多的电池组监测器需要通过MODEMS与公用电话线。该技术已经应用于电厂等各个领域。韩国人延长整个系统的使用寿命就必须要防止过度充放电,储存设备可以使用独立光伏系统。该系统可以监测蓄电池组的单电池电压、通过的电流和电解液的比重等。一个20个通道的扫描器、一个数字多路选择器和一个笔记本电脑可以组成一个便携式数据采集系统。该系统通过一种“电流中断技术”,不仅可以监测以上数据还可以算出电池组内部电阻。1.4 本课题主要研究的内容本课题所要研究的主要内容总体有以下几个方面:1了解蓄电池容量检测系统的相关背景,研究该系统的具体需求和功能;2设计出基于单片机的蓄电池容量检测系统的设计方案,并给出硬件连接方案;3设计出单片机控制算法,并完成相关程序的编写;4研究总的电路图,了解其基本功能,并且能够掌握住各个主要功能部分的设计方法和原理,总结出设计思想,发现该设计的在现实中实用价值。5设计蓄电池容量检测系统时,能够利用LCD1602模块将蓄电池电压及容量信息显示出来。6当待测蓄电池超过14V时发送短信提示。- 42 - 第二章 系统硬件的设计第二章 系统硬件的设计2.1 系统的方案选择2.1.1选择芯片方案1:采用HT46R22系列的单片机。这种单片机是为A/D转换的而设计的一种8位高性能精简指令集所构成的,比如传感器信号输入。引脚和功能相同的就是掩膜版本HT46C22和OTP版本HT46R22。在带传感器的A/D转换和工业控制等系统中需要单片机可以实现低的能耗,灵活的使用I/O,在A/D转换的多通道传输以及IC通信暂停和唤醒等方面的功能。由于它比较复杂,导致它较贵的价格,并且它的焊接也不太方便,种种原因导致该器件较长的开发制作。方案2:采用STC89C52单片机。多功能保护器是该单片机的核心控制单元,十分符合本次课题的系统设计,它能够实现PCF8591数据采集器的信号处理和控制TC35模块的报警短信。STC89C52单片机控制简单和操作方便又可以利用它控制和寻址等方面的功能来实现本次设计。该单片机拥有8K的存储空间来保证存储操作指令,可以按位寻址使用I/O口,最重要的是它的价格十分低。通过比较,方案2是本设计较理想的方案。并且从价格和操作上看,也选择方案2。2.1.2蓄电池电压检测模块的选择方案1:采用PCF8591系列模块。1个串行IC总线接口接入4个模拟输入和1个模拟输出可以组成一个单独供电且单片集成PCF8591器件,它的数据获取是8-bit CMOS。8个PCF8591器件可以同时连接在同一个IC总线上,它的硬件地址编程可以使用它的地址引脚A0, A1和A2。PCF8591的IC总线可以使用双线双向串行来传输地址和控制信号等数据。它的模拟量是用多路复用输入的,它的模数和数模转换都是8位的,因此它的片上可以进行跟踪和保持等方面的功能。IC总线的最大速度决定了它的最高转换速率。方案2:采用DS2438系列模块。DS2438智能电池监视器是一个专门为测试电池组数据的器件。它可以存储各种电池的参数,是精确实时测试蓄电池信息的很好的器件。DS2438和中央微控制器间使用1条连线来接收和发送信息,这就说明可使用一个电池电源、地线和1-Wire接口来组成电池组。通过比较,方案1适合本次的蓄电池容量检测系统,它性能稳定,价格便宜。2.1.3显示器的选择方案1:采用HD44780液晶显示模块。它是一种的字符型的液晶显示器件,其他公司使用的电路如NOVATEK公司的NT3881,SUNPLUS公司的SPLC78A01,SAMSUNG公司的KS0066等都与它的主控制驱动电路HD44780(HITACHI)相兼容。利用多个57或者510点阵块可以来形成的液晶显示器,在智能仪表和办公自动化等领域以经在使用它。方案2:采用LCD1602显示模块。它是一种点阵型液晶显示,专门用来显示字母、数字、符号等数据的。由于它每位和每行之间都有间隔,所有它可以很好的显示每一个字符却不能显示形象的图形。即使使用自定义CGRAM,结果也是一样的。LCD1602是指显示的内容为162,它可以显示两行,且每行16个字符。通过比较,本设计只需采用方案2。2.1.4 GSM通信模块选择方案1:采用TC35系列模块。TC35可以实现数据传输和短消息的服务,是Siemens公司无线通信GSM模块的主要产品。GSM模块在900MHz工作时耗能2W(900M),在1800MHz工作时耗能为1W(1800M),限制在3.3V5.5V电压下工作。TC35I和TC35是同一系列的产品,但是它们外形、体积和电压等方面是不同的,TC35I比TC35价格贵的原因是因为TC35I的使用能耗是十分低的,有利于节省。方案2:采用MC35系列模块。西门子公司GPRS模块MC35不仅拥有方案一的所有功能,还能利用GPRS。MC35I价格高过TC35是因为它的传输速度要比TC35快的多。通过比较,方案1适合本次的短信发送系统,它出货量大,价格便宜。2.2 系统的总体设计方案为了实现系统对于蓄电池容量的检测,设计了如图2.1所示的系统。本次的设计系统主要分为液晶显示电路、蓄电池电压检测电路、单片机核心电路和短信发送电路。系统以STC89C52单片机为核心,利用电源电路对被测蓄电池进行5倍的分压,利用蓄电池电压检测电路进行检测,通过单片机与LCD1602之间进行转换,在液晶显示屏上显示被测蓄电池的电压以及容量,这样方便我们了解该蓄电池是否能满足它所使用的电路系统。当蓄电池电压高于14V是,可以知道该蓄电池电量已经充满,利用TC35向手机发送短信。图2.1系统总体设计框图2.3 单片机STC89C52的概况STC89C52是一个拥有8K可编程的Flash存储器,它的控制器是由8位CMOS,因此它拥有很低的能耗。STC89C52的指令和引脚与工业上的80C51等系列产品完全相兼容,主要是因为存储技术的高密度和不易丢失性造成的。通常使用的编程器可以在它的片上的Flash进行编程。十分灵活的控制各种应用系统是STC89C52单片机的主要特点,是因为可自主编程的Flash和8位的CPU在它的芯片上。在掉电的保护方式下,RAM的内容可以保存,振荡器被冻结,单片机的所有工作都停止,一直到下一个的中断或者硬件可以复位为止【1】。通过把程序的代码烧写进这种单片机,并在它的外围接上电源电路、晶振电路和复位电路等各种模块,就构成了一个独立的系统。1 STC89C52标准功能:1)8k字节的Flash。2)256字节的RAM。3)32位的I/O口线。4)看门狗定时器。5)2个数据指针。6)3个16位的定时器/计数器。7)1个6向量的2级中断结构。8)全双工的串行口。9)片内晶振和时钟电路。2STC89C52引脚介绍:图2.2 引脚图1)Vcc(40脚):+5V电源端;2)Vss(20脚):接地端。3)XTAL1(19脚):当做外部时钟来使用时必须接地,因为它的片内是晶振电路的反向放大器输入端。4)XTAL2(18脚):连接外部的晶体和微调电容一端。当通过示波器来查看这个端口是否有脉冲信号的输出可以判断STC89C52的晶振电路是否在正常工作。5)RST(9脚):它高电平时有效,输入复位信号。想要完成复位的操作,就需要在这里保持两个机器周期(24个时钟的振荡周期)高电平。6)ALE/PROG(30引脚):是地址锁存允许的信号端。当STC89C52通电正常工作之后,此引脚可以不断的向外输出正脉冲信号。当通过示波器来查看这个端口是否无脉冲信号的输出,只有当信号输出时才能说明STC89C52的芯片是好的。7)PSEN(29脚);是程序存储所允许的输出信号引脚。当它作为片外存储器时,就会定时的输出负脉冲的选通信号。这个引脚接的是ERROM的OE端。当通过示波器查看PSEN端是否有脉冲输出,当有时就说明CPU工作正常。8)/VPP(31脚):是外部程序存储器地址允许输入端。CPU访问片内ERROM/ROM就需要EA引脚连接高电平,才能执行内部程序存储器中的指令。当接低电平时,CPU只会访问外部ERROM/ROM中的指令。连接没有芯片的器件时,需要将EA引脚接地并且外扩ERROM。3I/O(输入/输出端口,P0,P1,P2,P3)P0口:P0口是漏极开路8位准双向I/O端口之一;P1口:是8位准双向I/O端口;P2口:用做普通的I/O,或高8位的地址总线输出地址(准双向口);P3口:双功能口:可以做普通的I/O口用,也可以自定义来实现第二功能的操作。见表2.1。表2.1 P3口的第二功能表引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外部中断0)P3.3INT1(外部中断1)P3.4T0(定时器0外部中断)P3.5T1(定时器1外部中断)P3.6WR(外部存储器写选通)P3.7RD(外部存储器读写通)2.4 主要元件2.4.1PCF8591数据采集器1个串行IC总线接口接入4个模拟输入和1个模拟输出可以组成一个单独供电且单片集成PCF8591器件,它的数据获取是8-bit CMOS。8个PCF8591器件可以同时连接在同一个IC总线上,它的硬件地址编程可以使用它的地址引脚A0, A1和A2。PCF8591的IC总线可以使用双线双向串行来传输地址和控制信号等数据。它的模拟量是用多路复用输入的,它的模数和数模转换都是8位的,因此它的片上可以进行跟踪和保持等方面的功能。IC总线的最大速度决定了它的最高转换速率。1PCF8591的功能1)多路模拟输入。2)内置跟踪保持。3)8-bit模数转换。4)8-bit数模转换。2引脚及功能PCF8591引脚图如图2.3所示。图2.3外接示意图表2.2 PCF8591的引脚和功能表引脚名称功能1AIN0模拟信号输入端2AIN1模拟信号输入端2AIN2模拟信号输入端4AIN3模拟信号输入端5A0引脚地址端6A1引脚地址端7A2引脚地址端8VSS电源端9SDAIC总线的数据线10SCLIC总线的时钟线11OSC时钟1)内部输出端;2)外部输入端12EXT时钟选择线内部时EXT接地13AGND信号地模拟14VREF基准电源端15AOUT输出端D/A转换16VDD电源端地址:设置以后数据传输方向的读/写位的是最后一位地址字节。地址在IC总线协议成立后作为第一个字节发送。见下图2.4图2.4地址3芯片特点:1)单独供电2)PCF8591的操作电压范围2.5V-6V3)低待机电流4)通过IC总线串行输入/输出5)PCF8591的采样率由IC总线速率决定6)PCF8591通过3个硬件地址引脚寻址7)单端或差分可编程4个模拟输入8)自动增量频道选择9)PCF8591的模拟电压范围从VSS到VDD10)PCF8591内置跟踪保持电路11)8-bit逐次逼近A/D转换器12)通过1路模拟输出实现DAC增益4PCF8591原理图: 如下图2.5图2.5 PCF8591原理图5功能特点:控制字: PCF8591控制其它器件时需要利用存储在控制寄存器中的第二个字节。系统每次A/D转换后通道号将自动增加是因为自动增量为1。D/A转换:数字量转换成模拟量。外部电压和选择开关组成D/A转换器,PCF8591的输出电压会被新收到的数据来改变。A/D转换:检测到的模拟量转换成数字量。当PCF8591接收到第一个有效读模式的地址后,就开始了一个A/D转换周期。当A/D转换周期开始后,所有的输入信号都将转换为对应的8位二进制码并保存进芯片。2.4.2 LCD显示1602LCD的基控制器是HD44780,带背光的比不带背光的厚,但是两者在应用中是没有差别的,尺寸如图2.6所示。图2.6 LCD1602结构图1 主要技术参数:1)容量:162个字符;2)芯片工作电压:4.55.5V;3)工作电流:2.0mA(5.0V);4)模块最佳工作电压:5.0V;5)字符尺寸:2.954.35(WH)mm。2引脚功能说明:16引脚1602LCD标准是,如下表2.3所示:表2.3 引脚接口说明表编号符号引脚说明1VSS电源地2VDD电源正极3VL液晶显示偏压4RS数据/命令选择5R/W读/写选择6E使能信号7D0数据8D1数据9D2数据10D3数据11D4数据12D5数据13D6数据14D7数据15BLA背光源正极16BLK背光源负极第1脚:VSS为地电源。第2脚:VDD接+5V。第3脚:VL为液晶显示器对比度调整端。接入一个大小10K的电位器来调整液晶显示器的对比度,因为当它接正电源时最弱,接地时最强。 “鬼影”现象的出现是因为对比高。第4脚:RS为寄存器选择。高电平和低电平分别选择数据寄存器、指令寄存器。第5脚:R/W为读写信号线。高电平和低电平时分别进行读操作和写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址;当RS为低电平R/W为高电平时可以读忙信号;当RS为高电平R/W为低电平时可以写入数据【2】。第6脚:E端为使能端。当其高电平转变成低电平时,显示器执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。2.4.3直流稳压电源直流稳压电源利用它的负载电阻与为它供电的交流电源发生变化,来为其它用电器输出稳定的直流电源。目前,用电设备向着更稳定可靠、更详细的精度这些方面发展,因此这些电子设备的供电电源就需要提高更多的方面。它可以调节输出的电压和电流值来适应各种电路情况。它可以自动转换稳压或稳流状态,并能够准确的识别其大小。使用时,需要加入保护电路以免电路短路时破坏器件。特点:1)输出显示:输出电压电流LED显示。2)采用19英寸标准化尺寸。3)体积小、重量轻、节能高效。4)恒压恒流:自动切换输出恒压恒流,可调节电压电流值。5)保护功能:过压、过流、过载和欠压等保护。6)短路特性:工作状态下长时间短路。7)外接补偿:降低因输出回路较长等造成的压降。8)过压保护值:当输出过压值后切断输出并锁定。2.4.4 TC35通信TC35模块是西门子工业中支持中文短信息的GSM模块的重要组成部分。它是一款双频900/1800MHZ的模块。目前,TC35正广泛应用于远程监控和无线通讯等领域。并且它还拥有GPRS方面的功能。性能信息:1)信息传送内容:语音和数据。2)电源:单电源 3.3V 5.5V。3)频段:双频GSM900MHz 和 DCS1800 MHz(Phase 2+)。4)发射功率:2W (GSM900MHz Class 4) 1W (DCS1800MHz Class 1)。5)SIM 卡连接方式:外接。6)天线:由天线连接器连接外部天线。7)外型尺寸:54.5 x 36 x 6.7mm。8)短信息:MT,MO,CB和PDU模式。9)通讯接口:RS232(指令和数据双向传送)。10)模块复位:采用AT指令或掉电复位。2.5 蓄电池容量检测系统硬件电路设计2.5.1单片机最小系统图2.7 单片机最小系统单片机、晶振电路和复位电路组成的单片机的最小系统,这是任何单片机系统能够运行程序、正常工作所必不可缺少的重要组成部分。由于STC89C52单片机的片内有程序存储器,大小为8K,所以该系统只需要外接晶振电路与复位电路。2.5.2液晶显示电路图2.8 LCD1602液晶显示电路采用LCD1602显示屏,在电路通电的情况下,可以在显示屏上看到当前的蓄电池容量值;在屏幕的下方还有一位数值,显示的是蓄电池电压。2.5.3蓄电池电压检测电路图2.9 蓄电池电压检测电路利用PCF8591数据采集器对蓄电池进行数据采集,对数据进行A/D转换,把模拟信号转换为数字信号,传输进单片机中。2.5.4电源电路图2.10 电源电路采用5倍的分压,使待测的蓄电池电压进入设计电路中降低电压,保证电路中运行安全。2.5.5 TC35通信电路图2.11 TC35引脚图需要给TC35个大于3. 3V的稳定电源来使其工作,并且要保证给它的IGT信号是一个持续时间不能超过1ms,且延时大于100ms的低脉冲信号,这样才能保证电路安全稳定的工作。利用TC35向手机发送报警短信。2.6 蓄电池容量算法2.6.1容量换算的算法蓄电池的容量系数是由放电终点电压和事故放电持续时间来决定的。蓄电池容量是由它们三方面共同影响决定的。所有蓄电池的计算容量: 式中:CS:事故放电容量(Ah);KCC:蓄电池容量系数;KREL:可靠系数,一般取KREL=1.40。当放电期间事故负荷恒定不变时,事故放电时间TS(h)和事故放电电流IS(A)的乘机决定了事故放电容量CS。即CS=IS*TS2.6.2恒功率的算法计算公式:W:每节电池提供的功率;P:额定功率;F:负载功率因数;:逆变器效率;N:电池组额定节数。2.6.3恒电流的算法计算公式:AH:电池安时数;P:额定功率;F:负载功率因数;:逆变器效率;UMIN:UPS电池关闭时瞬时电压,一般每单元1.75V。2.6.4估计的算法(1)用于延时1小时以下:(2)用于延时1小时以上:AH:电池安时数;P:额定功率;F:负载功率因数;:逆变器效率;UMIN:UPS电池关闭时瞬时电压,一般每单元1.75V;C(30分钟)=1.1;C(60分钟)=0.6; 第三章 系统软件设计第三章 系统软件设计3.1 主程序设计根据任务书的要求,设计以下系统的软件程序流程图:图3.1 主程序流程图3.2 子程序设计3.2.1蓄电池电压检测流程图图3.2 蓄电池电压检测流程图3.2.2 LCD液晶显示流程图图3.3 LCD液晶显示流程图3.2.3 短信发送流程图图3.4 短信发送流程图3.3 程序清单见附录2 第四章 系统实物制作第四章 系统实物制作4.1 系统原理图见附录14.2 实物焊接首先将所用材料按顺序的放置在桌面上,接着用万用表检查所有元器件的好坏,对照元器件来判断各个引脚的作用,来确保电路焊接的正确性。将各个元器件合理的放入万能板中,分步进行焊接,并不时的利用万用表检测焊接状态是否正确,焊接完成后对实物进行整体检测。4.3 器件详细清单表4.1器件选型方案的详细清单器件代号型号数量单片机U1STC89C521数据采集器U2PCF85911双刀双掷开关SW11行程开关AJ1SW-PB1极化电容器(径向)C1,C410uF/25V2电容器C2,C330p2电容器C50.1uF1红外发光二极管D1RED1低电压电源连接器J1DC PORT1液晶显示器LCD1LCD16021电阻R1,R4,R510k3电阻R240k1电阻R310k1电阻R61k1隔离电阻网络RP11晶体振荡器Y111.0592M1电阻抽头W11接线插槽P1Header 41端子P2Header 21杜邦线若干排针若干GSM通信TC351万能板14.4 程序的编译在实物焊接好之后,就要进行软件的仿真。将写好的程序利用Keil软件进行编译,检查没有错误后生成.HEX文件。将焊接好的实物与电脑连接,利用Keil软件,将之前生成.HEX文件写入STC89C52单片机中。4.5 系统调试在整个设计完成之后,对其进行整体调试。在调试的过程中验证系统的设计是否正确,是否达到预期的要求,看各个要求是否达成。4.6 实物演示4.6.1电路初始状态如图4.1所示。图4.1 电路初始状态4.6.2电路通电按下电源总开关时电路通电,如图4.2所示。图4.2 电路通电4.6.3稳压电源不同的直流输入电压模拟不同使用的蓄电池图4.3 调节输入电压4.6.4不同电压下容量显示调节稳压电源,模拟蓄电池容量,进行测量。图4.4 显示00%容量(1)图4.5 显示00%容量(2)图4.6 显示10%容量(1)图4.7 显示10%容量(2)图4.8 显示20%容量图4.9 显示30%容量图4.10 显示40%容量图4.11 显示50%容量图4.12 显示60%容量图4.13 显示70%容量图4.14 显示80%容量图4.15 显示99%容量(1)图4.16 显示99%容量(2)图4.17 显示99%容量(3)图4.18 显示99%容量(4) 第五章 总 结第五章 总 结本次设计中,我通过对STC89C52D单片机、LCD1602液晶显示器、PCF8591数据采集器和TC35通信的学习,努力设计电路并制作实物,经过不断调试,目前已经可以使用该系统对蓄电池容量进行检测,但是由于时间等原因短信发送还没有做到。这次的设计让我学到了更多的专业性的知识,通过将大学四年学到理论知识综合的运用起来,使自己对于原来所学的知识有了更进一步的理解。在设计的过程中,通过查找各个方面的资料,再到自己动手制作实物,不断努力解决自己在设计中所遇到的各种问题,从而培养了我独立解决问题的能力,同时加强了自己的动手能力并了解自己所存在的问题。虽然最后设计达到了部分的预期要求,也实现了蓄电池容量的测试。但是,在整个的设计过程中,如果没有老师与同学的帮助,我就无法完成这次的设计。之后我还需要查询更多方面的知识,不断的请教老师,充实自己的知识面,才能更好的实现自己的目标,使自己更全面发展。这次毕业设计的不足之处是利用TC35通信模块发送短信给手机没有成功。通过这个问题,我明白做任何事情都需要细心,仔细检查各个部分,分析问题。这次的毕业设计,虽然说是结束了,但也是一个新的开始。它让我学到了很多,让我看清了自己本身存在的不足,相信在未来自己可以不断奋斗,努力完善自我,让自己离理想更近一步。 参考文献参考文献1 陈云路,吴钦木数字频率计设计J现代机械,2015,(3).2 王承林.基于Proteus在LCD1602中汉字显示系统的设计J邢台学院学报2015,(4) 3 李平等.单片机入门与开发M. 北京:机械工业出版社,2008.4 马青玉高压蓄电池组的计算机检测设计J电子工程师,2002,28(1)5 钟富昭等.8051单片机典型模块设计与应用M. 北京:人民邮电出版社,2007.6 陈海宴.51单片机原理及应用M.北京:北京航空航天大学出版社,2010.7 李朝青.单片机&DSP外围数字IC技术手册M. 北京:北京航空航天大学出版社,2009.8 龚运新,罗慧敏,彭建军.单片机接口C语言开发技术M. 北京:清华大学出版社,2009.9 陈杰智能铅酸蓄电池组性能的监控系统J机电工程,1999,(6)10 朱松然.铅蓄电池技术M. 北京:机械工业出版社,2008.11 崔花.单片机实用技术M. 北京:清华大学出版社,2008. 12 徐新民.单片机原理及应用M. 浙江:浙江大学出版社,2009.13 刘守义等.单片机技术基础M. 西安:西安电子科技大学出版社,2007.14 江思明.电路工程设计Protel99实例演练M.人民邮电出版社,2009.15 马淑华,王凤文,张美金主编.单片机原理与接口技术M. 北京:北京邮电大学出版社,2008.16 张晓冬.蓄电池监测系统的现状及发展趋势J.农机化研究,2002,(8). 17 秦龙.MSP430单片机常用模块与综合系统实例精讲M. 北京:电子工业出版社.2007.18 闰新华.影响铅酸蓄电池容量的因素J.UPS应用,2004,(1).19 王俊峰,孟令启.现代传感器应用技术M. 北京:机械工业出版社.2007.20 胡汉才.单片机原理及接口技术M. 北京:清华大学出版社.1996.21 高稚允,高岳.光电检测技术M. 北京:国防工业出版社.1983.22 梁森,王侃夫,黄杭美.自动检测与转换技术M. 北京:机械工业出版社.2007.23 Meehan Joanne,Muir Lindsey.SCM in Merseyside SMEs:Benefits and barriersJ.TQM Journal,2008.24 Yeager Brent.How to troubleshoot you electronic scaleJ.Powder and Bulk Engineering.1995.25 杨清梅,孙建民.传感器与测试技术M. 哈尔滨:哈尔滨工程大学出版社.2005.26 康华光.模拟电子技术基础M.北京:高等教育出版社.2006.27 高吉祥.全国大学生电子设计竞赛培训系列教程M. 北京:电子工业出版社.2007.28 李增国.传感器与检测技术M. 北京:北京航空航天大学出版社.2009.29 吴中明,吴昊.密封铅酸蓄电池容量快速测试技术难点分析J.通信电源技术,2006,(23).30 宋文绪,杨帆.自动检测技术M. 北京:高等教育出版社.2000.31 尉广军,朱宇虹.采用集成运算放大器构成的蓄电池恒流放电电路J.电工技术,2000,(14).32 魏小龙MSP430系列单片机接口技术及系统设计实例M. 北京:北京航空航天大学出版.2002.33 李广弟.单片机基础M. 北京:北京航空航天出版社,2001.34 王东峰等.单片机C语言应用100例M. 北京:电子工业出版社,2009. 附录1附录1 系统原理图 附录2附录2 系统程序清单#include /包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include#include 1602.h#include delay.h#include sysdefine.hchar displaytemp16; /打印数组初始化unsigned long time_20ms=0; /定时器计数float Volt=0.0; /检测电压unsigned int BatCap=80; /容量初始化void Init_Timer0(void);void uartSendStr(unsigned char *s,unsigned char length);void UART_Init(void);void uartSendByte(unsigned char dat);void main (void) unsigned char midvolt;Init_Timer0(); /定时器0初始化UART_Init(); LCD_Init(); /初始化液晶DelayMs(20); /延时有助于稳定LCD_Clear(); sprintf(displaytemp,The BatCap: %02d%,BatCap);/打印电池容量值LCD_Write_String(0,0,displaytemp);/显示第一行sprintf(displaytemp,V:%4.2fv ,Volt);/打印电压值LCD_Write_String(0,1,displaytemp);/显示第二行uartSendStr(reday ok!,10);while (1) /主循环DelayMs(50); /延时有助于稳定midvolt=ReadADC(0);/ad转换采集Volt=(float)midvolt*5.2/255*5;/计算出电压 *5表示分压值if(Volt5.4)&(Volt8.4)&(Volt8.9)&(Volt9.4)&(Volt9.9)&(Volt11.4)&(Volt12.9)&(Volt13.5)&(Volt14.0)BatCap=99;sprintf(displaytemp,The BatCap: %02d%,BatCap);/打印电池容量值LCD_Write_String(0,0,displaytemp);/显示第一行sprintf(displaytemp,V:%4.2fv ,Volt);/打印电压电流值LCD_Write_String(0,1,displaytemp);/显示第二行DelayMs(200); /延时有助于稳定void Init_Timer0(void)TMOD |= 0x01; /使用模式1,16位定时器,使用|符号可以在使用多个定时器时不受影响 TH0=(65536-20000)/256; /重新赋值 20msTL0=(65536-20000)%256;EA=1; /总中断打开ET0=1; /定时器中断打开TR0=1; /定时器开关打开void Timer0_isr(void) interrupt 1 TH0=(65536-20000)/256; /重新赋值 20msTL0=(65536-20000)%256;time_20ms+;if(time_20ms%10=0)void UART_Init(void) SCON = 0x50; / SCON: 模式 1, 8-bit UART, 使能接收 TMOD |= 0x20; / TMOD: timer 1, mode 2, 8-bit 重装 TH1 = 0xFD; / TH1: 重装值 9600 波特率 晶振 11.0592MHzTL1 = TH1; TR1 = 1; / TR1: timer 1 打开 EA = 1; /打开总中断 ES = 1; /打开串口中断void uartSendByte(unsigned char dat)unsigned char time_out;time_out=0x00;SBUF = dat;while(!TI)&(time_out10)time_out+;DelayMs(1);TI = 0;void uartSendStr(unsigned char *s,unsigned char length)unsigned char NUM;NUM=0x00;while(NUMlength)uartSendByte(*s);s+;NUM+; void UART_SER (void) interrupt 4 /串行中断服务程序if(RI) /判断是接收中断产生RI=0; /标志位清零if(TI) /如果是发送标志位,清零TI=0;#include#defineuintunsig
收藏