新聞中心

        EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 模數(shù)轉(zhuǎn)換ADC0804的應(yīng)用實(shí)例(含源程序及電路)

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

        作者: 時(shí)間:2012-08-18 來源:網(wǎng)絡(luò) 收藏

        的應(yīng)用(含源程序及)

        本文引用地址:http://www.104case.com/article/185910.htm

        [實(shí)驗(yàn)要求]

        的模擬量通道輸入0-5V 之間的模擬量,通過 轉(zhuǎn)換成數(shù)字量送給單片機(jī),經(jīng)單片機(jī)處理后在數(shù)碼管上以十進(jìn)制形成顯示出來。

        [實(shí)驗(yàn)?zāi)康腯

        學(xué)習(xí)如果用單片機(jī)控制ADC0804芯片進(jìn)行數(shù)模轉(zhuǎn)換,掌握數(shù)碼管動態(tài)掃描顯示的原理。

        動態(tài)掃描:就六位數(shù)碼管顯示123456舉例說明如下:先讓第一個(gè)數(shù)碼管顯示1,其余的全部不亮,1大約亮幾毫秒,然后熄滅,緊接著立即讓第二個(gè)數(shù)碼管顯示2,其余的全部不亮,2同樣亮幾毫秒,依次這樣亮到第六個(gè)數(shù)碼管,然后再回來顯示1,如此這樣以很快的速度不斷循環(huán)下去,由于人眼的視覺暫留時(shí)間大約為20毫秒左右,所以是感覺不出有不亮的數(shù)碼管存在的,看見的是六個(gè)數(shù)碼管同時(shí)在顯示,數(shù)值是123456,如果我們把這個(gè)過程一點(diǎn)點(diǎn)放慢,看見的是從第一個(gè)數(shù)碼管顯1,然后移到第二個(gè)再顯2,。。。也就是說在任一時(shí)刻只有一位數(shù)碼管是亮的。這就是數(shù)碼管動態(tài)掃描顯示的原理

        ADC0804: ADC0804是8位全MOS中速A/D 轉(zhuǎn)換器、它是逐次逼近式A/D 轉(zhuǎn)換器,片內(nèi)有三態(tài)數(shù)據(jù)輸出鎖存器,可以和單片機(jī)直接接口。單通道輸入,轉(zhuǎn)換時(shí)間大約為100us。ADC0804 轉(zhuǎn)換時(shí)序是:當(dāng)CS=0 許可進(jìn)行A/D 轉(zhuǎn)換。WR由低到高時(shí),A/D開始轉(zhuǎn)換,一次轉(zhuǎn)換一共需要66-73 個(gè)時(shí)鐘周期。CS與WR同時(shí)有效時(shí)啟動A/D轉(zhuǎn)換,轉(zhuǎn)換結(jié)束產(chǎn)生INTR 信號(低電平有效),可供查詢或者中斷信號。在CS和RD 的控制下可以讀取數(shù)據(jù)結(jié)果。本實(shí)驗(yàn)沒有使用INTR信號。

        [硬件]

        [源代碼]

        //擰動AD旁邊的電位器,會在數(shù)碼管的前三位顯示0-255之間的數(shù)//值。這就是把模擬信號轉(zhuǎn)換成數(shù)字信號,即

        #includereg51.h>

        #include intrins.h>

        #define uint unsigned int

        #define uchar unsigned char

        sbit adrd=P3^7;//IO口定義

        sbit adwr=P3^6;

        sbit diola=P2^5;

        sbit dula=P2^6;

        sbit wela=P2^7;

        unsigned char j,k,adval;

        void delay(unsigned char i)//延時(shí)程序

        {

        for(j=i;j>0;j--)

        for(k=125;k>0;k--);

        }

        uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,//數(shù)碼管編碼

        0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

        void display(uchar bai_c,uchar sh_c,uchar g_c)//顯示程序

        {

        P0=table[bai_c];//顯示百位

        dula=1;

        dula=0;

        P0=0xfe;

        wela=1;

        wela=0;

        delay(5);

        dula=0;

        P0=table[sh_c];//顯示十位

        dula=1;

        dula=0;

        DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY


        電路相關(guān)文章:電路分析基礎(chǔ)


        波段開關(guān)相關(guān)文章:波段開關(guān)原理



        上一頁 1 2 下一頁

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 榕江县| 讷河市| 霍邱县| 阳朔县| 四会市| 灵寿县| 兴安县| 库车县| 黔西| 孝义市| 孝昌县| 岳阳市| 渝北区| 明星| 哈密市| 合阳县| 始兴县| 平和县| 太湖县| 凤城市| 宽城| 绵阳市| 洪泽县| 桃园县| 德阳市| 吉水县| 深水埗区| 镶黄旗| 海晏县| 日照市| 宝清县| 郴州市| 河东区| 铜陵市| 察雅县| 青河县| 墨江| 吴桥县| 泗洪县| 溧阳市| 浏阳市|