【51单片机】七段数码管显示实验+详细讲解
【51單片機(jī)】七段數(shù)碼管顯示實(shí)驗(yàn)
- 前言
- 一、兵馬未動(dòng),糧草先行——認(rèn)識(shí)七段數(shù)碼管
- 1、關(guān)于顯示器
- 2、七段數(shù)碼管
- 3、七段數(shù)碼管的結(jié)構(gòu)
- 4、數(shù)碼管顯示方法
- 二、數(shù)碼管顯示程序
- 1、靜態(tài)顯示
- 效果
- 2.動(dòng)態(tài)顯示
- 效果
- 總結(jié)
前言
繼上次仿真實(shí)驗(yàn)——【51單片機(jī)】矩陣鍵盤線反轉(zhuǎn)法實(shí)驗(yàn)仿真之后,盡管也對(duì)點(diǎn)陣LED進(jìn)行了學(xué)習(xí),但是,點(diǎn)陣LED的顯示效果不佳(仿真時(shí)的色彩、明亮程度等),加上大多數(shù)時(shí)候我們?cè)谟?jì)算器上看到的是七段數(shù)碼管,所以在學(xué)習(xí)了學(xué)校課程之后,我也進(jìn)行了嘗試。這次主要是記錄七段數(shù)碼管的使用方法,在此之后,我考慮把鍵盤掃描(線反轉(zhuǎn)法)、七段數(shù)碼管、80C51結(jié)合起來(lái),把整個(gè)計(jì)算器的功能完善,也算是完成一個(gè)小項(xiàng)目。
因?yàn)槲艺J(rèn)為光學(xué)理論只是很容易忘記,且容易磨滅興趣,所以在學(xué)習(xí)過程中以做一個(gè)計(jì)算器為目標(biāo),循序漸進(jìn)地學(xué)習(xí),缺什么知識(shí)就補(bǔ)充什么知識(shí),就像前幾次所作的一樣:
【51單片機(jī)】矩陣鍵盤線反轉(zhuǎn)法實(shí)驗(yàn)仿真
【51單片機(jī)】點(diǎn)陣LED的顯示實(shí)驗(yàn)
【51單片機(jī)】矩陣鍵盤逐行掃描法仿真實(shí)驗(yàn)+超詳細(xì)Proteus仿真和Keil操作步驟
下面是這次七段數(shù)碼管的學(xué)習(xí)記錄。
一、兵馬未動(dòng),糧草先行——認(rèn)識(shí)七段數(shù)碼管
1、關(guān)于顯示器
我們常見的顯示器一般分為L(zhǎng)ED、LCD和CRT,當(dāng)然除此之外還有其他種類的顯示器。其中:
- LED是發(fā)光二極管,核心原理是半導(dǎo)體的電光轉(zhuǎn)化,在電光轉(zhuǎn)化過程中發(fā)熱很少,相對(duì)白熾燈更節(jié)能,目前常用作照明工具;
- LCD是液晶顯示器,核心原理是液晶(介于液體和晶體的一種物質(zhì))的各向異性使特定區(qū)域透光、部分區(qū)域不透光來(lái)呈現(xiàn)畫面;
- CRT是陰極射線管,常用在示波器和老式電視機(jī)上,核心原理是控制電子束的偏轉(zhuǎn)角來(lái)控制電子打在熒光屏上的不同位置,使之出現(xiàn)我們想要的圖案。
2、七段數(shù)碼管
今天要說(shuō)的就是LED中的一員——七段數(shù)碼管。七段數(shù)碼管也叫七段LED顯示器,是由數(shù)個(gè)LED組成的陣列,并封裝在一個(gè)標(biāo)準(zhǔn)的外殼內(nèi)。
如圖,七段數(shù)碼管通常有七段,但現(xiàn)在為了表示小數(shù),加入了小數(shù)點(diǎn),所以其實(shí)變成了名字叫七段數(shù)碼管的八段數(shù)碼管。圖上a、b、c、d、e、f、g、dp則是每段的名字。cs管腳類似于片選信號(hào)。
我們只需要點(diǎn)亮特定的管腳就能形成一個(gè)數(shù)字或者字母。
3、七段數(shù)碼管的結(jié)構(gòu)
如圖是七段數(shù)碼管的內(nèi)部結(jié)構(gòu),將圖中的二極管按特定陣列排布就得到了常見的數(shù)碼管。
- 共陰極:顧名思義,這是將二極管的陰極連接到同一條導(dǎo)線上,只要某路地陽(yáng)極變?yōu)楦唠娖?#xff0c;該路LED就會(huì)被點(diǎn)亮。
- 共陽(yáng)極:二極管地陽(yáng)極連接到一條到線上并連接電源。當(dāng)某路陰極變?yōu)榈碗娖?#xff0c;該路地LED就會(huì)亮起。
4、數(shù)碼管顯示方法
七段數(shù)碼管顯示也有兩種方式,分別是靜態(tài)顯示和動(dòng)態(tài)顯示。
- 靜態(tài)顯示:在靜態(tài)顯示系統(tǒng)中,每一位顯示器都應(yīng)該有各自地鎖存器、譯碼器和驅(qū)動(dòng)器鎖存器,如果軟件譯碼,譯碼器也可以省略。鎖存器用來(lái)所存待顯示數(shù)字的BCD碼,所以每次顯示輸出后都能保持不變。但是占用的位數(shù)很多,每一位需要8根數(shù)據(jù)線。
- 動(dòng)態(tài)顯示:在動(dòng)態(tài)顯示系統(tǒng)中,微處理器要定時(shí)地向各個(gè)顯示器進(jìn)行掃描,只要掃描速率足夠快,由于視覺暫留現(xiàn)象就會(huì)給人以恒定顯示的表現(xiàn)。動(dòng)態(tài)顯示可以減少硬件的使用,但是需要微處理器一直為它工作。
二、數(shù)碼管顯示程序
1、靜態(tài)顯示
靜態(tài)顯示用到的元件有:74LS273(鎖存器)×4、80C51、7SEG-MPX1-CA(七段數(shù)碼管)×4、RESPACK-8(電阻)、GROUND、POWER和BUTTON。
連接線路如圖:
靜態(tài)顯示的代碼如下:
#include <reg51.h>unsigned int d[4]={0xA4,0xC0,0xA4,0xf9};//共陽(yáng)極的數(shù)碼管顯示的數(shù)字,一次是2、0、2、1 unsigned int cs[4]={0x0E,0x0D,0x0B,0x07};//片選,低電平時(shí),鎖存器打開,可以寫入數(shù)據(jù)。高電平時(shí)鎖存 void main(void){ int i;EA=1;//開中斷EX0=1;//開外部中斷0INT0=1;//下降沿觸發(fā)INT0中斷for(i=0;i<4;i++){P2=cs[i];//打開一個(gè)鎖存器P0=d[i];//向該鎖存器寫入數(shù)據(jù)}P2=0xff;//所有鎖存器鎖存CLK置高電平}void int0() interrupt 0{//終端服務(wù)程序P2=cs[0];P0=0x8E; }效果
2.動(dòng)態(tài)顯示
動(dòng)態(tài)顯示用到的元件有:8051、7SEG-MPX4-CA(4位七段數(shù)碼管)、RESPACK-8(電阻)、GROUND、POWER和BUTTON。
接線如圖:
動(dòng)態(tài)顯示的代碼如下:
#include <reg51.h>unsigned int d[4]={0x5B,0x3f,0x5B,0x06};//共陰極的數(shù)碼管,輸出為靜態(tài)時(shí)的反碼,由與所用的七段數(shù)碼管內(nèi)部不同所致。 unsigned int cs[4]={0x0E,0x0D,0x0B,0x07};//與靜態(tài)不同,4位7段數(shù)碼管的片選信號(hào)不由鎖存器決定,自帶的片選管腳功能為高電平選中 void delay(int n){//延時(shí)程序int i;int j;for(i=0;i<n;i++)for(j=0;j<120;j++); } void main(void){ int i;EA=1;EX0=1;INT0=1;while(1){//因?yàn)槭莿?dòng)態(tài)掃描,所以必須不停地掃描for(i=0;i<4;i++){P2=cs[i];P0=d[i];delay(10);}}}void int0() interrupt 0{P2=cs[0];P0=0x71; }效果
總結(jié)
以上就是兩種類型的七段數(shù)碼管(共陰極和共陽(yáng)極)的兩種不同的顯示方式(靜態(tài)和動(dòng)態(tài))。這里對(duì)七段數(shù)碼管的學(xué)習(xí),我會(huì)用到計(jì)算器的制作中,加以鞏固。也希望和小伙伴們一起學(xué)習(xí),有時(shí)間我也會(huì)多多分享學(xué)習(xí)的知識(shí),記錄學(xué)習(xí)過程。
總結(jié)
以上是生活随笔為你收集整理的【51单片机】七段数码管显示实验+详细讲解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css常见属性记录(未完待续)
- 下一篇: php编码规范(未完待续)