历史上的今天
今天是:2025年02月12日(星期三)
2020年02月12日 | 单片机LM75温度报警LCD1602显示实验
2020-02-12 来源:51hei
一个由lm75构成的温度报警器例程
LM75数字温度传感器报警测试程序
1、程序说明:
该例程演示了接在单片机端口上的数字温度传感器LM75测试实验。
并在1602液晶上显示当前温度。同时判断是否超过了温度上限和下限,
如果超过,液晶屏将有提示闪烁。
2、实验操作
1、将跳线插座J4的跳线帽调至1602端
2、将LCD1602液晶屏插入J3插座中,注液管脚方向。
3、通过调节电位器VR1可以改变显示的对比度。
单片机源程序如下:
/************************************************
* 文件描述 : LM75数字温度传感器报警测试程序
* 程序文件 : main.c
* 版 本 : 1.0
* 作 者 : 火龙电子工作室
* 日 期 : 2017.10.01
* 芯 片 : STC8A8K64S4A12
* 时 钟 :内部时钟24MHz
* 开发环境 :Keil uVision4 C51 V9.52
* 操 作 : 1、将跳线插座J4的跳线帽调至1602端
2、将LCD1602液晶屏插入J3插座中,注液管脚方向。
3、通过调节电位器VR1可以改变显示的对比度。
* 现 象 : 1602显示温度信息。当温度超过程序设定的40度,液晶屏显示High Temp,
当温度低于程序设定的10度,液晶屏显示Low Temp。
* 备 注 :
用电烙铁靠近LM75可以观察到高温报警。
详细说明见左侧Doc目录下的readme文件
************************************************/
//文件包含
#include "stc8a8k64s4a12.h"
#include "system.h"
#include "lcd1602.h"
#include "lm75.h"
//宏定义
#define uchar unsigned char
#define uint unsigned int
//更新温度标记
bit UpdateFlag=0;
//报警标记
bit NoAlarmFlag=0;
unsigned char AlarmPara=0;
//设定报警温度上下限
#define TH 40
#define TL 10
//函数声明
void Timer0_Init(void);
void LM75_GetTemperature(void);
//主方法
void main(void)
{
bit FlashFlag; //闪烁标记
System_Init(); //系统初始化
LCD1602_Init(); //LCD1602初始化
LCD1602_Display_Clear();
Delay_ms(1000);
LM75_Init(); //LM75初始化
Timer0_Init(); //定时器初始化
LCD1602_Display_Welcome();//显示欢迎信息
while(1)
{
if(UpdateFlag==1) //定时1s更新温度
{
UpdateFlag=0;
LM75_GetTemperature();//读取温度
if(AlarmPara!=0) //如果超温
{
FlashFlag=!FlashFlag; //用于闪烁显示
if(FlashFlag==0)
{
switch(AlarmPara)
{
case 1:
{
LCD1602_Display_High();//显示高温
}break;
case 2:
{
LCD1602_Display_Low();//显示低温
}break;
}
}
else
{
LCD1602_Display_Clear();//清除显示,用于闪烁显示
}
//如果不报警标记有效
if(NoAlarmFlag==1)
{
NoAlarmFlag=0;
AlarmPara=0;
LCD1602_Display_Welcome();
}
}
下一篇:51单片机OLED时钟显示
史海拾趣
|
现在是编码IC(TX)已经发射管编码输出,,并且接收管可以收到编码信号,,可是解码IC(RX)并未解码.,,如果发射和接收IC 的频率已经吻合,,可是仍然无法解码??请问怎么解决呢?… 查看全部问答> |
|
我现在做的串口通信,是发送数据到硬件,硬件响应,然后再返回响应的信息数据,但发回的数据有的时候是一行,有的时候是两或者三行,想问问各位高手,我怎么才能显示所有三行的数据,现在可以接收显示一行。谢谢!!… 查看全部问答> |
|
stm32的gpio的od模式上拉不到5V,只到2V左右,也没有高低电平的变化。上拉电阻1K,那个管脚是兼容5V的。谁用过stm32的od模式,解释一下。谢谢… 查看全部问答> |
|
1.怎样实现相位可调?是用硬件还是软件实现?如果是用软件的话是通过设计寄存器来实现吗,如果是用硬件的话应该用什么电路或者器件呢? 2.ad9850产生的信号的电流是多少?在网上没有查到,看ad9850的中文资料也没有说,题目要求是在1k欧姆的负载条 ...… 查看全部问答> |
|
本帖最后由 dontium 于 2015-1-23 11:36 编辑 在EEWORLD组织的“我爱模拟之——TI模拟博文深度阅读季”看到一篇关于去耦电容的文章《去耦电容器......是否真的有必要?》网址是deyisupport./blog/b/signalchain/archive/2013/09/17/51504.aspx 然 ...… 查看全部问答> |




