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

標(biāo)題: 【求助】STC12C5A60S2如何通過定時器讀取DH11并且顯示到數(shù)碼管上? [打印本頁]

作者: lubuntu    時間: 2016-4-25 13:53
標(biāo)題: 【求助】STC12C5A60S2如何通過定時器讀取DH11并且顯示到數(shù)碼管上?
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ù)碼管只能顯示出最后一位,前兩位因?yàn)檠訒r過長而太暗。
4、想把掃描數(shù)碼管放到定時器T0里面,而DH11放到main里面,結(jié)果發(fā)現(xiàn)因?yàn)镈H11時間過長,
     定時器中斷里面只能讀取到第一次數(shù)據(jù);而如果定時器時間足夠長的話能夠正確讀取main里面修改的數(shù)據(jù)。
uchar dh11;
void get_dh11(void)
{...}//啟動DH11,把溫濕度數(shù)據(jù)讀到dh11里面(實(shí)際應(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ù),除非重新上電。

為了驗(yàn)證定時器中斷讀取數(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ù)更新

猜測是因?yàn)槎〞r器中斷打斷了數(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ù)并顯示的幾乎沒有搜到。













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