數(shù)碼管內(nèi)部由七個條形發(fā)光二極管和一個小圓點發(fā)光二極管組成,根據(jù)各管的亮暗組合成字符。常見數(shù)碼管有10跟管腳。其中有兩個公共端,根據(jù)內(nèi)部發(fā)光二極管的接線形式可分為共陰極和共陽極兩種。使用時,共陰極數(shù)碼管公共端接地,共陽極數(shù)碼管公共端接電源。參照下圖:
通過給每個管腳高低電平即可控制數(shù)碼管的亮滅。還是舉個例子吧,以共陰極數(shù)碼管為例,讓數(shù)碼管顯示數(shù)字0,只要個abcdef六個管腳輸入一個高電平即可讓數(shù)碼管顯示數(shù)字0。
LED顯示器工作方式有兩種:靜態(tài)顯示方式和動態(tài)顯示方式。靜態(tài)顯示的特點是每個數(shù)碼管的段選必須接一個8位數(shù)據(jù)線來保持顯示的字形碼。當(dāng)送入一次字形碼后,顯示字形可一直保持,直到送入新字形碼為止。動態(tài)顯示的特點是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。選亮數(shù)碼管采用動態(tài)掃描顯示。所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時都在顯示。通過以上介紹,大家應(yīng)該清楚數(shù)碼管顯示的基本原理了吧。下面我看些具體的東西。
下面三個圖為開發(fā)板的原理圖,此開發(fā)板用了兩個74HC573寄存器,可減少單片機io口的使用。鎖存器U8用來控制位選,即控制哪個數(shù)碼管。U9控制段選,即控制數(shù)碼管顯示什么。數(shù)碼管和鎖存器接在單片機的P0口。
接下來看靜態(tài)顯示和動態(tài)顯示的程序。
1、數(shù)碼管靜態(tài)顯示:
-
#include
-
#defineucharunsignedchar
-
#defineuintunsignedint
-
sbitdula=P2^6;//聲明U9鎖存器的鎖存端
-
sbitwela=P2^7;//聲明U8鎖存器的鎖存端
-
-
/*//點亮第一位數(shù)碼管
-
voidmain()
-
{
-
wela=1;//打開U8鎖存端
-
P0=0xfe;//送入位選信號
-
wela=0;//關(guān)閉U8鎖存端
-
-
dula=1;//打開U9鎖存端
-
P0=0x7f;//送入段選信號
-
dula=0;//關(guān)閉U8鎖存端
-
while(1);
-
}*/
-
-
//八個數(shù)碼管循環(huán)顯示0~F
-
ucharcodetable[]={
-
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
-
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
-
uchari;
-
//N毫秒延時
delay_ms(uint ms) { uint i,j; for(i=ms;i>0;i--) for(j=114;j>0;j--);}void main(){wela=1;P0=0x00;wela=0;while(1){for(i=0;i<16;i++){dula=1;P0=table[i];dula=0;delay_ms(500);}}}
2、動態(tài)數(shù)碼管
-
#include
-
#defineucharunsignedchar
-
#defineuintunsignedint
sbit d=P2^6;sbit w=P2^7;
-
delay_ms(uintms)
-
{
-
uinti,j;
-
for(i=ms;i>0;i--)
-
for(j=114;j>0;j--);
-
}
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71 }; //八個數(shù)碼管顯示0~Funsigned char code list[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //數(shù)碼管的位選void main(){uchar i;while(1){for(i=0;i<8;i++){w=1;P0=list[i]; //循環(huán)點亮第i位數(shù)碼管w=0;d=1;P0=table[i];d=0;delay500ms();} }}/* 程序優(yōu)化之前的代碼? w=1;P0=list[0]; //點亮第一位數(shù)碼管w=0;d=1;P0=table[0];d=0;delay500ms();w=1;P0=list[1]; //點亮第二位數(shù)碼管w=0;d=1;P0=table[1];d=0;delay500ms();w=1;P0=list[2]; //點亮第三位數(shù)碼管w=0;d=1;P0=table[2];d=0;delay500ms();w=1;P0=list[3]; //點亮第四位數(shù)碼管w=0;d=1;P0=table[3];d=0;delay500ms();w=1;P0=list[4]; //點亮第五位數(shù)碼管w=0;d=1;P0=table[4];d=0;delay500ms();w=1;P0=list[5]; //點亮第六位數(shù)碼管w=0;d=1;P0=table[5];d=0;delay500ms();w=1;P0=list[6]; //點亮第七位數(shù)碼管w=0;d=1;P0=table[6];d=0;delay500ms();w=1;P0=list[7]; //點亮第八位數(shù)碼管w=0;d=1;P0=table[7];d=0;delay500ms();*/
怎么樣,通過以上學(xué)習(xí)大家應(yīng)該學(xué)會數(shù)碼管的基本原理了吧,接下來大家就可以控制數(shù)碼管顯示數(shù)字和英文字母了。
-
51單片機
+關(guān)注
關(guān)注
277文章
5710瀏覽量
126693 -
數(shù)碼管
+關(guān)注
關(guān)注
32文章
1889瀏覽量
92247 -
數(shù)碼管模塊開發(fā)
+關(guān)注
關(guān)注
1文章
1瀏覽量
912
原文標(biāo)題:51單片機之?dāng)?shù)碼管
文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
51單片機開發(fā)的數(shù)碼管案例分享
學(xué)51單片機之數(shù)碼管部分
51單片機數(shù)碼管顯示學(xué)號
數(shù)碼管的介紹和使用51單片機應(yīng)用數(shù)碼管的程序免費下載

使用51單片機開發(fā)板對數(shù)碼管進(jìn)行應(yīng)用的資料和程序免費下載

51單片機:數(shù)碼管動態(tài)顯示

51單片機:動態(tài)數(shù)碼管

51單片機實驗程序——數(shù)碼管知識,靜態(tài)與動態(tài)顯示

藍(lán)橋杯51單片機之獨立按鍵控制數(shù)碼管【單片機開發(fā)初學(xué)者必學(xué)會】

51單片機學(xué)習(xí)筆記之數(shù)碼管1顯示數(shù)字0以及使用蜂鳴器

51單片機-矩陣鍵盤模塊-長短按鍵&數(shù)碼管顯示-模塊化編程模板

51單片機數(shù)碼管顯示60秒倒計時(C語言)

評論