用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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章