單片機靜態(tài)數碼管的設計
(LED Segment Displays)由多個發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內部連接完成,只需引出它們的各個筆劃,公共電極。數碼管實際上是由七個發(fā)光管組成8字形構成的,加上小數點就是8個。這些段分別由字母a,b,c,d,e,f,g,dp來表示。
本文引用地址:http://2s4d.com/article/201611/322009.htm簡介:
當數碼管特定的段加上電壓后,這些特定的段就會發(fā)亮,以形成我們眼睛看到的字樣了。如:顯示一個“2”字,那么應當是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。LED數碼管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸數碼管的顯示筆畫常用一個發(fā)光二極管組成,而大尺寸的數碼管由二個或多個發(fā)光二極管組成,一般情況下,單個發(fā)光二極管的管壓降為1.8V左右,電流不超過30mA。發(fā)光二極管的陽極連接到一起連接到電源正極的稱為共陽數碼管,發(fā)光二極管的陰極連接到一起連接到電源負極的稱為共陰數碼管。常用LED數碼管顯示的數字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。
結構:
圖1 LED數碼管引腳
驅動方式:
LED數碼管要正常顯示,就要用驅動電路來驅動數碼管的各個段碼,從而顯示出我們要的數字,因此根據LED數碼管的驅動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。
靜態(tài)顯示
靜態(tài)驅動也稱直流驅動。靜態(tài)驅動是指每個數碼管的每一個段碼都由一個單片機的I/O端口進行驅動,或者使用如BCD碼二-十進制譯碼器譯碼進行驅動。靜態(tài)驅動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O端口多,如驅動5個數碼管靜態(tài)顯示則需要5×8=40根I/O端口來驅動,要知道一個89S51單片機可用的I/O端口才32個,實際應用時必須增加譯碼驅動器進行驅動,增加了硬件電路的復雜性。
動態(tài)顯示
LED數碼管動態(tài)顯示接口是單片機中應用最為廣泛的一種顯示方式之一,動態(tài)驅動是將所有數碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數碼管的選通控制打開,該位就顯示出字形,沒有選通的數碼管就不會亮。通過分時輪流控制各個數碼管的的COM端,就使各個數碼管輪流受控顯示,這就是動態(tài)驅動。在輪流顯示過程中,每位數碼管的點亮時間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應,盡管實際上各位數碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數據,不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。
驅動電流:
1、顯示效果:由于LED基本上屬于電流敏感元件,其正向壓降的分散性很大,并且還與溫度有關,為了保證數碼管具有良好的亮度均勻度,就需要使其具有恒定的工作電流,且不能受溫度及其它因素的影響。另外,當溫度變化時驅動晶片還要能夠自動調節(jié)輸出電流的大小以實現(xiàn)色差平衡溫度補償。
2、安全性: 即使是短時間的電流超載也可能對發(fā)光管造成永久性的損壞,采用恒流驅動電路后可防止由于電流故障所引起的數碼管的大面積損壞。另外,我們所采用的超大型積體電路還具有級聯(lián)延時開關特性,可防止反向尖峰電壓對發(fā)光二極體的損害。超大型積體電路還具有熱保護功能,當任何一片的溫度超過一定值時可自動關斷,并且可在控制室內看到故障顯示。
二、單片機靜態(tài)數碼管的設計
數碼管依次顯示0~F,時間是每隔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
};
void delay_ms(uint z)
{
}
void main(void)
{
}
評論