【普中开发板】基于51单片机的温度报警器LCD1602_可调上下限( proteus仿真+程序+设计报告+讲解视频)

本文主要是介绍【普中开发板】基于51单片机的温度报警器LCD1602_可调上下限( proteus仿真+程序+设计报告+讲解视频),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于51单片机的温度报警器LCD1602_可调上下限

  • 1.主要功能:
    • 资料下载链接:
  • 普中开发板实物演示图:
  • 2.仿真
  • 3. 程序代码
  • 4. 设计报告
  • 5. 设计资料内容清单

【普中】基于51单片机的温度报警器LCD1602_可调上下限

( proteus仿真+程序+设计报告+讲解视频)

仿真图proteus8.16(有低版本)

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:P11

1.主要功能:

基于51单片机AT89C51/52(与AT89S51/52、AT89C51/52、STC89C51/52等51内核单片机通用)

基于51单片机的温度报警系统

1、实时检测DS18B20温度测量及显示,超出温度范围蜂鸣器报警,温度报警值可通过按键设定功能;

2、温度测量范围-55到128摄氏度;

3、对上下限报警值进行设定,通过按键设置,设置范围是0-128;

4、温度高于上限或低于下限LCD1602显示屏有相应提示,蜂鸣器响;

5、普中开发板上可以实现效果,仿真和开发板都可以。

(目前仅完全适配普中开发板A234,其他普中开发板型号可能需要做代码修改或接线)

需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是一样的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序是兼容的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

资料下载链接:

P系列单片机设计下载链接(复制到浏览器打开)

https://docs.qq.com/doc/DS2pPenNRaHB6SlR1

以下为本设计资料展示图:

普中开发板实物演示图:

仿真讲解+实物演示+代码讲解
在这里插入图片描述

img

2.仿真

开始仿真

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。

img

img

共4个按键:上限阈值加、上限阈值减、下限阈值加、下限阈值减。按下对应按键阈值加减并更新阈值在LCD1602液晶屏上。温度高于高温报警值,蜂鸣器响,LCD1602显示High。

img

温度低于低温报警值,蜂鸣器响,LCD1602显示LOW。

img

3. 程序代码

使用keil4或者keil5编译,代码有注释,可以结合报告理解代码含义。

img

完整代码见文章下载链接压缩包。有偿
#include "reg51.h"
#include"Ds18b20.h"
#include "lcd1602.h"
#define uchar unsigned char	//重定义
#define uint unsigned int
sbit k1=P3^0;//按钮
sbit k2=P3^1;
sbit k3=P3^2;
sbit k4=P3^3;
sbit beep=P2^5;//蜂鸣器uchar time=0,num1=0;//定时
int wendu=0;//温度
uchar Ds_0_flag=0;//0度以上标志位
float tp; uint down=30,up=80;//阀值
uchar disp1[]="wendu:000 C";
uchar disp2[]="L:000 C  H:000 C";
uchar flag=0,beep_flag=0;void delay(uint i)//延时
{while(i--){delay_uint(50000);}
}
void main()
{disp1[9]=0xdf;disp2[5]=0xdf;disp2[14]=0xdf;init_1602();//初始化液晶TMOD|=0X11;//选择为定时器0模式,工作方式1,仅用TR0打开启动。TH1=(65536-50000)/256;	//给定时器赋初值,定时50msTL1=(65536-50000)%256;	TH0=(65536-5000)/256;	//给定时器赋初值,定时5msTL0=(65536-5000)%256;	ET1=1;//打开定时器1中断允许ET0=1;//打开定时器0中断允许EA=1;//打开总中断TR1=1;//打开定时器1TR0=1;//打开定时器0delay(4);beep_flag = 0;while(1){//按键检测if(!k1){if(down<up-5) //下限阈值要比上限低5℃down++;	//下限阈值+1while(!k1);}if(!k2){if(down>0)down--;	 	//下限阈值-1while(!k2);}if(!k3){if(up<200)up++;  //上限阈值+1while(!k3);}if(!k4){if(up>down)up--;	 //上限阈值-1while(!k4);}}
}void Timer0() interrupt 1			//定时器0的中断函数{TH0=(65536-5000)/256;			//重装初值5ms	TL0=(65536-5000)%256;num1++;if(num1==1&&beep_flag)					//中断1次为5ms{num1=0;beep=~beep;				//蜂鸣器报警}
}
void Timer1() interrupt 3//定时器中断
{TH1=(65536-50000)/256;	//给定时器赋初值,定时50msTL1=(65536-50000)%256;	if(time<10)time++;else{time=0;wendu=Ds18b20ReadTemp();//测量温度if(wendu<0){Ds_0_flag=0;wendu=wendu-1;wendu=~wendu;tp=wendu;wendu=tp*0.0625+0.5;	disp1[6]='-';//计算温度disp1[7]=wendu%100/10+0x30;disp1[8]=wendu%10+0x30;}else{Ds_0_flag=1;tp=wendu;wendu=tp*0.0625+0.5;	//温度在寄存器中12位,分辨率:0.0625//加0.5是四舍五入disp1[6]=wendu/100+0x30;//计算温度disp1[7]=wendu%100/10+0x30;disp1[8]=wendu%10+0x30;}disp2[2]=down/100+0x30;//计算低阀值disp2[3]=down%100/10+0x30;disp2[4]=down%10+0x30;disp2[11]=up/100+0x30;//计算高阀值disp2[12]=up%100/10+0x30;disp2[13]=up%10+0x30;write_string(1,0,disp1);//显示write_string(2,0,disp2);}if(wendu<down||Ds_0_flag==0){write_string(1,12,"Low ");beep_flag = 1;//低温报警}else if(wendu>up){write_string(1,12,"High");beep_flag = 1;//高温报警}else if((wendu>down)&&(wendu<up)){write_string(1,12,"    ");beep_flag=0;//取消温报警}}

4. 设计报告

7080字设计报告,内容包括目录,硬件设计、软件设计、软硬件框图、调试、结论等

img

本次课程设计是基于51单片机的温度监控报警系统Proteus仿真设计。在设计中,我们采用了STC89C51/52单片机作为核心控制器,通过温度传感器对环境温度进行实时采集。采集到的温度数据经过单片机处理后,通过数码管显示模块进行实时显示。同时,我们还设置了按键输入模块,可以通过按键进行温度阈值的设定。一旦环境温度超过设定的阈值,系统就会通过蜂鸣器报警模块发出报警声,以提醒用户注意。

img

51单片机控制LCD1602显示。读取按键控制电平和DS18B20的数据,处理数据并做显示处理和按键操作等。

5. 设计资料内容清单

资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。

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

1、仿真图

2、程序源码注释

3、功能要求

4、开题报告

5、设计报告

6、软硬件流程框图

7、烧录工具

8、讲解视频

Altium Designer 安装破解

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

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

普中-2&普中-3&普中-4开发板原理图.pdf

相关数据手册

答辩技巧

设计报告常用描述

鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url

img

这篇关于【普中开发板】基于51单片机的温度报警器LCD1602_可调上下限( proteus仿真+程序+设计报告+讲解视频)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/582523

相关文章

基于Python和MoviePy实现照片管理和视频合成工具

《基于Python和MoviePy实现照片管理和视频合成工具》在这篇博客中,我们将详细剖析一个基于Python的图形界面应用程序,该程序使用wxPython构建用户界面,并结合MoviePy、Pill... 目录引言项目概述代码结构分析1. 导入和依赖2. 主类:PhotoManager初始化方法:__in

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

C++快速排序超详细讲解

《C++快速排序超详细讲解》快速排序是一种高效的排序算法,通过分治法将数组划分为两部分,递归排序,直到整个数组有序,通过代码解析和示例,详细解释了快速排序的工作原理和实现过程,需要的朋友可以参考下... 目录一、快速排序原理二、快速排序标准代码三、代码解析四、使用while循环的快速排序1.代码代码1.由快

QT移植到RK3568开发板的方法步骤

《QT移植到RK3568开发板的方法步骤》本文主要介绍了QT移植到RK3568开发板的方法步骤,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录前言一、获取SDK1. 安装依赖2. 获取SDK资源包3. SDK工程目录介绍4. 获取补丁包二

如何用java对接微信小程序下单后的发货接口

《如何用java对接微信小程序下单后的发货接口》:本文主要介绍在微信小程序后台实现发货通知的步骤,包括获取Access_token、使用RestTemplate调用发货接口、处理AccessTok... 目录配置参数 调用代码获取Access_token调用发货的接口类注意点总结配置参数 首先需要获取Ac

基于Python开发PDF转Doc格式小程序

《基于Python开发PDF转Doc格式小程序》这篇文章主要为大家详细介绍了如何基于Python开发PDF转Doc格式小程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用python实现PDF转Doc格式小程序以下是一个使用Python实现PDF转DOC格式的GUI程序,采用T