码迷,mamicode.com
首页 > 其他好文 > 详细

用IO检测方式判断交流220V与110V(松瀚汇编程序)

时间:2014-06-19 10:11:48      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:单片机

bubuko.com,布布扣


;-----------------------代码------------------------------------------

;---220V/110V检测--------------------
V_CH220NUM EQU 10 ;检测上半波的个数
;150V-0 180V-80  220V-120
V_220VNUM EQU 60 ;电压信号为高的总个数

//***************************************
// 函数名称: DLY500US
// 函数功能: 16MRC 下耗时500US
//***************************************
DLY500US:
 MOV A,#250
 MOV I,A
L_DLY500US:
 NOP
 NOP
 NOP
 NOP
 DECMS I
 JMP L_DLY500US
 RET
//***************************************
// 函数名称: CHECKAC220V
// 函数功能: 检测输出电压为110V 或 220V
//***************************************
CHECKAC220V:
/*   
 // 测试用
 CALL DLY500US
 MOV A, #0X04
 XOR P2, A
 JMP CHECKAC220V
*/
;------------检测前延时 等待电压稳定-------------------
 MOV A, #200 ;1ms*200=200ms
 MOV X0, A
L_PWLDY:
 CALL DLY500US ;1ms
 CALL DLY500US
 MOV A, #0X5A
 B0MOV WDTR, A
 DECMS X0
 JMP L_PWLDY 
;-------------------------------------------------------
 
 MOV A, #V_CH220NUM ;检测上半波的个数
 MOV X0, A
 CLR X1
L_CHACVOG: 
 B0BTS1 P_ZERO
 JMP L_CHACVOG
 JMP $+1
 JMP $+1
 JMP $+1
 B0BTS1 P_ZERO
 JMP L_CHACVOG
 JMP $+1
 JMP $+1
 JMP $+1
 MOV A, #0X5A
 B0MOV WDTR, A
L_CHACVOG2:
 B0BTS0 P_ACV
 INCMS X1
 NOP
 CALL DLY500US
 
 B0BTS0 P_ZERO
 JMP L_CHACVOG2 
 JMP $+1
 JMP $+1
 B0BTS0 P_ZERO
 JMP L_CHACVOG2 
 ;上半波结束
 DECMS X0 
 JMP L_CHACVOG
 MOV A, X1
 SUB A, #V_220VNUM
 BSET F_220V
 B0BTS1 FC
 BCLR F_220V
 RET


用IO检测方式判断交流220V与110V(松瀚汇编程序),布布扣,bubuko.com

用IO检测方式判断交流220V与110V(松瀚汇编程序)

标签:单片机

原文地址:http://blog.csdn.net/libiaojs/article/details/30114201

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!