872.asm
来自「单片机开发资料光盘-双龙-686M.zip」· 汇编 代码 · 共 46 行
ASM
46 行
.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 + =
减小字号Ctrl + -
显示快捷键?