目录
一、主要功能
1、数码管显示
2、按键设置阈值
3、温度高于上限或低于下限声光警报
二、使用步骤
本项目使用Proteus8仿真
包含:程序,仿真,文档等
三、硬件资源
1、51单片机核心模块
2、按键模块
3、温度传感器
4、蜂鸣器模块
5、指示灯模块
6、数码管显示模块
四、软件设计
#include <reg52.h> //调用单片机头文件
#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255
#define uint unsigned int //无符号整型 宏定义 变量范围0~65535
#include "eeprom52.h"
//数码管段选定义 0 1 2 3 4 5 6 7 8 9
uchar code smg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff}; //断码
//数码管位选定义
uchar code smg_we[]={0xef,0xdf,0xbf,0x7f};
uchar dis_smg[8] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};
uchar smg_i = 3; //显示数码管的个位数
sbit dq = P2^4; //18b20 IO口的定义
sbit beep = P2^3; //蜂鸣器IO口定义
bit flag_lj_en; //按键连加使能
bit flag_lj_3_en; //按键连3次连加后使能 加的数就越大了
uchar key_time,flag_value; //用做连加的中间变量
bit key_500ms ;
uint temperature ; //
bit flag_300ms ;
uchar menu_1; //菜单设计的变量
uint t_high = 300,t_low = 100; //温度上下限报警值
/***********************1ms延时函数*****************************/
void delay_1ms(uint q)
{
uint i,j;
for(i=0;i<q;i++)
for(j=0;j<120;j++);
}
/***********************小延时函数*****************************/
void delay_uint(uint q)
{
while(q--);
}
/***********************数码显示函数*****************************/
void display()
{
static uchar i;
i++;
if(i >= smg_i)
i = 0;
P1 = 0xff; //消隐
P3 = smg_we[i]; //位选
P1 = dis_smg[i]; //段选
}
/******************把数据保存到单片机内部eepom中******************/
void write_eeprom()
{
SectorErase(0x2000);
byte_write(0x2000, t_high % 256);
byte_write(0x2001, t_high / 256);
byte_write(0x2002, t_low % 256);
byte_write(0x2003, t_low / 256);
byte_write(0x2055, a_a);
}
/******************把数据从单片机内部eepom中读出来*****************/
void read_eeprom()
{
t_high = byte_read(0x2001);
t_high <<= 8;
t_high |= byte_read(0x2000);
t_low = byte_read(0x2003);
t_low <<= 8;
t_low |= byte_read(0x2002);
a_a = byte_read(0x2055);
}
/**************开机初始化保存的数据*****************/
void init_eeprom()
{
read_eeprom(); //先读
if(a_a != 1) //新的单片机初始单片机内问eeprom
{
t_high = 300;
t_low = 100;
a_a = 1;
write_eeprom(); //保存数据
}
}
五、实验现象
联系作者
作者B站链接:https://space.bilibili.com/3493294220773802
专注于51单片机、STM32、Proteus、物联网软件开发,PCB设计。