📄 adc.lis
字号:
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 + -