使用微控制器驅動4位數碼管,求解亮度不足問題

2021-03-03 21:51:47 字數 1571 閱讀 8565

1樓:做而論道

void seg_display(unsigned char dis_i,

unsigned char dis_1,

unsigned char dis_2,

unsigned char dis_3,

unsigned char dis_4)

}試試看。

2樓:小狂

消隱之前多延時一點,亮度就高了

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

3樓:匿名使用者

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

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

4樓:匿名使用者

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

微控制器控制數碼管為什麼顯示很暗

5樓:煙火夜空

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

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

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

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

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

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

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

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

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

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

6樓:匿名使用者

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

7樓:匿名使用者

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

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

8樓:匿名使用者

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

9樓:匿名使用者

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

10樓:匿名使用者

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

如何利用微控制器讓4位數碼管顯示

程式如下 用的是stc89c52晶片 include 52系列微控制器標頭檔案 define uchar unsigned char define uint unsigned int uint x,y uchar code table 共陰極數碼管編碼 void display uchar,ucha...

c語言51微控制器求解8位數碼管上動態顯示

void main 延時的位置放錯了,導致當前位選擇為下內一次服容務了。把case 7 改為 ducase 0 case 1 改為zhicase 2 case 2 改為case 3 case 3 改為case 4 case 4 改為case 5 case 5 改為case 6 case 6 改為ca...

普中微控制器數碼管為什麼總是最後一位亮

延時或者位選訊號沒有控制好 沒有圖,又沒有程式。誰知道你是什麼問題,難道大家都能掐會算 上個程式吧,順便把數碼管接法簡單說一下。程式沒處理好 採用延時函式的顯示,多數會出現同一個情況,那是因為 重新整理率不一致導致的結果。為什麼程式燒進微控制器後數碼管只亮中間 你能確定數碼bai管是共陰du的嗎?如...