⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lis

📁 很实用的单片机例程
💻 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 + -