【51单片机-B012】【protues仿真】基于51单片机数码管温度报警器仿真

目录

一、主要功能

二、使用步骤

三、硬件资源

四、软件设计

五、实验现象

联系作者

一、主要功能

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站演示视频:
【51单片机-B012】【protues仿真】基于51单片机数码管温度报警器仿真_哔哩哔哩_bilibili本项目使用Proteus8仿真B012 基于51单片机数码管温度报警器包含:程序,仿真,文档等主要功能如下:1、数码管显示2、按键设置阈值3、温度高于上限或低于下限声光警报, 视频播放量 0、弹幕量 0、点赞数 0、投硬币枚数 0、收藏人数 0、转发人数 1, 视频作者 无忧电子设计, 作者简介 Q:215138327 V:Kinpar 承接51,32单片机设计定做,51,32单片机protues仿真,实物,程序等。,相关视频:【STM32单片机-A011】【Proteus仿真】HX711电子秤系统仿真,【STM32单片机-A010】【Proteus仿真】步进电机控制系统仿真,【STM32单片机-A012】【Proteus仿真】GP2D12红外测距系统仿真,【STM32单片机-A005】【Proteus仿真】烟雾温湿度检测系统,【STM32单片机-A004】【Proteus仿真】超声波测距系统,基于STM32单片机DHT11温湿度检测系统仿真,基于STM32单片机温湿度光敏检测系统仿真,【STM32单片机-A008】【Proteus仿真】MPX4115压力检测系统仿真,基于STM32单片机DS18B20温度检测系统仿真,【51单片机-B003】【protues仿真】基于51单片机交通灯1仿真https://www.bilibili.com/video/BV1FYubzdEbW/

联系作者

作者B站链接:https://space.bilibili.com/3493294220773802

专注于51单片机、STM32、Proteus、物联网软件开发,PCB设计。