新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機系列連載3—數(shù)碼管靜態(tài)顯示

51單片機系列連載3—數(shù)碼管靜態(tài)顯示

作者: 時間:2016-11-27 來源:網(wǎng)絡(luò) 收藏
今天主要介紹一下數(shù)碼管,實際上在學(xué)完發(fā)光二極管的基礎(chǔ)上,數(shù)碼管一點都不難理解,因為這二者本來就是一脈相通的。首先,我們看一下實物圖,基本人人都很熟悉:

本文引用地址:http://2s4d.com/article/201611/322435.htm



它的內(nèi)部結(jié)構(gòu)就是由8個發(fā)光二極管組成的,只是要區(qū)分共陽極與共陰極,這個跟之前的二極管原理一樣。當(dāng)然,在排列時要注意順序,一般都是a到h。


那么什么是動態(tài)顯示與靜態(tài)顯示呢?看一下官方的解答。所謂靜態(tài)顯示,就是每一個數(shù)碼管的段碼都要獨占具有鎖存功能的輸出口,CPU把要顯示的字碼送到輸出口上,就可以使數(shù)碼管顯示對應(yīng)的字符, 直到下一次送出另外一個字碼之前,顯示的內(nèi)容一直不會消失;動態(tài)掃描是把所有顯示器的8個段碼中的A-dp的各個相同段連接在一起,接到一個公共的輸出口上,而數(shù)碼管的位端分別接在另外的輸出口上,通過這兩個輸出口的兩組信號相互作用來產(chǎn)生顯示效果。即讓各位數(shù)碼管按照一定順序輪流顯示,只要掃描頻率足夠高,由于人眼的“ 視覺暫留”現(xiàn)象,就能連續(xù)穩(wěn)定的顯示。

接下來,寫幾個程序讓它亮一下:

1、一個數(shù)碼管亮

#include

sbitduan=P2^2;

sbitwei=P2^3;

voidmain()

{

wei=1;

P0=0x00;

wei=0xbf;(此條語句結(jié)果為第7位數(shù)碼管亮,顯示4)

duan=1;

P0=0x66;

duan=1;

while(1);

}

2、多個數(shù)碼管靜態(tài)顯示

#include

#defineuintunsignedint

#defineucharunsignedchar

sbitduan=P2^2;

sbitwei=P2^3;

ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

voiddelay(uintz);

voidmain()

{wei=1;

P0=0xea;

wei=0;

while(1)

{uintnum;

for(num=0;num<16;num )

{

duan=1;

P0=table[num];

duan=0;

delay(1000);

}

}

}

voiddelay(uintz)

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

以上就是對數(shù)碼管靜態(tài)顯示的簡單分析,動態(tài)的稍后介紹,在數(shù)碼管這塊,主要解決一點,就是位鎖存與段鎖存,把這個理解了,剩下的就是簡單地c語言編程了,其實真的不難!



評論


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

關(guān)閉