新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)靜態(tài)數(shù)碼管的設(shè)計(jì)

單片機(jī)靜態(tài)數(shù)碼管的設(shè)計(jì)

作者: 時(shí)間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
一、LED數(shù)碼管

(LED Segment Displays)由多個(gè)發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內(nèi)部連接完成,只需引出它們的各個(gè)筆劃,公共電極。數(shù)碼管實(shí)際上是由七個(gè)發(fā)光管組成8字形構(gòu)成的,加上小數(shù)點(diǎn)就是8個(gè)。這些段分別由字母a,b,c,d,e,f,g,dp來表示。

本文引用地址:http://m.butianyuan.cn/article/201611/322009.htm

簡(jiǎn)介:

當(dāng)數(shù)碼管特定的段加上電壓后,這些特定的段就會(huì)發(fā)亮,以形成我們眼睛看到的字樣了。如:顯示一個(gè)“2”字,那么應(yīng)當(dāng)是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。LED數(shù)碼管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸數(shù)碼管的顯示筆畫常用一個(gè)發(fā)光二極管組成,而大尺寸的數(shù)碼管由二個(gè)或多個(gè)發(fā)光二極管組成,一般情況下,單個(gè)發(fā)光二極管的管壓降為1.8V左右,電流不超過30mA。發(fā)光二極管的陽極連接到一起連接到電源正極的稱為共陽數(shù)碼管,發(fā)光二極管的陰極連接到一起連接到電源負(fù)極的稱為共陰數(shù)碼管。常用LED數(shù)碼管顯示的數(shù)字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。

結(jié)構(gòu):



圖1 LED數(shù)碼管引腳

驅(qū)動(dòng)方式:

LED數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,因此根據(jù)LED數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)式和動(dòng)態(tài)式兩類。

靜態(tài)顯示

靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的I/O端口進(jìn)行驅(qū)動(dòng),或者使用如BCD碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用I/O端口多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來驅(qū)動(dòng),要知道一個(gè)89S51單片機(jī)可用的I/O端口才32個(gè),實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。

動(dòng)態(tài)顯示

LED數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),單片機(jī)對(duì)位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會(huì)亮。通過分時(shí)輪流控制各個(gè)數(shù)碼管的的COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。

驅(qū)動(dòng)電流:

1、顯示效果:由于LED基本上屬于電流敏感元件,其正向壓降的分散性很大,并且還與溫度有關(guān),為了保證數(shù)碼管具有良好的亮度均勻度,就需要使其具有恒定的工作電流,且不能受溫度及其它因素的影響。另外,當(dāng)溫度變化時(shí)驅(qū)動(dòng)晶片還要能夠自動(dòng)調(diào)節(jié)輸出電流的大小以實(shí)現(xiàn)色差平衡溫度補(bǔ)償。

2、安全性: 即使是短時(shí)間的電流超載也可能對(duì)發(fā)光管造成永久性的損壞,采用恒流驅(qū)動(dòng)電路后可防止由于電流故障所引起的數(shù)碼管的大面積損壞。另外,我們所采用的超大型積體電路還具有級(jí)聯(lián)延時(shí)開關(guān)特性,可防止反向尖峰電壓對(duì)發(fā)光二極體的損害。超大型積體電路還具有熱保護(hù)功能,當(dāng)任何一片的溫度超過一定值時(shí)可自動(dòng)關(guān)斷,并且可在控制室內(nèi)看到故障顯示。

二、單片機(jī)靜態(tài)數(shù)碼管的設(shè)計(jì)

數(shù)碼管依次顯示0~F,時(shí)間是每隔1S。


源程序:

#include
#include
#define uchar unsigned char
#define uint unsigned int

uchar duan_code[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71
};//共陰極數(shù)碼管段碼0~F

void delay_ms(uint z)//ms級(jí)延遲函數(shù),z表示形參,是幾就是幾ms延遲
{
uint x,y;
for(x=z;x>0;x--)
for(y=99;y>0;y--)
{ _nop_();
_nop_();
}
}

void main(void)//主函數(shù)
{
uint i;
P0=0X00;//初始化P0口為低電平
for(i=0;i<16;i++)//循環(huán)顯示0~F
{
P0=duan_code[i];
delay_ms(1000);//每次間隔1s
}
}



評(píng)論


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

關(guān)閉