新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機+74hc595鎖存器驅動一個靜態數碼管

        51單片機+74hc595鎖存器驅動一個靜態數碼管

        作者: 時間:2016-11-19 來源:網絡 收藏

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

        實驗開發板HC6800 v2.8 (淘寶可以查到)

        將JP2 與JP3相連即可,注意排線要反接

        代碼如下:

        /*
        * 標題: 試驗數碼管上如何顯示數字(共陽極) *
        * *
        * 連接方法:P2 與P3 用8PIN排線連接 *
        * *
        * *
        /
        #include
        #include
        void delay(unsigned int i); //函數聲名
        // 此表為 LED 的字模,0~F
        unsigned char code LED7Code[] = {~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71};
        sbit lock=P3^5;//12,storage register clock input
        sbit clk=P3^6;//11,shift register clock input
        sbit dat=P3^4;//14,serial data input
        /*將顯示數據串行發送到74hc595*/
        void sendTo(unsigned char k)
        {
        unsigned char i;
        for(i=0;i<8;i++)
        {
        dat=k&0x01;
        clk=0;//移位寄存器移位
        _nop_();
        _nop_();
        clk=1;
        k>>=1;//發送數據右移一位
        }
        }
        void main()
        {
        unsigned int LedNumVal=0 ,C ; //定義變量
        while(1)
        {
        if (++C>= 300)
        { LedNumVal++ ; //每隔300個掃描周期加一次
        C =0; //每隔300個掃描清零
        }
        lock=0;
        // 將字模送到14,serial data input
        sendTo(LED7Code[LedNumVal%10]&0x7f);
        //LED7 0x7f為小數點 共陰和共陽此處也是不一樣;
        _nop_();
        _nop_();
        lock=1;//所存數據
        delay(300); //調用延時程序
        }
        }
        /*
        * *
        * 延時程序 *
        * *
        */
        void delay(unsigned int i)
        {
        char j;
        for(i; i > 0; i--)
        for(j = 200; j > 0; j--);
        }



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 太湖县| 安多县| 邵阳市| 莱州市| 嘉兴市| 内江市| 宁城县| 政和县| 明水县| 曲沃县| 宜城市| 武平县| 寿阳县| 内丘县| 华亭县| 金阳县| 桐梓县| 泰顺县| 阿勒泰市| 淳安县| 墨玉县| 嘉禾县| 伊金霍洛旗| 鄂尔多斯市| 乌恰县| 弋阳县| 宽甸| 鸡西市| 江陵县| 吉隆县| SHOW| 鄢陵县| 正宁县| 手游| 天气| 沙田区| 万山特区| 乳源| 大荔县| 东源县| 五莲县|