新聞中心

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

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

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

上一頁(yè) 1 2 3 下一頁(yè)

評(píng)論


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

關(guān)閉