📄 light.s
字号:
.module Light.c
.area code(ram, con, rel)
.area lit(rom, con, rel)
_numTable::
.word 219
.word 80
.word 31
.word 93
.word 212
.word 205
.word 207
.word 88
.word 223
.word 221
.word 0
.word 255
.dbfile G:\Mega8程序\TCXO评估板\LedShow\Light.c
.dbsym e numTable _numTable A[24:12]ki
.area data(ram, con, rel)
.dbfile G:\Mega8程序\TCXO评估板\LedShow\Light.c
.area text(rom, con, rel)
.dbfile G:\Mega8程序\TCXO评估板\LedShow\Light.c
.dbfunc e led_init _led_init fV
.even
_led_init::
.dbline -1
.dbline 13
; #include <macros.h>
; #include <iom8v.h>
;
; #pragma data:code
; const unsigned numTable[]={0b11011011,0b01010000,//"0"、"1"
; 0b00011111,0b01011101,//"2"、"3"
; 0b11010100,0b11001101,//"4"、"5"
; 0b11001111,0b01011000,//"6"、"7"
; 0b11011111,0b11011101,//"8"、"9"
; 0b00000000,0b11111111};//全熄灭、全亮
; #pragma data:data
; void led_init(void)
; {
.dbline 14
; DDRB=0xff;
ldi R24,255
out 0x17,R24
.dbline 15
; PORTB=0xff;
out 0x18,R24
.dbline 16
; DDRD=0xff;
out 0x11,R24
.dbline 17
; PORTD=0xff;
out 0x12,R24
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbend
.dbfunc e spark _spark fV
; num -> R22
; pos -> R20
.even
_spark::
rcall push_gset2
mov R22,R18
mov R20,R16
.dbline -1
.dbline 21
; }
; /*点亮pos位,数字为num*/
; void spark(unsigned char pos,unsigned char num)
; {
.dbline 22
; PORTB=numTable[num];
ldi R24,2
mul R24,R22
movw R30,R0
ldi R24,<_numTable
ldi R25,>_numTable
add R30,R24
adc R31,R25
lpm R0,Z+
lpm R1,Z
movw R30,R0
out 0x18,R30
.dbline 23
; PORTD=(1<<pos);
ldi R16,1
mov R17,R20
rcall lsl8
out 0x12,R16
.dbline -2
L2:
rcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r num 22 c
.dbsym r pos 20 c
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -