0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ADC0804模數(shù)轉(zhuǎn)換器的應(yīng)用實(shí)例

CHANBAEK ? 來(lái)源:郎哥編程課堂 ? 作者: 郎宏林 ? 2023-11-15 17:17 ? 次閱讀

實(shí)驗(yàn)要求: 應(yīng)用A/D轉(zhuǎn)換器將滑動(dòng)電阻輸出的模擬電壓量轉(zhuǎn)換為數(shù)字電壓量,將數(shù)字電壓量輸出到四位數(shù)碼管,并通過(guò)電壓表給出模擬電壓量的讀數(shù)。下圖是實(shí)驗(yàn)截圖。

圖片

實(shí)驗(yàn)方案: 應(yīng)用proteus設(shè)計(jì)實(shí)驗(yàn)用模擬電路,A/D轉(zhuǎn)換器采用ADC0804模擬器件,滑動(dòng)電阻采用proteus支持的POT-HG,四位數(shù)碼管采用7SEG-MPX4CA。

ADC0804模數(shù)轉(zhuǎn)換器

有20個(gè)引腳,分辨率為8位,轉(zhuǎn)換時(shí)間為100μs,輸入電壓范圍為0~5V。

分辨率:A/D轉(zhuǎn)換器對(duì)輸入模擬信號(hào)的分辨能力,ADC0804分辨率為8位,即輸出位數(shù)為8個(gè)二進(jìn)制位,可以區(qū)分2^8(256)不同等級(jí)的輸入模擬電壓,能區(qū)分輸入的電壓最小值為滿量程輸入的1/2^8(1/256),若需要區(qū)分更小的輸入電壓。就需要增加輸出位數(shù),提高A/D轉(zhuǎn)換器的分辨率。

轉(zhuǎn)換時(shí)間:A/D轉(zhuǎn)換器從接收到模擬電壓到輸出數(shù)字電壓需要的時(shí)間,不同類型的轉(zhuǎn)換器轉(zhuǎn)換時(shí)間不同,并行比較的A/D轉(zhuǎn)換器轉(zhuǎn)換時(shí)間可達(dá)50ns以內(nèi),逐次比較的A/D轉(zhuǎn)換器轉(zhuǎn)換時(shí)間一般在10~100μs之間,雙積分A/D轉(zhuǎn)換器轉(zhuǎn)換時(shí)間一般在幾十毫秒到幾百毫秒之間。

圖片

CS引腳:芯片的片選信號(hào),低電平有效。若該引腳為低電平,芯片開(kāi)始工作,若該引腳為高電平,芯片停止工作。當(dāng)外接多個(gè)ADC0804芯片時(shí),該引腳可作為芯片的選擇地址,通過(guò)不同的地址信號(hào)使用不同的ADC0804芯片,從而可以實(shí)現(xiàn)多個(gè)ADC通道的分時(shí)復(fù)用。

WR引腳:采樣觸發(fā)信號(hào),低電平有效。若該引腳由高電平變?yōu)榈碗娖綍r(shí),芯片對(duì)模擬信號(hào)進(jìn)行一次采樣,并進(jìn)行AD轉(zhuǎn)換。

RD引腳:轉(zhuǎn)換數(shù)據(jù)完成信號(hào),低電平有效。若檢測(cè)到該引腳為低電平,說(shuō)明一次轉(zhuǎn)換完成,轉(zhuǎn)換完成的數(shù)據(jù)從DB0~DB7引腳讀取。

VIN+和VIN-引腳:模擬電壓輸入端,用以接收單極性、雙極性和差模輸入信號(hào)。雙極性輸入信號(hào)有正負(fù)電壓、零電壓,單極性輸入信號(hào)僅有正電壓。若為單極性輸入信號(hào),VIN+接模擬電壓的輸入,VIN-接地;若為雙極性輸入信號(hào),VIN+和VIN-分別接模擬輸入電壓的正極和負(fù)極。

VREF/2引腳:參考電壓接入引腳。該引腳可外接電壓,也可懸空。

CLKIN引腳:引入外部時(shí)鐘脈沖,用于芯片的時(shí)鐘信號(hào)。

CLKR引腳:內(nèi)部時(shí)鐘發(fā)生器外接電阻端,與CLKIN端配合可由芯片自身產(chǎn)生時(shí)鐘脈沖,時(shí)鐘脈沖頻率范圍一般為100KHz~1460KHz。

INTR引腳:轉(zhuǎn)換結(jié)束輸出信號(hào),低電平有效,當(dāng)一次A/D轉(zhuǎn)換完成后,該引腳被設(shè)置為0。在實(shí)際應(yīng)用中,該引腳可與外部中斷輸入引腳相連(如51單片機(jī)的INT0,INT1腳),觸發(fā)中斷請(qǐng)求,中斷發(fā)生后,還需等待RD=0才能正確讀出A/D轉(zhuǎn)換結(jié)果。若不使用中斷,該引腳可以懸空。

AGAND和DGAND引腳:模擬接地和數(shù)字接地,兩個(gè)引腳可以直接接地。

VCC引腳:接+5V電源。

DB0~DB7引腳:輸出A/D轉(zhuǎn)換后的8位二進(jìn)制結(jié)果。

四位數(shù)碼管7SEG-MPX4CA

實(shí)驗(yàn)用顯示器件采用四位數(shù)碼管7SEG-MPX4CA,該器件共有12個(gè)引腳。其中1、2、3、4引腳為位選信號(hào),用于控制幾個(gè)數(shù)碼管亮,A~G引腳為顯示數(shù)字的段選信號(hào),DP引腳為小數(shù)點(diǎn)。

圖片

實(shí)驗(yàn)電路設(shè)計(jì)

ADC0804中的VCC接入5V電源,REF/2引腳懸空(懸空則相當(dāng)于與VCC共接5V電源),因此ADC轉(zhuǎn)換的參考電壓為VCC的值,即5V。DB0DB7引腳連接單片機(jī)的P1.0P1.7,RD和WR引腳連接單片機(jī)的P3.6和P3.7,VIN+引腳接滑動(dòng)變阻器的可調(diào)節(jié)端,VIN-引腳接地,在VIN+和VIN-引腳之間接入電壓表,CLKIN引腳和CLKR引腳連接的電容和電阻構(gòu)成外部時(shí)鐘脈沖。單片機(jī)P0.0~P0.7接四位數(shù)碼管的段選線。

圖片

單片機(jī)內(nèi)運(yùn)行的完整C程序如下:

