?? wcp0.asm
字號:
;參考程序 A:WCP0.ASM 程序功能:實現CP0比較器的上升沿中斷/下降沿中斷功能,比較
;器基準信號來自于VREF引腳.CP0比較器的上升沿中斷鳴笛二次, CP0比較器的下降沿中
;斷鳴笛1次,
$include (c8051f020.inc) ; Include register definition file.
ORG 0
AJMP main
ORG 5Bh ;比較器CP0上升沿中斷入口
AJMP CPT0R_ISR;
ORG 53h ;比較器CP0下降沿中斷入口
AJMP CPT0F_ISR
ORG 100H
main:
MOV WDTCN,#0DEH ;關看門狗
MOV WDTCN,#0ADH
LCALL PORT_Init ;初始化I/O口
LCALL CPT0_Init ;初始化比較器0
MOV P4,#0FH
SETB EA ;開總中斷
SJMP $
;初始化比較器0
CPT0_Init:
ORL EIE1,#30H ;比較器CP0上升沿/下降沿中斷允許,;允許CPRIF標志位(CPT0CN.5)的中斷請求.
;允許CP0FIF標志位(CPT0CN.4)的中斷請求.
MOV CPT0CN,#08FH ;使能中斷模式,設定+/-10mv 回差,請除中斷標志
ORL REF0CN,#03H ;使能內部參考電壓
RET
;初始化I/O口
PORT_Init:
MOV XBR2,#40H
MOV XBR0 , #80H; //將CP0輸出端引到P0.0腳
MOV XBR1 , #1H; //將CP1輸出端引到P0.1腳
ORL P74OUT,#03H ;P4口推挽輸出
;MOV P3MDOUT ,#20H; 使能P3.5推挽輸出
RET
;比較器CP0上升沿中斷服務子程序:CP0比較器的上升沿中斷鳴笛二次,
CPT0R_ISR:;CLR EA
ANL CPT0CN,#0CFH ;清中斷標志
MOV A,P4
CPL A
MOV P4,A
CLR P3.5
ACALL DELY ;鳴笛
ACALL DELY
SETB P3.5
ACALL DELY
CLR P3.5
ACALL DELY ;鳴笛
ACALL DELY
SETB P3.5
SETB EA
RETI
;比較器CP0下降沿服務子程序:CP0比較器的下降沿中斷鳴笛1次,
CPT0F_ISR:;CLR EA
ANL CPT0CN,#0CFH ;清中斷標志
MOV A,P4
CPL A
MOV P4,A
CLR P3.5
ACALL DELY ;鳴笛
SETB P3.5
SETB EA
RETI
DELY: MOV R7,#0
SS: MOV R6,#0
DJNZ R6,$
DJNZ R7,SS
RET
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -