|
;*****PD0 PD1 PD3 PB0***********
;*******************************
.include "1200def.inc" ;文件頭,
.org $0000 ;org是一條偽指令
rjmp RESET ;RESET Handle
.org $0005 ;$0000地址之后是中斷向量區(qū),跳過中斷區(qū)。中斷與中斷向量將在
RESET: ldi r16,0XF0 ;1111 0000
out ddrd,R16
ldi r16,0X02 ;0000 0010
out ddrb,R16 ;PB1為蜂鳴器輸出
ldi r16,0XFF ;1111 1111
out PORTD,r16
out PORTB,r16
out PINB,r16
out PIND,r16
START: sbic PINB,0
RJMP STA
RCALL DEL
sbic PINB,0
RJMP STA
;*********檢測蜂鳴器*************
cbi PORTB,1;OPEN
RCALL DELAY
sbi PORTB,1;OFF
;********TIME=1******************
STA: sbic PIND,0
RJMP STB
RCALL DEL
sbic PIND,0
RJMP STB
cbi PORTB,1;OPEN
RCALL DELAY
sbi PORTB,1;OFF
RCALL DELAY
cbi PORTB,1;OPEN
RCALL DELAY
sbi PORTB,1;OFF
;********TIME=2******************
STB: sbic PIND,1
RJMP STC
RCALL DEL
sbic PIND,1
RJMP STC
;*********檢測蜂鳴器*************
cbi PORTB,1;OPEN
RCALL DELAY
sbi PORTB,1;OFF
RCALL DELAY
cbi PORTB,1;OPEN
RCALL DELAY
sbi PORTB,1;OFF
RCALL DELAY
cbi PORTB,1;OPEN
RCALL DELAY
sbi PORTB,1;OFF
RCALL DELAY
;********TIME=3******************
STC: sbic PIND,3
RJMP START
RCALL DEL
sbic PIND,3
RJMP START
cbi PORTB,1;OPEN
RCALL DELAY
sbi PORTB,1;OFF
RCALL DELAY
cbi PORTB,1;OPEN
RCALL DELAY
sbi PORTB,1;OFF
RCALL DELAY
cbi PORTB,1;OPEN
RCALL DELAY
sbi PORTB,1;OFF
RCALL DELAY
RCALL DELAY
cbi PORTB,1;OPEN
RCALL DELAY
sbi PORTB,1;OFF
RCALL DELAY
RJMP START
DELAY: LDI R29,0Xff
DE1: LDI R30,0Xff
DE2: LDI R31,0X0A
DE3: DEC R31
BRNE DE3
DEC R30
BRNE DE2
DEC R29
BRNE DE1
RET
DEL: LDI R29,0XFF
DELL: DEC R29
BRNE DELL
RET
|
|