久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9179|回復: 4
打印 上一主題 下一主題
收起左側

有關數碼管動態掃描的一個問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:71235 發表于 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來塊錢,消費的起),或者使用的專用的顯示芯片(程序無須時時掃描數碼管),即使是為了節約成本,也使用了數碼管動態掃描,也是因為主要用在了諸如“鬧鐘”等沒有多少數學運算的項目上了。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:72128 發表于 2015-1-13 17:44 | 只看該作者
回去試一試
回復

使用道具 舉報

板凳
ID:72179 發表于 2015-1-13 21:21 | 只看該作者
能貼一個完整的程序最好了
回復

使用道具 舉報

地板
ID:72163 發表于 2015-1-18 09:29 | 只看該作者
在大一些的程序里面做動態顯示要換一種思路的。一般不能放到主函數里面,正如樓主所說的,函數復雜了之后就不能保證每一個數碼管亮的時間是均等的。樓主的方法雖然解決了自己的問題,但是如果別人的程序和樓主的在運行時間上差別很大的話可能也無法通用。而且樓主的方法也無法確保每一個數碼管亮的時間是均等的,只能保證視覺上基本一致。
處理這樣的問題一般就得用定時器了,用定時器控制可以保證時間絕對的均等(在有限的精度范圍內,絕對的均等誰也達不到)。數碼管驅動程序在定時器中斷里處理,用一些控制標志去處理顯示順序和效果,可以很簡單的實現閃爍,消隱等效果。程序我發到別的論壇上去了,有時間我找找奉獻出來。需要的話記得提醒我啊。
回復

使用道具 舉報

5#
ID:354704 發表于 2018-6-19 21:35 | 只看該作者
jishuaihu 發表于 2015-1-18 09:29
在大一些的程序里面做動態顯示要換一種思路的。一般不能放到主函數里面,正如樓主所說的,函數復雜了之后就 ...

朋友,那個程序找出來沒有,有的話發一個出來唄!謝謝。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文在线字幕免费观看 | 午夜综合网 | 中文字幕免费 | 黄色片视频在线观看 | 好了av在线| 欧美成人免费视频 | 又黄又爽网站 | 免费在线观看av | 日韩黄色小视频 | 欧美一级欧美三级在线观看 | 91午夜精品亚洲一区二区三区 | 欧美国产在线视频 | 欧美精品一区二区在线观看 | 国产suv一区二区 | 91精品国产麻豆国产自产在线 | 国产欧美精品一区二区色综合 | 黄色网页免费 | 国产日韩欧美 | 波多野结衣亚洲一区 | 一级免费黄色片 | 天天躁日日躁狠狠很躁 | 免费黄色一级 | 天天舔天天操 | 成人午夜激情视频 | 看片地址| 丰满少妇av | 日本在线免费观看视频 | 成人在线观看网站 | 中国一级黄 | 99久久精品一区二区成人 | 欧美日韩亚洲视频 | 四虎精品视频 | 欧美成人猛片aaaaaaa | 欧美日韩国产中文字幕 | 五月天婷婷在线观看 | 亚洲视频在线看 | 欧美成人精品一区二区三区 | 91蝌蚪91九色白浆 | 成人在线视频免费 | 超碰在线免费公开 | 六十路av |