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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 8963|回復(fù): 4
收起左側(cè)

有關(guān)數(shù)碼管動(dòng)態(tài)掃描的一個(gè)問(wèn)題

[復(fù)制鏈接]
ID:71235 發(fā)表于 2014-12-28 00:00 | 顯示全部樓層 |閱讀模式
   數(shù)碼管動(dòng)態(tài)掃描幾乎是所有單片機(jī)入門書籍必寫的章節(jié)了,程序其實(shí)很簡(jiǎn)單,10句以內(nèi)就可解決(C51)。似乎是太簡(jiǎn)單太基礎(chǔ)了,幾乎所有的例程都沒(méi)不曾提到:在一個(gè)大型的、運(yùn)行時(shí)間較長(zhǎng)的程序里實(shí)現(xiàn)效果如何?
   其實(shí)在做那個(gè)溫控器的時(shí)候就已經(jīng)碰到這個(gè)問(wèn)題,那次也是第一次用數(shù)碼管動(dòng)態(tài)掃描技術(shù),以前都是用液晶顯示器的,無(wú)論是段式的還是點(diǎn)陣式的,這個(gè)問(wèn)題就是:數(shù)碼管顯示的時(shí)候各位顯示亮度不完全一樣,總是最高位顯示的亮度最高,其他幾位較暗,但是亮度比較一致,這個(gè)問(wèn)題困擾了我一段時(shí)間,后來(lái)實(shí)際用的時(shí)候把最高位顯示給屏蔽了(確實(shí)也用不到這一位,但是掃描還是要掃到的),所有這個(gè)問(wèn)題算是忽略過(guò)去了。但是此次做調(diào)頻收音機(jī)時(shí)又一次碰到了。程序流程大致如下:共有兩個(gè)模塊用到數(shù)碼管顯示,一個(gè)是顯示調(diào)頻頻率,另一個(gè)是顯示當(dāng)前音量值,由音量控制按鈕來(lái)控制這兩個(gè)模塊的輪流調(diào)用,實(shí)際調(diào)試時(shí)發(fā)現(xiàn):輪到音量顯示的時(shí)候,兩位數(shù)字亮度是均勻的,而當(dāng)由頻率顯示的時(shí)候,最高位數(shù)字亮度最高,其他位要暗一半以上,無(wú)論是在程序中多處安插掃描程序或者改變位掃描間隔都不能改變這一情況。經(jīng)過(guò)兩個(gè)模塊的比較,發(fā)現(xiàn)了這兩段程序的重大不同點(diǎn),頻率顯示模塊實(shí)際是先從tea5767中讀出PLL數(shù)據(jù),然后經(jīng)過(guò)PLL到頻率的運(yùn)算,再經(jīng)過(guò)二進(jìn)制到BCD轉(zhuǎn)換,最后送顯示緩沖,期間用到了大量的乘除、浮點(diǎn)運(yùn)算,眾所周知51單片機(jī)的浮點(diǎn)運(yùn)算能力是很差的,這個(gè)從加載浮點(diǎn)運(yùn)算后程序所占空間大幅度增加就可以看出來(lái),也就是說(shuō),此處的頻率運(yùn)算時(shí)間是很長(zhǎng)的,而音量顯示模塊只是從ram中取了1字節(jié)做了一下二進(jìn)制到BCD的轉(zhuǎn)換,顯然速度要快的多。說(shuō)到這里,其實(shí)就很明白了,最高位顯示更亮的原因就是由掃描程序運(yùn)行間隔過(guò)長(zhǎng)造成的!這是由動(dòng)態(tài)掃描程序缺陷引起的,因?yàn)檫@種掃描程序沒(méi)有鎖存的功能,程序需要不停的掃描,才能保證顯示效果,看這段典型的程序:
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);   //左移一位,選中更高的數(shù)碼管
  delayms(1);
}
    可以看到,每次調(diào)用這段掃描程序后,數(shù)碼管的位選線就停在了最高位,如果兩次調(diào)用的間隔過(guò)長(zhǎng),就會(huì)造成最高位停留時(shí)間比其他位更多,而顯示亮度恰巧與位選停留的時(shí)間長(zhǎng)短有關(guān)!
    解決方法非常簡(jiǎn)單,在位選循環(huán)結(jié)束后加了P2=0xff;關(guān)閉了所有數(shù)碼管的顯示,保證各位數(shù)碼管的顯示時(shí)間均等。經(jīng)實(shí)驗(yàn)證明,這個(gè)方法是對(duì)的!
    之所以沒(méi)人提到這個(gè)問(wèn)題(也許真是我看的書太少,沒(méi)發(fā)現(xiàn)其實(shí)人家也是這么解決的??),我想現(xiàn)在大家做東西的時(shí)候大都是首選液晶顯示器(價(jià)格也不貴,20來(lái)塊錢,消費(fèi)的起),或者使用的專用的顯示芯片(程序無(wú)須時(shí)時(shí)掃描數(shù)碼管),即使是為了節(jié)約成本,也使用了數(shù)碼管動(dòng)態(tài)掃描,也是因?yàn)橹饕迷诹酥T如“鬧鐘”等沒(méi)有多少數(shù)學(xué)運(yùn)算的項(xiàng)目上了。

回復(fù)

使用道具 舉報(bào)

ID:72128 發(fā)表于 2015-1-13 17:44 | 顯示全部樓層
回去試一試
回復(fù)

使用道具 舉報(bào)

ID:72179 發(fā)表于 2015-1-13 21:21 | 顯示全部樓層
能貼一個(gè)完整的程序最好了
回復(fù)

使用道具 舉報(bào)

ID:72163 發(fā)表于 2015-1-18 09:29 | 顯示全部樓層
在大一些的程序里面做動(dòng)態(tài)顯示要換一種思路的。一般不能放到主函數(shù)里面,正如樓主所說(shuō)的,函數(shù)復(fù)雜了之后就不能保證每一個(gè)數(shù)碼管亮的時(shí)間是均等的。樓主的方法雖然解決了自己的問(wèn)題,但是如果別人的程序和樓主的在運(yùn)行時(shí)間上差別很大的話可能也無(wú)法通用。而且樓主的方法也無(wú)法確保每一個(gè)數(shù)碼管亮的時(shí)間是均等的,只能保證視覺(jué)上基本一致。
處理這樣的問(wèn)題一般就得用定時(shí)器了,用定時(shí)器控制可以保證時(shí)間絕對(duì)的均等(在有限的精度范圍內(nèi),絕對(duì)的均等誰(shuí)也達(dá)不到)。數(shù)碼管驅(qū)動(dòng)程序在定時(shí)器中斷里處理,用一些控制標(biāo)志去處理顯示順序和效果,可以很簡(jiǎn)單的實(shí)現(xiàn)閃爍,消隱等效果。程序我發(fā)到別的論壇上去了,有時(shí)間我找找奉獻(xiàn)出來(lái)。需要的話記得提醒我啊。
回復(fù)

使用道具 舉報(bào)

ID:354704 發(fā)表于 2018-6-19 21:35 | 顯示全部樓層
jishuaihu 發(fā)表于 2015-1-18 09:29
在大一些的程序里面做動(dòng)態(tài)顯示要換一種思路的。一般不能放到主函數(shù)里面,正如樓主所說(shuō)的,函數(shù)復(fù)雜了之后就 ...

朋友,那個(gè)程序找出來(lái)沒(méi)有,有的話發(fā)一個(gè)出來(lái)唄!謝謝。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一级黄色播放 | 一区二区三区日本 | 全免费a级毛片免费看视频免费下 | 欧美自拍一区 | 精品一区二区三区在线观看国产 | 日韩有码一区 | 国产精品日产欧美久久久久 | 蜜桃传媒一区二区 | 久久亚洲一区二区 | 国产小视频在线观看 | 精品国产乱码久久久久久a丨 | 一区二区三区欧美在线 | 男人av网 | 热99在线 | 亚洲一区二区在线播放 | 亚洲国产精品一区二区三区 | 国产一区 | 午夜丁香视频在线观看 | 毛片在线视频 | 久草新在线 | 亚洲午夜精品一区二区三区他趣 | 日本成人在线免费视频 | 国产免费一区二区 | 日韩精品在线网站 | 密色视频| 久久久久国产一区二区三区 | 中文成人在线 | 亚洲成人在线视频播放 | 三级视频在线观看 | 国产精品入口麻豆www | 青青久视频 | 亚洲高清在线播放 | 97国产超碰 | 国产高清在线精品一区二区三区 | 日韩电影中文字幕在线观看 | 久久成人精品视频 | 精品一区二区视频 | 全免费a级毛片免费看视频免 | 国产精品久久久久久久久久尿 | 影视先锋av资源噜噜 | 成人在线免费电影 |