📄 dip40.asm
字号:
;测试验证DIP40器件I/O口输出及SL-AVRAD开发下载实验器
.include "8535def.inc" ;文件头
.org $0000
rjmp RESET ;Reset Handle
.def temp =r20
.def zh =r31
.org $0010 ;跳过中断区
RESET:
ldi r16,high(RAMEND) ;设堆栈
out SPH,r16 ;
ldi r16,low(RAMEND)
out SPL,r16
ser temp ;直接装入$FF,
out DDRA, temp ;口的方向寄存器设定,为输出
out DDRB, temp
out DDRC, temp
out DDRD, temp
forever:
clr temp ;硬件设低电平LED灯亮
out PORTA, temp ;PORTA口LED灯亮
out PORTB, temp ;B口LED灯亮
out PORTC, temp ;C口LED灯亮
out PORTD, temp ;D口LED灯亮
ldi temp,0X46 ;装延时常数(十进制),灯亮延时1秒,
;可修改该参数,应另存一个文件名
rcall delay ;调用延时子程序
ser temp ;硬件设高电平LED灯灭
out PORTA, temp ;PORTA口LED灯灭
out PORTB, temp ;B口LED灯灭
out PORTC, temp ;C口LED灯灭
out PORTD, temp ;D口LED灯灭
ldi temp,0X38 ;装延时常数,灯灭延时0.5秒,可修改该参数
rcall delay ;调用延时子程序
rjmp forever ;无限循环
delay: push r16 ;2t延时子程序
l0: push r16 ;2t
l1: push r16 ;2t
l2: push r16 ;2t
l3: dec r16 ;1t
brne l3 ;1t/2t
pop r16 ;2t
dec r16 ;1t
brne l2 ;1t/2t
pop r16 ;2t
dec r16 ;1t
brne l1 ;1t/2t
pop r16 ;2t
dec r16 ;1t
brne l0 ;1T/2T
pop r16 ;2t
ret ;4t
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -