欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機做的溫濕度+時鐘 數碼管出現閃爍的清況,求大佬給指點下! [打印本頁]

作者: 飛科技    時間: 2018-4-23 20:44
標題: 單片機做的溫濕度+時鐘 數碼管出現閃爍的清況,求大佬給指點下!
請問大佬我用51單片機+LCD12864顯示溫濕度,而用數碼管顯示實時時鐘,為什么數碼管會出現閃爍的清況,我把LCD12864顯示溫濕度的程序注釋掉,數碼管就正常了;我的數碼管是用2片595通過級聯擴展出16個IO口;8個控制段選,8個控制位選,但一旦LCD12864顯示溫濕度就會閃爍,求大佬給個解決的辦法




作者: 青青之歌    時間: 2018-4-23 23:32
你最好也把電路圖和程序貼一下,我的猜測是讀取的溫度時間比較長打斷數碼管的顯示
作者: jimjassdf    時間: 2018-4-24 10:59
數碼管刷新頻率過慢,提高刷新頻率即可
作者: long3772639    時間: 2018-4-24 12:01
刷新頻率肉眼20HZ左右不閃
作者: 飛科技    時間: 2018-4-24 15:32
對的,就是溫濕度讀取的時間有點長,導致了數碼管閃爍,我對數碼管的位選與段選分別接了一個鎖存器還是不行
作者: 青青之歌    時間: 2018-4-24 22:17
如果我的話,我會將那個數碼管顯示放在定時器里面,溫度是在主程序里面,時間一到先刷新數碼管,再執行溫度的那一部分
作者: 飛科技    時間: 2018-4-24 23:31
青青之歌 發表于 2018-4-24 22:17
如果我的話,我會將那個數碼管顯示放在定時器里面,溫度是在主程序里面,時間一到先刷新數碼管,再執行溫度 ...

大哥幫忙看下怎么改:
void smgxs(uchar n,uchar shu)
{
  uchar i;
        int smgdat;
        smgdat=(smgwei[n-1]<<8)+smgduan[shu];
        ST_CP=0;
  SH_CP=0;
        for(i=0;i<16;i++)
        {
        if(smgdat&(0x8000>>i))
    DS=1;
    else
    DS=0;
    SH_CP=0;         
                 Delay10us();       
          SH_CP=1;
                Delay10us();
         SH_CP=0;
        }
   ST_CP=1;       
        Delay10us();
   ST_CP=0;       
}

作者: wulin    時間: 2018-4-25 07:07
本帖最后由 wulin 于 2018-4-25 11:04 編輯

你需要重新調整程序框架,把主循環周期控制在2ms以內,非不得已不要使用Delay()、while()空耗時間等待的語句,不是必須在中斷中處理的事務就不要放在中斷里。其實就這一點點功能不應該占用多少時間,比如數碼管動態顯示程序只要在主循環周期內顯示一位,分8次完成一輪顯示。比如12864也不必在一個主循環周期內全部刷新,溫濕度采樣也不必在一個主循環周期內全部處理。可以按時間片調度的思維方式寫多任務程序就不會有這些問題。
作者: aoyucheng    時間: 2018-4-25 15:18
兄弟你這也是畢業設計嗎?還是啥,我現在要做的畢業設計和這個差不多
作者: zhouyilin    時間: 2018-4-25 15:31
一般來說數碼管的頻率在20hz就可以,有可能你的液晶程序復雜、執行時間長,數碼管刷新頻率過慢。
作者: yhangzzz    時間: 2018-4-25 15:44
可以了解下單片機前后臺的寫法,不要讓讀溫度的操作影響,顯示刷新頻率。
作者: 123456m    時間: 2018-4-25 16:15
位的掃描調換看看
作者: 飛科技    時間: 2018-4-25 23:14
wulin 發表于 2018-4-25 07:07
你需要重新調整程序框架,把主循環周期控制在2ms以內,非不得已不要使用Delay()、while()空耗時間等待的語 ...

不是,我自己沒事做著玩
作者: 飛科技    時間: 2018-4-25 23:15
aoyucheng 發表于 2018-4-25 15:18
兄弟你這也是畢業設計嗎?還是啥,我現在要做的畢業設計和這個差不多

不,自己做著玩玩
作者: 609229918    時間: 2018-4-26 00:53
最好有電路圖和程序,之前做過也有類似問題,讀取溫度的程序會干擾數碼管的刷新顯示,建議對溫度顯示程序進行改進
作者: yfpc2006    時間: 2018-4-26 07:35
初學者往往對液晶屏發送數據前不進行查忙操作,每次發送完或者發送數據前都延時5ms再發,看看是不是這里引起的?一般程序里不要有毫秒級延時,如果延時最好用定時器做標志,根據標志確定延時時長,或者做一個變量的++操作,進行跑圈累加,以達到延時的目的。我做程序一般最長的delay為幾十us,再長久考慮上述方法!希望對您有幫助!
作者: 965677198    時間: 2018-4-26 09:10
把數碼管刷新頻率調慢一點,開發板上應該有一個可調電容調節的
作者: 西瓜_    時間: 2018-4-26 09:12
你要知道數碼管的顯示原理。
你的數碼管我手上也有,也是做溫濕度顯示,也是用兩個HC595進行位選和段選。
數碼管顯示原理:同一時刻(指絕對時間,比如此時此刻,一納秒都不多也不少的那種)只有一個數碼管在顯示數據,怎么做才能讓多個數碼管顯示呢?
其實是用的動態掃描法。比如說我此時刻顯示第一個數碼管,下一時刻顯示第二個,以此類推,到了最后一個再從第一個開始顯示。
那如何做到一個時刻只顯示一個數碼管卻讓人眼看到全部的數碼管顯示呢?
這個是利用的人眼識別東西的余暉效應,通常情況下,人眼識別連貫的圖像的最低幀率是24幀/秒,也就是說,如果是這樣動態刷新的顯示方式,最慢的刷新時間為1000ms/24幀約等于40ms/幀,就是一副完整的圖像最低得40ms刷新一次。對于4位數碼管而言,想要無閃爍顯示,則整體刷新最低時間為40ms,即每單個數碼管,最低刷新速率是10ms,對于8位數碼管則是5ms
弄懂了原理想要無閃爍顯示就簡單了,看看書上的定時器中斷介紹,基本就OK了。
作者: qq383570990    時間: 2018-4-26 11:07
我的畢設也是這個,多功能數顯溫度計,我想用的是1602屏幕做這個,用數碼管的話不能同時顯示年與日時間-溫度濕度
作者: qq383570990    時間: 2018-4-26 11:07
另外你可以多加一個時間模塊不就可以了嗎
作者: 飛科技    時間: 2018-4-26 17:04
感謝各位大佬的回復,我把數碼管顯示的程序放在了定時器里,數碼管閃爍問題已經解決
作者: qingfengjyf    時間: 2020-3-27 17:06
飛科技 發表于 2018-4-26 17:04
感謝各位大佬的回復,我把數碼管顯示的程序放在了定時器里,數碼管閃爍問題已經解決

怎么做的,能把代碼貼出來嗎,我也有這個問題




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1