<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

        用74HC164實現數碼管的靜態顯示

        作者:huqin   來源:本站原創   點擊數:  更新時間:2014年04月13日   【字體:

        要實現靜態顯示所用的IO較多,因此利用移位寄存器74HC164對IO的擴展來驅動數碼管,從而實現靜態顯示。

        硬件電路百度上很多,這里就不說了,寫個程序吧

        #include<reg52.h>
        #define uchar unsigned char
        #define uint unsigned int
        const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
                                0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
        const uchar table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,
                                0x87,0xff,0xef};
        sbit dat=P2^0;
        sbit clk=P2^1;
        void disp(long a);
        void write_bit(uchar num);
        void main(void)
        {
            disp(45678);
            while(1);   
        }
        void disp(long a)
        {
            uchar ge,shi,bai,qian,wan;
            wan=a/10000;
            qian=a000/1000;
            bai=a00/100;
            shi=a0/10;
            ge=a;
            write_bit(table[wan]);
            write_bit(table[qian]);
            write_bit(table[bai]);
            write_bit(table[shi]);
            write_bit(table[ge]);
        }
        void write_bit(uchar num)
        {
            uchar i;
            for(i=0;i<8;i++)
            {
                clk=0;                //時鐘拉低,等待數據
                dat=(num&0x80)?1:0;   //最高位開始送,表達式為真時,結果為1,否則為0
                clk=1;                //時鐘拉高,上升沿到來,164數據移位
                num<<=1;             
            }
        }

        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