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

📄 lesson1.lis

📁 AVR单片机C语言编程及应用实例 适合初学者的学习研究 其中包含Atmega16中文资料及Protel部分电路图
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0090 E8DF              rcall _All_led
 0092                   .dbline 79
 0092           ;   One_led(i,1);       //点亮指定的LED
 0092 21E0              ldi R18,1
 0094 042F              mov R16,R20
 0096 C7DF              rcall _One_led
 0098                   .dbline 80
 0098           ;   Delayms(MS);                //延时指定的时间
 0098 0A2D              mov R16,R10
 009A 1127              clr R17
 009C B1DF              rcall _Delayms
 009E                   .dbline 81
 009E           ;   All_led(0); //全部熄灭
 009E 0027              clr R16
 00A0 E0DF              rcall _All_led
 00A2                   .dbline 82
 00A2           ;  } 
 00A2           L18:
 00A2                   .dbline 76
 00A2 4395              inc R20
 00A4           L20:
 00A4                   .dbline 76
 00A4 4830              cpi R20,8
 00A6 98F3              brlo L17
 00A8           X4:
 00A8                   .dbline -2
 00A8           L16:
 00A8                   .dbline 0 ; func end
 00A8 4991              ld R20,y+
 00AA A990              ld R10,y+
 00AC 0895              ret
 00AE                   .dbsym r i 20 c
 00AE                   .dbsym r MS 10 c
 00AE                   .dbend
 00AE                   .dbfunc e Flash_LED _Flash_LED fV
 00AE           ;           time -> R20
 00AE           ;             MS -> R10
 00AE           ;         number -> R12
                        .even
 00AE           _Flash_LED::
 00AE 00D0              rcall push_xgset303C
 00B0 A22E              mov R10,R18
 00B2 C02E              mov R12,R16
 00B4                   .dbline -1
 00B4                   .dbline 92
 00B4           ; }
 00B4           ; /*******************************************
 00B4           ; 函数名称: Flash_led
 00B4           ; 功    能: 闪烁指定的LED(第几盏就闪烁几次)
 00B4           ; 参    数: number--指定的LED
 00B4           ;                 MS--LED闪烁的时间间隔
 00B4           ; 返回值  : 无
 00B4           ; /********************************************/
 00B4           ; void Flash_LED(uchar number,uchar MS)
 00B4           ; {
 00B4                   .dbline 93
 00B4           ;   uchar time=6;
 00B4 46E0              ldi R20,6
 00B6                   .dbline 94
 00B6           ;  for(;time>0;time--)
 00B6 11C0              rjmp L25
 00B8           L22:
 00B8                   .dbline 95
 00B8           ;  {
 00B8                   .dbline 96
 00B8           ;  All_led(0);                  //熄灭所有的LED
 00B8 0027              clr R16
 00BA D3DF              rcall _All_led
 00BC                   .dbline 97
 00BC           ;  One_led(number,1);           //点亮指定的LED
 00BC 21E0              ldi R18,1
 00BE 0C2D              mov R16,R12
 00C0 B2DF              rcall _One_led
 00C2                   .dbline 98
 00C2           ;  Delayms(MS);                         //延时指定的时间
 00C2 0A2D              mov R16,R10
 00C4 1127              clr R17
 00C6 9CDF              rcall _Delayms
 00C8                   .dbline 99
 00C8           ;  All_led(0);                  //熄灭所有的LED
 00C8 0027              clr R16
 00CA CBDF              rcall _All_led
 00CC                   .dbline 100
 00CC           ;  Delayms(MS);                         //延时指定的时间
 00CC 0A2D              mov R16,R10
 00CE 1127              clr R17
 00D0 97DF              rcall _Delayms
 00D2                   .dbline 101
 00D2           ;  One_led(number,0);           //熄灭指定的LED 
 00D2 2227              clr R18
 00D4 0C2D              mov R16,R12
 00D6 A7DF              rcall _One_led
 00D8                   .dbline 102
 00D8           ;  }
 00D8           L23:
 00D8                   .dbline 94
 00D8 4A95              dec R20
 00DA           L25:
 00DA                   .dbline 94
 00DA 80E0              ldi R24,0
 00DC 8417              cp R24,R20
 00DE 60F3              brlo L22
 00E0           X5:
 00E0                   .dbline -2
 00E0           L21:
 00E0                   .dbline 0 ; func end
 00E0 00C0              rjmp pop_xgset303C
 00E2                   .dbsym r time 20 c
 00E2                   .dbsym r MS 10 c
 00E2                   .dbsym r number 12 c
 00E2                   .dbend
 00E2                   .dbfunc e main _main fV
 00E2           ;              i -> R22,R23
 00E2           ;              b -> R20,R21
                        .even
 00E2           _main::
 00E2                   .dbline -1
 00E2                   .dbline 111
 00E2           ; }
 00E2           ; /*******************************************
 00E2           ; 函数名称: main
 00E2           ; 功    能: 1. 流水灯 2.闪烁指定的LED
 00E2           ; 参    数: 无
 00E2           ; 返回值  : 无
 00E2           ; /********************************************/
 00E2           ; void main()
 00E2           ; {      
 00E2                   .dbline 113
 00E2           ;  uint b,i;            
 00E2           ;  b=0; 
 00E2 4427              clr R20
 00E4 5527              clr R21
 00E6                   .dbline 114
 00E6           ;  DDRA=0XFF;                                   //b指定闪烁的LED
 00E6 8FEF              ldi R24,255
 00E8 8ABB              out 0x1a,R24
 00EA 32C0              rjmp L28
 00EC           L27:
 00EC                   .dbline 116
 00EC           ;  while(1)
 00EC           ;  {
 00EC                   .dbline 117
 00EC           ;   if(b<3600)b++,b++;
 00EC 4031              cpi R20,16
 00EE EEE0              ldi R30,14
 00F0 5E07              cpc R21,R30
 00F2 20F4              brsh L30
 00F4           X6:
 00F4                   .dbline 117
 00F4 4F5F              subi R20,255  ; offset = 1
 00F6 5F4F              sbci R21,255
 00F8 4F5F              subi R20,255  ; offset = 1
 00FA 5F4F              sbci R21,255
 00FC           L30:
 00FC                   .dbline 118
 00FC           ;   if(b%7==0)b++;
 00FC 27E0              ldi R18,7
 00FE 30E0              ldi R19,0
 0100 8A01              movw R16,R20
 0102 00D0              rcall mod16u
 0104 0030              cpi R16,0
 0106 0107              cpc R16,R17
 0108 11F4              brne L32
 010A           X7:
 010A                   .dbline 118
 010A 4F5F              subi R20,255  ; offset = 1
 010C 5F4F              sbci R21,255
 010E           L32:
 010E                   .dbline 119
 010E           ;   if(b==3600)b=0;
 010E 4031              cpi R20,16
 0110 EEE0              ldi R30,14
 0112 5E07              cpc R21,R30
 0114 11F4              brne L34
 0116           X8:
 0116                   .dbline 119
 0116 4427              clr R20
 0118 5527              clr R21
 011A           L34:
 011A                   .dbline 120
 011A           ;   i=(int)(b%8>0);
 011A CA01              movw R24,R20
 011C 8770              andi R24,7
 011E 9070              andi R25,0
 0120 8030              cpi R24,0
 0122 8907              cpc R24,R25
 0124 19F0              breq L36
 0126           X9:
 0126 61E0              ldi R22,1
 0128 70E0              ldi R23,0
 012A 02C0              rjmp L37
 012C           L36:
 012C 6627              clr R22
 012E 7727              clr R23
 0130           L37:
 0130                   .dbline 121
 0130           ;   switch(i)
 0130 6030              cpi R22,0
 0132 6707              cpc R22,R23
 0134 29F0              breq L40
 0136           X10:
 0136 6130              cpi R22,1
 0138 E0E0              ldi R30,0
 013A 7E07              cpc R23,R30
 013C 21F0              breq L41
 013E           X11:
 013E 08C0              rjmp L38
 0140           L40:
 0140                   .dbline 124
 0140           ;   {
 0140           ;    case 0:
 0140           ;          Flow_LED(200);               //i=0,以流水灯的方式显示
 0140 08EC              ldi R16,200
 0142 A0DF              rcall _Flow_LED
 0144                   .dbline 125
 0144           ;          break;
 0144 05C0              rjmp L39
 0146           L41:
 0146                   .dbline 127
 0146           ;    case 1:                                    
 0146           ;          Flash_LED(b%8,100);  //i=1,以闪烁灯的方式显示
 0146 24E6              ldi R18,100
 0148 042F              mov R16,R20
 014A 0770              andi R16,7
 014C 1070              andi R17,0
 014E AFDF              rcall _Flash_LED
 0150                   .dbline 128
 0150           ;   }
 0150           L38:
 0150           L39:
 0150                   .dbline 129
 0150           ;  }  
 0150           L28:
 0150                   .dbline 115
 0150 CDCF              rjmp L27
 0152           X12:
 0152                   .dbline -2
 0152           L26:
 0152                   .dbline 0 ; func end
 0152 0895              ret
 0154                   .dbsym r i 22 i
 0154                   .dbsym r b 20 i
 0154                   .dbend
 0154           ; }

⌨️ 快捷键说明

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