#include
#include
#define uint unsigned int
#define uchar unsigned char
sbit wr=P3^6;
sbit rd=P3^7;
uchar code dis[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay(uint x) 
{
   uchar i;
   while(x--)
     for(i=0;i< 120;i++);       
}
void display(uchar db)
{
    uchar bw,sw,gw;
         float value;
         int voltage;
         value = (float)db * 5 / 256 * 100;
         voltage = (int)value;
         bw=voltage/100;
         sw=voltage%100/10;
         gw=voltage%10;
      P2=0x01;
         P0=dis[bw]&0x7f;
         delay(5);
         P2=0x02; 
         P0=dis[sw];
         delay(5);
         P2=0x04;
         P0=dis[gw];
         delay(5);  
         P2=0x08;
         P0=dis[0];
         delay(5);
}  
void main()
{
       uchar i;
       while(1)
       {
              wr=0;
              _nop_();
              wr=1;
              delay(1);       
              P1=0xff;
              rd=0;
              _nop_();
              for(i=0;i< 10;i++)
                      display(P1); 
       } 
}

位變量wr和rd用于操作P3.6和P3.7,P3.6和P3.7連接到了ADC0804的WR和RD引腳,用于控制信號(hào)采樣和讀取采樣信號(hào)。數(shù)組變量dis[]定義了數(shù)碼管顯示的數(shù)字編碼。

delay(uint x)是延遲函數(shù),參數(shù)x為延時(shí)的毫秒數(shù)。

display(uchar db)是數(shù)碼管顯示函數(shù),參數(shù)db為P1口,P1口存儲(chǔ)了采集到的電壓數(shù)字量。ADC0804的分辨率為8位,可以區(qū)分2^8(256)不同等級(jí)的輸入模擬電壓,且輸入電壓量程為0 ~ 5V,ADC0804輸出的數(shù)值范圍為0~256,轉(zhuǎn)換為電壓(單位V)的公式為:

輸出的數(shù)值*輸入最大量程 / 256

下面的代碼將輸出的數(shù)值轉(zhuǎn)換為電壓的數(shù)字量(單位V),并分別計(jì)算出數(shù)字量的各個(gè)位數(shù)。

value = (float)db * 5 / 256 * 100;  
// 輸出數(shù)值轉(zhuǎn)換為電壓,乘以1000方便計(jì)算出數(shù)值的各個(gè)位數(shù)
voltage = (int)value;  
bw=voltage/100;     // 計(jì)算出百位數(shù)
sw=voltage%100/10;  // 計(jì)算出十位數(shù)
gw=voltage%10;      // 計(jì)算出個(gè)位數(shù)

語(yǔ)句P2=0x01選擇數(shù)碼管的第1位顯示數(shù)字,語(yǔ)句P0=dis[bw]&0x7f用于顯示數(shù)字和小數(shù)點(diǎn),dis[bw]指定的數(shù)字的編碼,再和0x7f做與操作,顯示小數(shù)點(diǎn)。

main()函數(shù)是主控函數(shù),應(yīng)用while結(jié)構(gòu)循環(huán)采集和轉(zhuǎn)換可變電阻輸出的電壓,并將采集的電壓輸出到數(shù)碼管顯示。語(yǔ)句wr=0將ADC0804的wr引腳設(shè)為低電平,通知ADC0804進(jìn)行采樣,語(yǔ)句_nop_()執(zhí)行_nop_()函數(shù), nop ()函數(shù)不是C語(yǔ)言標(biāo)準(zhǔn)庫(kù)的函數(shù),它是51單片機(jī)提供的指令,它執(zhí)行一個(gè)機(jī)器周期的空操作,讓ADC0804完成數(shù)據(jù)采樣和模數(shù)轉(zhuǎn)換,其后執(zhí)行語(yǔ)句wr=1,將ADC0804的wr引腳設(shè)為高電平。語(yǔ)句P1=0xff將P1各端口都設(shè)置為高電平,準(zhǔn)備接收采集的數(shù)據(jù),語(yǔ)句rd=0將ADC0804的rd引腳設(shè)為低電平,從DB0~DB7引腳讀取數(shù)據(jù)到P1口。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 轉(zhuǎn)換器
    +關(guān)注

    關(guān)注

    27

    文章

    8705

    瀏覽量

    147195
  • 數(shù)碼管
    +關(guān)注

    關(guān)注

    32

    文章

    1882

    瀏覽量

    91132
  • 模數(shù)轉(zhuǎn)換器

    關(guān)注

    26

    文章

    3204

    瀏覽量

    126842
  • 引腳
    +關(guān)注

    關(guān)注

    16

    文章

    1196

    瀏覽量

    50497
  • adc0804
    +關(guān)注

    關(guān)注

    1

    文章

    31

    瀏覽量

    22206
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于ADC0804單片集成A/D轉(zhuǎn)換器時(shí)序圖

    ADC0804單片集成A/D轉(zhuǎn)換器。它采用CMOS工藝20引腳集成芯片,分辯率為8位,轉(zhuǎn)換時(shí)間為100μs,輸入電壓范圍為0~5V。芯片內(nèi)具有三態(tài)輸出數(shù)據(jù)鎖存,可直接接在數(shù)據(jù)總線上。
    的頭像 發(fā)表于 02-02 17:08 ?2069次閱讀
    基于<b class='flag-5'>ADC0804</b>單片集成A/D<b class='flag-5'>轉(zhuǎn)換器</b>時(shí)序圖

    單片機(jī)外設(shè)AD轉(zhuǎn)換器ADC0804時(shí)序圖

    如圖,為單片機(jī)AD轉(zhuǎn)換器的一種:ADC0804單片集成A/D轉(zhuǎn)換器。它采用CMOS工藝20引腳集成芯片,分辯率為8位,轉(zhuǎn)換時(shí)間為100μs,輸入電壓范圍為0~5V。芯片內(nèi)具有三態(tài)輸出數(shù)
    發(fā)表于 07-11 07:54

    5962-9581501HXA高端AD模數(shù)轉(zhuǎn)換器

    AD10242TZ/883B高端AD模數(shù)轉(zhuǎn)換器IC ADC 12BIT 41MSPS DL 68CLCC5962-9581501HXA高端AD模數(shù)轉(zhuǎn)換器IC ADC 12BIT 2 C
    發(fā)表于 07-15 11:10

    模數(shù)轉(zhuǎn)換器ADC)的配置有哪些流程?

    模數(shù)轉(zhuǎn)換器ADC)是什么?模數(shù)轉(zhuǎn)換器ADC)的配置有哪些流程?配置流程的代碼是什么?
    發(fā)表于 07-14 08:43

    ADC模數(shù)轉(zhuǎn)換器

    文章目錄1. ADC1. ADCADC(Analog-to-digital converters,模數(shù)轉(zhuǎn)換器),
    發(fā)表于 08-06 06:08

    STM32之ADC模數(shù)轉(zhuǎn)換器介紹

    ADC模數(shù)轉(zhuǎn)換器是什么?ADC模數(shù)轉(zhuǎn)換器的相關(guān)寄存有哪些?
    發(fā)表于 11-08 08:47

    模數(shù)轉(zhuǎn)換器ADC簡(jiǎn)介

    ESP32 之 ESP-IDF 學(xué)習(xí)筆記(七)——模數(shù)轉(zhuǎn)換器ADC)文章目錄ESP32 之 ESP-IDF 學(xué)習(xí)筆記(七)——模數(shù)轉(zhuǎn)換器ADC)一、簡(jiǎn)介1、兩個(gè)
    發(fā)表于 02-17 06:28

    ADC0804中文資料.pdf

    ADC0804中文資料:所謂A/D 轉(zhuǎn)換器就是模擬/數(shù)字轉(zhuǎn)換器ADC),是將輸入的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)。信號(hào)輸入端可以是傳感
    發(fā)表于 03-13 23:38 ?1210次下載
    <b class='flag-5'>ADC0804</b>中文資料.pdf

    模數(shù)轉(zhuǎn)換ADC0804的應(yīng)用(含源程序及電路)

    模數(shù)轉(zhuǎn)換ADC0804的應(yīng)用(含源程序及電路) [實(shí)驗(yàn)要求] 從ADC0804 的模擬量通道輸入0-5V 之間的模擬量,通過(guò)ADC080
    發(fā)表于 07-16 10:04 ?1.1w次閱讀
    <b class='flag-5'>模數(shù)</b><b class='flag-5'>轉(zhuǎn)換</b><b class='flag-5'>ADC0804</b>的應(yīng)用(含源程序及電路)

    電流積分模數(shù)轉(zhuǎn)換器(ADC),什么是電流積分模數(shù)轉(zhuǎn)換器(AD

    電流積分模數(shù)轉(zhuǎn)換器(ADC),什么是電流積分模數(shù)轉(zhuǎn)換器(ADC) 模數(shù)轉(zhuǎn)換器(Analog to digital Converter,簡(jiǎn)稱
    發(fā)表于 03-24 13:31 ?3170次閱讀

    數(shù)模模數(shù)轉(zhuǎn)換芯片ADC0804數(shù)據(jù)手冊(cè)

    ADC0801、ADC0802、ADC0803、ADC0804ADC0805是CMOS 8位逐次逼近A/D使用微分電位階梯的
    發(fā)表于 07-06 17:40 ?56次下載

    adc0804工作原理

    集成A/D轉(zhuǎn)換器品種繁多,選用時(shí)應(yīng)綜合考慮各種因素選取集成芯片。一般逐次比較型A/D轉(zhuǎn)換器用的比較多,ADC0804就是這類單片集成A/D轉(zhuǎn)換器。A
    發(fā)表于 11-12 09:21 ?3.6w次閱讀
    <b class='flag-5'>adc0804</b>工作原理

    ADC0804模數(shù)轉(zhuǎn)換51單片機(jī)程序與電路

    集成A/D轉(zhuǎn)換器品種繁多,選用時(shí)應(yīng)綜合考慮各種因素選取集成芯片。一般逐次比較型A/D轉(zhuǎn)換器用的比較多,ADC0804就是這類單片集成A/D轉(zhuǎn)換器。A
    發(fā)表于 11-12 09:46 ?3.6w次閱讀
    <b class='flag-5'>ADC0804</b><b class='flag-5'>模數(shù)</b><b class='flag-5'>轉(zhuǎn)換</b>51單片機(jī)程序與電路

    adc0804adc0809區(qū)別

    adc0809是八個(gè)單端輸入,參考電壓:5V, 即Vref=5V。 adc0804是一個(gè)差分輸入,參考電壓:2.5V,即Vref=2.5V。其它參數(shù)一樣。ADC0804是單路的,ADC
    發(fā)表于 11-12 10:02 ?2.6w次閱讀

    adc0804操作方法

    ADC0804是逐次比較型A/D轉(zhuǎn)換器,它采用CMOS工藝20引腳集成芯片,分辨率為8位,轉(zhuǎn)換時(shí)間100us,輸入電壓范圍0~5V芯片內(nèi)具有三態(tài)輸出數(shù)據(jù)鎖存,科直接連接在數(shù)據(jù)總線上。
    發(fā)表于 11-12 10:37 ?1.9w次閱讀
    <b class='flag-5'>adc0804</b>操作方法