一、區分數碼管的類別
共陰數碼管:即所有數碼管的陰極接在一起。要使某個數碼管點亮,只需置上高電平,**中該位置'1'
共陽數碼管:即所有數碼管的陽極接在一起。要使某個數碼管點亮,只需置上低電平,**中該位置'0'
二、單個數碼管顯示
a~h:表示單個數碼管上面的8個led。
根據共陰共陽的特性,點亮相應的led,組成想要的數字(一般由取模軟體得到)
如:共陰數碼管顯示數字'0,即**中該數碼管賦值0x3f (0011 1111)
三、多位數碼管顯示
1、區分段、位:段指的是單個數碼管上的8段led;位指的是數碼管所在的位置
2、存在問題:
a)各個數碼管輪流閃爍顯示——原因:數碼管逐個顯示的間隔時間長
b)數碼管顯示存在亂碼殘影——原因:數碼管顯示存在「鬼影」,即沒有做消隱處理
四、數碼管消隱
對不需要顯示的數碼管進行關閉操作即可。
五、消除鬼影,殘影
1、為什麼存在「鬼影」
2、如何消除鬼影
總的來說,就是對埠賦新值時,先清空上一次的資料。
法1)操作段前,先關閉段
//個位
dataport = 0xff; //關閉段
dataport = data[curnum%10]; //設定段,兩個段操作之間有其他運算**,即有時間間隔
location = 0x02; //設定位
delay(20); //延時
//十位
dataport = 0xff;
dataport = data[curnum/10];
location = 0x01;
delay(20);
法2)操作位前,先關閉位
/*error
dataport = data[curnum%10]; //設定段
location = 0x00; //關閉位
location = 0x02; //設定位,兩個位操作沒有時間間隔,顯示仍然會有殘影
*///個位
dataport = data[curnum%10]; //設定段
location = 0x02; //設定位
delay(20); //延時
//十位
location = 0x00;
dataport = data[curnum/10];
location = 0x01;
delay(20);
注意:對段/位的關閉、賦值的操作不能是上下語句關係,必須要有時間間隔
六、連線數碼管
1、可以數碼管引腳直接與微控制器連線,但是對於共陰數碼管,因為微控制器引腳驅動能力不足,需要外加電源驅動
2、使用74hc573節省i/o口
**中的位鎖存,段鎖存(latch),其實分別控制兩個74hc573的使能端。
哪個使能有效,p0口的資料就往位或者段傳送,達到對位和段的分別控制。
數碼管顯示
數碼管顯示 最近因為對突然對電子感興趣,前幾天在路過電子 時買了乙個數碼管。因為以前總是紙上談兵,根本沒實驗過,連數碼見都沒見過,所以開始覺得將這塊數碼管顯示出來是非常具有挑戰性的工作。今天正好有空,拿來了我的數碼管,並在網上看了一些資料,才發現並不是想象中的那麼難,其實更準確的說是太簡單了。不到半...
數碼管顯示
數碼管由8個led組成,對應乙個i o口的輸出.根據連線方式不同分為共陽和共陰數碼管 可以看到,由於結構不同,共陽和共陰使led亮起的輸出電平也不同,如下是兩種連線方式對應的16進製製碼 當我們要對多個數碼管進行控制的時候,不僅需要控制顯示內容 段碼 還要控制顯示的位置 位碼 簡單一點的方法可以用另...
LED數碼管顯示
在電梯 家用電器中,隨處可見數碼管顯示的應用。一般是7個發光管組成8字形的排列,可以顯示0 9的數字。我們可以給這7個發光管編號,以便區分它們 我們給出了乙個用於模擬這個顯示過程的程式,並提供了源 輸入數字,可以在控制台示意這些數字的對應數碼管顯示的效果,亮的管顯示為 不亮的管顯示為 程式的主要用途...