钻石会员
主题
帖子
积分11931
阅读权限50
注册时间2009-7-18
最后登录1970-1-1
在线时间 小时
|
请问如下程序AD转换值怎样分离个位十位百小数位谢谢!
float voltage = 0.0;
//uint V;
float VCC = 4.99;
//=============================== AD转换程序 ======================================
uint ADC(uchar Od)
{
uint AD_Result_Temp = 0 ;
ADC_CONTR = ADC_CONTR|0x80; //1000,0000打开A/D转换电源
P1ASF = SET_IO[Od];//
delayms(20); //20
ADC_CONTR = ADC_CONTR & 0xE0; //1110,0000 清ADC_FLAG,ADC_START位和低3位
ADC_CONTR = ADC_CONTR|((ADC_ID[Od])& 0x07); //设置当前通道号00000111
delayms(1); //延时使输入电压达到稳定
ADC_RES = 0; //STC12C5A16AD系列单片机_清A/D转换结果寄存器高八位
ADC_RESL = 0; //STC12C5A16AD系列单片机_清A/D转换结果寄存器低二位
ADC_CONTR = ADC_CONTR|0x08; //0000,1000ADCS = 1,启动转换
do { ; }
while((ADC_CONTR & 0x10)==0); //0001,0000等待A/D转换结束
ADC_CONTR = ADC_CONTR&0xE7; //1110,0111清ADC_FLAG位,停止A/D转换
AD_Result_Temp = ((AD_Result_Temp|ADC_RES)<<2)|(ADC_RESL&0x03);//高八位+低二位
return AD_Result_Temp;//ADC_RES;
}
//============================= 检测 ============================================
void PIS1() //0.6V~0.8V 0.7V +_ 0.1V
{
//VCC = 2.499 * 1024 / ADC(0); //先读取基准电压算出供电电压
voltage = ADC(1) * VCC / 1024;
}
如果要将voltage 这个值用lcd显示出来应该怎样分离个位十位百。小数位呢?谢谢! |
|