久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

ADC0804測直流電壓

作者:佚名   來源:本站原創   點擊數:  更新時間:2011年01月18日   【字體:

/*

    ADC0804屬于8位CMOS三態鎖定輸出逐次逼近型A/D轉換器,存取時間135us,轉換時間100us,總誤差

1LSB。現在講一下它的轉換原理和硬件連接:

 

它的管腳有20個:

 

/CS:芯片選通信號,低電平選通,只有CS為低電平的時候,芯片才被選通工作(但不一定開始數據轉換,由/WR

控制起停轉換)。

 

/RD:讀宣統信號,也就是外部單片機讀取轉換結果的控制信號,/RD為高電平,DB0~DB7處于高阻態,處于低電

平數字數據才會輸出。

 

/WR:啟動轉換的控制輸入,轉換的開始與停止由它控制,/CS=0的前提下,/WR由高變為低,轉換器被清除,/WR

由低變為高,轉換正式開始。

 

CLK IN、CLK R:時鐘輸入或接震蕩元件(R、C),頻率約限制在100KHZ~1460KHZ,如果使用RC電路則其振蕩頻

率為1/(1.1RC).

 

/INTR:中斷請求信號輸出,低電平動作,準備轉換前置1,轉換結束后,自動產生一個低電平信號,通過查詢可

控制讀取數據的時間。

 

VIN(+)、VIN(-):差動模擬電壓輸入端,輸入單端正電壓時,VIN(-)接地,而差動輸入時,直接加入VIN(+)、

VIN(-).

 

AGND:模擬信號接地端。

 

DGND:數字信號接地段。

 

VREF:輔助參考電壓。

 

DB0~DB7:8位數字輸出。

 

VCC:電源供應以及作為電路的參考電壓。

*/
 

#include<reg52.h>

 

code unsigned char seg7code[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

 

sbit int1=P3^3;

sbit cs=P3^2;

sbit wr=P3^6;

sbit rd=P3^7;

 

void Delay(unsigned int tc)

{

       while(tc!=0)

       {

              unsigned int i;

              for(i=0;i<100;i++);

              tc--;

       }

}

 

unsigned char adc0804(void)

{

       unsigned char addata,i;

       rd=1;wr=1;int1=1;

       P1=0xff;

       cs=0;wr=0;wr=1;

       while(int1==1);

       rd=0;

       i=i;i=i;

       addata=P1;

       rd=1;cs=1;

       return(addata);

}

 

unsigned int datpro(void)

{

       unsigned char x;

       unsigned int dianyah,dianyal;

       unsigned int dianya=0;

       for(x=0;x<10;x++)

       {     

              dianya=adc0804()+dianya;

       }

       dianya=dianya/10;

       dianyah=dianya&0xf0;

       dianyah=dianyah>>4;

       dianyal=dianya&0x0f;

       dianya=dianyal*20+dianyah*320;

       return(dianya);

}

 

void Led()

{

       unsigned int date;

       date=datpro();

       P2=P2&0x7f;

       P0=seg7code[date/1000]|0x80;

       Delay(8);P2=P2|0xf0;P2=P2&0xbf;

       P0=seg7code[date%1000/100];

       Delay(8);P2=P2|0xf0;P2=P2&0xdf;

       P0=seg7code[date%100/10];

       Delay(8);P2=P2|0xf0;P2=P2&0xef;

       P0=seg7code[date%10];

       Delay(8);P2=P2|0xf0;

}

 

main()

{

       while(1)

       {

              Led();

       }

}

/*

    這個程序寫的還是很不錯的,用到了多次采樣求平均值以減少誤差,由于參考電壓選取的是+5V,所以

測量的模擬量不能超過5V,也就是說測量結果的整數位只有一位,其他三位為小數部分。關于轉換器的轉換精

度問題,用分辨率(DAC)和轉換誤差(DAC)來描述其轉換精度。
完整程序下載:http://www.zg4o1577.cn/f/0804dd.rar

 

分辨率:電路所能分辨的最小輸出電壓U(LSB)與滿刻度輸出電壓U(omax)之比。

 
分辨率=U(LSB)/U(omax)=1/(2^n-1)

 

轉換誤差:指輸入端加滿刻度的數字量時,DAC輸出電壓的理論值與實際值只差。轉換誤差一般<0.5U(LSB)

 

最小分辨電壓:U(LSB)=分辨率*U(omax)=U(omax)/(2^n-1)

 

如果要求一系統的(DAC)轉換誤差(相對誤差)小于0.25%,那么應該選擇多少位的DAC轉換器呢?

 

轉換誤差/U(omax)<0.25%

 

轉換誤差/U(omax)<0.5U(LSB)/U(omax)

 

0.5U(LSB)/U(omax)<0.25%

 

U(LSB)/U(omax)<0.5%

 

1/(2^n-1)100%<0.5%

 

n≈7.64

 

n=8

 
就adc0804來說,它的最小分辨電壓(Uref=5V)為0.019,采用四位數碼管比較合適。

*/

關閉窗口

相關文章

主站蜘蛛池模板: 欧美 日韩 视频 | 国产伦一区二区三区四区 | 国产一区久久久 | 国产精品乱码一区二区三区 | caoporn视频在线 | 五月综合激情婷婷 | 中文字幕一级 | 男人天堂午夜 | 亚洲午夜精品一区二区三区他趣 | 99re在线视频观看 | 欧美一区免费 | 午夜影院 | 91久久久久久久久久久 | 亚洲欧美自拍偷拍视频 | www.99热这里只有精品 | 国产欧美在线一区 | 九一视频在线播放 | 国产福利在线播放麻豆 | 黄网站涩免费蜜桃网站 | 欧美美女爱爱视频 | 黄色免费观看网站 | 日韩欧美精品在线 | 成人精品鲁一区一区二区 | 国产亚洲欧美日韩精品一区二区三区 | 特级一级黄色片 | 91在线看视频 | 97视频成人| 不卡一区二区在线观看 | 日韩欧美二区 | 国产欧美在线观看 | 理伦毛片| 日韩美女爱爱 | 久久在线看 | 欧美久久视频 | 久久欧美精品 | 欧美日韩1区 | 精品一二三区在线观看 | 超碰婷婷| 日日操夜夜操视频 | 91久久久久久久久久久 | 国产视频线观看永久免费 |