新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機左右流水燈與數碼管動態顯示C程序

        單片機左右流水燈與數碼管動態顯示C程序

        作者: 時間:2016-12-02 來源:網絡 收藏
        本程序所用的原理圖下載:點這里,單片機芯片使用的stc89c52;找到相應部分即可.這是一整個單片機開發板的電路圖其他的忽略.以下是通過測試的源代碼:

        /*
        *功能:用定時器0實現定時200毫秒流水燈,
        * 同時用定時器1實現動態顯示654321,
        * 且蜂鳴器發聲;
        *日期:2014-03-24
        *作者:徐冉
        *注意事項:若打開兩個定時器時,必須使用兩個定時器,
        * 否則兩個定時器都不工作!!!
        **/
        /**********AT89C52-RC 51hei單片機實驗板**************/
        /*************51hei-開發板*********************/
        #include
        typedef unsigned int uint;
        typedef unsigned char uchar;
        sbit wela = P2^7; //數碼管位聲明
        sbit dula = P2^6; //數碼管段選聲明
        sbit FM = P2^3;//蜂鳴器聲明
        uchar counter = 0, counter1 = 0, j = 0, flag = 0, flag1 = 0;
        uchar num = 6, num1 = 0;
        //數碼管段選編碼
        uchar code table_du [] = {
        0x3F, //"0"
        0x06, //"1"
        0x5B, //"2"
        0x4F, //"3"
        0x66, //"4"
        0x6D, //"5"
        0x7D, //"6"
        0x07, //"7"
        0x7F, //"8"
        0x6F, //"9"
        0x77, //"A"
        0x7C, //"B"
        0x39, //"C"
        0x5E, //"D"
        0x79, //"E"
        0x71, //"F"
        0x76, //"H"
        0x38, //"L"
        0x37, //"n"
        0x3E, //"u"
        0x73, //"P"
        0x5C, //"o"
        0x40, //"-"
        0x00, //熄滅
        0x00 //自定義
        };
        //數碼管位選編碼
        uchar code table_we[] = {
        0xfe,
        0xfd,
        0xfb,
        0xf7,
        0xef,
        0xdf
        };
        void init();
        void display();
        void main()
        {

        init();
        while(1)
        {
        if(counter1 == 30)
        {
        counter1 = 0;
        display();
        num--;
        num1++;
        if(num == 0)
        {
        num = 6;
        }
        if(num1 == 6)
        {
        num1 = 0;
        }
        }

        if(counter == 200)//定時到4秒后,流水燈向右流動
        {
        counter = 0;//counter清零,
        //關閉定時器0
        TR0 = 0;
        //ET0 = 0;
        flag = 1; //標志變量置1后,定時器重新初始化
        TH0 = 0xB8; //定時器0定時20毫秒
        TL0 = 0x00;
        TR0 = 1; //重新打開定時器0
        //ET0 = 1;
        j = 0;
        }
        }
        }


        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 会东县| 临朐县| 专栏| 报价| SHOW| 平顶山市| 凤山县| 澄城县| 潜江市| 老河口市| 祁阳县| 长治县| 正蓝旗| 清新县| 庆阳市| 海口市| 兰考县| 长兴县| 华安县| 神池县| 治多县| 梓潼县| 德化县| 喀喇| 洪雅县| 锡林浩特市| 兴海县| 安徽省| 汉源县| 垣曲县| 武宁县| 宝鸡市| 定南县| 肇庆市| 台江县| 乌恰县| 兴安盟| 抚顺县| 深泽县| 岢岚县| 台东市|