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

    EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于單片機(jī)的AD轉(zhuǎn)換的數(shù)碼管顯示程序

    基于單片機(jī)的AD轉(zhuǎn)換的數(shù)碼管顯示程序

    作者: 時間:2012-09-19 來源:網(wǎng)絡(luò) 收藏

    *本例程采用0804芯片,硬件電路:cs片選端接P2.3,WR寫數(shù)據(jù)端寫P3.6,RD讀數(shù)據(jù)端接P3.7,鎖存端接P2.6腳,管位選端分別接P3.2 ,P3.3,P3.4,段選端接P1口*/
    #includereg52.h>//頭文件
    #define uint unsigned int//宏文件
    #define uchar unsigned char//宏文件
    uchar num;//變量
    void delay3(uint z);//延時定義
    void dissy();//延時函數(shù)定義
    sbit ge=P3^2;//個位定義
    sbit shi=P3^3;//十位定義
    sbit bai=P3^4;//百位定義
    sbit ad_cs=P2^3;//片選端
    sbit ad_wr=P3^6;//寫數(shù)據(jù)端
    sbit ad_rd=P3^7;//讀數(shù)據(jù)端
    sbit pian=P2^6;//鎖存器片選
    void add();//ad子函數(shù)
    void delay(uint i);//延時子函數(shù)申明
    uchar code table[]={
    0xc0,0xf9,0xa4,0xb0,0x99,
    0x92,0x82,0xf8,0x80,0x90,
    0x88,0x83,0xc6,0xa1,0x86,
    0x8e
    };//數(shù)組

    本文引用地址:http://www.czjhyjcfj.com/article/170838.htm

    /************主函數(shù)**********/
    void main()
    {
    while(1)
    {
    add();//調(diào)用子函數(shù)
    dissy();//子函數(shù)
    }
    }

    /************子函數(shù)**********/
    void add()//AD轉(zhuǎn)換子函數(shù)
    {
    uchar i;
    ad_cs=1;//將片選關(guān)閉
    ad_cs=0;//將片選打開
    ad_wr=1;//寫數(shù)上升沿
    ad_wr=0;//寫數(shù)下降沿
    ad_wr=1;//寫數(shù)上升沿

    P1=0xff;//送數(shù)到P0口
    ad_rd=1;//讀數(shù)上升沿
    delay(25);//延時一會兒
    ad_rd=0;//讀數(shù)下降沿
    //////**************因為AD轉(zhuǎn)換時間周期長,我現(xiàn)在的管沒有采用鎖存器,AD轉(zhuǎn)換時間大于時間,所以時會閃爍,解決此問題方法是,連續(xù)調(diào)用了顯示子七次,這樣顯示時就和AD轉(zhuǎn)換時一至,顯示出來的數(shù)就不閃了********************//////
    for(i=0;i7;i++) //調(diào)用7次,相當(dāng)于delay(255)
    void dissy();
    //////**********************************//////
    num=P1;//將數(shù)給計數(shù)器num
    }

    /************顯示子函數(shù)**********/
    void dissy()//顯示子函數(shù)
    {
    P0=table[num/100];//百位顯示數(shù)據(jù)
    bai=0;//百位打開
    delay(14);//延時一會
    bai=1;//關(guān)閉百位
    P0=table[num%100/10];//十位顯示數(shù)據(jù)
    shi=0;//十位打開
    delay(14);//延時一會
    shi=1;//關(guān)閉十位
    P0=table[num%10];//百位顯示數(shù)據(jù)
    ge=0;//關(guān)閉十位
    delay(14);//延時一會
    ge=1;//關(guān)閉十位
    }

    /**************延時子函數(shù)*************/

    void delay(uint i)//延時函數(shù)
    {
    uint j,k;//定義變量
    for(j=i;j>0;j--)//外循環(huán)
    for(k=30;k>0;k--);//內(nèi)循環(huán)
    }



    評論


    相關(guān)推薦

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

    關(guān)閉
    主站蜘蛛池模板: 宁德市| 湾仔区| 平泉县| 新化县| 泾源县| 翁牛特旗| 建宁县| 湘潭县| 乐业县| 射洪县| 东平县| 荔浦县| 岗巴县| 洛浦县| 洮南市| 吉隆县| 阿克| 宁都县| 汽车| 涞源县| 清丰县| 江都市| 黄浦区| 平南县| 汉中市| 房产| 深水埗区| 双鸭山市| 寿阳县| 南投市| 周口市| 木里| 开阳县| 盱眙县| 甘孜县| 绩溪县| 斗六市| 调兵山市| 神木县| 黄平县| 太谷县|