請問如下程序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顯示出來應該怎樣分離個位十位百。小數位呢?謝謝!
你這個是adc0804?
你這個是adc0804?
stc12c5a16ad
voltage本身是個浮點數請問怎樣分離?謝謝!
/* Temperature data convert *
void TEMCONV()
{
if(TEM_DATA[1]>127)
{
TEM_DATA[0] = (~TEM_DATA[0])+1;
if((~TEM_DATA[0]) >= 0XFF)
TEM_DATA[1] = (~TEM_DATA[1])+1;
else TEM_DATA[1] = ~TEM_DATA[1];
TEM_SIGN = 1;
}
TEMP = TEM_DATA[0]&0X0F;
TEM_DIS[0] = (TEMP * 10/16);
TEMP = ((TEM_DATA[0]&0XF0 >> 4) | (TEM_DATA[1]&0X0F) << 4);
TEM_DIS[3] = TEMP/100;
TEMP = TEMP%100;
TEM_DIS[2] = TEMP/10;
TEM_DIS[1] = TEMP%10;
if(!TEM_DIS[3])
{
TEM_DIS[3] = 10;
if(!TEM_DIS[2])
{
TEM_DIS[2] = 10;
}
}
}
/* Display function *
void DISPLAY()
{
P2 = SEG_DATA[TEM_DIS[0]];
P0 = 0X0D; //小數點位
MSDELAY(10);
P2 = 0XFF;
P0 = 0X0F;
P2 = SEG_DATA[TEM_DIS[2]];
P0 = 0X0B; //十位
MSDELAY(10);
P2 = 0XFF;
P0 = 0X0F;
P2 = SEG_DATA[TEM_DIS[1]];
P0 = 0X0E; //個位
MSDELAY(10);
P2 = 0XFF;
P0 = 0X0F;
P2 = 0X7F;
P0 = 0X0E; //小數點
MSDELAY(10);
P2 = 0XFF;
P0 = 0X0F;
P2 = SEG_DATA[TEM_DIS[3]];
P0 = 0X07; //百位
MSDELAY(10);
P2 = 0XFF;
P0 = 0X0F;
}
這是我的溫度數值轉換,你看看
| 歡迎光臨 (http://www.raoushi.com/bbs/) | Powered by Discuz! X3.1 |