作者:bjxsdz 接 匯編測試程序: B_COM0SS:;比較器CM0: CLR CM0M ; 清CM0M 寄存器。; 復位比較器CM0。 ;設置比較器CM0 的功能模式。 ;B0BCLR FCM0SF ; 普通比較器模式。 B0BSET FCM0SF ; 特殊功能模式。 ;設置比較器CM0 的輸出引腳。 B0BCLR FCM0OEN ; 禁止比較器CM0 的輸出引腳。 ---- 沒有輸出引腳 ; B0BSET FCM0OEN ; 使能比較器CM0 的輸出引腳。 ;比較器不要外部輸出引腳時,接口板上芯片插座引腳是普通I/O,比較器引腳則仍然是比較器引腳. ;比較器使用外部輸出引腳時,接口板上芯片插座引腳=比較器引腳. ;僅僅 2 個引腳 ( IN+_IN- )就可以構成一個比較器! ; 設置比較器CM0 中斷觸發(fā)沿。 B0BCLR FCM0G ; 下降沿。由高變低(CM0P<CM0N). ; B0BSET FCM0G ; 上升沿。比較器輸出狀態(tài)由低變高(CM0P>CM0N). ;設置比較器CM0 輸出de-bounce。 MOV A,#00H ; 通過CM0D[3:0]設置比較器CM0 輸出de-bounce。 B0MOV CMDB0,A B0BCLR FCM0IRQ; 清CM0IRQ。 ;使能比較器CM0 和中斷功能。 B0BSET FCM0IEN ; 使能比較器CM0 中斷功能。 B0BSET FCM0EN ; 使能比較器CM0。 RET ;============================================================= B_COM0SS_1: ;// 比較器CM1: CLR CM1M ; 清CM1M 寄存器。; 復位比較器CM1。 ; 設置比較器CM1 正極輸入端。 通過CM1RS[2:0]設置比較器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 ; ---- 沒有輸入+ 引腳 ; 設置比較器CM1 功能模式。 B0BCLR FCM1SF ; 普通比較器。 ;B0BSET FCM1SF ; 特殊功能。 ; 設置比較器CM1 輸出引腳。 B0BCLR FCM1OEN ; 禁止。 ---- 沒有輸出引腳 ; B0BSET FCM1OEN ; 使能。 ;比較器不要外部輸出引腳時,接口板上芯片插座引腳是普通I/O,比較器引腳則仍然是比較器引腳. ;比較器使用外部輸出引腳時,接口板上芯片插座引腳=比較器引腳. ;僅僅一個 IN- 就可以構成一個比較器! ;設置比較器CM1 中斷觸發(fā)沿。 B0BCLR FCM1G ; 下降沿。翻轉(zhuǎn)=2.552V/2.570V ; B0BSET FCM1G ; 上升沿。翻轉(zhuǎn)=2.552V/2.570V ; 設置比較器CM1 輸出de-bounce。 MOV A,#00H ; 通過CM1D[3:0]設置比較器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ā)生時,FCM0OUT 并不對!還沒有發(fā)生翻轉(zhuǎn)就中斷了! BS0 FCM1OUT;IN+>IN- 則=1,否則=0!--- 輸入腳加濾波電容就很好了! 0.8mV 動作! 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ā)生時,FCM0OUT 并不對!還沒有發(fā)生翻轉(zhuǎn)就中斷了! BS0 FCM0OUT;IN+>IN- 則=1,否則=0!--- 輸入腳加濾波電容就很好了! 0.8mV 動作! JMP B_EXISR NOP NOP NOP B_EXISR: H_POP RETI ;************************************************* |