温度传感器后接模数转换后出现1F十六进制数,求如何在电脑上显示成十进制的程序
模数转换后,出现十六进制的数,求转换成直接显示成现实温度的程序,谢谢 除以10取余数,结果再除以10取余数,直到商为0 电脑上用什么编程语言?-----此内容被zy1227于2006-05-15,14:52:33编辑过 郁闷的问题 用什么语言不重要吧? 楼主求的是程序,所以要问清楚语言呀! 我做的一个:10位转换器(0-5V)对应600mA 线性关系
转换结果如下,希望能帮得上忙
uint read_adc(uchar adc_input)
{
uint adc_value_buf;
uint tmp;
long tmp32;
uchar adc_count,i,j;
if(adc_input)
ADMUX=0B01000001;
else
ADMUX=0B01000000;
for(adc_count=0;adc_count<TEST_N;adc_count++)
{
ADCSRA|=_BV(ADSC);
loop_until_bit_is_set(ADCSRA,ADIF);
ADCSRA|=_BV(ADIF);
adc_value_buf=ADC;
}
for(j=0;j<TEST_N-1;j++) //从小到大排列
for(i=0;i<TEST_N-j;i++)
{
if(adc_value_buf>adc_value_buf)
{
tmp=adc_value_buf;
adc_value_buf=adc_value_buf;
adc_value_buf=tmp; //已经经过测试,正确!
}
}
tmp=adc_value_buf[(TEST_N-1)/2]; //取中值
tmp32=(long)tmp*600; //转换为0~600的数值,表示600mA
tmp=(unsigned int)(tmp32/1024); //ADC位10位精度,所以除于1024
return tmp;
} 这是我做的DS18B20温度传感器时用的温度转换程序(汇编)
clr r0 ;百位(不够百位则为0)
clr r1 ;十位
clr r2 ;个位
ldi r16,0x19 ;r16放除数,大于100的数先除100,商为百位
;余数再除10,得商为十位,余数为个位
cpi r16,0x64
brsh D1
rcall d2
clr r0
mov r1,r16
mov r2,r19
rjmp d9
D1:
ldi r17,100
rcall div8
mov r0,r16
;mov r1,r19
mov r16,r19
rcall d2
mov r1,r16
mov r2,r19
rjmp d9
D2: ldi r17,10
DIV8:
SUB R19,R19
LDI R18,9
D4: ROL R16
DEC R18
BRNE D5
ret
;rjmp d9
D5: ROL R19
SUB R19,R17
BRCC D6
ADD R19,R17
CLC
RJMP D4
D6: SEC
RJMP D4 mark 学习一下,谢谢分享 C和汇编的都有了,楼主还要什么语言的?{:lol:}
页:
[1]