• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于51單片機控制的數字氣壓計設計與實現

    基于51單片機控制的數字氣壓計設計與實現

    作者: 時間:2011-12-28 來源:網絡 收藏

    圖3

    3.3

    實現方案需使用的P1口和P3口的一部分以及一個中斷源、一個定時器和一個計數器。因此,筆者選用了ATMEL的AT89C2051,該器件與89C51兼容,具有2kB的可重復編程閃存,2.7V~6V的工作電壓范圍,128Byte的內部RAM以及兩個I/O口(P1,P3)、2個16位的計數器/定時器和6個中斷源,并可直接驅動LED輸出,同時帶有可編程的串行通訊口。另外,該單片機還具有體積小,價格低等特點。

    3.4 LED顯示

    單個LED是由7段發光二極管構成的顯示單元。有10個引腳,對應于7個段、一個小數點和兩個公共端。在顯示電路中,這些發光二極管有兩種接法:共陽極接法和共陰極接法。本設計中需要用4個LED組成顯示單元,并采用動態顯示方式。基于51單片機控制的數字氣壓計設計與實現由于使用4個單個LED進行顯示的連線比較復雜,同時單片機的端口驅動能力也難以保證,而需要加入專門的驅動芯片。所以,筆者采用了4個LED連體的、內部已將其相應段接好的共陽極LED,它具有12個引腳,含7個段和4個公共端,為提高數碼管的亮度,可在位選線上加入一個三極管驅動電路。

    由AT89C2051控制的顯示電路如圖3所示。該顯示電路需要選取合適的電阻R和Ra,才能保證LED的亮度,過大或者過小都無法讓LED正常顯示。設計時?。覟椋矗罚毽?Ra為510Ω比較理想。若考慮印制板布線的方便,可以采用貼片電阻和排阻來節省空間。另外,也可以用74LS244和74LS06構成驅動顯示電路,但這樣同樣要加限流電阻。因為74LS06是開漏器件,需要在輸出處加上拉電阻。

    4 軟件實現

    通過以上設計,便可通過fo來計算P的大小以得到實時的氣壓值。硬件電路設計完成之后,可使用AEDK5196PH仿真器的仿真環境進行仿真,并可用C51語言來編寫處理程序。其基本程序流程如圖4所示。

    程序設定:T0為定時器,基本的定時時基為50ms。T1為計數器,運用內部中斷0可保證T0定時滿500 ms后就讀取此時計數器的值,以計算氣壓值。如使T1、T0均工作于方式1,并在P1口送字型碼,同時可用P3.0~P3.3做位選線,那么,其相應的函數如下:

    (1)定時器T0中斷函數:

    void timer0(void) interrupt 1 using 1

    {uint x, y;

    uint count_ pluse;

    ET0=0; //關閉T/C0中斷

    Tcount++; //中斷次數

    if?Tcount == 10){

    TR1=0; //停止計數器計數

    Tcount=0;

    x=TH1;

    y=TL1;

    count_pulse=(x*256+y)*2;

    ph=(uint)(10 * ((float)(count pulse+1520)/105.9? ?? //計算氣壓值

    TH1 = 0x00;  //重設計數初值

    TL1=0x00;

    }

    TH0 = -50000/256; //重設50ms初值

    TL0 = -50000%256;

    if(TL0!= 0) TH0--;

    ET0=1;

    TR1=1;

    return;

    }

    脈沖點火器相關文章:脈沖點火器原理


    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 金塔县| 恩平市| 伊通| 景谷| 巴青县| 马山县| 大田县| 栖霞市| 边坝县| 轮台县| 西盟| 通化市| 青田县| 图片| 鄯善县| 延津县| 鸡东县| 修水县| 班戈县| 迁安市| 德钦县| 同江市| 宁夏| 彰化市| 宣汉县| 贞丰县| 龙州县| 谢通门县| 古浪县| 嘉定区| 石林| 太和县| 通山县| 景东| 东光县| 盖州市| 调兵山市| 淮滨县| 长顺县| 江口县| 大荔县|