基于51单片机的智能充电器系统Word格式.docx

上传人:b****2 文档编号:3663742 上传时间:2023-05-02 格式:DOCX 页数:17 大小:119.01KB
下载 相关 举报
基于51单片机的智能充电器系统Word格式.docx_第1页
第1页 / 共17页
基于51单片机的智能充电器系统Word格式.docx_第2页
第2页 / 共17页
基于51单片机的智能充电器系统Word格式.docx_第3页
第3页 / 共17页
基于51单片机的智能充电器系统Word格式.docx_第4页
第4页 / 共17页
基于51单片机的智能充电器系统Word格式.docx_第5页
第5页 / 共17页
基于51单片机的智能充电器系统Word格式.docx_第6页
第6页 / 共17页
基于51单片机的智能充电器系统Word格式.docx_第7页
第7页 / 共17页
基于51单片机的智能充电器系统Word格式.docx_第8页
第8页 / 共17页
基于51单片机的智能充电器系统Word格式.docx_第9页
第9页 / 共17页
基于51单片机的智能充电器系统Word格式.docx_第10页
第10页 / 共17页
基于51单片机的智能充电器系统Word格式.docx_第11页
第11页 / 共17页
基于51单片机的智能充电器系统Word格式.docx_第12页
第12页 / 共17页
基于51单片机的智能充电器系统Word格式.docx_第13页
第13页 / 共17页
基于51单片机的智能充电器系统Word格式.docx_第14页
第14页 / 共17页
基于51单片机的智能充电器系统Word格式.docx_第15页
第15页 / 共17页
基于51单片机的智能充电器系统Word格式.docx_第16页
第16页 / 共17页
基于51单片机的智能充电器系统Word格式.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于51单片机的智能充电器系统Word格式.docx

《基于51单片机的智能充电器系统Word格式.docx》由会员分享,可在线阅读,更多相关《基于51单片机的智能充电器系统Word格式.docx(17页珍藏版)》请在冰点文库上搜索。

基于51单片机的智能充电器系统Word格式.docx

在本文中,采用中断方式。

从ADC0809与8051的中断方式接口电路如硬件电路图2和图3所示,ADC0809和8051的INT0管脚连接,当转换结束的时候,EOC向8051发送一个脉冲信号,提出中断申请,单片机响应中断请求,由外部中断l的中断服务程序读A/D结果,并启动8051的下一个转换,外部中断1采用跳沿触发方式。

图2智能充电器原理电路图

图3智能充电器原理电路图

三、硬件电路图

本文中,单片机电路主要包括8051和ADC0809两块芯片,DM74163N用做分频器,74F138SJ用来产生和选择地址。

具体的连接原理电路图如图2和图3所示。

其中,8051的晶振频率为11.0592MHz。

电路有2个输入输出端口,AnalogVoltageInput是作为电池组电压的输入,PWMcontraltor是做为电池组控制脉宽的输出。

四、软件程序设计

本文为智能充电器,传统充电器采用电流负反馈来进行控制,本程序使用8051单片机作为控制器进行控制。

对于电池中不同的电量,如果采取同样的方案,不会获得满意的充电效果,一般根据电池两端不同的电压值采取不同的方案进行充电。

本文中,将采集电池组的电压值,通过ADC转到单片机,在单片机端接收到信号后,根据不同的电压情况采取不同的方案。

当电压非常小的时候,采取方案1来充电,方案l采取小电流充电;

当电压比较小但是不是极小的时候,采取方案2来充电,方案2采取较大电流充电;

当电压达到正常电压的时候,采取方案3来充电,方案3采取恒流充电;

对于电压超出正常电压,采取方案4,即不充电的方案。

本文中,采用定时查询电压的机制,定时器每500ms给出标志位,查询A/D上的电压值,根据不同的电压值选择不同的方案。

对于电流的控制,采用PWM控制脉宽的方法来控制电流,应用不同的占空比,占空比越高,电流越大。

下面将首先对程序的主要模块进行介绍,然后给出整个程序。

(1)、初始化

在初始化程序中,需要进行与定时器相关的寄存器的初始化以及各个标志位和计数位的清零,如果采用中断方式,还包括与中断相关的寄存器。

本文中,电路中采用的晶振频率fosc=11.0592MHz,需要每500ms查询l次,将定时器设置成16位计数器,根据计算,可以得出定时器T0的初值为7936(1F00H),并且中断中使用计数器,计满8就达到了500ms。

将方案选择位置1,以便主程序查询。

初始化程序清单如下:

;

程序开始,初始化各个寄存器以及标志位

START:

MOVSP,#050H;

设置堆栈

MOVR0,#030H;

设置A/D存储单元初始地址

MOVIE,#0FFH;

打开所有中断

MOVDPTR,#78FFH;

采集通道首地址,只使用一路A/D就可以

MOVR0,#40H

MOV@R0,#00H;

清除方案选择位

清除方案选择触发位

MOVR1,#042H

清除定时器计数器

LCALLTIMER1_INIT

TIMER1_INIT:

ANLTMOD,#0FH;

设置定时器T1为方式2

ORLTMOD,#10H

MOVTMOD,#21H;

定时器T0工作在方式1

MOVPCON,#080H

CLRTR1;

禁止定时器T1

SETBEA

SETBET1

SETBET0

SETBPT0;

定时器T0中断优于串口中断

CLRTF1

MOVTL0,#00H

MOVTH0,#01FH;

定时器T0中断发生时间为62.5ms

SETBTR0;

使能定时器T0

CLRTF0

RET;

(2)、定时器中断

定时器中断是用来计时的,在中断中使用软件计数来达到想要的时间。

当时间到达0FFFFH后,再跳到O000H,TFX位就会申请中断。

使用定时器T0,那么TF0位会申请中断,进入中断服务程序,进行中断处理,设置相应的触发标志位。

应当注意的是,在采用中断方式处理时,对于中断中使用到的寄存器、变量(作为全局变量使用的除外)应当进行压栈处理,并且更换寄存器的区域。

进入定时器中断,每500ms设置1次标志位

TIMER0_INIT:

PUSHACC;

累加器入栈

PUSHPSW;

程序状态字入栈

MOVPSW,#18H;

切换寄存器区域

CLRTF0;

清除定时器中断TF0

CLRTR0;

禁止定时器T0

MOVTH0,#01FH;

定时器T0中断发生时间为6

清除溢出中断位

INC@R1;

增加计数器的值,到8为止,这样达到500ms

CJNE@R1,#08H,TIMER0_READY

MOV@R1,#00H;

清除计数器的值

MOVR1,#041H;

设置标志位,每500ms重新选择方案

MOV@R1,#01H

TIMER0_READY:

SETBTR0;

POPPSW;

程序状态字出栈

POPACC;

累加器出栈

RETI

(3)、A/D转换器的使用

当ADC转换结束时,会向单片机发出中断请求信号,触发单片机的外部中断,这时单片机响应此中断请求,进入中断服务程序,读取转换数据,ADC读入的首地址要依靠电路原理图来确定。

程序清单如下:

EXTERN_INIT:

PUSHACC;

累加器压栈

程序状态字压栈

MOVPSW,#010H;

MOVDPTR,#78FFH;

A/D转换器首地址

MOVXA,@DPTR;

读入A/D的值

MOVR1,#030H;

存储A/D转换器的数据的地址

MOV@R1,A;

将A/D的值读入该地址

POPPSW;

POPACC;

(4)、PWM脉冲宽度的控制

在本文中,需要控制PWM脉冲的占空比来控制充电的电流,因此采用直接设置对应管脚高低来产生脉冲,对于不同的要求,可以使用空跑来设置不同占空比。

本文选用方案1.程序清单如下:

PROCESS_01:

MOVR1,#040H

MOV@R1,#01H;

选择方案1

PROCESS_01_NEXT:

SETBP2.0;

将和PMW连接的管脚置高

MOVR1,#0F0H

MOVR0,#00H

PROCESS_01_01:

DJNZR1,PROCESS_01_01

DJNZR0,PROCESS_01_01;

空跑16×

256×

2个周期

CLRP2.0;

将和PMW链接的管脚置低

MOVR1,#070H

PROCESS_01_02:

DJNZR1,PROCESS_01_02

DJNZR0,PROCESS_01_02;

空跑16×

9个周期

MOVR1,#041H;

当方案改变标志位到来的时候,清除

标志并且重新进行判断

CJNE@R1,#00H,CLEAR_FLAG

SJMPPROCESS_01_NEXT

注意:

当输出脉冲的时候,应一直在查询方案改变标志位,当标志位到来的时候跳出循环,重新选择新的万菜。

(5)、方案的选择控制

本实例中,在主程序中需要对不同的方案进行选择,需要根据输入信号的不同范围进行跳转,对于8051,通常与需要比较的数进行相减,然后读取进位标志位,根据标志位来判断两个数的大小。

进入循环,查询标志位,采取不同的方案

LOOP:

MOVR0,#30H;

30H是AD转换的地址,将数据和几个值

进行比较,确定方案

MOVA,@R0

SUBBA,#30H;

当电压很小的时候,采用第一种方案,

向引脚PWM发送占空比为10%的信号

JCPROCESS_01

SUBBA,#90H

JCPROCESS_02;

当电压较小的时候,采用第二种方

案,向引脚PWM发送占空比为20%的信号

MOVA,@R0

JZPROCESS_03;

当电压正好的时候,采用第三种方

案,向引脚PWM发送占空比为50%的信号

MOVA,#04H;

当电压超出的时候,采用第四种方

案,向引脚PWM发送占空比为0%的信号

LJMPPROCESS_04

(6)、程序全貌

本文中,A/D采用外部中断触发的方式,当数据到来的时候将数据读入,根据不同的电压值选择不同方案,并且用定时器每500ms查询l次,改变原来的方案。

智能充电器

功能:

通过定时器定时从A/D上读取数据,根据不同的电压选

择不同的控制充电方案,使用PWM控制输出脉宽来控制电流

ORG0000H

LJMPSTART

ORG0003H

LJMPEXTERN_INT;

外中断入口

ORG000BH

LJMPTIMER0_INT;

定时器中断入口

MOVSP,#050H;

MOVR0,#030H;

MOVIE,#0FFH;

MOVDPTR,#78FFH;

MOV@R0,#00H;

清楚定时器计数器

30H是A/D转换的地址,

将数据和几个值进行比较,确定方案

;

当电压较小的时候,采用第二种方案,

向引脚PWM发送占空比为20%的信号

;

当电压正好的时候,采用第三种方案,

向引脚PWM发送占空比为50%的信号

MOVA,#04H;

当电压超出的时候,采用第四种方案,

向引脚PWM发送占空比为0%的信号

CLEAR_FLAG:

MOVR0,#40H;

MOV@R0,#00H

MOVR0,#41H;

清除触发位

LJMPLOOP

MOVR1,#40H

MOV@R1,#01H;

SETBP2.0;

将和PWM连接的管脚置高

MOVR1,#0F0H

DJNZR0,PROCESS_01_01;

将和PWM连接的管脚置低

当方案改变标志位到来的时候,

清除标志并且重新进行判断

PROCESS_02:

MOV@R1,#02H;

选择方案2

PROCESS_02_NEXT:

MOVR1,#0E0H

PROCESS_02_01:

DJNZR1,PROCESS_02_01

DJNZR0,PROCESS_02_01;

将和PWM连接的管脚置低

MOVR1,#080H

PROCESS_02_02:

DJNZR1,PROCESS_02_02

DJNZR0,PROCESS_02_02;

8个周期

SJMPPROCESS_02_NEXT

PROCESS_03:

MOV@R1,#30H;

选择方案3

PROCESS_03_NEXT:

SETBP2.0;

MOVR1,#0B0H

PROCESS_03_01:

DJNZR1,PROCESS_03_01

DJNZR0,PROCESS_03_01;

MOVR1,#0B0H

PROCESS_03_02:

DJNZR1,PROCESS_03_02

DJNZR0,PROCESS_03_02;

7个周期

当方案改变标志位到来的时候,

SJMPPROCESS_03_NEXT

PROCESS_04:

CLRP2.0

MOV@R1,#04H;

选择方案4

MOVR1,#041H

SJMPPROCESS_04

ANLTMOD,#0FH;

MOVTMOD,#21H;

CLRTR1;

SETBPT0;

定时器T0中断优先于串口中断

MOVTH0,#01FH;

SETBTR0;

TIMER0_INT:

PUSHPSW;

MOVPSW,#18H;

CLRTR0;

增加计数器的值,直到8为止,这样达到500ms

MOV@R1,#00H;

进入外部中断,每进入一次读取ADC的值

EXTERN_INT:

MOVPSW,#010H;

MOV@R1,A;

END

五、技巧总结

1、程序中,如果有多个中断,可通过设置PS位来调整串口的优先级。

注意在8051中中断的优先级只有两级。

2、A/D转换器的首地址要根据硬件设计来读取,数据的读取采用外部中断触发的方式速度比较快。

3、输出脉冲可以通过管脚的置高置低来直接进行控制,若波形有占空比的需要,可以通过空跑的时间来控制占空比。

4、在定时器中断完成后,需要对TFX位进行软件清0。

5、在比较两个数的大小来控制程序走向的时候,通常采用相减再判断进位标志的办法来控制程序。

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2