【14】温度检测报警器
本课资源下载
共 3 个资源课程笔记
本节目标概括
创建main.c > 编写点灯代码 > 编译HEX文件 > 下载到学习板 > 点亮第一颗LED小灯
编译并下载程序到学习板,即可看到程序效果:
- 上电显示当前的温度
- 如果当前温度超过了最高值或者低于最小值,蜂鸣器会发出嘀嘀报警
例程讲解
C语言
1#include <STC89C5xRC.H>2#include "LCD1602.h"3#include "DS18B20.h"4#include "Delay.h"56sbit Beep_Pin = P4^0;78float T;9unsigned char THigh=26;10unsigned char TLow =24;11void beep_di(void);1213void main()14{15 LCD_Init();16 DS18B20_ConvertT(); //上电先转换一次温度,防止第一次读数据错误17 Delay(1000); //等待转换完成1819 LCD_ShowString(1,1,"Temperature:");20 while(1)21 {22 Delay(100);23 DS18B20_ConvertT(); //转换温度24 T=DS18B20_ReadT(); //读取温度25 if(T<0) //如果温度小于026 {27 LCD_ShowChar(2,1,'-'); //显示负号28 T=-T; //将温度变为正数29 }30 else //如果温度大于等于031 {32 LCD_ShowChar(2,1,'+'); //显示正号33 }34 LCD_ShowNum(2,2,T,3); //显示温度整数部分35 LCD_ShowChar(2,5,'.'); //显示小数点36 LCD_ShowNum(2,6,(unsigned long)(T*10000)%10000,4);//显示温度小数部分3738 if(T>THigh) //越界判断39 {40 LCD_ShowString(1,13,"OV:H");41 beep_di();42 }43 else if(T<TLow)44 {45 LCD_ShowString(1,13,"OV:L");46 beep_di();47 }48 else49 {50 LCD_ShowString(1,13," ");51 }52 }53}5455void beep_di(void)56{57 Beep_Pin = 0;58 Delay(100);59 Beep_Pin = 1;60 Delay(100);61}62
