智能充电器设计报告.doc

上传人:啊飒飒 文档编号:10194417 上传时间:2021-04-27 格式:DOC 页数:36 大小:512KB
返回 下载 相关 举报
智能充电器设计报告.doc_第1页
第1页 / 共36页
智能充电器设计报告.doc_第2页
第2页 / 共36页
智能充电器设计报告.doc_第3页
第3页 / 共36页
智能充电器设计报告.doc_第4页
第4页 / 共36页
智能充电器设计报告.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《智能充电器设计报告.doc》由会员分享,可在线阅读,更多相关《智能充电器设计报告.doc(36页珍藏版)》请在三一文库上搜索。

1、目录引言11.电路组成21.1电源模块21.2数据采样模块21.3控制电路21.4充电方法21.4.1恒流充电法21.4.2阶段充电法31.4.3恒压充电法41.4.4快速充电技术41.4.5脉冲式充电法42、工作原理62.1电源电路72.1.1 TOP225Y的结构、功能及工作原理72.1.2 输入整流滤波电路82.1.3 变压器设计92.2充放电电路92.3数据采样与转换电路102.4、温度传感电路122.5显示电路123、单片机软件设计143.1软件功能143.2流程图154、结论16参考文献17致谢32摘 要本系统以AT8952单片机为核心,使用大功率开关电源,利用脉宽调制产生可用软件

2、控制的充电电源,以适应不同阶段的充电电流的要求。温度传感器对电池温度进行监测,并通过/转换和实时采集电池的电压、电流,对充电过程进行智能控制,以判断电池到达哪个阶段,同时在适当时候对电池进行放电,并不断对电池的内阻进行实时监测,最后达到使用充电时间最短,对电池修复效果最好的目的。关键字:开关电源;铅酸蓄电池;智能充电器AbstractThe system AT8952 microcontroller core, using high-power switching power supply, use of available software generated PWM pulse width

3、 modulation control of the charging power supply to meet the different stages of the charging current requirements. Temperature sensor to monitor the battery temperature, and through A / D conversion and real-time acquisition battery voltage, current, intelligent control of the charging process to d

4、etermine which cells reach the stage, while at the appropriate time to discharge the battery and keep the battery real-time monitoring of internal resistance, and finally reached the shortest charge time, battery repair best purpose.Keywords: switching power supply; lead-acid batteries; Intelligent

5、Charger引言铅酸蓄电池由于它开路电压高、放电电压平稳、原材料丰富易得、价格便宜,获得了广泛的应用。随着科学技术的迅猛发展,铅酸蓄电池的品种不断地增多,性能不断地改进。在未来相当长的一段时间内,它的地位是无法被取代的。与此同时,自铅酸蓄电池发明以来,其使用寿命偏短,能量转换效率偏低等先天性弱点,长期未得到满意的解决。尤其是报废电池对环境的污染一直是很大的问题。解决上述难题的德途径,一是尽早寻求出能取代铅酸蓄电池的新型能源,二是尽量延长铅酸蓄电池的使用寿命。因此,可再生修复、各种脉冲充电等成了提高铅酸蓄电池寿命的热门话题。研究发现:电池充电过程对电池寿命影响最大,放电过程的影响较少。而且,传

6、统充电器的充电策略比较单一,只能进行简单的恒压或者恒流充电,以致充电时间很长,充电效率降低。另外,充电即将结束时,电池发热量很大,从而造成电池极化,影响电池寿命。1.电路组成1.1电源模块开关电源市电进入电源,首先要经过扼流圈和电容,滤除高频杂波和同相干扰信号。然后再经过电感线圈和电容,进一步滤除高频杂波。接下来再经过由4个二极管组成的全桥电路整流(也有半桥等其他电路),和大容量的滤波电容滤波后,电流才由高压交流电转换为高压直流电。经过了交直转换后,电流就进入了整个电源最核心的部分:开关电路。开关电路主要由两个开关管组成,通过它们的轮流导通和截止,便将直流电转换为高频率的脉动直流电。接下来,再

7、送到高频开关变压器上进行降压。经过高频开关变压器降压后的脉动电压,同样要使用二极管和滤波电容进行整流和滤波,此外还会有1、2个电感线圈与滤波电容一起滤除高频交流成分。最后成为设备所需要的较为纯净的低压直流电。它是近代普遍推广的稳压电源,具有效率高、电压范围宽,输出电压相对稳定等特点。1.2数据采样模块数据采样方案是利用AD0809模数转换芯片,对所需的四个点电压值采样,经过相应计算得出所需参数。由于AD0809采样值不能超过5V,所以必须经过了电阻分压,这是应该注意的地方。1.3控制电路选用AT89S52单片机,用于充电控制,数据采样、发送以及LCD显示控制。加上液晶显示,让系统更实用、更方便

8、,那就必须使用AT89S52单片机。1.4充电方法1.4.1恒流充电法恒流充电法是用调整充电装置输出电压或改变与蓄电池串联电阻的方法,保持充电电流强度不变的充电方法,如图1所示。控制方法简单,但由于电池的可接受电流能力是随着充电过程的进行而逐渐下降的,到充电后期,充电电流多用于电解水,产生气体,使出气过甚,因此,常选用阶段充电法。图1 恒流充电曲线1.4.2阶段充电法此方法包括二阶段充电法和三阶段充电法。1)二阶段法采用恒电流和恒电压相结合的快速充电方法,如图2所示。首先,以恒电流充电至预定的电压值,然后,改为恒电压完成剩余的充电。一般两阶段之间的转换电压就是第二阶段的恒电压。图2 二阶段法曲

9、线2)三阶段充电法在充电开始和结束时采用恒电流充电,中间用恒电压充电。当电流衰减到预定值时,由第二阶段转换到第三阶段。这种方法可以将出气量减到最少,但作为一种快速充电方法使用,受到一定的限制。1.4.3恒压充电法充电电源的电压在全部充电时间里保持恒定的数值,随着电池端电压的逐渐升高,电流逐渐减少。与恒流充电法相比,其充电过程更接近于最佳充电。用恒定电压快速充电。由于充电初期电池电动势较低,充电电流很大,随着充电的进行,电流将逐渐减少。 图3 恒压充电法曲线这种充电方法电解水很少,避免了蓄电池过充。但在充电初期电流过大,对蓄电池寿命造成很大影响,且容易使蓄电池极板弯曲,造成电池报废。鉴于这种缺点

10、,恒压充电很少使用,只有在充电电源电压低而电流大时采用。例如,汽车运行过程中,蓄电池就是以恒压充电法充电的。1.4.4快速充电技术为了能够最大限度地加快蓄电池的化学反应速度,缩短蓄电池达到满充状态的时间,同时,保证蓄电池正负极板的极化现象尽量地少或轻,提高蓄电池使用效率。快速充电技术近年来得到了迅速发展。1.4.5脉冲式充电法这种充电法不仅遵循蓄电池固有的充电接受率,而且能够提高蓄电池充电接受率,从而打破了蓄电池指数充电接受曲线的限制,这也是蓄电池充电理论的新发展。脉冲充电方式首先是用脉冲电流对电池充电,然后让电池停充一段时间,如此循环,如图5所示。充电脉冲使蓄电池充满电量,而间歇期使蓄电池经

11、化学反应产生的氧气和氢气有时间重新化合而被吸收掉,使浓差极化和欧姆极化自然而然地得到消除,从而减轻了蓄电池的内压,使下一轮的恒流充电能够更加顺利地进行,使蓄电池可以吸收更多的电量。间歇脉冲使蓄电池有较充分的反应时间,减少了析气量,提高了蓄电池的充电电流接受率。2、工作原理智能充电器系统工作原理如下所示。主要包括充电电源模块、充放电模块外接蓄电池模块,单片机控制模块 数据采样模块 LCD显示模块形成了一个系统。充电电源模块单片机控制核心数据采样充放电模块外接蓄电池LCD显示图4 系统模块2.1电源电路图5 电源原理图2.1.1 TOP225Y的结构、功能及工作原理TOP225Y 是 TOPSwi

12、tch-11 系列中一种最常用的芯片,封装形式为 TO-220 ,自带小散热片,是典型的三端集成器件,三个管脚分别为控制端 C 、源极 S 和漏极 D ,内部功率 MOSFET 器件的耐压值高达 700V ,可设计成 60W 以上仪器仪表的多路隔离式内置控制电源。 TOPSwitch- 系列产品具有以下特点: 将脉宽调制 (PWM) 控制系统的全部功能集成到三端芯片中,内含脉宽调制器、功率开关场效应管 (MOSFET) 、自动偏置电路、保护电路、高压启动电路和环路补偿电路,通过高频变压器使输出端与电网完全隔离,真正实现了无工频变压器、隔离式开关电源的单片集成化,使用安全可靠。 采用漏极开路输出

13、,利用控制极反馈电流 IC 线性调节占空比,实现 AC DC 变换,即属于电流控制型单片开关电源。输入交流电压和频率的范围极宽。在固定电压输入时, 可选 110V/115V 230V 交流电,允许变化 15% :在宽电压范围输入时,适配 85V 265V 交流电,但输出功率峰值 POM 值比前者降低 40 。 只有三个引出端,能以最简单的方式构成无工频变压器的单端反激式开关电源。开关频率的典型值为 1OOkHz ,允许范围是 90kHz 110kHz ,占空比调节范围是 1.7 67 。 外围电路简单,电磁干扰小,成本低廉。由于芯片本身功耗很低,电源效率可达 80 左右,最高可达 90 。2.

14、1.2 输入整流滤波电路输入整流滤波电路包括EMI滤波、整流部分和整流滤波电容。C16和T2组成一级EMI滤波器,EMI(Electro Magnetic Interference)是指电磁干扰,顾名思义EMI滤波器就是滤除电源中的电磁干扰,电磁干扰可分为共模干扰和差模干扰。在一级EMI滤波器中,C16取值为0.1uF/400V,主要去除差模干扰。T2为共模电感(Common mode Choke),也叫共模扼流圈,这两个线圈绕在同一铁芯上,匝数和相位都相同(绕制反向)。这样,当电路中的正常电流流经共模电感时,电流在同相位绕制的电感线圈中产生反向的磁场而相互抵消,此时正常信号电流主要受线圈电阻

15、的影响(和少量因漏感造成的阻尼);当有共模电流流经线圈时,由于共模电流的同向性,会在线圈内产生同向的磁场而增大线圈的感抗,使线圈表现为高阻抗,产生较强的阻尼效果,以此衰减共模电流,达到滤波的目的。整流电路选择不可控的整流桥,整流二极管的最大反向耐压必须满足大于400V的要求。其承受的冲击电流应大于额定整流电流的710倍。还应注意,选定的整流二极管的稳态电流容量应为计算值的两倍,本设计选择6A/600V大功率桥式整流堆MBU6M。2.1.3 变压器设计在当前的供电条件下,整流滤波电容C8的值可根据输出功率按照3F /W来取值,在考虑余量后,取C8=330F/450V。交流电压输入范围为187V2

16、53V,即=187V,=253V。假设整流桥中二极管导通时间为=3ms,可由式(1)和(2)式可得输入直流电压最小值和最大值为: (1) (2)式中 系统效率,可选择80%; 交流电网频率; 电源输出功率。电源启动时,连接在漏极和源极之间的内部高压电流源向控制极充电,在 RFB 两端产生压降,经 RC 滤波后,输入到 PWM 比较器的同相端,与振荡器产生的锯齿波电压进行比较,产生脉宽调制信号并驱动 MOSFET 管,因而可通过控制极外接的电容充电过程实现电路的软启动。当控制极电压 Uc 达到 5.7V 时,内部高压电流源关闭,此时由反馈控制电流向 Uc 供电。在正常工作阶段,由外界电路构成电压

17、负反馈控制环,调节输出级 MOSFET 的占空比,实现稳压。当输出电压升高时, Uc 升高,采样电阻 RFB 上的误差电压亦升高;而在与锯齿波电压进行比较后,将使输出电压的占空比减小,从而使开关电源的电压减小。当控制极电压低于 4.7V 时, MOSFET 管关闭,控制电闰群民马永翔路处于小电流等待状态,内部高压电流源重新接通并向 Uc 充电,其关断自动复位滞回比较器使 Uc 保持在 4.7V 5.7V 之间。2.2充放电电路图6 充放电电路充电过程和放电过程互为逆反应。可逆过程就是热力学的平衡过程,为保障电池能够始终维持在平衡状态之下充电,必须尽量使通过电池的电流小一些。光电耦合器PC817

18、的控制端接单片机P2.0和P2.1口,P2.0口和P2.1口产生的PWM波形。当P2.0口为低时,充电器将为蓄电池充电,当P2.1口为低时,充电器将为蓄电池放电。本方案采用REFLEXTM快速充电方式,给蓄电池充10个脉冲的电量,再给它放1个脉冲的电量,通过放电,就防止了蓄电池的极化。而且采用脉冲充电的方式,使得充电效率更高,充电速度更快,对蓄电池也有维护的作用。本方案采用5KHz的PWM频率。原本是10KHz较好,但是由于受到单片机速度的限制,本方案只能尽单片机的能力,使用5K的PWM频率。2.3数据采样与转换电路ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图(7)所示,

