?? b11-2.asm
字號:
;PROGRAM NAME B11-2.ASM
MS10 EQU 9217 ;APPROXIMATELY 10MS INTERRUPR
INTR_CNT EQU 30H ;CNT STORIAGE
;
SCOPE REG P3.3 ;CHECK BY SCOPE
BUZZER REG P3.4
LED REG P3.7
;
ORG 0000H
JMP START
ORG 0003H ;[DISABLE] EXTERNAL INT0 INTERRUPT
RETI
ORG 000BH ;[ENABLE] TIMER0 OVERFLOW INTERRUPT
JMP T0_ISR
;
ORG 0013H
RETI ;[DISABLE] EXTERNAL INT1 INTERRUPT
ORG 001BH
RETI ;[DISABLE] TIMER1 OVERFLOW INTERRUPT
ORG 0023H
RETI ;[DISABLE] SERIAL INTERRUPT
;
ORG 30H
START MOV R0,#00H
DJNZ R0,$ ;DELAY A WHILE
MOV SP,#60H
MOV P1,#FFH
MOV P3,#FFH
MOV INTR_CNT,#00H
CLR BUZZER ;P3.4=0,BUZZER OFF
CLR LED ;P3.7=0,LED OFF
;
CALL SET_TMR0
$LOOP SJMP $LOOP
;
T0_ISR SETB SCOPE
MOV TH0,#(65536-MS10) / 256 ;RELOAD TH0
MOV TL0,#(65536-MS10) .MOD. 256
PUSH A
MOV A,INTR_CNT
CJNE A,#10,$1
$1 JNC $2
SETB BUZZER
SJMP $3
$2 CLR BUZZER
$3 INC INTR_CNT
MOV A,INTR_CNT
CJNE A,#100,$T0_END
MOV INTR_CNT,#00H
$T0_END POP A
CLR SCOPE
RETI
;
SET_TMR0
MOV A,#01H ;TIMER MODE 1
MOV TMOD,A
MOV TH0,#(65536-MS10) / 256 ;RELOAD TH0
MOV TL0,#(65536-MS10) .MOD. 256
CLR TF0 ;CLEAR TIMER0 FLAG
SETB TR0 ;TIMER0 START COUNT
SETB ET0 ;ENABLE TIMER0 INTERRUPT
SETB EA ;ENABLE SYSTEM INTERRUPT
RET
;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -