光電編碼器輸出正交信號方式如下圖所示:
順時針旋轉A超前B相信號90°:
A: _|--|__|--|_
B: __|--|__|--|
逆時針旋轉B相信號超前A相信號90°:
A:__|--|__|--|_
B:_|--|__|--|__
下面是AT89C2051檢測並進行二倍頻程序:
;采用外部中斷方式
ORG 00H
LJMP MAIN
ORG 03H
LJMP INT0
ORG 13H
LJMP INT1
ORG 50H
MAIN: MOV SP,#40H
MOV P3,#0FFH
MOV IE,#10000101B ;設定外部中斷
MOV TCON,#00000101B
SETB EA
MA1: MOV P1,#0FFH
MOV P3,#0FFH
SJMP MA1
;*******************
INT0: PUSH PSW
CLR EA
I0: JNB P1.0,FAN
CLR P3.4
SJMP INT0END
FAN: CLR P3.5
INT0END:
POP PSW
SETB EA
MOV P3,#0FFH
RETI
INT1: PUSH PSW
CLR EA
JNB P1.0,ZHENG
CLR P3.5
SJMP INT1END
ZHENG: CLR P3.4
INT1END:
POP PSW
SETB EA
MOV P3,#0FFH
RETI