📄 zhongduanshanshuo.lst
字号:
__text_start:
__start:
2B E5CF LDI R28,0x5F
2C E0D4 LDI R29,4
2D BFCD OUT 0x3D,R28
2E BFDE OUT 0x3E,R29
2F 51C0 SUBI R28,0x10
30 40D0 SBCI R29,0
31 EA0A LDI R16,0xAA
32 8308 STD Y+0,R16
33 2400 CLR R0
34 E6E1 LDI R30,0x61
35 E0F0 LDI R31,0
36 E010 LDI R17,0
37 36E1 CPI R30,0x61
38 07F1 CPC R31,R17
39 F011 BEQ 0x003C
3A 9201 ST R0,Z+
3B CFFB RJMP 0x0037
3C 8300 STD Z+0,R16
3D E5E4 LDI R30,0x54
3E E0F0 LDI R31,0
3F E6A0 LDI R26,0x60
40 E0B0 LDI R27,0
41 E010 LDI R17,0
42 E000 LDI R16,0
43 BF0B OUT 0x3B,R16
44 35E5 CPI R30,0x55
45 07F1 CPC R31,R17
46 F021 BEQ 0x004B
47 95C8 LPM
48 9631 ADIW R30,1
49 920D ST R0,X+
4A CFF9 RJMP 0x0044
4B 940E 0069 CALL _main
_exit:
4D CFFF RJMP _exit
_miao:
4E 922A ST R2,-Y
4F 938A ST R24,-Y
50 939A ST R25,-Y
51 B62F IN R2,0x3F
52 922A ST R2,-Y
FILE: G:\学习\avr\天祥电子AVR视频教程\chengxu\zhongduanshanshuo\zhongduanshanshuo.c
(0001) #include <iom16v.h>
(0002) #include <macros.h>
(0003) #define uchar unsigned char
(0004) #define uint unsigned int
(0005) uchar num=0;
(0006) #pragma interrupt_handler miao:9
(0007)
(0008) void miao()
(0009) {
(0010) if(num==60)
53 9180 0060 LDS R24,num
55 338C CPI R24,0x3C
56 F419 BNE 0x005A
(0011) num=0;
57 2422 CLR R2
58 9220 0060 STS num,R2
(0012) num++;
5A 9180 0060 LDS R24,num
5C 5F8F SUBI R24,0xFF
5D 9380 0060 STS num,R24
(0013) TCNT1H=0XC2;
5F EC82 LDI R24,0xC2
60 BD8D OUT 0x2D,R24
(0014) TCNT1L=0XF6;
61 EF86 LDI R24,0xF6
62 BD8C OUT 0x2C,R24
63 9029 LD R2,Y+
64 BE2F OUT 0x3F,R2
65 9199 LD R25,Y+
66 9189 LD R24,Y+
67 9029 LD R2,Y+
68 9518 RETI
(0015) }
(0016) void main()
(0017) {
(0018) DDRA|=BIT(0);//中断时使用的管脚
_main:
69 9AD0 SBI 0x1A,0
(0019) TCCR1B=0X04;//T/C1控制寄存器B
6A E084 LDI R24,4
6B BD8E OUT 0x2E,R24
(0020) TCNT1H=0XC2;//计数寄存器(高位)
6C EC82 LDI R24,0xC2
6D BD8D OUT 0x2D,R24
(0021) TCNT1L=0XF6;//计数寄存器(低位)
6E EF86 LDI R24,0xF6
6F BD8C OUT 0x2C,R24
(0022) TIMSK|=BIT(2);//T/C1中断屏蔽寄存器
70 B789 IN R24,0x39
71 6084 ORI R24,4
72 BF89 OUT 0x39,R24
(0023) SREG|=BIT(7);//总中断
73 9478 BSET 7
74 C00A RJMP 0x007F
(0024)
(0025) while(1)
(0026) {
(0027) if(num%2==0)PORTA|=BIT(0);
75 E012 LDI R17,2
76 9100 0060 LDS R16,num
78 940E 0081 CALL mod8u
7A 2300 TST R16
7B F411 BNE 0x007E
7C 9AD8 SBI 0x1B,0
7D C001 RJMP 0x007F
(0028) else PORTA&=~BIT(0);
FILE: <library>
7E 98D8 CBI 0x1B,0
7F CFF5 RJMP 0x0075
80 9508 RET
mod8u:
81 9468 BSET 6
82 C001 RJMP xdiv8u
div8u:
83 94E8 BCLR 6
xdiv8u:
84 932A ST R18,-Y
85 92FA ST R15,-Y
86 92EA ST R14,-Y
87 24FF CLR R15
88 24EE CLR R14
89 E120 LDI R18,0x10
8A 0F00 LSL R16
8B 1CFF ROL R15
8C 1CEE ROL R14
8D 16E1 CP R14,R17
8E F010 BCS 0x0091
8F 1AE1 SUB R14,R17
90 9503 INC R16
91 952A DEC R18
92 F7B9 BNE 0x008A
93 F40E BRTC 0x0095
94 2D0E MOV R16,R14
95 90E9 LD R14,Y+
96 90F9 LD R15,Y+
97 9129 LD R18,Y+
98 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -