昨天說的是數(shù)碼管的靜態(tài)顯示,和靜態(tài)顯示對應(yīng)的就是動態(tài)顯示。什么是動態(tài)顯示? 先來考慮一個問題,用靜態(tài)顯示的方法驅(qū)動一位數(shù)碼管用了多少資源? 一個鎖存器控制段選,另一個鎖存器的一個引腳控制位選。也就是9個引腳,如果用這種方式控制兩位數(shù)碼管要占用多少資源?18個引腳!8位數(shù)碼管呢?不敢想了。所以要另一種方式來解決這個問題。于是就出現(xiàn)了動態(tài)顯示的方法。 我不知道大家對于動態(tài)顯示的原理是不是能透徹理解,先插播一個故事。我小的時候很愛玩,喜歡看動畫片(海爾兄弟)。當(dāng)?shù)弥獎赢嬈锏娜宋飫幼靼l(fā)生的原理時,很興奮,自己畫了兩個小人,一個筆直站立,另一個擺出踢腿的動作,然后疊在一起,兩張紙片快速來回翻動,竟然就出現(xiàn)了動畫的效果。這么高科技的玩具不知道你們誰玩過~~~ 于是當(dāng)我看到數(shù)碼管動態(tài)顯示的原理時,很自然就懂了。 通常情況下,人眼識別圖像的速度是24幀每秒,也就是說24幀/1000毫秒,平均一幀40毫秒左右。當(dāng)你的刷新頻率高于這個速度的時候,那些斷斷續(xù)續(xù)的圖片就連貫成了動作。 說回到數(shù)碼管上,這里有6位數(shù)碼管,我想讓它從左開始依次顯示1、2、3、4、5、6,每次只亮一個,1秒更新一次,使用昨天的靜態(tài)顯示的方法,很簡單吧。只需要定時更新段選編碼以及位選引腳即可。 這樣的效果就是它們循環(huán)點亮,如同流水燈那樣。 在這個時候,如果我們不斷減少更新時間,突破了人眼的識別速度,將會是什么視覺效果?六個數(shù)字同時點亮!這就是今天要做的。 上程序,在昨天的基礎(chǔ)上進行修改。依然共陰極,依然用CH573鎖存器,這次同時驅(qū)動6位數(shù)碼管,顯示123456. 首先,定義了table這個數(shù)組,通過查表的方式來查詢對應(yīng)的編碼;其次,使用code的方式,把這個數(shù)組定義在ROM區(qū),節(jié)約了51單片機RAM的資源。 留個思考題,常說的數(shù)碼管消隱是因為什么細節(jié)沒處理好出現(xiàn)的問題? 程序下載地址:
SEG_6.zip
(28.84 KB, 下載次數(shù): 47)
2015-3-24 22:54 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|