?? adc.s
字號:
.module ADC.C
.area text(rom, con, rel)
.dbfile F:\自編程序\M16\ADC\ADC.C
.dbfunc e MyItoa _MyItoa fV
; i -> R20
; Dat -> R22,R23
; Inter -> R10,R11
.even
_MyItoa::
xcall push_gset3
movw R22,R18
movw R10,R16
.dbline -1
.dbline 23
; #include<iom16v.h>
; #include<macros.h>
; #define AVCC (1<<REFS0)
; #define V_2.56 (1<<REFS0)|(1<<REFS1)
; #define AD_PRESCAL_2 (1<<ADPS0)
; #define AD_PRESCAL_4 (1<<ADPS1)
; #define AD_PRESCAL_8 (1<<ADPS0)|(1<<ADPS1)
; #define AD_PRESCAL_16 (1<<ADPS2)
; #define AD_PRESCAL_32 (1<<ADPS0)|(1<<ADPS2)
; #define AD_PRESCAL_64 (1<<ADPS1)|(1<<ADPS2)
; #define AD_PRESCAL_128 (1<<ADPS0)|(1<<ADPS2)|(1<<ADPS1)
; #define AD_SE_ADC0 //ADC0
; #define AD_SE_ADC1 (1<<MUX0) //ADC1
; #define AD_SE_ADC2 (1<<MUX1) //ADC2
; #define AD_SE_ADC3 (1<<MUX1)|(1<<MUX0) //ADC3
; #define AD_SE_ADC4 (1<<MUX2)//ADC4
; #define AD_SE_ADC5 (1<<MUX2)|(1<<MUX0)//ADC5
; #define AD_SE_ADC6 (1<<MUX2)|(1<<MUX1) //ADC6
; #define AD_SE_ADC7 (1<<MUX2)|(1<<MUX1)|(1<<MUX0) //ADC7
; //========================================
; //數(shù)字轉(zhuǎn)到字串,函數(shù).--只有4個字節(jié),而且向后對齊,前面補零.
; void MyItoa( unsigned int Inter, unsigned char Dat[])
; {
.dbline 25
; unsigned char i;
; for ( i=0; i<4 ; i++ )
clr R20
xjmp L5
L2:
.dbline 26
.dbline 27
mov R2,R20
clr R3
ldi R30,3
ldi R31,0
sub R30,R2
sbc R31,R3
add R30,R22
adc R31,R23
ldi R18,10
ldi R19,0
movw R16,R10
xcall mod16u
movw R24,R16
adiw R24,48
std z+0,R24
.dbline 28
ldi R18,10
ldi R19,0
movw R16,R10
xcall div16u
movw R10,R16
.dbline 29
L3:
.dbline 25
inc R20
L5:
.dbline 25
cpi R20,4
brlo L2
.dbline -2
.dbline 30
; {
; Dat[3-i]=Inter%10+'0';
; Inter/=10;
; }
; }
L1:
xcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r Dat 22 pc
.dbsym r Inter 10 i
.dbend
.dbfunc e ADC_initial _ADC_initial fV
.even
_ADC_initial::
.dbline -1
.dbline 32
; void ADC_initial(void)
; {
.dbline 33
; ADMUX=AVCC;
ldi R24,64
out 0x7,R24
.dbline 34
; ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADATE)|AD_PRESCAL_4;
ldi R24,226
out 0x6,R24
.dbline -2
.dbline 35
; }
L6:
.dbline 0 ; func end
ret
.dbend
.dbfunc e ADC_READ _ADC_READ fi
; temp -> R18
; data -> R16,R17
.even
_ADC_READ::
.dbline -1
.dbline 37
; unsigned int ADC_READ()
; {
.dbline 40
; unsigned char temp;
; unsigned int data;
; temp=ADCL;
in R18,0x4
.dbline 41
; data=ADCH;
in R16,0x5
clr R17
.dbline 42
; data<<=8;
mov R17,R16
clr R16
.dbline 43
; data+=temp;
mov R2,R18
clr R3
add R16,R2
adc R17,R3
.dbline 44
; return(data);
.dbline -2
L7:
.dbline 0 ; func end
ret
.dbsym r temp 18 c
.dbsym r data 16 i
.dbend
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -