• 基于51单片机温度监控Proteus仿真设计_报警值可调


    基于51单片机温度监控Proteus仿真设计_报警值可调

    仿真原版本:Proteus7.8

    程序编译器:keil 4/keil 5

    编程语言:C语言

    设计编号:S0012

    功能说明

    1、显示温度0-99,上电默认高温报警35°,低温报警10°

    2、按键说明:

    ① 按一下KEY1查看高温,调整高温报警值指示灯亮,同时也可以按加减调高温的值。

    ② 再按一下KEY1查看低温,调整低温报警值指示灯亮同时也可以按加减调低温的值。

    ③ 程序默认低温报警值要比高温报警低5°再按一下KEY正常显示。

    3、温度调整低于低温报警或者高于高温报警值,蜂鸣器响,指示灯闪烁。

    仿真电路

    三个按键
    KEY1
    按一下查看高温设置值,再按一下查看低温设置值,再按一下返回正常显示
    KEY2
    设置状态下,设置温度+
    KEY3
    设置状态下,设置温度-
    img

    程序

    img

    主函数
    /*****主函数*****/
    void main(void)
    {
    	LED=0;			       	//默认关闭报警
    	BEEP=0;					//默认关闭蜂鸣器
    	LED_SET_HIGHT=0;//默认设置灯暗
    	LED_SET_LOW=0;//默认设置灯暗
    	check_wendu();
     	check_wendu();
     	for(z=0;z<300;z++)
     	{
      		Disp_init();        
      	}
      	while(1)
      	{
    
    		if(display_mode==0){
    			Disp_Temperature();//正常显示
    		}else if(display_mode==1){//设置高
    			Disp_Temperature_Set_Hight();
    		}else if(display_mode==2){//设置低
    			Disp_Temperature_Set_Low();
    
    		}
    		
    		KeyDriver();			  		//键盘驱动扫描
    		KeyScan();
    		if(key_sacn_cnt<20){//延时效果,不占用CPU,隔一段时间更新温度
    			key_sacn_cnt++;
    		}else{
    			check_wendu();
    			key_sacn_cnt=0;
    		}
    		if(display_mode==0){//正常模式才报警,设置模式不报警
    			if(m>=gaowen || m<=diwen){//如果m大于高温值或者小于低温值,开启声光报警
    			 	led_sacn_cnt++;
    				if(led_sacn_cnt>100){
    				  LED=~LED;
    			      BEEP=~BEEP; 
    				  led_sacn_cnt=0;	 
    				}
    
    			}else{
    		   		LED=0;
    				BEEP=0;
    				led_sacn_cnt=1; 
      
    			}	
    		}else{
    			LED=0;
    			BEEP=0;
    		}
    	
      	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    DS18B20温度读取
    /*****读取温度*****/
    unsigned int ReadTemperature(void)
    {
    	unsigned char a=0;
      	unsigned char b=0;
      	unsigned int t=0;
      	float tt=0;
      	Init_DS18B20();
      	WriteOneChar(0xCC);  //跳过读序号列号的操作
      	WriteOneChar(0x44);  //启动温度转换
      	Init_DS18B20();
      	WriteOneChar(0xCC);  //跳过读序号列号的操作
      	WriteOneChar(0xBE);  //读取温度寄存器
      	a=ReadOneChar();     //读低8位
      	b=ReadOneChar();	 //读高8位
      	t=b;				 //高8位转移到t
      	t<<=8;			     //t数据左移8位
      	t=t|a;			     //将t和a按位或,得到一个16位的数
      	tt=t*0.0625;		 //将t乘以0.0625得到实际温度值
    					     //(温度传感器设置12位精度,最小分辨率是0.0625)
      	t= tt*10+0.5;        //放大10倍(将小数点后一位显示出来)输出并四舍五入
      	return(t);		     //返回温度值
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    设计报告

    在这里插入图片描述

    资料清单&&下载链接

    \0. 常见使用问题及解决方法–必读!!!!

    \1. 源程序

    \2. proteus仿真

    \3. 功能说明

    \4. 开题报告

    \5. 设计报告

    \6. 讲解视频

    Altium Designer 安装破解

    filename.bat

    KEIL+proteus 单片机仿真设计教程

    KEIL安装破解

    Proteus元器件查找

    Proteus安装

    Proteus简易使用教程

    单片机学习资料

    目录清单.txt

    相关数据手册

    答辩技巧

    设计报告常用描述

    鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url
    在这里插入图片描述

    资料下载链接

  • 相关阅读:
    python爬虫常用的库
    JWT API 跨域验证实战 仅供参考
    LLVM系列:1.设计思想和LLVM IR简介
    LabVIEW电力设备在线监测系统
    [HNOI2010]弹飞绵羊【LCT】
    搭建源码调试环境—RocketMQ源码分析(一)
    vuex和pinia
    vs中git提交合并分支的步骤记录
    Kubernetes概述及其组件/核心组件
    _Linux(共享内存)
  • 原文地址:https://blog.csdn.net/weixin_52733843/article/details/126654075