基于51单片机的温度上下限报警设计仿真程序原理图PCB设计报告功能介绍具体功能1.对室温进行检测和控制温度显示范围-55—125度精度0.1度。2.能够设置并保存温度上下限值并可以随时修改。3.LED数码管直读显示实时温度温度上下限值用按键设定。4.温度超出上下限时蜂鸣器报警。演示视频基于51单片机的温度上下限报警设计#include reg51.h //宏定义 #include intrins.h //宏定义 #include DS18B20.h //宏定义 #define uchar unsigned char //无符号字符数据8位 #define uint unsigned int //无符号整数 #define SMGIO P0 //定义数码管io口为P0 sbit SETP1^0; //定义设定上下限键 sbit ADDP1^1; //定义增加键 sbit DECP1^2; //定义减小限键 sbit SMG1P2^0; //定义数码管第一位 sbit SMG2P2^1; //定义数码管第二位 sbit SMG3P2^2; //定义数码管第三位 sbit SMG4P2^3; //定义数码管第四位 sbit BEEPP1^7; //定义蜂鸣器报警 uint tempValue; //变量 存储当前温度值 uint HI_Alarm40; //初始上限 uint LO_Alarm20; //初始下限 uchar SMG_CC[]{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴极数码管0-9编码 uchar SMG_CC_DOT[]{0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; //共阴极数码管0-9编码 带小数点 /********************************************************************/ /* 1ms延时 */ /********************************************************************/ void delayms(uint x) //延时函数 { uchar i; //定义循环变量 while(x--) //开始循环 { for(i150;i0;i--); //循环150次 } } void Display_Temperature() //显示温度 { char smg1,smg2,smg3,smg4; //定义4个数码管变量以下表示将温度值拆分开 smg1tempValue/1000; //第一位 smg2(tempValue-smg1*1000)/100; //第二位 smg3(tempValue%100)/10; //第三位 smg4tempValue%10; //第四位 if(tflag1) //负数显示 { SMGIOSMG_CC[smg4]; //显示小数位 SMG40; //位选 delayms(1); //延时 SMG41; //消隐 SMGIOSMG_CC_DOT[smg3]; //显示个数位 SMG30; //位选 delayms(1); //延时 SMG31; //消隐 if(smg20) { SMGIO0x40; //显示十数位 SMG20; //位选 delayms(1); //延时 SMG21; //消隐 SMGIO0x00; //显示百数位 SMG10; //位选 delayms(1); //延时 SMG11; //消隐 } else { SMGIOSMG_CC[smg2]; //显示十数位 SMG20; //位选 delayms(1); //延时 SMG21; //消隐 SMGIO0x40; //显示十数位 SMG10; //位选 delayms(1); //延时 SMG11; //消隐 } } else //正数显示 { SMGIOSMG_CC[smg4]; //显示小数位 SMG40; //位选 delayms(1); //延时 SMG41; //消隐 SMGIOSMG_CC_DOT[smg3]; //显示个数位 SMG30; //位选 delayms(1); //延时 SMG31; //消隐 if(smg10) //第一位为0 { SMGIO0x00; //不显示 SMG10; //位选 delayms(1); //延时 SMG11; //消隐 if(smg20) //第二位为0 { SMGIO0x00; //不显示 SMG10; //位选 delayms(1); //延时 SMG11; //消隐 } else { SMGIOSMG_CC[smg2]; //显示0 SMG20; //位选 delayms(1); //延时 SMG21; //消隐 } } else { SMGIOSMG_CC[smg1]; //正常显示第一个数码管 SMG10; //位选 delayms(1); //延时 SMG11; //消隐 SMGIOSMG_CC[smg2]; //正常显示第二个数码管 SMG20; //位选 delayms(1); //延时 SMG21; //消隐 } } } void Display_HI_Alarm() //显示上限前缀 { SMGIO0x76; //显示H SMG10; //位选 delayms(1); //延时 SMG11; //消隐 SMGIO0x40; //显示- SMG20; //位选 delayms(1); //延时 SMG21; //消隐 SMGIOSMG_CC[HI_Alarm/10]; //显示报警高值十位 SMG30; //位选 delayms(1); //延时 SMG31; //消隐 SMGIOSMG_CC[HI_Alarm%10]; //显示报警高值个数位 SMG40; //位选 delayms(1); //延时 SMG41; //消隐 } void Display_LO_Alarm() //显示下限前缀 { SMGIO0x38; //显示L SMG10; //位选 delayms(1); //延时 SMG11; //消隐 SMGIO0x40; //显示- SMG20; //位选 delayms(1); //延时 SMG21; //消隐 SMGIOSMG_CC[LO_Alarm/10]; //显示报警高值十位 SMG30; //位选 delayms(1); //延时 SMG31; //消隐 SMGIOSMG_CC[LO_Alarm%10]; //显示报警高值个数位 SMG40; //位选 delayms(1); //延时 SMG41; //消隐 } void SET_KEY() //按键设置 { bit SET_FLAG1; //按下标志位 if(SET0) //设定按键按下 { delayms(40); //延时去除抖动 if(SET1) //再次判断是否按下按键 { while(SET_FLAG1) //有按键按下 { Display_HI_Alarm(); //设定上限温度值 if(ADD0) //增加按键 { delayms(40); //延时去除抖动再次判断是否按下按键 if(ADD1) //如果按下 HI_Alarm; //温度值加一 } if(DEC0) //减小按键 { delayms(40); //延时去除抖动 if(DEC1) //再次判断是否按下按键 HI_Alarm--; //温度值减一 } if(SET0) //以下表示 再次按下设定按键 进入设定下限程序 { delayms(40); //延时去除抖动 if(SET1) //再次判断是否按下按键 { while(1) { Display_LO_Alarm(); //设定下限温度值 if(ADD0) //增加按键 { delayms(40); //延时去除抖动 if(ADD1) //再次判断是否按下按键 LO_Alarm; //温度值加一 } if(DEC0) //减小按键 { delayms(40); //延时去除抖动 if(DEC1) //再次判断是否按下按键 LO_Alarm--; //温度值减一 } if(SET0) //设定按键按下 { delayms(40); if(SET1) //延时去除抖动 { SET_FLAG0; //再次判断是否按下按键 break; //上下限设定完成 退出 } } } } } } } } } void BJ_LED() //报警程序 { if(tempValueHI_Alarm*10||tempValueLO_Alarm*10) //如果温度超过上下限 BEEP0; //蜂鸣器报警 else BEEP1; //否则不报警 }硬件设计使用元器件单片机STC89C52注意单片机是通用的无论51还是52、无论stc还是at都一样引脚功能都一样。程序也是一样的。IC座:DIP40; 万能板:9*15/7*9;数码管:MT03641AR; 排阻:1K*8;温度传感器:DS18B20; 蜂鸣器:5V 有源;三极管:9012; 晶振:11.0592;电容:22pF; 电容:10uF/16V;电阻:1K ; 电阻:4.7K ;按键:6*6*5 ; 自锁开关:8*8 ;接线端子:5.08*2P ;导线若干流程图设计资料01 仿真图本设计使用proteus7.8和proteus8.7两个版本设计向下兼容无需担心具体如图温度监控设定上限设定下限​02 原理图本系统原理图采用Altium Designer19设计具体如图03 程序本设计使用软件keil4和keil5两个版本编程设计无需担心具体如图​04 设计报告九千字设计报告具体如下​05 设计资料资料获取请关注同名公众号全部资料包括仿真源文件 、程序含注释、AD原理图、开题报告、参考论文、流程图、任务书等。具体内容如下全网最全! 资料获取请观看前面演示视频点赞分享一起学习成长。