微控制器控制數碼管為什麼顯示很暗使用微控制器驅動4位數碼管,亮度不一樣,第一位很亮,其他很暗,為什麼?

2021-05-13 03:14:40 字數 2794 閱讀 2776

1樓:煙火夜空

長期點亮就是 數碼管最亮 的時候。

但動態顯示中做不到長期點亮,那麼就要換種說法:最大可能讓它長期亮,就是 數碼管最亮的時候。也就是說,數碼管亮的時間越長,它就越亮。

又但是,動態顯示中,數碼管亮的時間越長,幾個數碼管就會變得一閃一閃的,甚至是,一個亮完另一個亮,跟流水燈似的。這就是所謂的:刷屏!

因此,又得換一種說法:在保證不閃的情況下,最大可能讓它長期亮。

這就是主題了——重新整理率。這個名詞不陌生,以前的顯示器,特別是臺式顯示器上就要調這個引數。調高了(75hz),顯示器支援不了,調低了(50hz),螢幕忽閃忽閃的。

但用在數碼管上,估計比較難入座。

從以前的顯示器上,可以得到經驗,50hz對人而言,會閃爍。75hz已經完全看不出來了。降低一點要求,60hz絕大多數人已經感覺不到閃爍了。這個重新整理率怎麼用在數碼管上?

為了方便計算,以50hz為例,則週期t=1/f=20ms,也就是20ms重複一週。假設你有4個數碼管,則每個數碼管有 5ms 的時間。也就是說,這就是「最大可能的時間」了。

每隔這「最大時間」切換一位數碼管,就能讓數碼管到達 最大輝度(亮度)了。

當然,最大亮度也不可能超出硬體設計範圍,如果硬體設計驅動電流不夠,那麼軟體怎麼弄都是白扯!

2樓:匿名使用者

驅動電流不夠,或者你的動態掃描程式有問題

3樓:匿名使用者

太暗了就增加輸入電壓,太亮了就加一個電阻

使用微控制器驅動4位數碼管,亮度不一樣,第一位很亮,其他很暗,為什麼?

4樓:匿名使用者

程式裡沒有做鬼影處理。你每次顯示一位數碼管之後,在delay之後都將p1和p3口清空,當然是按照你的電路來寫,目的就是讓數碼管什麼也不顯示。然後再次賦值顯示下一位的值。

建議使用定時器來顯示,這樣能保證每一位的亮度完全相同。

5樓:匿名使用者

數碼管的片選是低電平選中,還是高電平選中,你確認一下.

微控制器數碼管顯示.為什麼會一個亮其他的都暗

6樓:匿名使用者

你這麼問,誰能知道是什麼原因。問是神馬玩意?是**圖?具體情況都 不知道,怎麼知道為什麼?

還是自己焊接的板子?還這買的開發板?還是什麼板子?

是你寫程式後,就亮一個,還是什麼時候亮一個?

具體情況說明白。

7樓:苗涵瑤貳聖

你這個不完整..看不出所有的..

不過就你這個**.肯定實現不了你

數碼管動態顯示的目的

如果你的p2

的0,1,2,3,4,5,6

腳控制數碼管的公共端的話.

你這個**.只會導致最後一個腳也就是6腳的led亮.

其他的都不亮了..

因為..顯示led後面肯定還有其他**.

那些**在執行的時候只有6腳的公共端選通了.

因為前面的5個led都是隻通電一下.很短時間..根本沒用..

要實現數碼管都亮,,並需6個數碼管選通的時間基本一樣才行.

比如都導通5ms

10ms之類的..

你這樣.想到相當於

01234導通x(us),5導通

x(ms)

導通時間不是一個數量級的.

但願你能明白,**我就不寫了,祝你好運

如果你要修改的話.

最好是用一箇中斷..

隔5ms選通一個數碼管就好了.

5ms0

10ms

115ms

2這樣迴圈就好了.

微控制器數碼管動態顯示程式最後一位很亮是怎麼回事?

8樓:

因為在有參呼叫中,程式開頭有一些計算過程,例如計算要顯示的每一位數值,要佔用較長的時間,動態掃描到最後一個數碼管後重新迴圈時再次計算程式開頭的計算過程,這段時間都是最後一個數碼管在顯示,所以最後一個數碼管顯示時間較其他數碼管長,比較亮。或者是在主程式中,display()前有一段**要執行,佔用較長時間,效果和前面講的相同。

9樓:k放縱

可以把最後一位數碼管先讓它顯示再設為熄滅 使用延時函式設定適合的時間就可以了

10樓:匿名使用者

你把延時設對了,就可以了!不過也有其他問題(包括你的上拉電阻,自己測一下硬體電路,測完就剩軟體了)

為什麼微控制器的數碼管亮度很低?

11樓:匿名使用者

你用的是stc或者是at吧,p0埠是要接上拉電阻的。上拉電阻選10k的就可以

12樓:匿名使用者

p0是集電極開路輸出,你用共陽的數碼管就行了,或者接1k的上拉。

13樓:匿名使用者

電壓不夠唄,你需要看看數碼管需要多大的電壓,再看看你輸出了多少電壓。

微控制器數碼管顯示一位亮,其它三位能亮,但是很暗,沒有那一位那麼亮

14樓:

你電路數碼管每段位沒有加限流電阻,每個數碼管沒有加三極體,比較容易燒微控制器。

把你切換每一個數碼管陰極io的那段**發一下,我們幫你分析一下

15樓:匿名使用者

有可能是程式中第一位掃描的次數比其它位多

或者是掃描時間比其它的長

16樓:匿名使用者

你是用掃描方式進行現實的,用示波器看看,掃描脈寬是否相同。

微控制器數碼管顯示為什麼不均勻,如何讓微控制器不同數碼管同時顯示不同數?

i1 c 100000 4 十萬位j1 c 100000 10000 4 萬位k1 c 10000 1000 4 千位i0 c 1000 100 4 百位j0 c 100 10 4 十位 k0 c 10 4 個位 上面的運算很耗資源,相當於一個大的延時程式,絕對比 delay 25 大得多,這一點你...

微控制器數碼管動態掃描,微控制器動態掃描數碼管問題?

你的bai延時函式時間太短了 下面du 說工作流程 第一個管子zhi 的位選開啟,選dao中第一個管,關位版選,段選開啟,送權資料,關段選延時delay 5 注意這裡,人的眼睛有視覺暫留,大約0.1 0.4秒,如果你延時很短,這兩個數碼管分先後,第一個亮,然後第二個亮,迴圈往復,但是你的眼睛分辨不出...

51微控制器怎麼通過串列埠通訊在數碼管的顯示大於255的值

不管十進位制,還是16進位制,在記憶體中都是以二進位制的形式儲存的 十六進位制專ff 和十進位制 255 在記憶體 中都是 1111 1111 這種分離個屬十百的方法邏輯上沒什麼值得懷疑的 寫成十進位制還是十六進位制不影響計算結果 bai x 100 你將100換成0x64結果是一樣的 我們應用10...