新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 第6課 數碼管靜態顯示

        第6課 數碼管靜態顯示

        作者: 時間:2016-12-01 來源:網絡 收藏
        2數碼管靜態顯示
        明白了顯示原理后,我們就可以對數碼管進行操作了,讓我們先看看一下實驗板的原理圖。
        實驗板上的數碼管為兩個3位一體的數碼管,共同組成一個6位8段共陽極數碼管,
        相同段的發光二極管陰極全部接在一起,引出8個引腳abcdefgdp,分別接到鎖存器的數據輸出口,而鎖存器74hc573的數據輸入口直接接到單片機P1口的8信引腳,注意此時P0口同時接了10K的上拉電阻;每一位數碼管內部發光二極管陽極接在一起,然后分別引出6個腳w1w2w3w4w5w6,并能過鎖存器74hc573接到了單片機P1口的6個腳。兩個鎖存器的鎖存端分別與單片機的P2^6和P2^7相連。
        也就是這六位數碼管“段選”全部連在一起,而“位選”是可以獨立控制的,我們可通過控制位選信號而選擇讓哪幾個數碼管發光,具體顯示的內容可以通過段選信號進行,但由于所有段選是全部連在一起的,送入所在數碼管的段選信號必定相同,所以位選選通的數碼管上顯示的數字始終一樣,數碼管的這種顯示方式稱為靜態顯示。
        下面我們就寫一個簡單的程序讓第一個數碼管顯示一個8字。先來分析如下:讓第一個數碼管顯示8字,那么別的數碼管的位選就要關閉,即只打開第一個數碼管的位選。在操作時,我從頭先給U2數碼管的鎖存端一個高電平,然后將數據從單片機的口P0直接送出到鎖存器的U2的數據輸出端,然后再關閉U2鎖存器。由于實驗板上的數碼管為共陽極,所以位選選通時為高電平,位選關閉時為低電平。即只有W1端對應的數據為1,其它的都為0,因此P0口呆輸出的數據0x01;(二進制為0000 0001)。位選確定后,再確定段選,要顯示8,那么只有h段為0,其余段為1,所以用操作U2的方法一樣操作U1,讓U1數據輸出端輸出0x7f(二進制為0111 1111)
        程序:單片機顯示8
        #include
        #define uint unsigned int
        #define uchar unsigned char
        sbit duan=P2^6;
        sbit wei=P2^7;
        void main()//第一個數碼管顯示8
        {
        while(1)
        {
        duan=1;
        P0=0x7f;
        duan=0;
        wei=1;
        P0=0xfe;
        wei=0;
        while(1);
        }
        }
        下面先下載到實驗板上看現象。
        通過上面的現象我們實現了數碼管靜態顯示的功能,這里大家家可能已經知道,程序中段用了單片機的8個引腳,而位用到了單片機的6個引腳,按理說我們一共需要14個引腳,而因為鎖存器的原因,實際上我們只用到了P1口8個腳就實現了,這就是上面講的鎖存器的第二個作用,使用鎖存器可以達到節約單片機的I/O口的作用。

        上一頁 1 2 3 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 武乡县| 定日县| 林甸县| 林周县| 房产| 花莲市| 英德市| 彩票| 宁南县| 通道| 鄄城县| 儋州市| 徐州市| 崇州市| 沙雅县| 新绛县| 吉林市| 聊城市| 莱西市| 襄城县| 永修县| 泰和县| 高青县| 宁晋县| 新竹县| 兴仁县| 遂川县| 黄龙县| 罗江县| 嘉荫县| 双流县| 大兴区| 浦县| 大同市| 临武县| 江达县| 尚志市| 上饶县| 绥宁县| 宁南县| 玉溪市|