標(biāo)題: 有關(guān)于ds18b20溫度與設(shè)定上下限比較后執(zhí)行后續(xù)程序的問題 [打印本頁]

作者: heicad    時間: 2016-3-11 21:07
標(biāo)題: 有關(guān)于ds18b20溫度與設(shè)定上下限比較后執(zhí)行后續(xù)程序的問題
為何設(shè)定的上下限和溫度的比較語句沒作用?下載程序后就只有蜂鳴器響一下和電機一直在轉(zhuǎn)。按鍵控制電機轉(zhuǎn)速程序也沒作用。。。程序如下:

#include<stc12c5a60s2.h>
#include"response.h"
#include"fmq.h"
#include"pwm.h"
#include"delay.h"
#include"keyscan.h"
#include"ds18b20a.h"


void Response()       //響應(yīng)函數(shù)
{   
       keyscan_deal();    //溫度參數(shù)處理
       if(quit_flag==0)      //如果按鍵不按下則執(zhí)行如下程序
      {      
           ds18b20_display_a();   //讀取rom1溫度值并顯示
           if(tvalue>=H_temp)
          {
              delay(100);      //濾波作用
              if(tvalue>=H_temp)
             {
                 pwm_set(0x00);     //啟動電機
                 didi();          //滴滴響
                 deal_pwm();         //按鍵處理pwm函數(shù)  ,控制電機轉(zhuǎn)速   
                 ds18b20_display_a();      //讀取rom1溫度值并顯示                           
                if(tvalue<=L_temp)
                {
                   delay(100);      //濾波作用
                   if(tvalue<=L_temp)
                   {
                     pwm_set(0xff);           //停止電機
                     buzz=0;                  //報警停止   
                   }
               }
          }
     }
}
}

作者: heicad    時間: 2016-3-11 21:07
問題可能在 pwm_set(0x00);     //啟動電機
         deal_pwm();         //按鍵處理pwm函數(shù)  ,控制電機轉(zhuǎn)速
這兩個函數(shù),把這兩貼出來看看


看結(jié)構(gòu),好多問題,溫度的采集自身就需要加慮波,中值法就可以,你上面的那個濾波也要加上,溫度檢測上下限兩個為并列關(guān)系,不能那樣嵌套,蜂鳴器和電機,要加到定時器中斷里用,溫度可以一圈采一次,或者放到中斷隔一段時間采一次,
作者: heicad    時間: 2016-3-11 21:08
void deal_pwm()    //按鍵處理pwm函數(shù)
{
     uint t;
         t=KEY_Scan(0);//得到鍵值
         if(t)
         {
            switch(t)
                {
                   case 4:pwm_change(1,0X1A);break;
                   case 5:pwm_change(0,0X1A);break;
                   default :  break;
                }
         }else delay(10);
}




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