📄 1.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 005D CALL _main
_exit:
4C CFFF RJMP _exit
_delay_ms:
b --> R20
i --> R16
4D 934A ST R20,-Y
FILE: D:\16实验程序\延时试验\s_ms.c
(0001) #include "iom16v.h"
(0002)
(0003) //延时函数
(0004) //在1MHz时产生1mS的延时
(0005) void delay_ms(unsigned int i)
(0006) {
4E C005 RJMP 0x0054
(0007) unsigned char b;
(0008) while (i --)
(0009) {
(0010) for (b = 1; b; b++)
4F E041 LDI R20,1
50 C001 RJMP 0x0052
51 9543 INC R20
52 2344 TST R20
53 F7E9 BNE 0x0051
54 0118 MOVW R2,R16
55 5001 SUBI R16,1
56 4010 SBCI R17,0
57 2022 TST R2
58 F7B1 BNE 0x004F
59 2033 TST R3
5A F7A1 BNE 0x004F
5B 9149 LD R20,Y+
5C 9508 RET
(0011) { ; }
(0012) }
(0013) }
(0014)
(0015) main()
(0016) {
(0017) DDRD=0xff;
_main:
5D EF8F LDI R24,0xFF
5E BB81 OUT 0x11,R24
5F C00A RJMP 0x006A
(0018) //在端口d产生100Hz的信号
(0019) while(1)
(0020) {
(0021) PORTD=0xff;
60 EF8F LDI R24,0xFF
61 BB82 OUT 0x12,R24
(0022) delay_ms(5);
62 E005 LDI R16,5
63 E010 LDI R17,0
64 DFE8 RCALL _delay_ms
(0023) PORTD=0x00;
65 2422 CLR R2
66 BA22 OUT 0x12,R2
(0024) delay_ms(5);
FILE: <library>
67 E005 LDI R16,5
68 E010 LDI R17,0
69 DFE3 RCALL _delay_ms
6A CFF5 RJMP 0x0060
6B 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -