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

📄 adc.lis

📁 AVR单片机ATMEGA128实习之—AD转换器(附带Proteus仿真例子)
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0210 9991              ld R25,y+
 0212 8991              ld R24,y+
 0214 2990              ld R2,y+
 0216                   .dbline 0 ; func end
 0216 1895              reti
 0218                   .dbend
 0218                   .dbfunc e External_INT_2 _External_INT_2 fV
                        .even
 0218           _External_INT_2::
 0218                   .dbline -1
 0218                   .dbline 328
 0218           ; void External_INT_2(void)
 0218           ; {
 0218                   .dbline -2
 0218                   .dbline 333
 0218           ;       
 0218           ;       
 0218           ; 
 0218           ;       
 0218           ; }
 0218           L58:
 0218                   .dbline 0 ; func end
 0218 1895              reti
 021A                   .dbend
 021A                   .dbfunc e LED_Display _LED_Display fV
 021A           ;           Data -> R22,R23
 021A           ;    Channel_num -> R20
                        .even
 021A           _LED_Display::
 021A 0E940000          xcall push_gset2
 021E B901              movw R22,R18
 0220 402F              mov R20,R16
 0222                   .dbline -1
 0222                   .dbline 335
 0222           ; void LED_Display(unsigned char Channel_num,unsigned int Data)
 0222           ; {
 0222                   .dbline 337
 0222           ;       
 0222           ;       DATA_to_NUM(Data);
 0222 8B01              movw R16,R22
 0224 3BD0              xcall _DATA_to_NUM
 0226                   .dbline 339
 0226           ;       
 0226           ;       PORTA = LED_table[number_baifen] ;
 0226 80E0              ldi R24,<_LED_table
 0228 90E0              ldi R25,>_LED_table
 022A E0910500          lds R30,_number_baifen
 022E FF27              clr R31
 0230 E80F              add R30,R24
 0232 F91F              adc R31,R25
 0234 2080              ldd R2,z+0
 0236 2BBA              out 0x1b,R2
 0238                   .dbline 340
 0238           ;       PORTB = (PORTB|0xf0)&0x7F;
 0238 88B3              in R24,0x18
 023A 806F              ori R24,240
 023C 8F77              andi R24,127
 023E 88BB              out 0x18,R24
 0240                   .dbline 341
 0240           ;       Delay();
 0240 7CDF              xcall _Delay
 0242                   .dbline 343
 0242           ; 
 0242           ;       PORTA = LED_table[number_shifen];
 0242 80E0              ldi R24,<_LED_table
 0244 90E0              ldi R25,>_LED_table
 0246 E0910400          lds R30,_number_shifen
 024A FF27              clr R31
 024C E80F              add R30,R24
 024E F91F              adc R31,R25
 0250 2080              ldd R2,z+0
 0252 2BBA              out 0x1b,R2
 0254                   .dbline 344
 0254           ;       PORTB = (PORTB|0xf0)&0xBF;
 0254 88B3              in R24,0x18
 0256 806F              ori R24,240
 0258 8F7B              andi R24,191
 025A 88BB              out 0x18,R24
 025C                   .dbline 345
 025C           ;       Delay();
 025C 6EDF              xcall _Delay
 025E                   .dbline 347
 025E           ;       
 025E           ;       PORTA = LED_table[number_ge_dot] + 0x80;
 025E 80E0              ldi R24,<_LED_table
 0260 90E0              ldi R25,>_LED_table
 0262 E0910300          lds R30,_number_ge_dot
 0266 FF27              clr R31
 0268 E80F              add R30,R24
 026A F91F              adc R31,R25
 026C 8081              ldd R24,z+0
 026E 8058              subi R24,128    ; addi 128
 0270 8BBB              out 0x1b,R24
 0272                   .dbline 348
 0272           ;       PORTB = (PORTB|0xf0)&0xDF;
 0272 88B3              in R24,0x18
 0274 806F              ori R24,240
 0276 8F7D              andi R24,223
 0278 88BB              out 0x18,R24
 027A                   .dbline 349
 027A           ;       Delay();
 027A 5FDF              xcall _Delay
 027C                   .dbline 351
 027C           ; 
 027C           ;       PORTA = LED_table[Channel_num];
 027C 80E0              ldi R24,<_LED_table
 027E 90E0              ldi R25,>_LED_table
 0280 E42F              mov R30,R20
 0282 FF27              clr R31
 0284 E80F              add R30,R24
 0286 F91F              adc R31,R25
 0288 2080              ldd R2,z+0
 028A 2BBA              out 0x1b,R2
 028C                   .dbline 352
 028C           ;       PORTB = (PORTB|0xf0)&0xEF;
 028C 88B3              in R24,0x18
 028E 806F              ori R24,240
 0290 8F7E              andi R24,239
 0292 88BB              out 0x18,R24
 0294                   .dbline 353
 0294           ;       Delay();
 0294 52DF              xcall _Delay
 0296                   .dbline -2
 0296                   .dbline 354
 0296           ; }
 0296           L59:
 0296 0E940000          xcall pop_gset2
 029A                   .dbline 0 ; func end
 029A 0895              ret
 029C                   .dbsym r Data 22 i
 029C                   .dbsym r Channel_num 20 c
 029C                   .dbend
 029C                   .dbfunc e DATA_to_NUM _DATA_to_NUM fV
 029C           ;           temp -> R20,R21
 029C           ;           data -> R20,R21
                        .even
 029C           _DATA_to_NUM::
 029C 0E940000          xcall push_gset2
 02A0 A801              movw R20,R16
 02A2 2497              sbiw R28,4
 02A4                   .dbline -1
 02A4                   .dbline 357
 02A4           ; 
 02A4           ; void DATA_to_NUM(unsigned int data)
 02A4           ; {
 02A4                   .dbline 360
 02A4           ;       unsigned int temp;
 02A4           ; 
 02A4           ;       temp = (unsigned int)(((float)data)*500/1024);
 02A4 00E0              ldi R16,<L63
 02A6 10E0              ldi R17,>L63
 02A8 0E940000          xcall lpm32
 02AC 3A93              st -y,R19
 02AE 2A93              st -y,R18
 02B0 1A93              st -y,R17
 02B2 0A93              st -y,R16
 02B4 00E0              ldi R16,<L64
 02B6 10E0              ldi R17,>L64
 02B8 0E940000          xcall lpm32
 02BC 3A93              st -y,R19
 02BE 2A93              st -y,R18
 02C0 1A93              st -y,R17
 02C2 0A93              st -y,R16
 02C4 8A01              movw R16,R20
 02C6 1695              lsr R17
 02C8 0795              ror R16
 02CA 0E940000          xcall int2fp
 02CE 3A93              st -y,R19
 02D0 2A93              st -y,R18
 02D2 1A93              st -y,R17
 02D4 0A93              st -y,R16
 02D6 0E940000          xcall empy32fs
 02DA 8A01              movw R16,R20
 02DC 0170              andi R16,1
 02DE 1070              andi R17,0
 02E0 0E940000          xcall int2fp
 02E4 3A93              st -y,R19
 02E6 2A93              st -y,R18
 02E8 1A93              st -y,R17
 02EA 0A93              st -y,R16
 02EC 0E940000          xcall add32fs
 02F0 0E940000          xcall empy32fs
 02F4 00E0              ldi R16,<L65
 02F6 10E0              ldi R17,>L65
 02F8 0E940000          xcall lpm32
 02FC 3A93              st -y,R19
 02FE 2A93              st -y,R18
 0300 1A93              st -y,R17
 0302 0A93              st -y,R16
 0304 0E940000          xcall div32f
 0308 FE01              movw R30,R28
 030A 0083              std z+0,R16
 030C 1183              std z+1,R17
 030E 2283              std z+2,R18
 0310 3383              std z+3,R19
 0312 2080              ldd R2,z+0
 0314 3180              ldd R3,z+1
 0316 4280              ldd R4,z+2
 0318 5380              ldd R5,z+3
 031A 5A92              st -y,R5
 031C 4A92              st -y,R4
 031E 3A92              st -y,R3
 0320 2A92              st -y,R2
 0322 00E0              ldi R16,<L66
 0324 10E0              ldi R17,>L66
 0326 0E940000          xcall lpm32
 032A 3A93              st -y,R19
 032C 2A93              st -y,R18
 032E 1A93              st -y,R17
 0330 0A93              st -y,R16
 0332 0E940000          xcall cmp32f
 0336 CCF0              brlt L61
 0338 FE01              movw R30,R28
 033A 2080              ldd R2,z+0
 033C 3180              ldd R3,z+1
 033E 4280              ldd R4,z+2
 0340 5380              ldd R5,z+3
 0342 5A92              st -y,R5
 0344 4A92              st -y,R4
 0346 3A92              st -y,R3
 0348 2A92              st -y,R2
 034A 00E0              ldi R16,<L66
 034C 10E0              ldi R17,>L66
 034E 0E940000          xcall lpm32
 0352 3A93              st -y,R19
 0354 2A93              st -y,R18
 0356 1A93              st -y,R17
 0358 0A93              st -y,R16
 035A 0E940000          xcall sub32f
 035E 0E940000          xcall fp2int
 0362 B801              movw R22,R16
 0364 6050              subi R22,0  ; offset = 32768
 0366 7048              sbci R23,128
 0368 08C0              xjmp L62
 036A           L61:
 036A FE01              movw R30,R28
 036C 0081              ldd R16,z+0
 036E 1181              ldd R17,z+1
 0370 2281              ldd R18,z+2
 0372 3381              ldd R19,z+3
 0374 0E940000          xcall fp2int
 0378 B801              movw R22,R16
 037A           L62:
 037A AB01              movw R20,R22
 037C                   .dbline 362
 037C           ; 
 037C           ;       number_ge_dot = temp/100;
 037C 24E6              ldi R18,100
 037E 30E0              ldi R19,0
 0380 8A01              movw R16,R20
 0382 0E940000          xcall div16u
 0386 00930300          sts _number_ge_dot,R16
 038A                   .dbline 363
 038A           ;       number_shifen = (temp%100)/10;
 038A 24E6              ldi R18,100
 038C 30E0              ldi R19,0
 038E 8A01              movw R16,R20
 0390 0E940000          xcall mod16u
 0394 2AE0              ldi R18,10
 0396 30E0              ldi R19,0
 0398 0E940000          xcall div16u
 039C 00930400          sts _number_shifen,R16
 03A0                   .dbline 364
 03A0           ;       number_baifen = (temp%100)%10;
 03A0 24E6              ldi R18,100
 03A2 30E0              ldi R19,0
 03A4 8A01              movw R16,R20
 03A6 0E940000          xcall mod16u
 03AA 2AE0              ldi R18,10
 03AC 30E0              ldi R19,0
 03AE 0E940000          xcall mod16u
 03B2 00930500          sts _number_baifen,R16
 03B6                   .dbline -2
 03B6                   .dbline 365
 03B6           ; }
 03B6           L60:
 03B6 2496              adiw R28,4
 03B8 0E940000          xcall pop_gset2
 03BC                   .dbline 0 ; func end
 03BC 0895              ret
 03BE                   .dbsym r temp 20 i
 03BE                   .dbsym r data 20 i
 03BE                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile G:\猛\avr实践\AD\adc.c
 0000           _m::
 0000                   .blkb 1
 0001                   .dbsym e m _m c
 0001           _Display_value::
 0001                   .blkb 1
 0002                   .dbsym e Display_value _Display_value c
 0002           _Display_type::
 0002                   .blkb 1
 0003                   .dbsym e Display_type _Display_type c
 0003           _number_ge_dot::
 0003                   .blkb 1
 0004                   .dbsym e number_ge_dot _number_ge_dot c
 0004           _number_shifen::
 0004                   .blkb 1
 0005                   .dbsym e number_shifen _number_shifen c
 0005           _number_baifen::
 0005                   .blkb 1
 0006                   .dbsym e number_baifen _number_baifen c
 0006           _AD_sample_value::
 0006                   .blkb 2
 0008                   .dbsym e AD_sample_value _AD_sample_value i
                        .area lit(rom, con, rel)
 0000           L66:
 0000 00000047          .word 0x0,0x4700
 0004           L65:
 0004 00008044          .word 0x0,0x4480
 0008           L64:
 0008 00000040          .word 0x0,0x4000
 000C           L63:
 000C 0000FA43          .word 0x0,0x43fa

⌨️ 快捷键说明

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