標(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