软件及相关的硬件分析前面两分析了本实例主要功能的电路原理及软件结构,接下来我们来分析以下辅助功能的电路及软件。
通信指示:电路由LED1绿色发光二极管及限流电阻R16构成,发光二极管也用高亮,限流电阻可在200Ω至1KΩ之间选择,本设计使用560Ω。该发光二极管只在接收数据及发送数据时点亮。
软件说明:
1 操作概要
本说明使用端口P51直接驱动LED饭馆二极管。
LED点亮时端口低电平输出,熄灭为高电平输出。
(1) TAU 初始化设置。
<设定条件>
• 设置P51为输出引脚, P51=1,LED熄灭。
(2)通信模式下,接收数据开始指示灯点亮,完成熄灭。
(3)通信模式下,发送数据开始指示灯点亮,完成熄灭。
通信指示处理子程序:
这部分软件写在UART中断服务程序中。
蓄电池电压状态指示:电路由LED3双色共阳(红、绿)发光二极管及限流电阻R18、R27构成,发光二极管要用高亮且红绿亮度基本相同,否则混合光不明显,限流电阻可在200Ω至1KΩ之间选择,本设计使用560Ω。
1、蓄电池电压大于14V,红色发光二极管点亮;
2、蓄电池电压在12~14V之间,绿色发光二极管点亮;
3、蓄电池电压小于12V,红色绿色(混合成黄色)同时点亮;
软件说明:
1 操作概要
本说明使用端口P61/P62直接驱动LED饭馆二极管。
LED点亮时端口低电平输出,熄灭为高电平输出。
(1) TAU 初始化设置。
<设定条件>
• 设置P61/P62为输出引脚, P61=1,P62=1,红绿LED均熄灭。
(2)当电池电压低于12V时,P61=0,P62=0,红绿LED均点亮(混合色)。
(3)当电池电压在12V ~14 V之间时,P61=1,P62=0,点亮绿色LED。
(5)当电池电压高于14V时,P61=0,P62=1,点亮红色LED。
蓄电池电压状态指示处理子程序:
BAT_DISP:
MOVA,!BCEDBUFG
BTA.3,$BATDS_CVH ; 电池过压
BTA.4,$BATDS_CVM ; 电池正常
BTA.5,$BATDS_CVL ; 电池欠压
MOVWAX,!BATDCRGL ;蓄电池电压值
MOVB,#12
MOVC,#0
CMPWAX,BC
BNC$SCVM_CON ; 大于12V
SET1!POWERL_BT ; 置电压欠标记
CLR1!POWERH_BT
CLR1!POWERM_BT
RET
SCVM_CON:
MOVB,#14
MOVC,#0
CMPWAX,BC
BNC$SCVH_CON ; 大于12V
SET1!POWERM_BT ; 置电压欠标记
CLR1!POWERH_BT
CLR1!POWERL_BT
RET
SCVH_CON:
SET1!POWERH_BT ; 置电池过压标记
CLR1!POWERL_BT
CLR1!POWERM_BT
RET
;--------------------------------------------------------
BATDS_CVH:
MOVWAX,!BATDCRGL ;蓄电池电压值
MOVB,#14
MOVC,#0
CMPWAX,BC ; 蓄电池电压值(14V)
BC $BATDS1_CVH
CLRB!TIMEVD1RG
CLR1LEDO2 ; 电压高,红灯点亮
SET1LEDO3 ; 绿灯熄灭
RET
BATDS1_CVH:
MOVWAX,!TIMEVD1RG
CMPWAX,#2500 ;连续约10秒电压低于14V
BNC$BATDS2_CVH
INCW!TIMEVD1RG
RET
BATDS2_CVH:
SET1!POWERM_BT ; 置电压正常标记
CLR1!POWERH_BT
CLR1!POWERL_BT
RET
;--------------------------------------------------------
BATDS_CVM:
MOVWAX,!BATDCRGL ;蓄电池电压值
MOVB,#14
MOVC,#0
CMPWAX,BC ; 蓄电池电压高与14V
BNC$BATDSH_CVM
MOVB,#12
MOVC,#0
CMPWAX,BC ; 蓄电池电压低于12V
BC$BATDSL_CVM
CLRB!TIMEVD2RG
CLR1LEDO3 ; 电压正常,绿灯点亮
SET1LEDO2 ; 红灯熄灭
RET
BATDSH_CVM:
MOVWAX,!TIMEVD2RG
CMPWAX,#2500 ;连续约10秒电压高于14V
BNC$BATDSH1_CVM
INCW!TIMEVD2RG
RET
BATDSH1_CVM:
SET1!POWERH_BT ; 置电池过压标记
CLR1!POWERL_BT
CLR1!POWERM_BT
RET
BATDSL_CVM:
MOVWAX,!TIMEVD2RG
CMPWAX,#2500 ;连续约10秒电压低于12V
BNC$BATDSL1_CVM
INCW!TIMEVD2RG
RET
BATDSL1_CVM:
SET1!POWERL_BT ; 置电池欠压标记
CLR1!POWERH_BT
CLR1!POWERM_BT
RET
;--------------------------------------------------------
BATDS_CVL:
MOVWAX,!BATDCRGL ;蓄电池电压值
MOVB,#12
MOVC,#0
CMPWAX,BC ; 蓄电池电压值高于12V
BNC$ BATDS1_CVL
CLRB!TIMEVD3RG
CLR1LEDO2 ; 电压低,红灯点亮
CLR1LEDO3 ; 绿灯点亮
RET
BATDS1_CVL:
MOVWAX,!TIMEVD3RG
CMPWAX,#2500 ;连续约10秒电压高于12V
BNC$BATDS2_CVL
INCW!TIMEVD3RG
RET
BATDS2_CVL:
SET1!POWERM_BT ; 置电压正常标记
CLR1!POWERH_BT
CLR1!POWERL_BT
RET
充电状态指示:电路由LED2红色发光二极管及限流电阻R17构成,发光二极管也用高亮,限流电阻可在200Ω至1KΩ之间选择,本设计使用1KΩ。
1、在涓流充电模式及太阳能板的最大功率点充电模式下指示灯快速闪亮;
2、在恒压充电(浮充电)模式下指示灯慢速闪亮;
软件说明:
1 操作概要
本说明使用端口P60直接驱动LED饭馆二极管。
LED点亮时端口低电平输出,熄灭为高电平输出。
(1) TAU 初始化设置。
<设定条件>
• 设置P60为输出引脚, P60=1,LED熄灭。
(2)只有在浮充充电模式下,指示灯慢速闪亮。
(3)其它充电模式下,指示灯块速闪亮。
充电状态指示处理子程序:
LEDOUT_CNT:
MOVA,!BCEDBUFG
BT A.0,$LEDOUT_FCST ; 涓流充电
BT A.1,$LEDOUT_FCST ; 浮充充电
BT A.2,$LEDOUT_KCST ; 恒流充电
SET1LEDO1 ; 充电指示灯熄灭
RET
LEDOUT_FCST:
CMP!LEDOTIMG,#100 ; 浮充状态,指示灯慢闪点亮
BC $LEDOUT_BATCN
CLRB!LEDOTIMG
BT LEDO1,$LEDOUT_FCEN
SET1LEDO1 ; 充电指示灯熄灭
RET
LEDOUT_FCEN:
CLR1LEDO1 ; 充电指示灯点亮
RET
LEDOUT_KCST:
CMP!LEDOTIMG,#20 ; 快充状态,指示灯快闪点亮
BC $LEDOUT_BATCN
CLRB!LEDOTIMG
BT LEDO1,$LEDOUT_KCEN
SET1LEDO1 ; 充电指示灯熄灭
RET
LEDOUT_KCEN:
CLR1LEDO1 ; 充电指示灯点亮
RET