📄 lesson10.lis
字号:
00D4 8091C100 lds R24,193
00D8 8068 ori R24,128
00DA 8093C100 sts 193,R24
00DE .dbline -2
00DE L19:
00DE .dbline 0 ; func end
00DE 2990 ld R2,y+
00E0 2FBE out 0x3f,R2
00E2 9991 ld R25,y+
00E4 8991 ld R24,y+
00E6 2990 ld R2,y+
00E8 1895 reti
00EA .dbend
00EA .dbfunc e main _main fV
.even
00EA _main::
00EA .dbline -1
00EA .dbline 65
00EA ; }
00EA ; void main()
00EA ; {
00EA .dbline 68
00EA ; //uchar i=4;
00EA ; //uchar j='a';
00EA ; uart_init(4800); //初始化串口
00EA 00EC ldi R16,4800
00EC 12E1 ldi R17,18
00EE 9BDF rcall _uart_init
00F0 .dbline 70
00F0 ;
00F0 ; adc_init(); //初始化ADC
00F0 CADF rcall _adc_init
00F2 84C0 rjmp L22
00F4 L21:
00F4 .dbline 73
00F4 ;
00F4 ; while(1)
00F4 ; {
00F4 .dbline 75
00F4 ;
00F4 ; if(rdata==0xaa) //开始ADC转换标志
00F4 80912000 lds R24,_rdata
00F8 8A3A cpi R24,170
00FA 09F0 breq X10
00FC 7FC0 rjmp L24
00FE X10:
00FE X4:
00FE .dbline 76
00FE ; {
00FE .dbline 77
00FE ; rdata=0x00;
00FE 2224 clr R2
0100 20922000 sts _rdata,R2
0104 .dbline 79
0104 ; //****************************************************
0104 ; ADMUX = 0x46; //选择AVCC为参考,采集电压右对齐 6通道
0104 86E4 ldi R24,70
0106 80937C00 sts 124,R24
010A .dbline 81
010A ; //delay(100);
010A ; ADCSRA =0x84; //0b11000100 8分频
010A 84E8 ldi R24,132
010C 80937A00 sts 122,R24
0110 .dbline 82
0110 ; ADCSRA |=BIT(ADSC); //开始转换
0110 80917A00 lds R24,122
0114 8064 ori R24,64
0116 80937A00 sts 122,R24
011A L26:
011A .dbline 84
011A ;
011A ; while(!(ADCSRA&(1<<ADIF)));
011A L27:
011A .dbline 84
011A 20907A00 lds R2,122
011E 24FE sbrs R2,4
0120 FCCF rjmp L26
0122 X5:
0122 .dbline 87
0122 ;
0122 ; //while(ADCSRA&(1<<ADSC)); //为1等待
0122 ; adcL=ADCL;
0122 20907800 lds R2,120
0126 20920300 sts _adcL,R2
012A .dbline 88
012A ; adcH=ADCH;
012A 20907900 lds R2,121
012E 20920200 sts _adcH,R2
0132 .dbline 89
0132 ; ADCSRA |=BIT(1<<ADIF);
0132 10E1 ldi R17,16
0134 01E0 ldi R16,1
0136 00D0 rcall lsl8
0138 20907A00 lds R2,122
013C 202A or R2,R16
013E 20927A00 sts 122,R2
0142 .dbline 93
0142 ; //delay(100);
0142 ;
0142 ;
0142 ; ADCSRA |=BIT(ADSC); //开始转换第二次,第一次的不准确
0142 80917A00 lds R24,122
0146 8064 ori R24,64
0148 80937A00 sts 122,R24
014C L29:
014C .dbline 95
014C ;
014C ; while(!(ADCSRA&(1<<ADIF)));
014C L30:
014C .dbline 95
014C 20907A00 lds R2,122
0150 24FE sbrs R2,4
0152 FCCF rjmp L29
0154 X6:
0154 .dbline 98
0154 ;
0154 ; //while(ADCSRA&(1<<ADSC)); //为1等待
0154 ; adcL=ADCL;
0154 20907800 lds R2,120
0158 20920300 sts _adcL,R2
015C .dbline 99
015C ; adcH=ADCH;
015C 20907900 lds R2,121
0160 20920200 sts _adcH,R2
0164 .dbline 100
0164 ; ADCSRA |=BIT(1<<ADIF);
0164 10E1 ldi R17,16
0166 01E0 ldi R16,1
0168 00D0 rcall lsl8
016A 20907A00 lds R2,122
016E 202A or R2,R16
0170 20927A00 sts 122,R2
0174 .dbline 102
0174 ;
0174 ; uart_sendB(adcH);
0174 00910200 lds R16,_adcH
0178 8ADF rcall _uart_sendB
017A .dbline 103
017A ; uart_sendB(adcL);
017A 00910300 lds R16,_adcL
017E 87DF rcall _uart_sendB
0180 .dbline 106
0180 ;
0180 ; //****************************************************
0180 ; ADMUX = 0x47; //选择AVCC为参考,采集电压右对齐 7通道
0180 87E4 ldi R24,71
0182 80937C00 sts 124,R24
0186 .dbline 108
0186 ; //delay(100);
0186 ; ADCSRA =0x84; //0b11000100 8分频
0186 84E8 ldi R24,132
0188 80937A00 sts 122,R24
018C .dbline 109
018C ; ADCSRA |=BIT(ADSC); //开始转换
018C 80917A00 lds R24,122
0190 8064 ori R24,64
0192 80937A00 sts 122,R24
0196 L32:
0196 .dbline 111
0196 ;
0196 ; while(!(ADCSRA&(1<<ADIF)));
0196 L33:
0196 .dbline 111
0196 20907A00 lds R2,122
019A 24FE sbrs R2,4
019C FCCF rjmp L32
019E X7:
019E .dbline 114
019E ;
019E ; //while(ADCSRA&(1<<ADSC)); //为1等待
019E ; adcL=ADCL;
019E 20907800 lds R2,120
01A2 20920300 sts _adcL,R2
01A6 .dbline 115
01A6 ; adcH=ADCH;
01A6 20907900 lds R2,121
01AA 20920200 sts _adcH,R2
01AE .dbline 116
01AE ; ADCSRA |=BIT(1<<ADIF);
01AE 10E1 ldi R17,16
01B0 01E0 ldi R16,1
01B2 00D0 rcall lsl8
01B4 20907A00 lds R2,122
01B8 202A or R2,R16
01BA 20927A00 sts 122,R2
01BE .dbline 120
01BE ;
01BE ; //delay(100);
01BE ;
01BE ; ADCSRA |=BIT(ADSC); //开始转换
01BE 80917A00 lds R24,122
01C2 8064 ori R24,64
01C4 80937A00 sts 122,R24
01C8 L35:
01C8 .dbline 122
01C8 ;
01C8 ; while(!(ADCSRA&(1<<ADIF)));
01C8 L36:
01C8 .dbline 122
01C8 20907A00 lds R2,122
01CC 24FE sbrs R2,4
01CE FCCF rjmp L35
01D0 X8:
01D0 .dbline 125
01D0 ;
01D0 ; //while(ADCSRA&(1<<ADSC)); //为1等待
01D0 ; adcL=ADCL;
01D0 20907800 lds R2,120
01D4 20920300 sts _adcL,R2
01D8 .dbline 126
01D8 ; adcH=ADCH;
01D8 20907900 lds R2,121
01DC 20920200 sts _adcH,R2
01E0 .dbline 127
01E0 ; ADCSRA |=BIT(1<<ADIF);
01E0 10E1 ldi R17,16
01E2 01E0 ldi R16,1
01E4 00D0 rcall lsl8
01E6 20907A00 lds R2,122
01EA 202A or R2,R16
01EC 20927A00 sts 122,R2
01F0 .dbline 130
01F0 ; //delay(100);
01F0 ;
01F0 ; uart_sendB(adcH);
01F0 00910200 lds R16,_adcH
01F4 4CDF rcall _uart_sendB
01F6 .dbline 131
01F6 ; uart_sendB(adcL);
01F6 00910300 lds R16,_adcL
01FA 49DF rcall _uart_sendB
01FC .dbline 133
01FC ;
01FC ; }
01FC L24:
01FC .dbline 135
01FC ;
01FC ; }
01FC L22:
01FC .dbline 72
01FC 7BCF rjmp L21
01FE X9:
01FE .dbline -2
01FE L20:
01FE .dbline 0 ; func end
01FE 0895 ret
0200 .dbend
.area bss(ram, con, rel)
0000 .dbfile C:\DOCUME~1\zhanghanyu\桌面\ICC\chengxu10\lesson10\lesson10.c
0000 _adresult::
0000 .blkb 2
0002 .dbsym e adresult _adresult i
0002 _adcH::
0002 .blkb 1
0003 .dbsym e adcH _adcH c
0003 _adcL::
0003 .blkb 1
0004 .dbsym e adcL _adcL c
0004 _i::
0004 .blkb 1
0005 .dbsym e i _i c
0005 _Rec_Data::
0005 .blkb 27
0020 .dbsym e Rec_Data _Rec_Data A[27:27]c
0020 _rdata::
0020 .blkb 1
0021 .dbsym e rdata _rdata c
0021 ;
0021 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -