標(biāo)題:
要做一個(gè)可自動(dòng)換量程的數(shù)字電壓表,分模塊寫(xiě)的,其他部分都沒(méi)有問(wèn)題就是AD錯(cuò)誤好多
[打印本頁(yè)]
作者:
chujiu
時(shí)間:
2018-12-18 08:28
標(biāo)題:
要做一個(gè)可自動(dòng)換量程的數(shù)字電壓表,分模塊寫(xiě)的,其他部分都沒(méi)有問(wèn)題就是AD錯(cuò)誤好多
/*************************************AD*************************************************/
uchar code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80};//顯示0~9和小數(shù)點(diǎn)的值
uchar disp[5];
uint adc;
void Delay();
void GetADCResult();
uchar t;
void Delay()
{
uchar i, j;
i = 12;
j = 169;
do
{
while (--j);
} while (--i);
}
void Display()
{
GetADCResult();
disp[1]=smgduan[(int)adc/10%10];//十位
disp[2]=smgduan[(int)adc%10];//個(gè)位
disp[3]=smgduan['.'];//小數(shù)點(diǎn)
disp[4]=smgduan[(int)adc*10%10];//十分位
disp[5]=smgduan[(int)adc*100%10];//百分位
}
void InitADC()
{
P1ASF=0x02; //設(shè)置P1^1口為通道口
ADC_CONTR=0x81;//打開(kāi)AD轉(zhuǎn)換電源
//CLK_DIV&=0x20; //高2+8
Delay(); //ADC上電并延時(shí),等待電源穩(wěn)定
ADC_CONTR=0x89;
}
void GetADCResult();
_NOP_();
_NOP_();
_NOP_();
_NOP_();
// while( !(ADC_CONTR & ADC_FL)AG);//等待ADC轉(zhuǎn)換完成
// ADC_CONTR &= ~ADC_FLAG; //Close ADC
adc_data=(ADC_RES&0x03)*5/256;
adc=adc_data;
//int i;
// for(i=1;i<6;i++)
// ki=~adc_datai
采用的LCD1602顯示,本來(lái)還要求實(shí)現(xiàn)存儲(chǔ)查詢功能但是我放棄了
作者:
一顆奈李
時(shí)間:
2018-12-28 01:00
求問(wèn)樓主能不能把原理圖分享給我?因?yàn)槲乙彩钦谧鲞@個(gè)電壓表,頭疼得很(;︵;`)感謝樓主!1740467619@qq.com
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1