?? 872.asm
字號:
.include "8535def.inc"
.org $000
rjmp RESET
rjmp EXT_INT0
RESET: ldi r16,low(ramend) ;棧指針置初值
out spl,r16
ldi r16,high(ramend)
out sph,r16
ldi r16,$ff ;定義C口為輸出
out ddrc,r16
ldi r16,$01 ;定義PD0為輸出,PD2為輸入
out ddrd,r16
sbi portd,0 ;先使PD0輸出為高
ldi r16,$02 ;定義INT0下降沿申請中斷
out mcucr,r16
clr r16 ;清中斷標志寄存器
out gifr,r16
ldi xh,$01 ;X指向打印緩沖區首址
ldi xl,$00
ldi r25,17 ;要打印的字符數
ld r24,x+ ;向打印機數據口送第一個字符
out portc,r24
cbi portd,0 ;發選通脈沖( )
rcall t1us
sbi portd,0
ldi r24,$40 ;使能INT0中斷
out gimsk,r24
sei ;開中斷
here: rjmp here
EXT_INT0:in r1,sreg ;保護標志寄存器
ld r24,x+ ;向打印機數據口送字符
out portc,r24
cbi portd,0 ;發選通脈沖( )
rcall t1us
sbi portd,0
dec r25 ;是否發完
brne ext_int01
ldi r24,$00 ;發完則關INT0中斷
out gimsk,r24
ext_int01:
out sreg,r1 ;恢復標志寄存器
reti
t1us: nop
ret
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -