📄 8字循环.asm
字号:
;在SL-AVR开发实验器LED上实现字符8的循环移位显示程序
;请你 1.如何修改字形; 2.改变字符个数,二位或三位或一隔一显示;
;3. 改变字形移动方向; 4.改变字符移位速度;
;
.include"8515def.inc" ;器件配置文件
.def temp=r16 ;数据暂存器
.def scndp=r22 ;LED显示位置暂存器
.org $0000
rjmp reset
.org $030
reset: ldi temp,low(ramend) ;设置堆栈指针。
out spl,temp
ldi temp,high(ramend)
out sph,temp
ldi temp,$ff ;设置B、D口输出。
out ddrb,temp
out ddrd,temp
out portd,temp
ldi temp,$7f ;字形8的代码为$7F(可修改)。
out portb,temp
again: sec ;置进位位为1(低电平LED亮,高电平LED灭)
ldi scndp,0b11011111 ;扫描显示SCANDP(可修改)
route: out portd,scndp ;从LED最左一位(D5)右移(可修改)
ldi temp,$40 ;设置延时常数(可修改)。
rcall delay ;调用延时
ror scndp ;右循环(可修改)
brcc again ;显示下一位
rjmp route ;循环显示
delay: push temp ;延时子程序。
m1: push temp
m2: push temp
m3: dec temp
brne m3
pop temp
dec temp
brne m2
pop temp
dec temp
brne m1
pop temp
dec temp
brne delay
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -