找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1585|回復: 1
打印 上一主題 下一主題
收起左側

要做一個可自動換量程的數字電壓表,分模塊寫的,其他部分都沒有問題就是AD錯誤好多

[復制鏈接]
跳轉到指定樓層
樓主
ID:447349 發(fā)表于 2018-12-18 08:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
/*************************************AD*************************************************/
uchar code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80};//顯示0~9和小數點的值
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];//個位
        disp[3]=smgduan['.'];//小數點
        disp[4]=smgduan[(int)adc*10%10];//十分位
        disp[5]=smgduan[(int)adc*100%10];//百分位
}
void InitADC()
{
   P1ASF=0x02;  //設置P1^1口為通道口
   ADC_CONTR=0x81;//打開AD轉換電源
   //CLK_DIV&=0x20;                        //高2+8
   Delay();                       //ADC上電并延時,等待電源穩(wěn)定
    ADC_CONTR=0x89;
}
void GetADCResult();

       _NOP_();         
       _NOP_();
       _NOP_();
       _NOP_();       
//          while( !(ADC_CONTR & ADC_FL)AG);//等待ADC轉換完成
    //  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顯示,本來還要求實現(xiàn)存儲查詢功能但是我放棄了   

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:455293 發(fā)表于 2018-12-28 01:00 來自觸屏版 | 只看該作者
求問樓主能不能把原理圖分享給我?因為我也是正在做這個電壓表,頭疼得很(;︵;`)感謝樓主!1740467619@qq.com
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表