亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3656|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

【求助】STC12C5A60S2如何通過定時器讀取DH11并且顯示到數(shù)碼管上?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:116532 發(fā)表于 2016-4-25 13:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
STC12C5A60S2
74HC164
三位數(shù)碼管
DH11溫濕度傳感器

1、用STC12C5A60S2接74HC164驅(qū)動3位數(shù)碼管并鍵盤掃描。
     開始用的是軟件延遲,搞定。就是要求掃描時間不能過長,
     否則會出現(xiàn)數(shù)碼管過暗或者不能顯示的情況。
2、后來要接一片DH11讀溫濕度數(shù)據(jù),然后輸出到數(shù)碼管上。
     開始時也是用軟件延時,搞定。(曾經(jīng)用嘴吹DH11達(dá)到99濕度,)
     第二天發(fā)現(xiàn)數(shù)據(jù)不穩(wěn),然后開始調(diào)試。
3、然后發(fā)現(xiàn)采集DH11數(shù)據(jù)時間過長和74HC164掃描數(shù)碼管有沖突
     單片機(jī)和DH11通訊過程時間過長,
     而74HC164是無鎖存寄存器的需要快速掃描,
     把這兩個放到一個while里面的話會導(dǎo)致數(shù)碼管只能顯示出最后一位,前兩位因為延時過長而太暗。
4、想把掃描數(shù)碼管放到定時器T0里面,而DH11放到main里面,結(jié)果發(fā)現(xiàn)因為DH11時間過長,
     定時器中斷里面只能讀取到第一次數(shù)據(jù);而如果定時器時間足夠長的話能夠正確讀取main里面修改的數(shù)據(jù)。
uchar dh11;
void get_dh11(void)
{...}//啟動DH11,把溫濕度數(shù)據(jù)讀到dh11里面(實際應(yīng)該是5個數(shù)據(jù))
void display (dh11)
{...}//把數(shù)據(jù)顯示到數(shù)碼管上,通過74HC164
void timer0int () interrupt 1
{//中斷
    display(dh11);
}
void Timer0Init ()
{...}//定時器初始化
main(void)
{
    EA=1;
    ET0=1;
    while(1)
    {
        get_dh11();
    }
}//開啟定時器前dh11無數(shù)據(jù),這樣的話中斷里面讀取不到數(shù)據(jù)

main(void)
{
    get_dh11();
    Delay30ms();
    EA=1;
    ET0=1;
    while(1)
    {
        get_dh11();
        Delay1000ms();//DH11要求兩次采集間隔至少1秒
    }
}//開啟定時器前啟動一次數(shù)據(jù)采集,dh11有數(shù)據(jù),這樣的話中斷里面讀取的數(shù)據(jù)為第一次采集到的數(shù)據(jù)
//但是while里面再次采集到的新數(shù)據(jù)定時器中斷里面讀取不到,始終為第一次的數(shù)據(jù),除非重新上電。

為了驗證定時器中斷讀取數(shù)據(jù)更新問題,采用了一個簡單的辦法:直接在main里面更新數(shù)據(jù)讓定時器中斷讀取

main(void)
{
    dh11=0;//直接賦值
    Delay30ms();
    EA=1;
    ET0=1;
    while(1)
    {
        if(dh11++>10)
               dh11=0;//直接修改
        Delay1000ms();//DH11要求兩次采集間隔至少1秒
    }
}//這種情況下只有定時器中斷時間足夠大才能爭取讀取數(shù)據(jù)更新,比如幾十到幾百ms
//如果定時器中斷時間太短(幾十us)則無法讀取數(shù)據(jù)更新

猜測是因為定時器中斷打斷了數(shù)據(jù)更新的過程,使得數(shù)據(jù)無法正確更新。

看網(wǎng)上有關(guān)用STC12C5A60S2讀取DH11的例子,里面一開始也是想用定時器中斷顯示數(shù)據(jù),結(jié)果最終被注釋掉了。
看來遇到了同樣的問題。
見此貼 http://www.denmoz.com/bbs/dpj-38986-1.html
其他有關(guān)用定時器采集DHT11數(shù)據(jù)并顯示的幾乎沒有搜到。








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

相關(guān)帖子

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表