📄 horselight.lst
字号:
__start:
__text_start:
2A E5CF LDI R28,0x5F
2B E0D4 LDI R29,4
2C BFCD OUT 0x3D,R28
2D BFDE OUT 0x3E,R29
2E 51CE SUBI R28,0x1E
2F 40D0 SBCI R29,0
30 EA0A LDI R16,0xAA
31 8308 STD Y+0,R16
32 2400 CLR R0
33 E6E0 LDI R30,0x60
34 E0F0 LDI R31,0
35 E010 LDI R17,0
36 36E0 CPI R30,0x60
37 07F1 CPC R31,R17
38 F011 BEQ 0x003B
39 9201 ST R0,Z+
3A CFFB RJMP 0x0036
3B 8300 STD Z+0,R16
3C E5E4 LDI R30,0x54
3D E0F0 LDI R31,0
3E E6A0 LDI R26,0x60
3F E0B0 LDI R27,0
40 E010 LDI R17,0
41 E000 LDI R16,0
42 BF0B OUT 0x3B,R16
43 35E4 CPI R30,0x54
44 07F1 CPC R31,R17
45 F021 BEQ 0x004A
46 95C8 LPM
47 9631 ADIW R30,1
48 920D ST R0,X+
49 CFF9 RJMP 0x0043
4A 940E 00BB CALL _main
_exit:
4C CFFF RJMP _exit
FILE: F:\ziliao\新建文件夹\horselight_icc\cfile\delay.c
(0001) #define DELAY_C
(0002) #include "includes.h"
(0003) #define XTAL 4 //晶振频率,单位MHz
(0004) void delay_1us(void) //1us延时函数
(0005) {
(0006) asm("nop");
_delay_1us:
4D 0000 NOP
4E 9508 RET
_delay_nus:
i --> R20
n --> R10
4F 940E 00E0 CALL push_xgset300C
51 0158 MOVW R10,R16
(0007) }
(0008)
(0009) void delay_nus(unsigned int n) //N us延时函数
(0010) {
(0011) unsigned int i=0;
(0012) for (i=0;i<n;i++)
52 2744 CLR R20
53 2755 CLR R21
54 C003 RJMP 0x0058
(0013) delay_1us();
55 DFF7 RCALL _delay_1us
56 5F4F SUBI R20,0xFF
57 4F5F SBCI R21,0xFF
58 154A CP R20,R10
59 055B CPC R21,R11
5A F3D0 BCS 0x0055
5B 940C 00E5 JMP pop_xgset300C
(0014) }
(0015)
(0016) void delay_1ms(void) //1ms延时函数
(0017) {
(0018) unsigned int i;
(0019) for (i=0;i<(unsigned int)(XTAL*143-2);i++);
_delay_1ms:
i --> R16
5D 2700 CLR R16
5E 2711 CLR R17
5F C002 RJMP 0x0062
60 5F0F SUBI R16,0xFF
61 4F1F SBCI R17,0xFF
62 E38A LDI R24,0x3A
63 E092 LDI R25,2
64 1708 CP R16,R24
65 0719 CPC R17,R25
66 F3C8 BCS 0x0060
67 9508 RET
_delay_nms:
i --> R20
n --> R10
68 940E 00E0 CALL push_xgset300C
6A 0158 MOVW R10,R16
(0020) }
(0021)
(0022) void delay_nms(unsigned int n) //N ms延时函数
(0023) {
(0024) unsigned int i=0;
(0025) for (i=0;i<n;i++)
6B 2744 CLR R20
6C 2755 CLR R21
6D C003 RJMP 0x0071
(0026) {
(0027) delay_1ms();
6E DFEE RCALL _delay_1ms
6F 5F4F SUBI R20,0xFF
70 4F5F SBCI R21,0xFF
71 154A CP R20,R10
72 055B CPC R21,R11
73 F3D0 BCS 0x006E
74 940C 00E5 JMP pop_xgset300C
_horse:
i --> R16
76 934A ST R20,-Y
77 935A ST R21,-Y
FILE: F:\ziliao\新建文件夹\horselight_icc\cfile\horse.c
(0001) #define HORSE_C
(0002) #include "includes.h"
(0003) void horse(unsigned char i)
(0004) {
(0005) switch(i)
78 2F40 MOV R20,R16
79 2755 CLR R21
7A 3040 CPI R20,0
7B 0745 CPC R20,R21
7C F109 BEQ 0x009E
7D 3041 CPI R20,1
7E E0E0 LDI R30,0
7F 075E CPC R21,R30
80 F101 BEQ 0x00A1
81 3042 CPI R20,2
82 E0E0 LDI R30,0
83 075E CPC R21,R30
84 F0F9 BEQ 0x00A4
85 3043 CPI R20,3
86 E0E0 LDI R30,0
87 075E CPC R21,R30
88 F0F1 BEQ 0x00A7
89 3044 CPI R20,4
8A E0E0 LDI R30,0
8B 075E CPC R21,R30
8C F0E9 BEQ 0x00AA
8D 3045 CPI R20,5
8E E0E0 LDI R30,0
8F 075E CPC R21,R30
90 F0E1 BEQ 0x00AD
91 3046 CPI R20,6
92 E0E0 LDI R30,0
93 075E CPC R21,R30
94 F0D9 BEQ 0x00B0
95 3047 CPI R20,7
96 E0E0 LDI R30,0
97 075E CPC R21,R30
98 F0D1 BEQ 0x00B3
99 3048 CPI R20,0x8
9A E0E0 LDI R30,0
9B 075E CPC R21,R30
9C F0C9 BEQ 0x00B6
9D C01A RJMP 0x00B8
(0006) {
(0007) case 0:
(0008) OutPort = 0x00;
9E 2422 CLR R2
9F BA2B OUT 0x1B,R2
(0009) break;
A0 C017 RJMP 0x00B8
(0010) case 1:
(0011) OutPort = 0x01;
A1 E081 LDI R24,1
A2 BB8B OUT 0x1B,R24
(0012) break;
A3 C014 RJMP 0x00B8
(0013) case 2:
(0014) OutPort = 0x03;
A4 E083 LDI R24,3
A5 BB8B OUT 0x1B,R24
(0015) break;
A6 C011 RJMP 0x00B8
(0016) case 3:
(0017) OutPort = 0x07;
A7 E087 LDI R24,7
A8 BB8B OUT 0x1B,R24
(0018) break;
A9 C00E RJMP 0x00B8
(0019) case 4:
(0020) OutPort = 0x0f;
AA E08F LDI R24,0xF
AB BB8B OUT 0x1B,R24
(0021) break;
AC C00B RJMP 0x00B8
(0022) case 5:
(0023) OutPort = 0x1f;
AD E18F LDI R24,0x1F
AE BB8B OUT 0x1B,R24
(0024) break;
AF C008 RJMP 0x00B8
(0025) case 6:
(0026) OutPort = 0x3f;
B0 E38F LDI R24,0x3F
B1 BB8B OUT 0x1B,R24
(0027) break;
B2 C005 RJMP 0x00B8
(0028) case 7:
(0029) OutPort = 0x7f;
B3 E78F LDI R24,0x7F
B4 BB8B OUT 0x1B,R24
(0030) break;
B5 C002 RJMP 0x00B8
(0031) case 8:
(0032) OutPort = 0xff;
B6 EF8F LDI R24,0xFF
B7 BB8B OUT 0x1B,R24
(0033) break;
(0034) default:
(0035) break;
B8 9159 LD R21,Y+
B9 9149 LD R20,Y+
BA 9508 RET
FILE: F:\ziliao\新建文件夹\horselight_icc\cfile\main.c
(0001) #define MAIN_C
(0002) #include "includes.h"
(0003)
(0004) void main(void)
(0005) {
(0006) unsigned char i;
(0007) DDRA = 0xff; //端口设置:PA设置为推挽1输出
_main:
i --> R20
BB EF8F LDI R24,0xFF
BC BB8A OUT 0x1A,R24
(0008) PORTA = 0xff;
BD BB8B OUT 0x1B,R24
(0009) PORTA = 0x00; //PORTA初始值为0,熄灭所有的LED
BE 2422 CLR R2
BF BA2B OUT 0x1B,R2
(0010) delay_nms(100);
C0 E604 LDI R16,0x64
C1 E010 LDI R17,0
C2 940E 0068 CALL _delay_nms
C4 C019 RJMP 0x00DE
(0011) while(1)
(0012) {
(0013) for(i=0;i<9;i++)
C5 2744 CLR R20
C6 C008 RJMP 0x00CF
(0014) {
(0015) horse(i);
C7 2F04 MOV R16,R20
C8 940E 0076 CALL _horse
(0016) delay_nms(200);
CA EC08 LDI R16,0xC8
CB E010 LDI R17,0
CC 940E 0068 CALL _delay_nms
CE 9543 INC R20
CF 3049 CPI R20,0x9
D0 F3B0 BCS 0x00C7
(0017) }
(0018) for(i=7;i>0;i--)
D1 E047 LDI R20,7
D2 C008 RJMP 0x00DB
(0019) {
(0020) horse(i);
D3 2F04 MOV R16,R20
D4 940E 0076 CALL _horse
(0021) delay_nms(200);
FILE: <library>
D6 EC08 LDI R16,0xC8
D7 E010 LDI R17,0
D8 940E 0068 CALL _delay_nms
DA 954A DEC R20
DB E080 LDI R24,0
DC 1784 CP R24,R20
DD F3A8 BCS 0x00D3
DE CFE6 RJMP 0x00C5
DF 9508 RET
push_xgset300C:
E0 935A ST R21,-Y
E1 934A ST R20,-Y
E2 92BA ST R11,-Y
E3 92AA ST R10,-Y
E4 9508 RET
pop_xgset300C:
E5 90A9 LD R10,Y+
E6 90B9 LD R11,Y+
E7 9149 LD R20,Y+
E8 9159 LD R21,Y+
E9 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -