微控制器數碼管顯示。為什麼會乙個亮其他的都暗呢?+
1樓:網友
你這個不完整。看碰沒中不出所有的。
不過就你這個**。肯定實現不察緩了你 數碼管動態顯示的目的。
如果你的p2 的 0,1,2,3,4,5,6 腳控制數碼管的公共端的話。
你這個**。只會導致最後乙個腳也就是6腳的led亮。
其他的都不亮了。
因為。顯示led後面肯定還有其他**。
那些**在執行的時候只有6腳的公共端選通了。
因為前面的5個led都是隻通電一下。很短時間。根笑山本沒用。
要實現數碼管都亮,並需6個數碼管選通的時間基本一樣才行。
比如都導通5ms 10ms之類的。
你這樣。想到相當於 01234導通x(us),5導通 x(ms)導通時間不是乙個數量級的。
但願你能明白,**我就不寫了,祝你好運。
如果你要修改的話。
最好是用一箇中斷。
隔5ms選通乙個數碼管就好了。
5ms 010ms 1
15ms 2
這樣迴圈就好了。
微控制器控制數碼管為什麼顯示很暗
2樓:煙火夜空
長期點亮就是 數碼管最亮 的時候。
但動態顯示中做不到長期點亮,那麼就要換種說法:最大可能讓它長期亮,就是 數碼管最亮的時候。也就是說,數碼管亮的時間越長,它就越亮。
又但是,動態顯示中,數碼管亮的時間越長,幾個數碼管就會變得一閃一閃的,甚至是,乙個亮完另乙個亮,跟流水燈似的。這就是所謂的:刷屏!
因此,又得換一種說法:在保證不閃的情況下,最大可能讓它長期亮。
這就是主題了——重新整理率。這個名詞不陌生,以前的顯示器,特別是臺式顯示器上就要調這個引數。調高了(75hz),顯示器支援不了,調低了(50hz),螢幕忽閃忽閃的。
但用在數碼管上,估計比較難入座。
從以前的顯示器上,可以得到經驗,50hz對人而言,會閃爍。75hz已經完全看不出來了。降低一點要求,60hz絕大多數人已經感覺不到閃爍了。這個重新整理率怎麼用在數碼管上?
為了方便計算,以50hz為例,則週期t=1/f=20ms,也就是20ms重複一週。假設你有4個數碼管,則每個數碼管有 5ms 的時間。也就是說,這就是「最大可能的時間」了。
每隔這「最大時間」切換一位數碼管,就能讓數碼管到達 最大輝度(亮度)了。
當然,最大亮度也不可能超出硬體設計範圍,如果硬體設計驅動電流不夠,那麼軟體怎麼弄都是白扯!
3樓:網友
驅動電流不夠,或者你的動態掃瞄程式有問題。
4樓:網友
太暗了就增加輸入電壓,太亮了就加乙個電阻。
微控制器用液晶顯示時數碼管也會亮。
5樓:匿名使用者
一、因為你的數碼管和液晶屏1602是共用了p0,p1腳,這兩個模組只會響應這兩組io口輸出的電平。
而不會判斷是否用到了這個模組。你看下可不可以斷掉數碼管的電源或輸入,一般開發板。
上是有的。二、一般,共用一組io口的模組都會新增乙個控制位的,來控制啟動和關閉的,如果沒有的話,只能手動關閉的了。
三、兩個一起用的話,會有分壓,有一些元件會出現失真,顯示的結果不對。
希望能幫到你,望。
微控制器上當點亮乙個數碼管時,其他數碼管也有微弱的點亮,為什麼?
6樓:網友
沒看到電路、程式,完全是猜測:
通常現在點亮數碼管都用分時電路,也就是跟匯流排制的資料交換類似的,共用資料線洞旦+單獨的片選訊號構成分時複用。這種分時方式,適應高速cpu跟低速外圍輸入輸出介面,可以減少i/o口的佔用,是比較划算的做法。
本來這種方案是非常成熟的,但你說會干擾其它未片選的管子,我想原因不外乎:
1.片選訊號禁止時,片選端並不乾脆,存在狀態不明確的情況(如高低電平靠近門限值、漏電流過大),導致通斷不徹底;
2.片選訊號禁止時,片選端山斗懸空,導致受幹逗顫磨擾。
對於情況1,可考慮效能引數好的管子來改善;對於情況2,則需要增加上拉或下拉電阻(按邏輯電平選用)來避免懸空,從而隔絕干擾。
7樓:雪夜風葉
點亮過程太快,中間加點延遲。
8樓:滄海海神
程式 和 電路發來啊。。
微控制器,數碼管亮度問題
9樓:網友
上拉電阻500歐左右 ,每位延時1ms
10樓:網友
我只知道可以減小上啦電阻,太大了,建議在300歐到1k之間。
11樓:網友
動態掃瞄的頻率調快一些即可。
51微控制器控制數碼管並顯示,51微控制器控制8個數碼管並顯示
啟巖 數碼管段選連線到微控制器p0口,位選連線到p2口org 0000h main call display ajmp main display mov r0,0 mov r1,0x01 mov dptr,tab loop inc r0 mov a,r0 movc a,a dptr mov p0,0...
51微控制器4 4矩陣鍵盤控制數碼管顯示,下面的程式不能實現
萬年de守護 你在switch語句裡面要加break語句,然後還要加一個default語句。你再試試。你再深入的看一下。我覺得矩陣鍵盤的程式不用這麼複雜吧?如果你只是單純的用鍵盤控制一下指示燈,直接就不用switch。直接就用0xoo資料進行控制就行。然後用一個if語句進行一下多次選擇。如果你想先識...
我想用微控制器的數碼管顯示LED的個數
用按鍵控制顯示1和5 org 0000h 復位時程式從此開始 sjmp start 跳到start進行初始化 org 0030h 初始化程式從30h開始 初始化 start mov sp,60h mov 40h,0ffh mov p2,0ffh clr p2.0 主程式 main call key ...