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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1487|回復: 2
打印 上一主題 下一主題
收起左側

DHT11和單片機定時器之間的沖突問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:1050289 發表于 2023-3-7 00:01 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位大佬你們好,我想問一下單片機STC89C52單片機使用DHT11時與定時器發生沖突怎么辦,DHT11要是想實現檢測濕度,就得按照下面的代碼,而定時器1的作用是做倒計時用的。要想讀DHT11的就必須先關定時器再開定時器,但是倒計時就不能通過按鍵按下就開始(用一個按鍵開始倒計時)。現在的問題就是一插電,濕度顯示的同時也就直接開始倒計時,按鍵沒有作用,我該怎么解決這問題

                                        //********************************濕度檢測*******************************//
                                       
                                                        DHT11_delay_ms(100);  
                                                        TR0 = 0;
                                                        TR1 = 0;
                                                        
                                                        DHT11_receive();
                                                        for(i=0;i<7;i++)
                                                                {
                                                                        if(i<=2)
                                                                        {
                                                                                sidu[ i]= rec_dat[ i]; //讀取濕度
                                                                        }  
                                                                }
                                                        LCD_DispOneChar(5, 1, 'H');
                                                        LCD_DispOneChar(6, 1, ':');
                                                        LCD_DispStr(7, 1, sidu);
                                                        TR0 = 1;

                                                        TR1 = 1;


//************************************定時器1-用于實現倒計時功能***********************//
void T1_init()//定時器1初始化
{
          TMOD |= 0x10;                        //0001  0000//設置方式1是16位的。CT=0是定時,CT = 1是記數
                TH1 = 15536/256;        //12MHz 的晶振,那么一個周期就是 1 us,所以需要計數 50ms / 1us = 50000
                TL1 = 15536%256;        //方式1
                TR1 = 0;
                ET1 = 1;
                EA  = 1;
}
void t1_irs(void)interrupt 3
{
        TH1 = 15536/256;                //重裝初值
        TL1 = 15536%256;
        
        
        
        if(++con == 20)                        //如果con自++到20 就1000ms ,最大定時時間=65536us=65.536ms。中斷20次就是1秒。
        {        
                con = 0;
                miao--;
                        if(miao<0)
                        {
                                miao=59;
                          fen--;
                        }
                else if(fen<0)
                {
                          fen=0;                 
                }               
        }
}

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

使用道具 舉報

沙發
ID:213173 發表于 2023-3-7 07:49 | 只看該作者
//********************************濕度檢測*******************************//

//        DHT11_delay_ms(100);  
//        TR0 = 0;
//        TR1 = 0;        //定時器不可以停止
        if(Time>=2)//代替DHT11_delay_ms(100)
        {
                Time=0;
                DHT11_receive();
                for(i=0;i<7;i++)
                {
                        if(i<=2)
                        {
                                sidu[ i]= rec_dat[ i]; //讀取濕度
                        }  
                }
                LCD_DispOneChar(5, 1, 'H');
                LCD_DispOneChar(6, 1, ':');
                LCD_DispStr(7, 1, sidu);
//                TR0 = 1;       
//                TR1 = 1;
        }

//************************************定時器1-用于實現倒計時功能***********************//
void T1_init()//定時器1初始化
{
        TMOD |= 0x10;                        //0001  0000//設置方式1是16位的。CT=0是定時,CT = 1是記數
        TH1 = 15536/256;        //12MHz 的晶振,那么一個周期就是 1 us,所以需要計數 50ms / 1us = 50000
        TL1 = 15536%256;        //方式1
        TR1 = 0;
        ET1 = 1;
        EA  = 1;
}
void t1_irs(void)interrupt 3
{
        TH1 = 15536/256;                //重裝初值
        TL1 = 15536%256;
       
        Time++;
        if(start==1)//啟動倒計時
        {
                if(++con == 20)      //如果con自++到20 就1000ms ,最大定時時間=65536us=65.536ms。中斷20次就是1秒。
                {        
                        con = 0;
                        miao--;
                        if(miao<0)
                        {
                                miao=59;
                                fen--;
                        }
                        else if(fen<0)
                        {
                                fen=0;                 
                        }               
                        if(miao==0 && fen==0)
                        {
                                start=0; //結束倒計時               
                        }
                }
        }
}
回復

使用道具 舉報

板凳
ID:415064 發表于 2023-3-7 13:16 | 只看該作者
DHT11_delay_ms(100);  
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产麻豆一区二区三区 | 国产精品久久久久久久白浊 | 日韩免费一区二区 | 日韩在线不卡 | 中文字字幕一区二区三区四区五区 | 精品成人| 国产不卡在线观看 | 欧美日本韩国一区二区 | 中文字幕免费视频 | 亚洲欧美国产精品久久 | 91.xxx.高清在线| 在线观看中文字幕 | 国产一在线 | 国产精品久久久久久久免费观看 | 亚洲综合一区二区三区 | 国产成人av电影 | 一区二区三区av夏目彩春 | 91久久| 亚洲1区 | japanhd美女动 | 粉色午夜视频 | 欧美日韩成人一区二区 | 在线观看亚洲 | 欧美一区不卡 | 亚洲人免费视频 | 羞羞涩涩在线观看 | 五月天天丁香婷婷在线中 | 懂色tv| 精品国产成人 | 美女视频一区 | 久久久久久久夜 | 久久精品91久久久久久再现 | 久久大陆 | 国产欧美一区二区三区免费 | 日韩精品在线观看免费 | 久久综合狠狠综合久久综合88 | 午夜不卡福利视频 | 精品少妇一区二区三区日产乱码 | 日本三级网站在线 | 国产精品国产成人国产三级 | 午夜看电影在线观看 |