;-----------------------代码------------------------------------------ ;---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
时间: 2024-09-29 12:29:41