19、它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近ADC0809芯片有28条引脚,采用双列直插式封装。IN0IN7:8路模拟量输入端。2-12-8:8位数字量输出端。ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路ALE:地址锁存允许信号,输入,高电平有效。START:AD转换启动信号,输入,高电平有效。EOC:AD转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。CLK:时钟脉冲输入端。要求时

20、钟频率不高于640KHZ。REF(+)、REF(-):基准电压。Vcc:电源,单一5V。GND图7 转换电路与数据采样数据采样与转换电路的工作过程如图(7)所示:由于ADC0809的时钟频率不高于640KHZ,单片机的时钟频率为22.118MHZ,所以将单片机的时钟频率经74LS293八分频后再提供给ADC0809使用,由74LS293的8脚输出至ADC0809的10脚CLOCK。数据采样是利用AD0809模数转换芯片,对所需的四个点IN_0、IN_1、IN_2、IN_3的电压值采样,对采样值分别经过IN0、IN1、IN2端口输入ADC0809进行AD转换。由于AD0809采样值不能超过5V,

21、所以经过了电阻分压。首先由单片机P2.6和P2.7输入2位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通4路模拟输入IN-0、IN-1、IN-2和IN-3之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动AD转换,之后EOC输出信号变低,指示转换正在进行。直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。当EOC变为高电平时,这时给OE为高电平,转换的数据就由D0D7输出给单片机了。2.4、温度传感电路图8 温度传感电路蓄电池的容量与温度成正相关的

22、方向,温度每上升1度,容量就上升原来的0.8%.铅酸蓄电池在大于40度,再升高10度,电池的寿命就降低一倍.因此在为电池充电时要注意冬夏的温度差异,按环境温度调节充电的充电电压,使蓄电池不被损坏,并且能充满电。所以,我们专门设计了一个数字温度传感电路,如图(8)所示。DS18B20的温度检测与数字数据输出全集成于一个芯片之上,抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理,它可以将感应到的温度数值直接传递给单片机,单片机接到信息后通过内部程序选择充电参数值。2.5显示电路FYD12864-0402B图(9)所示是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标

23、一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为12864, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84行1616点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。图9 显示电路3、单片机软件设计3.1软件设计此软件的目的是控制电池充电及维护终点及状态显示。当电池放入该智能充电器时,我们可以人为选择充电状态与

24、维护状态,然后读入温度传感器环境温度,决定电池充电或维护状态的最终电压。再由程序控制充电及维护I/O口电平的高低,选择是对电池充电还是维护。在由ADC0809采样的电压判断电池维护或充电的终止时刻,并由内部程序计算出电池充电电流、充电电压、电池内阻等参数输出给FYD12864,由其显示电池状态。3.2流程图图10 流程图4、结论本次智能充电器的设计重点是在于电源的设计和充电部分电路的设计。在智能充电器控制系统设计过程中,主要侧重点是保证充电器对充电电池电压的精确控制,设计中元器件的选型也都是围绕着这个重点来完成的。经过实验电路的实际测试,由电源电路、整流电路、滤波电路显示电路温度控制电路及AC

25、/DC变换电路,在AT89S52、ADC0809控制下可实现很高的系统精度。参考文献1康华光等,电子技术基础模拟部分M,北京:高等教育出版社,1999,第四版,106-111。2康华光等,电子技术基础数字部分M,北京:高等教育出版社,2000,第四版,40-57。3阎石等,数字电子技术基础M,北京:高等教育出版社,2005,第五版。4李全利,单片机原理及接口技术M,北京:高等教育出版社,2004.1。5张毅刚等,单片机原理及应用M,北京:高等教育出版社,2004。6全国大学生电子设计竞赛组委会,全国大学生电子设计竞赛获奖作品汇编(第一届第五届)J,北京:北京理工大学出版社,2004,12-50

26、。7龚运新,单片机C语言开发技术北京M:清华大学出版社2206.10。8唐颖,单片机原理与应用及C51程序设计M,北京大学出版社,2008第一版。10王水平等,单片机开关电源集成电路应用设计实例M,人民邮电出版社,2008第一版。附录附件1 电路原理图附件2 主程序:#include #include /lcd12864相关控制#include #include sbit CTRL_UP=P20;sbit CTRL_DOWN=P21;sbit ADCOE=P26;sbit ADCSTART=P27;sbit ADCALE=P25;sbit ADCA=P24;sbit ADCB=P23;sbit

