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

📄 adc-led.lis

📁 这是关于AVR单片机学习的初步开发
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00C0                   .dbline -1
 00C0                   .dbline 92
 00C0           ; 
 00C0           ; 
 00C0           ; 
 00C0           ; 
 00C0           ; //自定义函数
 00C0           ; void delay(void)
 00C0           ; {
 00C0                   .dbline 94
 00C0 2227              clr R18
 00C2 3327              clr R19
 00C4 02C0              rjmp L18
 00C6           L15:
 00C6                   .dbline 94
 00C6           L16:
 00C6                   .dbline 94
 00C6 2F5F              subi R18,255  ; offset = 1
 00C8 3F4F              sbci R19,255
 00CA           L18:
 00CA                   .dbline 94
 00CA           ;  unsigned int i,j,z;
 00CA           ;  for(i=0;i<10000;i++);
 00CA 2031              cpi R18,16
 00CC E7E2              ldi R30,39
 00CE 3E07              cpc R19,R30
 00D0 D0F3              brlo L15
 00D2                   .dbline 95
 00D2           ;  {    for(j=0;j<10000;j++)
 00D2                   .dbline 95
 00D2 0027              clr R16
 00D4 1127              clr R17
 00D6 0BC0              rjmp L22
 00D8           L19:
 00D8                   .dbline 96
 00D8                   .dbline 96
 00D8 4427              clr R20
 00DA 5527              clr R21
 00DC 02C0              rjmp L26
 00DE           L23:
 00DE                   .dbline 96
 00DE           L24:
 00DE                   .dbline 96
 00DE 4F5F              subi R20,255  ; offset = 1
 00E0 5F4F              sbci R21,255
 00E2           L26:
 00E2                   .dbline 96
 00E2 4436              cpi R20,100
 00E4 E0E0              ldi R30,0
 00E6 5E07              cpc R21,R30
 00E8 D0F3              brlo L23
 00EA                   .dbline 96
 00EA           L20:
 00EA                   .dbline 95
 00EA 0F5F              subi R16,255  ; offset = 1
 00EC 1F4F              sbci R17,255
 00EE           L22:
 00EE                   .dbline 95
 00EE 0031              cpi R16,16
 00F0 E7E2              ldi R30,39
 00F2 1E07              cpc R17,R30
 00F4 88F3              brlo L19
 00F6                   .dbline 97
 00F6           ;       {       for(z=0;z<100;z++);}
 00F6           ;  }
 00F6                   .dbline -2
 00F6                   .dbline 98
 00F6           ; }
 00F6           L14:
 00F6 00D0              rcall pop_gset1
 00F8                   .dbline 0 ; func end
 00F8 0895              ret
 00FA                   .dbsym r j 16 i
 00FA                   .dbsym r i 18 i
 00FA                   .dbsym r z 20 i
 00FA                   .dbend
 00FA                   .dbfunc e main _main fV
 00FA           ;           temp -> R14,R15
 00FA           ;           num4 -> R22
 00FA           ;           num3 -> R10
 00FA           ;           num2 -> R20
 00FA           ;           num1 -> y+2
 00FA           ;              i -> R12
 00FA           ;           data -> y+0
                        .even
 00FA           _main::
 00FA 2397              sbiw R28,3
 00FC                   .dbline -1
 00FC                   .dbline 101
 00FC           ; 
 00FC           ; void main(void)
 00FC           ; {
 00FC                   .dbline 103
 00FC           ;   char i;
 00FC           ;   unsigned int data=0,temp;
 00FC 0024              clr R0
 00FE 1124              clr R1
 0100 1982              std y+1,R1
 0102 0882              std y+0,R0
 0104                   .dbline 104
 0104           ;   char num1=0,num2=0,num3=0,num4=0;
 0104 0A82              std y+2,R0
 0106                   .dbline 104
 0106 4427              clr R20
 0108                   .dbline 104
 0108 AA24              clr R10
 010A                   .dbline 104
 010A 6627              clr R22
 010C                   .dbline 105
 010C           ;   init_devices();
 010C CEDF              rcall _init_devices
 010E                   .dbline 107
 010E           ;  
 010E           ;  for(i=0;i<=9;i++)
 010E CC24              clr R12
 0110 0BC0              rjmp L31
 0112           L28:
 0112                   .dbline 108
 0112                   .dbline 108
 0112 80E0              ldi R24,<_num
 0114 90E0              ldi R25,>_num
 0116 EC2D              mov R30,R12
 0118 FF27              clr R31
 011A E80F              add R30,R24
 011C F91F              adc R31,R25
 011E 2080              ldd R2,z+0
 0120 20920100          sts _lednum1,R2
 0124                   .dbline 109
 0124 CCDF              rcall _delay
 0126                   .dbline 110
 0126           L29:
 0126                   .dbline 107
 0126 C394              inc R12
 0128           L31:
 0128                   .dbline 107
 0128 89E0              ldi R24,9
 012A 8C15              cp R24,R12
 012C 90F7              brsh L28
 012E                   .dbline 112
 012E           ;  {    lednum1 = num[i];
 012E           ;       delay();
 012E           ;  } 
 012E           ;  
 012E           ;  lednum1 = num[0];
 012E 20900500          lds R2,_num
 0132 20920100          sts _lednum1,R2
 0136                   .dbline 113
 0136           ;  lednum2 = num[0];
 0136 20920200          sts _lednum2,R2
 013A                   .dbline 114
 013A           ;  lednum3 = num[0];
 013A 20920300          sts _lednum3,R2
 013E                   .dbline 115
 013E           ;  lednum4 = num[0];
 013E 20920400          sts _lednum4,R2
 0142                   .dbline 117
 0142           ;  
 0142           ;  delay();
 0142 BDDF              rcall _delay
 0144                   .dbline 118
 0144           ;  delay();
 0144 BCDF              rcall _delay
 0146 6CC0              rjmp L33
 0148           L32:
 0148                   .dbline 120
 0148           ;  while(1)
 0148           ;  {    ADMUX = 0x40;     //选择通道零
 0148                   .dbline 120
 0148 80E4              ldi R24,64
 014A 87B9              out 0x7,R24
 014C                   .dbline 121
 014C           ;       ADCSRA = 0xC7;
 014C 87EC              ldi R24,199
 014E 86B9              out 0x6,R24
 0150           L35:
 0150                   .dbline 123
 0150           L36:
 0150                   .dbline 123
 0150 86B1              in R24,0x6
 0152 8061              ori R24,16
 0154 E9F3              breq L35
 0156                   .dbline 124
 0156 3498              cbi 0x6,4
 0158                   .dbline 126
 0158 24B0              in R2,0x4
 015A 3324              clr R3
 015C 3982              std y+1,R3
 015E 2882              std y+0,R2
 0160                   .dbline 127
 0160 E5B0              in R14,0x5
 0162 FF24              clr R15
 0164 FE2C              mov R15,R14
 0166 EE24              clr R14
 0168                   .dbline 128
 0168 0101              movw R0,R2
 016A 0E0C              add R0,R14
 016C 1F1C              adc R1,R15
 016E 1982              std y+1,R1
 0170 0882              std y+0,R0
 0172                   .dbline 130
 0172 28EE              ldi R18,1000
 0174 33E0              ldi R19,3
 0176 8001              movw R16,R0
 0178 00D0              rcall div16u
 017A 602F              mov R22,R16
 017C                   .dbline 131
 017C 28EE              ldi R18,1000
 017E 33E0              ldi R19,3
 0180 0881              ldd R16,y+0
 0182 1981              ldd R17,y+1
 0184 00D0              rcall div16u
 0186 9801              movw R18,R16
 0188 08EE              ldi R16,1000
 018A 13E0              ldi R17,3
 018C 00D0              rcall empy16s
 018E 1801              movw R2,R16
 0190 0881              ldd R16,y+0
 0192 1981              ldd R17,y+1
 0194 0219              sub R16,R2
 0196 1309              sbc R17,R3
 0198 24E6              ldi R18,100
 019A 30E0              ldi R19,0
 019C 00D0              rcall div16u
 019E A02E              mov R10,R16
 01A0                   .dbline 132
 01A0 24E6              ldi R18,100
 01A2 30E0              ldi R19,0
 01A4 0881              ldd R16,y+0
 01A6 1981              ldd R17,y+1
 01A8 00D0              rcall div16u
 01AA 9801              movw R18,R16
 01AC 04E6              ldi R16,100
 01AE 10E0              ldi R17,0
 01B0 00D0              rcall empy16s
 01B2 1801              movw R2,R16
 01B4 0881              ldd R16,y+0
 01B6 1981              ldd R17,y+1
 01B8 0219              sub R16,R2
 01BA 1309              sbc R17,R3
 01BC 2AE0              ldi R18,10
 01BE 30E0              ldi R19,0
 01C0 00D0              rcall div16u
 01C2 402F              mov R20,R16
 01C4                   .dbline 133
 01C4 2AE0              ldi R18,10
 01C6 30E0              ldi R19,0
 01C8 0881              ldd R16,y+0
 01CA 1981              ldd R17,y+1
 01CC 00D0              rcall div16u
 01CE 9801              movw R18,R16
 01D0 0AE0              ldi R16,10
 01D2 10E0              ldi R17,0
 01D4 00D0              rcall empy16s
 01D6 4880              ldd R4,y+0
 01D8 5980              ldd R5,y+1
 01DA 401A              sub R4,R16
 01DC 510A              sbc R5,R17
 01DE 4A82              std y+2,R4
 01E0                   .dbline 136
 01E0 80E0              ldi R24,<_num
 01E2 90E0              ldi R25,>_num
 01E4 E62F              mov R30,R22
 01E6 FF27              clr R31
 01E8 E80F              add R30,R24
 01EA F91F              adc R31,R25
 01EC 2080              ldd R2,z+0
 01EE 20920400          sts _lednum4,R2
 01F2                   .dbline 137
 01F2 EA2D              mov R30,R10
 01F4 FF27              clr R31
 01F6 E80F              add R30,R24
 01F8 F91F              adc R31,R25
 01FA 2080              ldd R2,z+0
 01FC 20920300          sts _lednum3,R2
 0200                   .dbline 138
 0200 E42F              mov R30,R20
 0202 FF27              clr R31
 0204 E80F              add R30,R24
 0206 F91F              adc R31,R25
 0208 2080              ldd R2,z+0
 020A 20920200          sts _lednum2,R2
 020E                   .dbline 139
 020E E42D              mov R30,R4
 0210 FF27              clr R31
 0212 E80F              add R30,R24
 0214 F91F              adc R31,R25
 0216 2080              ldd R2,z+0
 0218 20920100          sts _lednum1,R2
 021C                   .dbline 141
 021C 369A              sbi 0x6,6
 021E                   .dbline 142
 021E 4FDF              rcall _delay
 0220                   .dbline 144
 0220           L33:
 0220                   .dbline 119
 0220 93CF              rjmp L32
 0222           X0:
 0222                   .dbline -2
 0222                   .dbline 145
 0222           ;       
 0222           ;       while((ADCSRA | 0x10)==0);
 0222           ;       ADCSRA &=~0x10;
 0222           ;       
 0222           ;       data = ADCL;
 0222           ;       temp =ADCH<<8;
 0222           ;       data = data +temp;
 0222           ;       
 0222           ;       num4 = data/1000;
 0222           ;       num3 = (data- data/1000*1000)/100;
 0222           ;       num2 = (data-data/100*100)/10;
 0222           ;       num1= data-data/10*10; 
 0222           ;       
 0222           ;       
 0222           ;       lednum4 = num[num4];
 0222           ;       lednum3 = num[num3];  
 0222           ;       lednum2 = num[num2];
 0222           ;       lednum1 = num[num1];
 0222           ;       
 0222           ;       ADCSRA |= 0x40;    
 0222           ;       delay();
 0222           ;       
 0222           ;  } 
 0222           ; }
 0222           L27:
 0222 2396              adiw R28,3
 0224                   .dbline 0 ; func end
 0224 0895              ret
 0226                   .dbsym r temp 14 i
 0226                   .dbsym r num4 22 c
 0226                   .dbsym r num3 10 c
 0226                   .dbsym r num2 20 c
 0226                   .dbsym l num1 2 c
 0226                   .dbsym r i 12 c
 0226                   .dbsym l data 0 i
 0226                   .dbend

⌨️ 快捷键说明

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