標(biāo)題:
STM32+DS18B20恒溫控制程序 蜂鳴器報(bào)警
[打印本頁]
作者:
sakuralap
時(shí)間:
2020-1-5 09:21
標(biāo)題:
STM32+DS18B20恒溫控制程序 蜂鳴器報(bào)警
內(nèi)含報(bào)警指示燈+恢復(fù)按鍵,原本是打算用LCD顯示,但是由于硬件LCD引腳沒設(shè)計(jì)連成一片,導(dǎo)致CLD驅(qū)動(dòng)代碼不好寫,遂改用串口調(diào)試助手顯示。
單片機(jī)源程序如下:
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "led.h"
#include "lcd.h"
#include "ds18b20.h"
#include "beep.h"
int main(void)
{
u8 t=0;
float temperature;
int x;
delay_init(); //延時(shí)函數(shù)初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置中斷優(yōu)先級分組為組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級
uart_init(115200); //串口初始化為 115200
LED_Init();
LCD_init();
BEEP_Init(); //初始化蜂鳴器端口
while(DS18B20_Init()) //檢測DS18B20是否存在
{
// LED0=1;
}
// LED0=0;
while(1)
{
// if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0))
// x=0;
// else
// x=1;
/**LED3電源顯示燈**/
GPIO_SetBits(GPIOA,GPIO_Pin_6);
delay_ms(100);
GPIO_ResetBits(GPIOA,GPIO_Pin_6);
delay_ms(100);
Wcmd(0x80+0x40+1);
Wdat('H');
BEEP=0; //平時(shí)使它不報(bào)警
BAOJIN=1;//報(bào)警LED置高,使它平時(shí)不亮
// GPIO_SetBits(GPIOA,GPIO_Pin_5);
if(t%10==0) //每100ms讀取一次
{
temperature=DS18B20_Get_Temp();
printf(" 當(dāng)前溫度為 %2.4f",temperature*0.0625);
printf(" 攝氏度");
printf("\r\n");
/**PA5當(dāng)溫度大于多少時(shí)使蜂鳴器BEEP響 PA7紅光LED閃爍BAOJIN **/
if((temperature*0.0625>=10)&&GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0))///**********報(bào)警值設(shè)置*****////
{
BEEP=0;
BAOJIN=1; //報(bào)警
delay_ms(100);//延時(shí)300ms
BEEP=1;
BAOJIN=0;
delay_ms(300);//延時(shí)300ms
printf(" 超過規(guī)定溫度,開始報(bào)警,紅燈閃爍,危險(xiǎn)!請撤離\r\n");
printf("\r\n");
}
}
}
}
復(fù)制代碼
所有資料51hei提供下載:
18B20數(shù)字溫度傳感器實(shí)驗(yàn).7z
(195.67 KB, 下載次數(shù): 107)
2020-1-5 12:57 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
HWL0541
時(shí)間:
2020-2-25 15:23
下來了,謝謝樓主
作者:
sugar235050
時(shí)間:
2020-5-9 01:23
有原理圖就好了
作者:
太空人吃喜之郎
時(shí)間:
2020-5-16 09:29
感謝樓主
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1