标题:
STM32+DS18B20恒温控制程序 蜂鸣器报警
[打印本页]
作者:
sakuralap
时间:
2020-1-5 09:21
标题:
STM32+DS18B20恒温控制程序 蜂鸣器报警
内含报警指示灯+恢复按键,原本是打算用LCD显示,但是由于硬件LCD引脚没设计连成一片,导致CLD驱动代码不好写,遂改用串口调试助手显示。
单片机源程序如下:
#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(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
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; //平时使它不报警
BAOJIN=1;//报警LED置高,使它平时不亮
// GPIO_SetBits(GPIOA,GPIO_Pin_5);
if(t%10==0) //每100ms读取一次
{
temperature=DS18B20_Get_Temp();
printf(" 当前温度为 %2.4f",temperature*0.0625);
printf(" 摄氏度");
printf("\r\n");
/**PA5当温度大于多少时使蜂鸣器BEEP响 PA7红光LED闪烁BAOJIN **/
if((temperature*0.0625>=10)&&GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0))///**********报警值设置*****////
{
BEEP=0;
BAOJIN=1; //报警
delay_ms(100);//延时300ms
BEEP=1;
BAOJIN=0;
delay_ms(300);//延时300ms
printf(" 超过规定温度,开始报警,红灯闪烁,危险!请撤离\r\n");
printf("\r\n");
}
}
}
}
复制代码
所有资料51hei提供下载:
18B20数字温度传感器实验.7z
(195.67 KB, 下载次数: 107)
2020-1-5 12:57 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
HWL0541
时间:
2020-2-25 15:23
下来了,谢谢楼主
作者:
sugar235050
时间:
2020-5-9 01:23
有原理图就好了
作者:
太空人吃喜之郎
时间:
2020-5-16 09:29
感谢楼主
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1