📄 adc_led.lis
字号:
.module ADC_led.c
.area text(rom, con, rel)
0000 .dbfile E:\16实验程序\模数转换\adc_led\ADC_led.c
0000 .dbfunc e s_ms _s_ms fV
0000 ; ms -> R16,R17
.even
0000 _s_ms::
0000 .dbline -1
0000 .dbline 8
0000 ; //ADC转换程序
0000 ; //用led显示ADC0的电压值
0000 ; #include<iom16v.h>
0000 ; #define uchar unsigned char
0000 ; #define uint unsigned int
0000 ;
0000 ; void s_ms(uint ms)
0000 ; {
0000 .dbline 9
0000 ; for(;ms>1;ms--);
0000 02C0 xjmp L5
0002 L2:
0002 .dbline 9
0002 L3:
0002 .dbline 9
0002 0150 subi R16,1
0004 1040 sbci R17,0
0006 L5:
0006 .dbline 9
0006 81E0 ldi R24,1
0008 90E0 ldi R25,0
000A 8017 cp R24,R16
000C 9107 cpc R25,R17
000E C8F3 brlo L2
0010 X0:
0010 .dbline -2
0010 L1:
0010 .dbline 0 ; func end
0010 0895 ret
0012 .dbsym r ms 16 i
0012 .dbend
0012 .dbfunc e main _main fI
0012 ; adc_h -> R12
0012 ; adc_l -> R10
0012 ; i -> R20
.even
0012 _main::
0012 .dbline -1
0012 .dbline 15
0012 ; }
0012 ;
0012 ; //ADC0测试,用8位LED显示ADHL
0012 ; //主函数
0012 ; main()
0012 ; {
0012 .dbline 17
0012 ; uchar adc_l,adc_h,i;
0012 ; DDRA=0xff;
0012 8FEF ldi R24,255
0014 8ABB out 0x1a,R24
0016 .dbline 18
0016 ; PORTA=0x00;
0016 2224 clr R2
0018 2BBA out 0x1b,R2
001A .dbline 19
001A ; DDRB=0xff;
001A 87BB out 0x17,R24
001C .dbline 20
001C ; DDRD=0xff;
001C 81BB out 0x11,R24
001E .dbline 21
001E ; PORTD=0xff;
001E 82BB out 0x12,R24
0020 14C0 xjmp L8
0022 L7:
0022 .dbline 23
0022 ; while(1)
0022 ; {
0022 .dbline 25
0022 ; // ADCSR=0x00;
0022 ; ADMUX=0x40; //AVCC参考电压 ADC0输入
0022 80E4 ldi R24,64
0024 87B9 out 0x7,R24
0026 .dbline 27
0026 ; // ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADFR)|0x07; //128分频,循环取值
0026 ; ADCSRA=(1<<ADEN)|(1<<ADSC)|0x07; //128分频,循环取值
0026 87EC ldi R24,199
0028 86B9 out 0x6,R24
002A .dbline 28
002A ; s_ms(500); //延时
002A 04EF ldi R16,500
002C 11E0 ldi R17,1
002E E8DF xcall _s_ms
0030 .dbline 29
0030 ; adc_l=ADCL;
0030 A4B0 in R10,0x4
0032 .dbline 30
0032 ; adc_h=ADCH;
0032 C5B0 in R12,0x5
0034 .dbline 31
0034 ; PORTD=~adc_l;
0034 2A2C mov R2,R10
0036 2094 com R2
0038 22BA out 0x12,R2
003A .dbline 32
003A ; for(i=0;i<10;i++)
003A 4427 clr R20
003C 04C0 xjmp L13
003E L10:
003E .dbline 33
003E ; {
003E .dbline 34
003E ; s_ms(60000);
003E 00E6 ldi R16,60000
0040 1AEE ldi R17,234
0042 DEDF xcall _s_ms
0044 .dbline 35
0044 ; }
0044 L11:
0044 .dbline 32
0044 4395 inc R20
0046 L13:
0046 .dbline 32
0046 4A30 cpi R20,10
0048 D0F3 brlo L10
004A X1:
004A .dbline 36
004A ; }
004A L8:
004A .dbline 22
004A EBCF xjmp L7
004C X2:
004C .dbline -2
004C L6:
004C .dbline 0 ; func end
004C 0895 ret
004E .dbsym r adc_h 12 c
004E .dbsym r adc_l 10 c
004E .dbsym r i 20 c
004E .dbend
004E ; }
004E ;
004E ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -