新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 第6課 數(shù)碼管靜態(tài)顯示

第6課 數(shù)碼管靜態(tài)顯示

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

上一頁 1 2 3 下一頁

評論


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

關(guān)閉