27、 POWERKK=P14;#define ADCDATE P0sbit KEY1=P37;sbit KEY2=P35;sbit KEY3=P36;void InitSys();/初始化系统void InitInt();/初始化外部中断void InitTimer();/初始化定时器,串口中断void SendSerialData();/启动并发送一组串口数据void StartADC();/选择通道n,开始转换void ShowAllTime();/显示完整的时间unsigned char g_myPar15,g_CurSend;/g_t10,g_t11,g_t20,g_t21,g_t30,g

28、_t31,g_n,g_U0,g_U1p,g_U1f,g_U2,g_U3,g_Th,g_Tm,g_Ts;参数顺序bit bSerialSending;unsigned char g_time6;unsigned char g_CurIn;unsigned char code g_adda=0,1,1,0,1;unsigned char code g_addb=1,0,0,0,1;unsigned char code g_ctrlu=1,1,1,0,0;unsigned char code g_ctrld=0,1,0,1,1;unsigned char g_tt10,g_tt11,g_tt20,g

29、_tt21,g_tt30,g_tt31;unsigned char CutState;bit CurTR0,Curctrlu,Curctrld;float SqrtDuty;unsigned char g_Percent;void main()/DelayMs(10);/Delay4us(10);InitSys();DelayMs(1200);InitLCD();InitLCDshow(0);InitInt();/初始化外部中断0InitTimer();/初始化定时器0,串口中断bSerialSending = 0;/bLinking = 0;/WriteLCD(0,0x80);/DspNum

30、ber(123);StartADC();while(1)if(KEY1=0)/充电TR1 = 0;CutState = 0;POWERKK = 1;InitLCDshow(0);TR0 = 1;g_myPar0=g_tt10;g_myPar1=g_tt11;g_myPar2=g_tt20;g_myPar3=g_tt21;g_myPar4=g_tt10;g_myPar5=g_tt11;/SqrtDuty = sqrt(float)g_myPar1/(g_myPar0+g_myPar1);/Duty=g_myPar0*100/(g_myPar0+g_myPar1);TR1 = 1;StartADC

31、();ShowAllTime();DelayMs(100);else if(KEY2=0)/放电TR1 = 0;CutState = 1;POWERKK = 1;InitLCDshow(1);TR0 = 0;g_CurIn = 0;CTRL_UP = 1;CTRL_DOWN = 0;TR1 = 1;StartADC();ShowAllTime();DelayMs(100);else if(KEY3=0)/维护TR1 = 0;POWERKK = 0;CutState = 2;InitLCDshow(2);TR0 = 1;g_myPar0=0xff;g_myPar1=0xf0;g_myPar2=0

32、xfe;g_myPar3=0x74;g_myPar4=0xff;g_myPar5=0xf2;/SqrtDuty = sqrt(float)g_myPar1/(g_myPar0+g_myPar1);/Duty=g_myPar0*100/(g_myPar0+g_myPar1);TR1 = 1;StartADC();ShowAllTime();DelayMs(100);/初始化系统void InitSys()unsigned char i;for(i=0;i6;i+)g_timei =0;ADCOE = 1;ADCALE = 0;ADCSTART = 0;POWERKK = 1;g_myPar0=0

33、xff;/0x30g_myPar1=0x30;g_myPar2=0xff;g_myPar3=0x30;/0x30g_myPar4=0xff;g_myPar5=0x30;g_tt10 = 0xff;g_tt11 = 0x30;g_tt20 = 0xff;g_tt21 = 0x30;/*g_myPar0 = 0x80;/g_TH1g_myPar1 = 0x00;/g_TH2g_myPar2 = 0x00;/g_TH3*/g_myPar6 = 6;SqrtDuty = sqrt(0.5);/Duty=g_myPar0*100/(g_myPar0+g_myPar1);/初始化外部中断void Init

34、Int()IT0 = 1;/ 0/1 低电平/下跳变PX0 = 1;/ 中断优先级/EX0 = 1;/EA = 1;/初始化定时器,串口中断void InitTimer()TMOD = 0x11;/ 使用高4位 0/1/2/3 13位/16位/8位自动重载/双8位TH0 = (65536 - 49235) / 256;TL0 = (65536 - 49235) % 256;PT0 = 1;TR0 = 1;/开启定时器0ET0 = 1;TH1 = (65536 - 49235) / 256;TL1 = (65536 - 49235) % 256;TR1 = 1;/开启定时器1ET1 = 1;TC

