今天主要介紹一下數(shù)碼管,實(shí)際上在學(xué)完發(fā)光二極管的基礎(chǔ)上,數(shù)碼管一點(diǎn)都不難理解,因?yàn)檫@二者本來就是一脈相通的。首先,我們看一下實(shí)物圖,基本人人都很熟悉:
本文引用地址:http://m.butianyuan.cn/article/201611/322435.htm
它的內(nèi)部結(jié)構(gòu)就是由8個(gè)發(fā)光二極管組成的,只是要區(qū)分共陽(yáng)極與共陰極,這個(gè)跟之前的二極管原理一樣。當(dāng)然,在排列時(shí)要注意順序,一般都是a到h。
那么什么是動(dòng)態(tài)顯示與靜態(tài)顯示呢?看一下官方的解答。所謂靜態(tài)顯示,就是每一個(gè)數(shù)碼管的段碼都要獨(dú)占具有鎖存功能的輸出口,CPU把要顯示的字碼送到輸出口上,就可以使數(shù)碼管顯示對(duì)應(yīng)的字符, 直到下一次送出另外一個(gè)字碼之前,顯示的內(nèi)容一直不會(huì)消失;動(dòng)態(tài)掃描是把所有顯示器的8個(gè)段碼中的A-dp的各個(gè)相同段連接在一起,接到一個(gè)公共的輸出口上,而數(shù)碼管的位端分別接在另外的輸出口上,通過這兩個(gè)輸出口的兩組信號(hào)相互作用來產(chǎn)生顯示效果。即讓各位數(shù)碼管按照一定順序輪流顯示,只要掃描頻率足夠高,由于人眼的“ 視覺暫留”現(xiàn)象,就能連續(xù)穩(wěn)定的顯示。
接下來,寫幾個(gè)程序讓它亮一下:
1、一個(gè)數(shù)碼管亮
#include
sbitduan=P2^2;
sbitwei=P2^3;
voidmain()
{
wei=1;
P0=0x00;
wei=0xbf;(此條語(yǔ)句結(jié)果為第7位數(shù)碼管亮,顯示4)
duan=1;
P0=0x66;
duan=1;
while(1);
}
2、多個(gè)數(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--);
}
以上就是對(duì)數(shù)碼管靜態(tài)顯示的簡(jiǎn)單分析,動(dòng)態(tài)的稍后介紹,在數(shù)碼管這塊,主要解決一點(diǎn),就是位鎖存與段鎖存,把這個(gè)理解了,剩下的就是簡(jiǎn)單地c語(yǔ)言編程了,其實(shí)真的不難!
評(píng)論