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

📄 example2.lis

📁 AVR单片机C语言编程及应用实例 适合初学者的学习研究 其中包含Atmega16中文资料及Protel部分电路图
💻 LIS
字号:
                        .module example2.c
                        .area text(rom, con, rel)
 0000                   .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\example\example2.c
 0000                   .dbfunc e delay _delay fV
 0000           ;              i -> R20,R21
 0000           ;              j -> R22,R23
 0000           ;             ms -> R16,R17
                        .even
 0000           _delay::
 0000 0E940000          xcall push_xgsetF000
 0004                   .dbline -1
 0004                   .dbline 5
 0004           ; #include <iom16v.h>
 0004           ; #include <macros.h>
 0004           ; 
 0004           ; void delay(int ms)
 0004           ; {
 0004                   .dbline 7
 0004           ;     int i,j;
 0004           ;       for(i=0;i<ms;i++)
 0004 4427              clr R20
 0006 5527              clr R21
 0008 0AC0              xjmp L5
 000A           L2:
 000A                   .dbline 8
 000A           ;          for(j=0;j<1141;j++);
 000A 6627              clr R22
 000C 7727              clr R23
 000E           L6:
 000E                   .dbline 8
 000E           L7:
 000E                   .dbline 8
 000E 6F5F              subi R22,255  ; offset = 1
 0010 7F4F              sbci R23,255
 0012                   .dbline 8
 0012 6537              cpi R22,117
 0014 E4E0              ldi R30,4
 0016 7E07              cpc R23,R30
 0018 D4F3              brlt L6
 001A           X0:
 001A           L3:
 001A                   .dbline 7
 001A 4F5F              subi R20,255  ; offset = 1
 001C 5F4F              sbci R21,255
 001E           L5:
 001E                   .dbline 7
 001E 4017              cp R20,R16
 0020 5107              cpc R21,R17
 0022 9CF3              brlt L2
 0024           X1:
 0024                   .dbline -2
 0024           L1:
 0024                   .dbline 0 ; func end
 0024 0C940000          xjmp pop_xgsetF000
 0028                   .dbsym r i 20 I
 0028                   .dbsym r j 22 I
 0028                   .dbsym r ms 16 I
 0028                   .dbend
 0028                   .dbfunc e main _main fV
 0028           ;              l -> R22
 0028           ;              k -> R20
                        .even
 0028           _main::
 0028                   .dbline -1
 0028                   .dbline 12
 0028           ;        
 0028           ; }
 0028           ; void main()
 0028           ; {
 0028                   .dbline 14
 0028           ;    
 0028           ;    DDRA=0XFF;PORTA=0X00;
 0028 8FEF              ldi R24,255
 002A 8ABB              out 0x1a,R24
 002C                   .dbline 14
 002C 2224              clr R2
 002E 2BBA              out 0x1b,R2
 0030                   .dbline 15
 0030           ;    DDRC=0X01;PORTC=0X01;
 0030 81E0              ldi R24,1
 0032 84BB              out 0x14,R24
 0034                   .dbline 15
 0034 85BB              out 0x15,R24
 0036 6BC0              xjmp L12
 0038           L11:
 0038                   .dbline 17
 0038           ;    while(1)
 0038           ;    {
 0038                   .dbline 19
 0038           ;       char k,l;
 0038           ;         for(l=2;l>0;l--)
 0038 62E0              ldi R22,2
 003A 40C0              xjmp L17
 003C           L14:
 003C                   .dbline 20
 003C           ;         {
 003C                   .dbline 21
 003C           ;          for(k=0;k<8;k++)
 003C 4427              clr R20
 003E 1BC0              xjmp L21
 0040           L18:
 0040                   .dbline 22
 0040           ;              {
 0040                   .dbline 23
 0040           ;               PORTA|=BIT(k);
 0040 01E0              ldi R16,1
 0042 142F              mov R17,R20
 0044 0E940000          xcall lsl8
 0048 2BB2              in R2,0x1b
 004A 202A              or R2,R16
 004C 2BBA              out 0x1b,R2
 004E                   .dbline 24
 004E           ;                         PORTC=0X00;
 004E 2224              clr R2
 0050 25BA              out 0x15,R2
 0052                   .dbline 25
 0052           ;                 delay(200);
 0052 08EC              ldi R16,200
 0054 10E0              ldi R17,0
 0056 D4DF              xcall _delay
 0058                   .dbline 26
 0058           ;                  PORTA&=~BIT(k);
 0058 01E0              ldi R16,1
 005A 142F              mov R17,R20
 005C 0E940000          xcall lsl8
 0060 202E              mov R2,R16
 0062 2094              com R2
 0064 3BB2              in R3,0x1b
 0066 3220              and R3,R2
 0068 3BBA              out 0x1b,R3
 006A                   .dbline 27
 006A           ;                          PORTC=0X01;
 006A 81E0              ldi R24,1
 006C 85BB              out 0x15,R24
 006E                   .dbline 28
 006E           ;                 delay(200);
 006E 08EC              ldi R16,200
 0070 10E0              ldi R17,0
 0072 C6DF              xcall _delay
 0074                   .dbline 29
 0074           ;               }
 0074           L19:
 0074                   .dbline 21
 0074 4395              inc R20
 0076           L21:
 0076                   .dbline 21
 0076 4830              cpi R20,8
 0078 18F3              brlo L18
 007A           X2:
 007A                   .dbline 30
 007A           ;            for(k=6;k>0;k--)
 007A 46E0              ldi R20,6
 007C 1BC0              xjmp L25
 007E           L22:
 007E                   .dbline 31
 007E           ;                {
 007E                   .dbline 32
 007E           ;                 PORTA|=BIT(k);
 007E 01E0              ldi R16,1
 0080 142F              mov R17,R20
 0082 0E940000          xcall lsl8
 0086 2BB2              in R2,0x1b
 0088 202A              or R2,R16
 008A 2BBA              out 0x1b,R2
 008C                   .dbline 33
 008C           ;                               PORTC=0X00;
 008C 2224              clr R2
 008E 25BA              out 0x15,R2
 0090                   .dbline 34
 0090           ;                   delay(200);
 0090 08EC              ldi R16,200
 0092 10E0              ldi R17,0
 0094 B5DF              xcall _delay
 0096                   .dbline 35
 0096           ;                  PORTA&=~BIT(k);
 0096 01E0              ldi R16,1
 0098 142F              mov R17,R20
 009A 0E940000          xcall lsl8
 009E 202E              mov R2,R16
 00A0 2094              com R2
 00A2 3BB2              in R3,0x1b
 00A4 3220              and R3,R2
 00A6 3BBA              out 0x1b,R3
 00A8                   .dbline 36
 00A8           ;                          PORTC=0X01;
 00A8 81E0              ldi R24,1
 00AA 85BB              out 0x15,R24
 00AC                   .dbline 37
 00AC           ;                  delay(200);
 00AC 08EC              ldi R16,200
 00AE 10E0              ldi R17,0
 00B0 A7DF              xcall _delay
 00B2                   .dbline 38
 00B2           ;               }
 00B2           L23:
 00B2                   .dbline 30
 00B2 4A95              dec R20
 00B4           L25:
 00B4                   .dbline 30
 00B4 80E0              ldi R24,0
 00B6 8417              cp R24,R20
 00B8 10F3              brlo L22
 00BA           X3:
 00BA                   .dbline 39
 00BA           ;       }
 00BA           L15:
 00BA                   .dbline 19
 00BA 6A95              dec R22
 00BC           L17:
 00BC                   .dbline 19
 00BC 80E0              ldi R24,0
 00BE 8617              cp R24,R22
 00C0 08F4              brsh X8
 00C2 BCCF              xjmp L14
 00C4           X8:
 00C4           X4:
 00C4                   .dbline 40
 00C4           ;         PORTA=0X00;
 00C4 2224              clr R2
 00C6 2BBA              out 0x1b,R2
 00C8                   .dbline 42
 00C8           ;         
 00C8           ;         for(k=0;k<8;k++)
 00C8 4427              clr R20
 00CA 1FC0              xjmp L29
 00CC           L26:
 00CC                   .dbline 43
 00CC           ;              {
 00CC                   .dbline 44
 00CC           ;                      for(l=0;l<5;l++)
 00CC 6627              clr R22
 00CE 17C0              xjmp L33
 00D0           L30:
 00D0                   .dbline 45
 00D0           ;                        {
 00D0                   .dbline 46
 00D0           ;                          PORTA|=BIT(k);
 00D0 01E0              ldi R16,1
 00D2 142F              mov R17,R20
 00D4 0E940000          xcall lsl8
 00D8 2BB2              in R2,0x1b
 00DA 202A              or R2,R16
 00DC 2BBA              out 0x1b,R2
 00DE                   .dbline 47
 00DE           ;                                  delay(50);
 00DE 02E3              ldi R16,50
 00E0 10E0              ldi R17,0
 00E2 8EDF              xcall _delay
 00E4                   .dbline 48
 00E4           ;                       PORTA&=~BIT(k);
 00E4 01E0              ldi R16,1
 00E6 142F              mov R17,R20
 00E8 0E940000          xcall lsl8
 00EC 202E              mov R2,R16
 00EE 2094              com R2
 00F0 3BB2              in R3,0x1b
 00F2 3220              and R3,R2
 00F4 3BBA              out 0x1b,R3
 00F6                   .dbline 49
 00F6           ;                                       delay(50);
 00F6 02E3              ldi R16,50
 00F8 10E0              ldi R17,0
 00FA 82DF              xcall _delay
 00FC                   .dbline 50
 00FC           ;                    }
 00FC           L31:
 00FC                   .dbline 44
 00FC 6395              inc R22
 00FE           L33:
 00FE                   .dbline 44
 00FE 6530              cpi R22,5
 0100 38F3              brlo L30
 0102           X5:
 0102                   .dbline 51
 0102           ;                          delay(300);
 0102 0CE2              ldi R16,300
 0104 11E0              ldi R17,1
 0106 7CDF              xcall _delay
 0108                   .dbline 52
 0108           ;               }
 0108           L27:
 0108                   .dbline 42
 0108 4395              inc R20
 010A           L29:
 010A                   .dbline 42
 010A 4830              cpi R20,8
 010C F8F2              brlo L26
 010E           X6:
 010E                   .dbline 53
 010E           ;   }
 010E           L12:
 010E                   .dbline 16
 010E 94CF              xjmp L11
 0110           X7:
 0110                   .dbline -2
 0110           L10:
 0110                   .dbline 0 ; func end
 0110 0895              ret
 0112                   .dbsym r l 22 c
 0112                   .dbsym r k 20 c
 0112                   .dbend
 0112           ; }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -