📄 shanshuodeng.lst
字号:
Interrupt Vectors
00000 940C 002A JMP __text_start|__start
Program Code (text area)
__text_start|__start:
0002A E5CF LDI R28,0x5F
0002B E0D4 LDI R29,4
0002C BFCD OUT 0x3D,R28
0002D BFDE OUT 0x3E,R29
0002E 51CE SUBI R28,0x1E
0002F 40D0 SBCI R29,0
00030 EA0A LDI R16,0xAA
00031 8308 ST Y,R16
00032 2400 CLR R0
00033 E6E0 LDI R30,0x60
00034 E0F0 LDI R31,0
00035 E010 LDI R17,0
00036 36E0 CPI R30,0x60
00037 07F1 CPC R31,R17
00038 F011 BEQ 0x003B
00039 9201 ST Z+,R0
0003A CFFB RJMP 0x0036
0003B 8300 ST Z,R16
0003C E5E4 LDI R30,0x54
0003D E0F0 LDI R31,0
0003E E6A0 LDI R26,0x60
0003F E0B0 LDI R27,0
00040 E010 LDI R17,0
00041 E000 LDI R16,0
00042 BF0B OUT 0x3B,R16
00043 35E4 CPI R30,0x54
00044 07F1 CPC R31,R17
00045 F021 BEQ 0x004A
00046 95C8 LPM
00047 9631 ADIW R30,1
00048 920D ST X+,R0
00049 CFF9 RJMP 0x0043
0004A 940E 0062 CALL _main
_exit:
0004C CFFF RJMP _exit
_delay:
i --> R20
j --> R22
ms --> R16
0004D 940E 0086 CALL push_xgsetF000
FILE: F:\51&av配套光盘\51&avr配套程序\avr程序\2流水灯\ssd.c
(0001)
(0002) #include <iom16v.h>
(0003) #include <macros.h>
(0004) #define uchar unsigned char
(0005) #define uint unsigned int
(0006) void delay(uint ms)
(0007) {
(0008) uint i,j;
(0009) for(i=0;i<ms;i++)
0004F 2744 CLR R20
00050 2755 CLR R21
00051 C00B RJMP 0x005D
(0010) {
(0011) for(j=0;j<1141;j++);
00052 2766 CLR R22
00053 2777 CLR R23
00054 C002 RJMP 0x0057
00055 5F6F SUBI R22,0xFF
00056 4F7F SBCI R23,0xFF
00057 3765 CPI R22,0x75
00058 E0E4 LDI R30,4
00059 077E CPC R23,R30
0005A F3D0 BCS 0x0055
0005B 5F4F SUBI R20,0xFF
0005C 4F5F SBCI R21,0xFF
0005D 1740 CP R20,R16
0005E 0751 CPC R21,R17
0005F F390 BCS 0x0052
00060 940C 008B JMP pop_xgsetF000
(0012) }
(0013) }
(0014) void main()
(0015) {
(0016) uchar k;
(0017) DDRA|=BIT(2);
_main:
k --> R20
00062 9AD2 SBI 0x1A,2
(0018) PORTA|=BIT(2);
00063 9ADA SBI 0x1B,2
(0019)
(0020) DDRA=0XFF;
00064 EF8F LDI R24,0xFF
00065 BB8A OUT 0x1A,R24
(0021) PORTA=0XFe;
00066 EF8E LDI R24,0xFE
00067 BB8B OUT 0x1B,R24
00068 C01B RJMP 0x0084
(0022) while(1)
(0023) {
(0024) for(k=0;k<8;k++)
00069 2744 CLR R20
0006A C017 RJMP 0x0082
(0025) {
(0026) PORTA&=~BIT(k);
0006B E001 LDI R16,1
0006C 2F14 MOV R17,R20
0006D 940E 0090 CALL lsl8
0006F 2E20 MOV R2,R16
00070 9420 COM R2
00071 B23B IN R3,0x1B
00072 2032 AND R3,R2
00073 BA3B OUT 0x1B,R3
(0027) delay(500);
00074 EF04 LDI R16,0xF4
00075 E011 LDI R17,1
00076 DFD6 RCALL _delay
(0028)
(0029) PORTA|=BIT(k);
00077 E001 LDI R16,1
00078 2F14 MOV R17,R20
00079 940E 0090 CALL lsl8
0007B B22B IN R2,0x1B
0007C 2A20 OR R2,R16
0007D BA2B OUT 0x1B,R2
(0030) delay(500);
FILE: <library>
0007E EF04 LDI R16,0xF4
0007F E011 LDI R17,1
00080 DFCC RCALL _delay
00081 9543 INC R20
00082 3048 CPI R20,0x8
00083 F338 BCS 0x006B
00084 CFE4 RJMP 0x0069
00085 9508 RET
push_xgsetF000:
00086 937A ST -Y,R23
00087 936A ST -Y,R22
00088 935A ST -Y,R21
00089 934A ST -Y,R20
0008A 9508 RET
pop_xgsetF000:
0008B 9149 LD R20,Y+
0008C 9159 LD R21,Y+
0008D 9169 LD R22,Y+
0008E 9179 LD R23,Y+
0008F 9508 RET
lsl8:
00090 2311 TST R17
00091 F019 BEQ 0x0095
00092 0F00 LSL R16
00093 951A DEC R17
00094 CFFB RJMP lsl8
00095 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -