📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile ..\1LED~1\main.c
0000 .dbfile C:\HJ-1G-AVR\1LED~1\main.c
0000 .dbfunc e Delay _Delay fV
0000 ; a -> R16
0000 ; b -> R18
.even
0000 _Delay::
0000 .dbline -1
0000 .dbline 13
0000 ; //开发环境:HJ-1G HJ-3G 开发板+AVR增强包套装
0000 ; //芯片:ATMEGA16A
0000 ; //编译器:ICCV7
0000 ; //编写:慧净电子
0000 ; //网址:WWW.HLMCU.COM QQ:121350852
0000 ; //HJ-1G/3G开发板上的8个LED灯前后流动
0000 ; //晶振:1M 12M
0000 ; #include <iom16v.h>
0000 ; #include <macros.h>
0000 ; //#include "iom16v.h"
0000 ; //#include "macros.h"
0000 ; void Delay()
0000 ; {
0000 .dbline 15
0000 ; unsigned char a, b;
0000 ; for (a = 1; a; a++)
0000 01E0 ldi R16,1
0002 06C0 xjmp L5
0004 L2:
0004 .dbline 16
0004 ; for (b = 1; b; b++)
0004 21E0 ldi R18,1
0006 01C0 xjmp L9
0008 L6:
0008 .dbline 17
0008 ; ;
0008 L7:
0008 .dbline 16
0008 2395 inc R18
000A L9:
000A .dbline 16
000A 2223 tst R18
000C E9F7 brne L6
000E X0:
000E L3:
000E .dbline 15
000E 0395 inc R16
0010 L5:
0010 .dbline 15
0010 0023 tst R16
0012 C1F7 brne L2
0014 X1:
0014 .dbline -2
0014 L1:
0014 .dbline 0 ; func end
0014 0895 ret
0016 .dbsym r a 16 c
0016 .dbsym r b 18 c
0016 .dbend
0016 .dbfunc e LED_On _LED_On fV
0016 ; i -> R10,R11
.even
0016 _LED_On::
0016 AA92 st -y,R10
0018 BA92 st -y,R11
001A 5801 movw R10,R16
001C .dbline -1
001C .dbline 21
001C ; }
001C ;
001C ; void LED_On(int i)
001C ; {
001C .dbline 22
001C ; PORTB = ~BIT(i); /* low output to turn LED on */
001C 01E0 ldi R16,1
001E 10E0 ldi R17,0
0020 9501 movw R18,R10
0022 0E940000 xcall lsl16
0026 1801 movw R2,R16
0028 2094 com R2
002A 3094 com R3
002C 28BA out 0x18,R2
002E .dbline 23
002E ; Delay();
002E E8DF xcall _Delay
0030 .dbline -2
0030 L10:
0030 .dbline 0 ; func end
0030 B990 ld R11,y+
0032 A990 ld R10,y+
0034 0895 ret
0036 .dbsym r i 10 I
0036 .dbend
0036 .dbfunc e main _main fV
0036 ; i -> R20,R21
.even
0036 _main::
0036 .dbline -1
0036 .dbline 27
0036 ; }
0036 ;
0036 ; void main()
0036 ; {
0036 .dbline 30
0036 ;
0036 ; int i;
0036 ; DDRB = 0xFF; /* output */
0036 8FEF ldi R24,255
0038 87BB out 0x17,R24
003A .dbline 31
003A ; PORTB = 0x55; /* all off */
003A 85E5 ldi R24,85
003C 88BB out 0x18,R24
003E 2AC0 xjmp L13
0040 L12:
0040 .dbline 37
0040 ; //PORTA|=BIT(PA4); //PA4输出高电平,WE拉高
0040 ; //PORTA&=~BIT(PA4); //PA4输出低电平,关掉HC573
0040 ; //DDRC|=BIT(PC7); //PC7设置为输出状态
0040 ; //PORTC&=~BIT(PC7); //PC7输出低电平,关掉HC573
0040 ; while (1)
0040 ; {
0040 .dbline 40
0040 ;
0040 ; /* forward march */
0040 ; for (i = 0; i < 8; i++)
0040 4427 clr R20
0042 5527 clr R21
0044 L15:
0044 .dbline 41
0044 ; LED_On(i);
0044 8A01 movw R16,R20
0046 E7DF xcall _LED_On
0048 L16:
0048 .dbline 40
0048 4F5F subi R20,255 ; offset = 1
004A 5F4F sbci R21,255
004C .dbline 40
004C 4830 cpi R20,8
004E E0E0 ldi R30,0
0050 5E07 cpc R21,R30
0052 C4F3 brlt L15
0054 X2:
0054 .dbline 43
0054 ; /* backward march */
0054 ; for (i = 8; i > 0; i--)
0054 48E0 ldi R20,8
0056 50E0 ldi R21,0
0058 L19:
0058 .dbline 44
0058 ; LED_On(i);
0058 8A01 movw R16,R20
005A DDDF xcall _LED_On
005C L20:
005C .dbline 43
005C 4150 subi R20,1
005E 5040 sbci R21,0
0060 .dbline 43
0060 2224 clr R2
0062 3324 clr R3
0064 2416 cp R2,R20
0066 3506 cpc R3,R21
0068 BCF3 brlt L19
006A X3:
006A .dbline 46
006A ; /* skip */
006A ; for (i = 0; i < 8; i += 2)
006A 4427 clr R20
006C 5527 clr R21
006E L23:
006E .dbline 47
006E ; LED_On(i);
006E 8A01 movw R16,R20
0070 D2DF xcall _LED_On
0072 L24:
0072 .dbline 46
0072 4E5F subi R20,254 ; offset = 2
0074 5F4F sbci R21,255
0076 .dbline 46
0076 4830 cpi R20,8
0078 E0E0 ldi R30,0
007A 5E07 cpc R21,R30
007C C4F3 brlt L23
007E X4:
007E .dbline 48
007E ; for (i = 7; i > 0; i -= 2)
007E 47E0 ldi R20,7
0080 50E0 ldi R21,0
0082 L27:
0082 .dbline 49
0082 ; LED_On(i);
0082 8A01 movw R16,R20
0084 C8DF xcall _LED_On
0086 L28:
0086 .dbline 48
0086 4250 subi R20,2
0088 5040 sbci R21,0
008A .dbline 48
008A 2224 clr R2
008C 3324 clr R3
008E 2416 cp R2,R20
0090 3506 cpc R3,R21
0092 BCF3 brlt L27
0094 X5:
0094 .dbline 50
0094 ; }
0094 L13:
0094 .dbline 36
0094 D5CF xjmp L12
0096 X6:
0096 .dbline -2
0096 L11:
0096 .dbline 0 ; func end
0096 0895 ret
0098 .dbsym r i 20 I
0098 .dbend
0098 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -