📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile D:\avrvi\AVRVi_m128_Starter_Kit\ADC\source\main.c
0000 .dbfunc e adc_init _adc_init fV
.even
0000 _adc_init::
0000 .dbline -1
0000 .dbline 13
0000 ; /************************************************
0000 ; 文件:main.c
0000 ; 用途:
0000 ; 注意:内部8M晶振
0000 ; 创建:2008.4.1
0000 ; 修改:2008.4.1
0000 ; Copy Right (c) www.avrvi.com AVR与虚拟仪器
0000 ; ************************************************/
0000 ;
0000 ; #include "config.h"
0000 ; float adc_result;
0000 ; void adc_init(void)
0000 ; {
0000 .dbline 14
0000 ; ADCSRA = 0x00; //disable adc
0000 2224 clr R2
0002 26B8 out 0x6,R2
0004 .dbline 15
0004 ; ADMUX = (1<<REFS0)|(1<<ADLAR);
0004 80E6 ldi R24,96
0006 87B9 out 0x7,R24
0008 .dbline 16
0008 ; ACSR = (1<<ACD);
0008 80E8 ldi R24,128
000A 88B9 out 0x8,R24
000C .dbline 17
000C ; ADCSRA = (1<<ADEN);
000C 86B9 out 0x6,R24
000E .dbline -2
000E L1:
000E .dbline 0 ; func end
000E 0895 ret
0010 .dbend
0010 .dbfunc e get_adc _get_adc fV
0010 ; value -> R20
0010 ; adc_channel -> R20,R21
.even
0010 _get_adc::
0010 0E940000 xcall push_gset1
0014 A801 movw R20,R16
0016 .dbline -1
0016 .dbline 21
0016 ; }
0016 ;
0016 ; void get_adc(unsigned adc_channel)
0016 ; {
0016 .dbline 23
0016 ; unsigned char value;
0016 ; adc_init();
0016 F4DF xcall _adc_init
0018 .dbline 24
0018 ; ADMUX += adc_channel;
0018 27B0 in R2,0x7
001A 3324 clr R3
001C 240E add R2,R20
001E 351E adc R3,R21
0020 27B8 out 0x7,R2
0022 .dbline 25
0022 ; ADCSRA |= (1<<ADSC);
0022 369A sbi 0x6,6
0024 .dbline 27
0024 ;
0024 ; delay_nus(100);
0024 04E6 ldi R16,100
0026 10E0 ldi R17,0
0028 0E940000 xcall _delay_nus
002C .dbline 28
002C ; value=ADCH;
002C 45B1 in R20,0x5
002E .dbline 29
002E ; adc_result=(value*4.98)/256;
002E 00E0 ldi R16,<L3
0030 10E0 ldi R17,>L3
0032 0E940000 xcall lpm32
0036 3A93 st -y,R19
0038 2A93 st -y,R18
003A 1A93 st -y,R17
003C 0A93 st -y,R16
003E 042F mov R16,R20
0040 1127 clr R17
0042 0E940000 xcall int2fp
0046 3A93 st -y,R19
0048 2A93 st -y,R18
004A 1A93 st -y,R17
004C 0A93 st -y,R16
004E 0E940000 xcall empy32fs
0052 00E0 ldi R16,<L4
0054 10E0 ldi R17,>L4
0056 0E940000 xcall lpm32
005A 3A93 st -y,R19
005C 2A93 st -y,R18
005E 1A93 st -y,R17
0060 0A93 st -y,R16
0062 0E940000 xcall div32f
0066 10930100 sts _adc_result+1,R17
006A 00930000 sts _adc_result,R16
006E 30930300 sts _adc_result+2+1,R19
0072 20930200 sts _adc_result+2,R18
0076 .dbline -2
0076 L2:
0076 0E940000 xcall pop_gset1
007A .dbline 0 ; func end
007A 0895 ret
007C .dbsym r value 20 c
007C .dbsym r adc_channel 20 i
007C .dbend
007C .dbfunc e main _main fV
.even
007C _main::
007C .dbline -1
007C .dbline 33
007C ; }
007C ;
007C ; void main(void)
007C ; {
007C .dbline 34
007C ; HC_595_init();
007C 0E940000 xcall _HC_595_init
0080 0DC0 xjmp L7
0082 L6:
0082 .dbline 37
0082 .dbline 38
0082 01E0 ldi R16,1
0084 10E0 ldi R17,0
0086 C4DF xcall _get_adc
0088 .dbline 39
0088 20910200 lds R18,_adc_result+2
008C 30910300 lds R19,_adc_result+2+1
0090 00910000 lds R16,_adc_result
0094 10910100 lds R17,_adc_result+1
0098 0E940000 xcall _Seg7_Led_float
009C .dbline 40
009C L7:
009C .dbline 36
009C F2CF xjmp L6
009E X0:
009E .dbline -2
009E L5:
009E .dbline 0 ; func end
009E 0895 ret
00A0 .dbend
.area bss(ram, con, rel)
0000 .dbfile D:\avrvi\AVRVi_m128_Starter_Kit\ADC\source\main.c
0000 _adc_result::
0000 .blkb 4
0004 .dbsym e adc_result _adc_result D
.area lit(rom, con, rel)
0000 L4:
0000 00008043 .word 0x0,0x4380
0004 L3:
0004 295C9F40 .word 0x5c29,0x409f
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -