📄 led.lst
字号:
__start:
__text_start:
0046 EFCF LDI R28,0xFF
0047 E1D0 LDI R29,0x10
0048 BFCD OUT 0x3D,R28
0049 BFDE OUT 0x3E,R29
004A 51C0 SUBI R28,0x10
004B 40D0 SBCI R29,0
004C EA0A LDI R16,0xAA
004D 8308 STD Y+0,R16
004E 2400 CLR R0
004F E0E0 LDI R30,0
0050 E0F1 LDI R31,1
0051 E011 LDI R17,1
0052 30E0 CPI R30,0
0053 07F1 CPC R31,R17
0054 F011 BEQ 0x0057
0055 9201 ST R0,Z+
0056 CFFB RJMP 0x0052
0057 8300 STD Z+0,R16
0058 E8EC LDI R30,0x8C
0059 E0F0 LDI R31,0
005A E0A0 LDI R26,0
005B E0B1 LDI R27,1
005C E010 LDI R17,0
005D 38EC CPI R30,0x8C
005E 07F1 CPC R31,R17
005F F021 BEQ 0x0064
0060 95C8 LPM
0061 9631 ADIW R30,1
0062 920D ST R0,X+
0063 CFF9 RJMP 0x005D
0064 940E0067 CALL _main
_exit:
0066 CFFF RJMP _exit
FILE: D:\avrvi\AVRVi_m128_Starter_Kit\LED\source\main.c
(0001) /************************************************
(0002) 文件:main.c
(0003) 用途:
(0004) 注意:内部8M晶振
(0005) 创建:2008.4.1
(0006) 修改:2008.4.1
(0007) Copy Right (c) www.avrvi.com AVR与虚拟仪器
(0008) ************************************************/
(0009)
(0010) #include <iom128v.h>
(0011) #include "lib\delay.h"
(0012) void main(void)
(0013) {
(0014) unsigned char i;
(0015) PORTE = 0xFF;
_main:
i --> R20
0067 EF8F LDI R24,0xFF
0068 B983 OUT 0x03,R24
(0016) DDRE = 0xFF;
0069 B982 OUT 0x02,R24
006A C010 RJMP 0x007B
(0017) while(1)
(0018) {
(0019) for(i=0;i<8;i++)
006B 2744 CLR R20
006C C00C RJMP 0x0079
(0020) {
(0021) PORTE = ~(1<<i);
006D E001 LDI R16,1
006E 2F14 MOV R17,R20
006F 940E00C9 CALL lsl8
0071 2E20 MOV R2,R16
0072 9420 COM R2
0073 B823 OUT 0x03,R2
(0022) delay_nms(300);
0074 E20C LDI R16,0x2C
0075 E011 LDI R17,1
0076 940E0098 CALL _delay_nms
0078 9543 INC R20
0079 3048 CPI R20,0x8
007A F390 BCS 0x006D
007B CFEF RJMP 0x006B
007C 9508 RET
FILE: D:\avrvi\AVRVi_m128_Starter_Kit\LED\source\lib\delay.c
(0001) /************************************************
(0002) 文件:delay.c
(0003) 用途:延时函数
(0004) 注意:系统时钟8M
(0005) 创建:2008.1.25
(0006) 修改:2008.1.25
(0007) Copy Right (c) www.avrvi.com AVR与虚拟仪器
(0008) ************************************************/
(0009)
(0010) void delay_1us(void) //1us延时函数
(0011) {
(0012) asm("nop");
_delay_1us:
007D 0000 NOP
007E 9508 RET
_delay_nus:
i --> R20
n --> R22
007F 940E00B0 CALL push_gset2
0081 01B8 MOVW R22,R16
(0013) }
(0014)
(0015) void delay_nus(unsigned int n) //N us延时函数
(0016) {
(0017) unsigned int i=0;
0082 2744 CLR R20
0083 2755 CLR R21
(0018) for (i=0;i<n;i++)
0084 C003 RJMP 0x0088
(0019) delay_1us();
0085 DFF7 RCALL _delay_1us
0086 5F4F SUBI R20,0xFF
0087 4F5F SBCI R21,0xFF
0088 1746 CP R20,R22
0089 0757 CPC R21,R23
008A F3D0 BCS 0x0085
008B 940E00A7 CALL pop_gset2
008D 9508 RET
(0020) }
(0021)
(0022) void delay_1ms(void) //1ms延时函数
(0023) {
(0024) unsigned int i;
(0025) for (i=0;i<1140;i++);
_delay_1ms:
i --> R16
008E 2700 CLR R16
008F 2711 CLR R17
0090 C002 RJMP 0x0093
0091 5F0F SUBI R16,0xFF
0092 4F1F SBCI R17,0xFF
0093 3704 CPI R16,0x74
0094 E0E4 LDI R30,4
0095 071E CPC R17,R30
0096 F3D0 BCS 0x0091
0097 9508 RET
_delay_nms:
i --> R20
n --> R22
0098 940E00B0 CALL push_gset2
009A 01B8 MOVW R22,R16
(0026) }
(0027)
(0028) void delay_nms(unsigned int n) //N ms延时函数
(0029) {
(0030) unsigned int i=0;
009B 2744 CLR R20
009C 2755 CLR R21
(0031) for (i=0;i<n;i++)
009D C003 RJMP 0x00A1
(0032) delay_1ms();
FILE: <library>
009E DFEF RCALL _delay_1ms
009F 5F4F SUBI R20,0xFF
00A0 4F5F SBCI R21,0xFF
00A1 1746 CP R20,R22
00A2 0757 CPC R21,R23
00A3 F3D0 BCS 0x009E
00A4 940E00A7 CALL pop_gset2
00A6 9508 RET
pop_gset2:
00A7 E0E2 LDI R30,2
00A8 940C00B6 JMP pop
push_gset5:
00AA 92FA ST R15,-Y
00AB 92EA ST R14,-Y
push_gset4:
00AC 92DA ST R13,-Y
00AD 92CA ST R12,-Y
push_gset3:
00AE 92BA ST R11,-Y
00AF 92AA ST R10,-Y
push_gset2:
00B0 937A ST R23,-Y
00B1 936A ST R22,-Y
push_gset1:
00B2 935A ST R21,-Y
00B3 934A ST R20,-Y
00B4 9508 RET
pop_gset1:
00B5 E0E1 LDI R30,1
pop:
00B6 9149 LD R20,Y+
00B7 9159 LD R21,Y+
00B8 FDE0 SBRC R30,0
00B9 9508 RET
00BA 9169 LD R22,Y+
00BB 9179 LD R23,Y+
00BC FDE1 SBRC R30,1
00BD 9508 RET
00BE 90A9 LD R10,Y+
00BF 90B9 LD R11,Y+
00C0 FDE2 SBRC R30,2
00C1 9508 RET
00C2 90C9 LD R12,Y+
00C3 90D9 LD R13,Y+
00C4 FDE3 SBRC R30,3
00C5 9508 RET
00C6 90E9 LD R14,Y+
00C7 90F9 LD R15,Y+
00C8 9508 RET
lsl8:
00C9 2311 TST R17
00CA F019 BEQ 0x00CE
00CB 0F00 LSL R16
00CC 951A DEC R17
00CD CFFB RJMP lsl8
00CE 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -