標題: 有關數碼管動態掃描的一個問題 [打印本頁]
作者: xiaoniu 時間: 2014-12-28 00:00
標題: 有關數碼管動態掃描的一個問題
數碼管動態掃描幾乎是所有單片機入門書籍必寫的章節了,程序其實很簡單,10句以內就可解決(C51)。似乎是太簡單太基礎了,幾乎所有的例程都沒不曾提到:在一個大型的、運行時間較長的程序里實現效果如何?
其實在做那個溫控器的時候就已經碰到這個問題,那次也是第一次用數碼管動態掃描技術,以前都是用液晶顯示器的,無論是段式的還是點陣式的,這個問題就是:數碼管顯示的時候各位顯示亮度不完全一樣,總是最高位顯示的亮度最高,其他幾位較暗,但是亮度比較一致,這個問題困擾了我一段時間,后來實際用的時候把最高位顯示給屏蔽了(確實也用不到這一位,但是掃描還是要掃到的),所有這個問題算是忽略過去了。但是此次做調頻收音機時又一次碰到了。程序流程大致如下:共有兩個模塊用到數碼管顯示,一個是顯示調頻頻率,另一個是顯示當前音量值,由音量控制按鈕來控制這兩個模塊的輪流調用,實際調試時發現:輪到音量顯示的時候,兩位數字亮度是均勻的,而當由頻率顯示的時候,最高位數字亮度最高,其他位要暗一半以上,無論是在程序中多處安插掃描程序或者改變位掃描間隔都不能改變這一情況。經過兩個模塊的比較,發現了這兩段程序的重大不同點,頻率顯示模塊實際是先從tea5767中讀出PLL數據,然后經過PLL到頻率的運算,再經過二進制到BCD轉換,最后送顯示緩沖,期間用到了大量的乘除、浮點運算,眾所周知51單片機的浮點運算能力是很差的,這個從加載浮點運算后程序所占空間大幅度增加就可以看出來,也就是說,此處的頻率運算時間是很長的,而音量顯示模塊只是從ram中取了1字節做了一下二進制到BCD的轉換,顯然速度要快的多。說到這里,其實就很明白了,最高位顯示更亮的原因就是由掃描程序運行間隔過長造成的!這是由動態掃描程序缺陷引起的,因為這種掃描程序沒有鎖存的功能,程序需要不停的掃描,才能保證顯示效果,看這段典型的程序:
uchar shift ;
uchar count=0 ;
uchar k;
shift=0xfe;
P2=0xff ;
for(k=0; k<8; k++)
{
P0=dis_code[dis_buf[k]];
P2=shift;
shift=_crol_(shift,1); //左移一位,選中更高的數碼管
delayms(1);
}
可以看到,每次調用這段掃描程序后,數碼管的位選線就停在了最高位,如果兩次調用的間隔過長,就會造成最高位停留時間比其他位更多,而顯示亮度恰巧與位選停留的時間長短有關!
解決方法非常簡單,在位選循環結束后加了P2=0xff;關閉了所有數碼管的顯示,保證各位數碼管的顯示時間均等。經實驗證明,這個方法是對的!
之所以沒人提到這個問題(也許真是我看的書太少,沒發現其實人家也是這么解決的??),我想現在大家做東西的時候大都是首選液晶顯示器(價格也不貴,20來塊錢,消費的起),或者使用的專用的顯示芯片(程序無須時時掃描數碼管),即使是為了節約成本,也使用了數碼管動態掃描,也是因為主要用在了諸如“鬧鐘”等沒有多少數學運算的項目上了。
作者: WADZB 時間: 2015-1-13 17:44
回去試一試
作者: WADZB1 時間: 2015-1-13 21:21
能貼一個完整的程序最好了
作者: jishuaihu 時間: 2015-1-18 09:29
在大一些的程序里面做動態顯示要換一種思路的。一般不能放到主函數里面,正如樓主所說的,函數復雜了之后就不能保證每一個數碼管亮的時間是均等的。樓主的方法雖然解決了自己的問題,但是如果別人的程序和樓主的在運行時間上差別很大的話可能也無法通用。而且樓主的方法也無法確保每一個數碼管亮的時間是均等的,只能保證視覺上基本一致。
處理這樣的問題一般就得用定時器了,用定時器控制可以保證時間絕對的均等(在有限的精度范圍內,絕對的均等誰也達不到)。數碼管驅動程序在定時器中斷里處理,用一些控制標志去處理顯示順序和效果,可以很簡單的實現閃爍,消隱等效果。程序我發到別的論壇上去了,有時間我找找奉獻出來。需要的話記得提醒我啊。
作者: 我要愛學霸 時間: 2018-6-19 21:35
朋友,那個程序找出來沒有,有的話發一個出來唄!謝謝。
歡迎光臨 (http://m.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
欧美 日韩 国产 成人 在线
|
日本精品在线视频
|
一区二区三区网站
|
天堂网中文字幕
|
亚洲美女一区
|
国产在线视频一区
|
黄色片网站在线观看
|
秋霞av在线
|
黄色小视频免费
|
日韩小视频在线观看
|
成人永久免费视频
|
日韩精品视频一区二区三区
|
日韩国产中文字幕
|
亚洲激情综合网
|
欧美午夜视频
|
特一级黄色片
|
亚洲高清视频在线观看
|
av久久|
五月婷婷综合网
|
成人午夜激情
|
日韩免费在线观看
|
成人久久av
|
伊人久久久
|
国产91清纯白嫩初高中在线观看
|
青青国产视频
|
www.一区二区三区
|
91国产丝袜在线播放
|
日韩中文字幕第一页
|
亚洲精品乱码久久久久久
|
国产永久在线
|
免费毛片观看
|
xxxx亚洲
|
欧美亚洲一区
|
久久久久久久99
|
乳色吐息在线观看
|
国产精品久久久久久久久久久久午夜片
|
www.日韩.com|
人人爱人人
|
亚洲激情久久
|
av三级在线观看
|
五月天婷婷激情
|