SN 8 位單片機(jī) SN8P2743 應(yīng)用實(shí)踐(4)
B_COM0SS:;比較器CM0:
CLR CM0M ; 清CM0M 寄存器。; 復(fù)位比較器CM0。
;設(shè)置比較器CM0 的功能模式。
;B0BCLR FCM0SF ; 普通比較器模式。
B0BSET FCM0SF ; 特殊功能模式。
;設(shè)置比較器CM0 的輸出引腳。
B0BCLRFCM0OEN ; 禁止比較器CM0 的輸出引腳。 ---- 沒有輸出引腳
; B0BSET FCM0OEN ; 使能比較器CM0 的輸出引腳。
;比較器不要外部輸出引腳時(shí),接口板上芯片插座引腳是普通I/O,比較器引腳則仍然是比較器引腳.
;比較器使用外部輸出引腳時(shí),接口板上芯片插座引腳=比較器引腳.
;僅僅 2 個(gè)引腳 ( IN+_IN- )就可以構(gòu)成一個(gè)比較器!
; 設(shè)置比較器CM0 中斷觸發(fā)沿。
B0BCLR FCM0G ; 下降沿。由高變低(CM0P<CM0N).
; B0BSET FCM0G ; 上升沿。比較器輸出狀態(tài)由低變高(CM0P>CM0N).
;設(shè)置比較器CM0 輸出de-bounce。
MOV A,#00H ; 通過CM0D[3:0]設(shè)置比較器CM0 輸出de-bounce。
B0MOV CMDB0,A
B0BCLR FCM0IRQ; 清CM0IRQ。
;使能比較器CM0 和中斷功能。
B0BSET FCM0IEN ; 使能比較器CM0 中斷功能。
B0BSET FCM0EN ; 使能比較器CM0。
RET
;=============================================================
B_COM0SS_1: ;// 比較器CM1:
CLR CM1M ; 清CM1M 寄存器。; 復(fù)位比較器CM1。
; 設(shè)置比較器CM1 正極輸入端。 通過CM1RS[2:0]設(shè)置比較器CM1 正極輸入端。
;000=CM1P 引腳為比較器正極輸入引腳,GPIO 功能被屏蔽,
;MOV A,#00000111B ; 100B=4.0V -- 讀數(shù)=105709
;MOV A,#00000110B ; 100B=3.5V -- 讀數(shù)=79147
; MOV A,#00000101B ; 100B=3.0V -- 讀數(shù)=60305
; MOV A,#00000100B ; 100B=2.5V -- 讀數(shù)=45723
;MOV A,#00000011B ; 11B=2.0V -- 讀數(shù)=33659
;MOV A,#00000010B ; 10B=1.5V -- 讀數(shù)=23601
MOV A,#00000001B ; 10B=1.0V -- 讀數(shù)=14908
B0MOV CM1M,A ; ---- 沒有輸入+ 引腳
; 設(shè)置比較器CM1 功能模式。
B0BCLR FCM1SF ; 普通比較器。
;B0BSET FCM1SF ; 特殊功能。
; 設(shè)置比較器CM1 輸出引腳。
B0BCLR FCM1OEN ; 禁止。 ---- 沒有輸出引腳
;B0BSET FCM1OEN ; 使能。
;比較器不要外部輸出引腳時(shí),接口板上芯片插座引腳是普通I/O,比較器引腳則仍然是比較器引腳.
;比較器使用外部輸出引腳時(shí),接口板上芯片插座引腳=比較器引腳.
;僅僅一個(gè) IN- 就可以構(gòu)成一個(gè)比較器!
;設(shè)置比較器CM1 中斷觸發(fā)沿。
B0BCLR FCM1G ; 下降沿。翻轉(zhuǎn)=2.552V/2.570V
; B0BSET FCM1G ; 上升沿。翻轉(zhuǎn)=2.552V/2.570V
; 設(shè)置比較器CM1 輸出de-bounce。
MOV A,#00H ; 通過CM1D[3:0]設(shè)置比較器CM1 輸出de-bounce。
B0MOV CMDB0,A
; 清CM1IRQ。
B0BCLR FCM1IRQ
; 使能比較器CM1 和中斷功能。
B0BSET FCM1IEN ; 使能比較器CM1 中斷功能。
B0BSET FCM1EN ; 使能比較器CM1。
RET
;***************************************************************
B_IRS:
H_PUSH
;比較器1 中斷
BS1 FCM1IEN ; 使能比較器CM0 中斷功能。
JMP B_IRST0
BS1 FCM1IRQ; 清CM0IRQ。
JMP B_IRST0
ZB0 FCM1IRQ; 中斷發(fā)生時(shí),FCM0OUT 并不對(duì)!還沒有發(fā)生翻轉(zhuǎn)就中斷了!
BS0 FCM1OUT;IN+>IN- 則=1,否則=0!--- 輸入腳加濾波電容就很好了! 0.8mV 動(dòng)作!
JMP B_IRST0
Z2B0 FT0ENB,FT0IEN
ZB0 FP01
ZB0 FCM1IEN
JMP B_IRQT01
B_IRST0:
BS1 FT0IEN
JMP B_EXISR
B_IRQT01:
BS1 FT0IRQ
JMP B_EXISR
ZB0 FT0IRQ
INCMS SSSL
JMP @F
INCMS SSSM
JMP @F
INCMS SSSH
@@:
NOP
NOP
NOP
JMP B_EXISR
;------------------------------------------------------------------------
;比較器0 中斷
BS1 FCM0IEN ; 使能比較器CM0 中斷功能。
JMP B_EXISR
BS1 FCM0IRQ; 清CM0IRQ。
JMP B_EXISR
ZB0 FCM0IRQ; 中斷發(fā)生時(shí),FCM0OUT 并不對(duì)!還沒有發(fā)生翻轉(zhuǎn)就中斷了!
BS0 FCM0OUT;IN+>IN- 則=1,否則=0!--- 輸入腳加濾波電容就很好了! 0.8mV 動(dòng)作!
JMP B_EXISR
NOP
NOP
NOP
B_EXISR:
H_POP
RETI
;*************************************************
評(píng)論