📄 sg2.asm
字号:
.device AT90S8535
.equ sph =$3E
.equ spl =$3D
.equ PORTB =$18
.equ DDRB =$17
.equ PINB =$16
.equ PORTC =$15
.equ DDRC =$14
.equ PINC =$13
.equ PORTD =$12
.equ DDRD =$11
.def ZH =r31
.def ZL =r30
rjmp reset
tab: .db $3f,$06,$5b,$4f,$66,$6d,$7d,$07,$7f,$6f
;7段码表
reset: ldi r16,$02 ;栈指针置初值
out sph,r16
ldi r16,$5f
out spl,r16
ldi r16,0 ;定义B口输入带上拉
out ddrb,r16
ldi r16,$ff
out portb,r16
out ddrc,r16 ;定义C口、D口为输出
out ddrd,r16
in r16,pinb ;读B口引脚
com r16 ;取反
mov r17,r16
andi r16,$0f ;取个位BCD码
swap r17 ;半字节交换
andi r17,$0f ;取十位BCD码
ldi ZH,high(tab*2) ;查个位7段码
ldi ZL,low(tab*2)
add ZL,r16
lpm
out portc,r0 ;送D口静态输出
ldi ZH,high(tab*2)
ldi ZL,low(tab*2)
add ZL,r17
lpm
out portd,r0
rjmp reset
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -