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

 

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

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


;---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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值