亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛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