將7段顯示連接到8051
七段顯示器是用來顯示數(shù)字信息的。七段顯示器可以顯示從0到9的數(shù)字,甚至我們可以顯示一些字符,如A, b, C, H, E, e, F等。這些都是非常流行的,并且有很多的應(yīng)用。因此,在這個(gè)項(xiàng)目中,我將向你展示一個(gè)7段顯示器是如何通過連接7段顯示器和8051單片機(jī)來工作的。
本文引用地址:http://www.ex-cimer.com/article/202304/445604.htm在開始這個(gè)概念之前,先了解一下如何將LED與8051單片機(jī)連接。
這篇文章描述了如何將七段顯示器連接到AT89C51單片機(jī)。這個(gè)系統(tǒng)以預(yù)定的延遲連續(xù)顯示從0到9的數(shù)字。在這個(gè)過程中,我將設(shè)計(jì)兩個(gè)電路:一個(gè)是單數(shù)7段顯示的電路,另一個(gè)是由4位7段顯示的電路。
電路原理
七段顯示器內(nèi)部由8個(gè)LED組成。在這些LED中,7個(gè)LED用于指示數(shù)字0至9,一個(gè)LED用于指示小數(shù)點(diǎn)。一般來說,七段顯示有兩種類型,一種是共陰極,另一種是共陽極。
在共陰極情況下,所有LED的陰極被綁在一起,并被標(biāo)記為com.而陽極則被單獨(dú)留下。在共陽極情況下,七段顯示器的所有陽極被綁在一起,陰極則被自由放置。下圖顯示了七段式顯示器的內(nèi)部連接。
七段式顯示器的內(nèi)部連接
在第一個(gè)電路中,我將把共陰極單數(shù)七段顯示器連接到8051微控制器,而在第二個(gè)電路中,我將把共陽極型四位七段顯示器連接到8051微控制器。
電路圖
電路1:將7段顯示器連接到8051(單數(shù) - CC)。
在第一個(gè)電路中,我將一個(gè)單數(shù)7段顯示器與8051連接起來。7段顯示器是共陰極類型的。
7段顯示器與8051單數(shù)電路的連接
電路2:7段顯示器與8051的接口(4位數(shù) - CA)。
在第二個(gè)電路中,我將一個(gè)4位的7段顯示器連接到8051微控制器,顯示類型為共陽極。
7段顯示器與8051 4位數(shù)電路的連接
電路元件
AT89C51單片機(jī)
AT89C51編程板
編程電纜
12V直流電池或適配器
共陰極7段顯示器
共陽極4位7段顯示器
電阻器 - 10KΩ X 2, 330Ω, 1KΩ X 8, 470Ω X 4
1KΩ X 8 電阻器包
33pF 陶瓷電容 X 2
11.0592 MHz晶體
10μF 電解電容
2N2222 NPN 晶體管 X 4
按鈕
連接線
電路設(shè)計(jì)
電路1
在這里,共陰極七段被用來顯示數(shù)字。在這個(gè)電路中,7段的a至h腳與微控制器的2號(hào)端口相連,com腳通過330歐姆的電阻與地相連。這個(gè)電阻是用來降低電壓的。由于我們使用的是共陰極七段,我們需要發(fā)送LOGIC 1到各段,使其發(fā)光。
圖中顯示了共陰極七段的結(jié)構(gòu)。這里用點(diǎn)來表示小數(shù)點(diǎn)。這里所有LED的陰極都連接到Gnd引腳。該LED的工作電壓為2-3V,但從控制器中我們將得到5V的電壓,因此為了降低剩余的電壓,我們必須通過電阻將a至g引腳連接到控制器。
共陰極7段顯示器
電路2
由于第二個(gè)電路中使用的4位7段顯示器是共陽極類型的,我們需要通過公共終端來驅(qū)動(dòng)LED段。我使用了4個(gè)NPN晶體管來驅(qū)動(dòng)這4個(gè)共陽極,晶體管由8051控制。
對(duì)于a至h段,它們被連接到8051的PORT0引腳。
數(shù)字驅(qū)動(dòng)模式
為了在7段上顯示數(shù)字,我們需要在各段上顯示不同的邏輯組合。例如,如果你想在7段上顯示數(shù)字3,那么你需要在a、b、c、d和g段上發(fā)光。下面的表格顯示了我們需要從PORT2發(fā)送的十六進(jìn)制十進(jìn)制數(shù)值,以顯示0到9的數(shù)字。
注意:這些值只適用于共陰極顯示器。如果你想驅(qū)動(dòng)共陽極顯示器,那么你必須取每一位的補(bǔ)碼,并替換代碼中的十六進(jìn)制值(我已經(jīng)在第二個(gè)電路的代碼中做了)。
算法
對(duì)于電路1
首先,在一個(gè)數(shù)組中初始化所有段位的十六進(jìn)制值。
unsigned char arr[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};
現(xiàn)在進(jìn)行for循環(huán),將數(shù)組值分配給PORT2,并有一定的時(shí)間延遲。
for (i=0;i<10;i++)
{
P2=arr[i];
delay_ms(500);
}
對(duì)于電路2
首先在一個(gè)數(shù)組中初始化所有段位的十六進(jìn)制值。
unsigned char ch[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}
2. 根據(jù)數(shù)值,切換數(shù)字。
void display (unsigned long int n)
{
led=ch[n/1000];
sw1=1;
sdelay(30);
sw1=0;
led=ch[(n/100)%10];
sw2=1;
sdelay(30);
sw2=0;
led=ch[(n/10)%10];
sw3=1;
sdelay(30);
sw3=0;
led=ch[n%10];
sw4=1;
sdelay(30);
sw4=0;
}
如何操作?
首先將程序刻錄到單片機(jī)上
按照電路圖的要求進(jìn)行連接
確保7段的a至g引腳分別連接到第一個(gè)電路的P2.0至P2.6和第二個(gè)電路的PORT0引腳。
打開電源,你可以觀察到在第一個(gè)電路中,數(shù)字0到9將連續(xù)顯示,并有一定的延遲,在第二個(gè)電路中,數(shù)字0到9999將顯示在4位7段顯示器上。
切換電源。
應(yīng)用
七段顯示器被廣泛用于數(shù)字鐘中,以顯示時(shí)間。
在電子儀表中用于顯示數(shù)字信息。
用在儀表盤中
用于數(shù)字讀出顯示器。
局限性
為了顯示大的信息,復(fù)雜性增加。
不可能在七段上顯示符號(hào)。
評(píng)論