35、LK=1;RCLK=1;TH2=0xFF; /19200bps 22.1184MHz的时钟频率TL2=0xDC;RCAP2H=0xFF; /方式1和方式3的波特率fosc/(32-(65535-(RCAP2H,RCAP2L)RCAP2L=0xDC;TR2=1;/ET2=1;SCON = 0x50;/串口方式1,允许接收PCON = 0x00;/关闭波特率加倍PS = 1;/设置串口中断为高优先级ES = 1;/开串口中断/TH1 = 0xfd;/串口通信使用定时器1,设定波特率9600/TH1 = 0xf3;/串口通信使用定时器1,设定波特率2400EA = 1;/开始发送串口数据void S

36、endSerialData()if(!bSerialSending)bSerialSending = 1;g_CurSend = 0;SBUF = g_myParg_CurSend;g_CurSend+;/开始ADC转换void StartADC()CurTR0 = TR0;TR0 = 0;g_CurIn=0;ADCA = g_addag_CurIn;ADCB = g_addbg_CurIn;CTRL_UP = g_ctrlug_CurIn;CTRL_DOWN = g_ctrldg_CurIn;Curctrlu = CTRL_UP;Curctrld = CTRL_DOWN;ADCALE = 1

37、;ADCALE = 0;ADCSTART = 1;ADCSTART = 0;EX0 = 1;/倒序转换unsigned char Reverse(unsigned char num)unsigned char i,rtTmp;rtTmp = 0x00;for(i=0; i8; i+)rtTmp = 1;return rtTmp;/显示完整的时间void ShowAllTime()WriteLCD(0,0x98+4);WriteLCD(1,g_time0);/时WriteLCD(1,g_time1);WriteLCD(1,:);WriteLCD(1,g_time2);/分WriteLCD(1,g

38、_time3);WriteLCD(1,:);WriteLCD(1,g_time4);WriteLCD(1,g_time5);/外部中断0服务程序void Int0() interrupt 0g_myPar7+g_CurIn = ADCDATE;g_CurIn+;if(g_CurIng_myPar6)i = 0;CTRL_UP = 1;CTRL_DOWN = 0;TH0 = g_myPar4;TL0 = g_myPar5;elseCTRL_UP = 1;CTRL_DOWN = 1;TH0 = g_myPar2;TL0 = g_myPar3;elsej = 1;CTRL_UP = 0;CTRL_D

39、OWN = 1;TH0 = g_myPar0;TL0 = g_myPar1;/定时器1中断服务程序void Timer1() interrupt 3static unsigned char i,j;unsigned char temp_data2;unsigned char presence,k;TH1 = (65536 - 60730) / 256;TL1 = (65536 - 60730) % 256;i+;if(i24)/时间显示i=0;g_time5+;g_myPar14+;if(g_time5 0x39)/秒个位g_time5 = 0x30;g_time4+;if(g_time4 0

40、x35)/秒十位g_time4 = 0x30;g_time3+;g_myPar14 = 0;g_myPar13+;if(g_time3 0x39)/分个位g_time3 = 0x30;g_time2+;if(g_time2 0x35)/分十位g_time2 = 0x30;g_time1+;g_myPar13 = 0;g_myPar12+;if(g_time1 0x33)/时个位g_time1 = 0x30;g_time0+;if(g_time0 0x39)/时十位g_time0 = 0x30;g_myPar12=0;/时十位/时个位WriteLCD(0,0x98+4);WriteLCD(1,g

41、_time0);WriteLCD(1,g_time1);/分十位WriteLCD(0,0x98+5);WriteLCD(1,:);WriteLCD(1,g_time2);/分个位WriteLCD(0,0x98+6);WriteLCD(1,g_time3);/秒十位/秒个位WriteLCD(0,0x98+7);WriteLCD(1,g_time4);WriteLCD(1,g_time5);/显示充/放电状态j+;switch(j)case 1:WriteLCD(0,0x98+2);WriteLCD(1, );WriteLCD(1, );WriteLCD(1, );StartADC();break

42、;case 2:WriteLCD(0,0x98+2);WriteLCD(1,.);break;case 3:WriteLCD(0,0x98+2);WriteLCD(1,.);WriteLCD(1,.);break;case 4:WriteLCD(0,0x98+3);WriteLCD(1,.);j = 0;break;default:j = 0;presence = Init_DS18B20();if(presence=0)WriteOneChar(0xCC); /跳过ROM匹配操作Delay4us(10);WriteOneChar(0x44); /启动温度转换presence = Init_DS18B20();if(presence=0)WriteOneChar(0xCC); /跳过ROM匹配操作Delay4us(10);WriteOneC

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1