標(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