首页 > 其他分享 >基于STC89C52RC的温湿度显示与按键可调的时钟显示

基于STC89C52RC的温湿度显示与按键可调的时钟显示

时间:2024-01-04 11:02:58浏览次数:32  
标签:temperature 温湿度 可调 humidity STC89C52RC 时钟 子程序 DHT11


大学时候的课程设计项目,本人只负责软件设计。

课题摘要

摘 要

温湿度参数的检测已经成为人们日常生产生活中的一个重要的参数指标。温度和湿度是两个最基本的环境参数,人们生活与温湿度息息相关。在工农业生产、环保、科研、化工业、制药业等地方,都经常需要对环境温度和湿度进行测量。随着社会的发展和人民生活水平不断提高,温湿度作为两个基本的环境参数也逐渐深入到人们生活水平中。因此,对于环境温湿度检测的研究有着非常重要的意义。
本论文讲述了一种以单片机STC89C52为主控器,DHT11为温湿度传感器,通过0.96OLED来显示温湿度。硬件电路包括:单片机最小系统、DHT11为温湿度检测模块、0.96OLED液晶显示模块。软件系统包括:温湿度传感器数据采集子程序、数据校验子程序、液晶显示屏显示子程序、系统主程序。
本设计实现的功能有能够检测当前环境下的温度和湿度参数值,将传感器检测到的温湿度数值显示到液晶显示屏上面。
关键词:STC89C52;DHT11;0.96OLED;温湿度检测;


Abstract

The detection of temperature and humidity parameters has become an important parameter indicator in people’s daily production and life. Temperature and humidity are the two most basic environmental parameters, and people’s lives are closely related to temperature and humidity. In industrial and agricultural production, environmental protection, scientific research, chemical industry, pharmaceutical industry, etc., it is often necessary to measure the ambient temperature and humidity. With the development of society and the continuous improvement of people’s living standards, temperature and humidity as two basic environmental parameters have gradually penetrated into people’s living standards. Therefore, the research on environmental temperature and humidity detection is very important.
This paper describes a single-chip STC89C52 as the main controller, DHT11 is the temperature and humidity sensor, through 0.96OLED to display temperature and humidity. The hardware circuit includes: the minimum system of the single chip microcomputer, the DHT11 is the temperature and humidity detecting module, and the 0.96 OLED liquid crystal display module. The software system includes: temperature and humidity sensor data acquisition subroutine, data verification subroutine, liquid crystal display subroutine, system main program.
The function realized by this design is able to detect the temperature and humidity parameter values in the current environment, and display the temperature and humidity values detected by the sensor on the liquid crystal display.
Key words:STC89C52;DHT11;0.96 OLED;temperature and humidity detection;


1 概况

1.1 课题应用背景

随着社会的发展,温湿度已经与人们生产生活越来越密不可分。在人们的日常生产生活中,对温湿度的检测需求越来越高。传统的温度检测方法是通过水银温度计,该温度计具有度数不方便,测量精度不高,操作繁琐等缺点。目前人们对于湿度数值的检测基本上还是采用比较传统的干湿球显示法,但是此方法的测量过程相对复杂而且对于湿度数值的测量结果精确度并不高。并且传统的测量方法都需要人工读取温湿度结果,这在一定程度上也一样影响测量精度。 
在此次设计中采用的温湿度信号检测的DHT11传感器,主控制模块则是采用的SCT89C52单片机。以此为基础完成本次设计。

1.2 课题的主要任务

设计完成一个以STC89C52单片机为核心控制器的数字式温湿度检测以及温湿度信息实时发送的系统,其中该设计需要实现的基本功能为:
(1) 准确时间显示功能;
(2) 测量温度的精度为±1℃,测量湿度的精度为±1%;
(3) 该系统可以将实时采集到的温湿度信息显示在液晶显示屏上面方便查看。

2 实施方案

2.1 方案框图及程序流程图

基于STC89C52RC的温湿度显示与按键可调的时钟显示_ds1302

方案框图

基于STC89C52RC的温湿度显示与按键可调的时钟显示_51单片机_02

主程序流程图

2.2 确认方案的理由。

主要功能:用80C52单片机,作为主控芯片,接收从时钟芯片发出的时间信号和温湿度传感器发出的温湿度信号,80c52芯片进行数据转换输出显示到OLED屏上。

3 设计

3.1 硬件设计

3.1.1 硬件设计

基于STC89C52RC的温湿度显示与按键可调的时钟显示_时钟_03

原理图

基于STC89C52RC的温湿度显示与按键可调的时钟显示_51单片机_04

PCB板图(顶面)

基于STC89C52RC的温湿度显示与按键可调的时钟显示_按键_05

PCB板图(底面)

89C52单片机作为核心,它拥有CMOS的高速和高密度技术及CMOS的低功耗特征,它基于标准的MCS-51单片机体系结构和指令系统,属于89C51增强型单片机版本,集成了时钟输出和向上或向下计数器等更多的功能。89C52还内置8位中央处理单元、512字节内部数据存储器RAM、8k片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。
DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器 。 它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。(其精度湿度±5%RH, 温度±2℃,量程湿度20-90%RH, 温度0~50℃)。

3.1.2 PCB板制作

基于STC89C52RC的温湿度显示与按键可调的时钟显示_按键_06

PCB板制作流程

基于STC89C52RC的温湿度显示与按键可调的时钟显示_按键_07

热转印
用剪板刀把覆铜板裁剪到电路图合适大小,并把表面用砂纸打磨明亮清洗干净。把打印好的转印纸有字的一面平铺到覆铜板有铜的一面。用透明胶固定一个边。
转印时,先把过塑机开机加热到160度到200度之间(本实验过塑机温度为199度),用手压住PCB板,轻轻送入热转印机,不要使用太大的劲,利用过塑机的马达转动使覆铜板慢慢的转过去并均匀的加热。要让覆铜板缓慢的来回过上几次,使电路充分转印到板上。

基于STC89C52RC的温湿度显示与按键可调的时钟显示_时钟_08

腐蚀
本次实验采用盐酸和双氧水的配比混合液来腐蚀。成品的盐酸浓度一般为22-28%,双氧水的浓度为30%,然后再加水稀释,达到一个合理的配比:盐酸:双氧水:水=1:1:3。若浓度太高,容易腐蚀掉全部的铜,不能保留我们的线路;溶度太低 ,效果不佳且腐蚀时间长。(配置溶液时,注意配置顺序,先放入腐蚀槽内三分水量,再加入一份盐酸,最后添加一份双氧水)

基于STC89C52RC的温湿度显示与按键可调的时钟显示_按键_09

由于腐蚀的过程存在其他板子的干扰,导致多条线路的断裂。故选择了嘉立创打板。

基于STC89C52RC的温湿度显示与按键可调的时钟显示_时钟_10

PCB板

3.1.3 调试

通过使用万用表来确保焊接过程中有没有存在虚焊。在调试过程中,发现晶振的大小和电阻使用错误,导致时钟不能够显示。最后通过查找时钟的原理图,发现晶振数值太大,以及电阻的数值太大。

3.2 软件设计

3.2.1 软件设计原理说明。

主要包括主程序、按键扫描子程序、DHT11模块数据读取子程序、DS1302芯片数据读取与修改子程序等。
主程序 主程序的主要功能是负责按键的实时扫描、温度值与湿度值的实时读取与显示、时钟的实时读取与显示。流程图如下:

基于STC89C52RC的温湿度显示与按键可调的时钟显示_51单片机_11

按键扫描子程序 按键扫描子程序的主要功能是通过状态机的框架来对按键进行检测扫描,并对用户按下所对应的按键进行标记。流程图如下:

基于STC89C52RC的温湿度显示与按键可调的时钟显示_51单片机_12

DHT11模块数据读取子程序 DHT11模块数据读取子程序主要功能是通过发送模块特定的时序来获取温度数据、湿度数据与校验数据,使用校验数据来检验温度数据与湿度数据的正确性。流程图如下:

基于STC89C52RC的温湿度显示与按键可调的时钟显示_时钟_13

DS1302芯片数据读取与修改子程序 DS1302芯片数据读取与修改子程序主要功能是通过发送芯片相应的读命令来读取时钟数据与写命令来修改时钟数据,此处时钟数据的修改是通过操作独立按键进行。流程图如下:

基于STC89C52RC的温湿度显示与按键可调的时钟显示_时钟_14

3.2.2 软件调试

软件调试一般是编写一个显示程序来进行硬件的正确性检验,本程序主要使用点灯法与OLED显示程序来进行调试。软件调试首先实现OLED模块的正常显示,因OLED模块程序有厂家提供的固件库,故无需调试;然后通过OLED显示和点灯来分别进行主程序、按键扫描子程序、DHT11模块数据读取子程序、DS1302芯片数据读取与修改子程序等编程与调试。
由于DHT11与微控制器采用串行数据传送,对DHT11进行读/写编程时必须严格地保证写时序;否则将无法读取测量结果。本程序采用C语言编写并用Keil C51编译器编程调试。
软件调试从能显示温湿度值与时间值,并且在温湿度值变化时显示的温湿度也能变化,到能用按键对DS1302的时钟进行修改才基本完成。

4 测试报告

4.1 主要功能

(1)准确时间显示功能;
(2)测量温度的精度为±1℃,测量湿度的精度为±1%;
(3)该系统可以将实时采集到的温湿度信息显示在液晶显示屏上面方便查看。

4.2 技术指标

5 总结

同学一:本次实验的课题是由我来选择的,主要是因为我在无线电杂志上看到一个单片机时钟的项目,使用的stm32芯片作为主控程序的时钟电路。
我们初期主要是使用adruino micro,作为主要电路,然后接上0.9寸OLED和dtht11温湿度传感器,直接输出时间和温湿度,后来在老师的劝说下,采用了更为简单的51单片机去设计使用,我在本次实践中,主要负责统筹规划,参与的PCB设计,电路板焊接以及3d外壳的制作打印。
在这次项目实践中,我感受到,电路设计要规范设计,地线,最好要分开走,电路图要进行反复检查,以防止PCB制作完成后,发现有错,对刚做好的产品要适当进行外壳,包装将会更变得更好看。

同学二:在本次实验中,我主要是负责前期资料的查找、制作PCB板和焊接,以及论文的撰写和PPT的制作。在资料查找方面,我去查找了模块的数据手册。在制作PCB板,我没有去清洗覆铜板的表面,导致第一次的制板失败。在第1次的腐蚀中,由于溶液的浓度太低,导致我们腐蚀了很久都没能完全腐蚀好,其中还有多块板一起腐蚀,导致腐蚀效果不佳,多条线路出现了断裂,只得重新打板。在焊接的过程中,要特别注意正负极和电阻的大小(本次电路我们使用了多种不同阻值的电阻),更要防止电路的虚焊,否则该板子无法正常的工作。

同学三:作为本次实验的原理图设计者,我在这次的实验中查阅了许多潘滨滨同学收集的资料,一开始使用AUDUINO MICRO中的芯片ATmega32U4作为核心,发现这个芯片里面已经集成了我们的所需还有这个芯片比较小在学校无法进行打板。最后发现89C52芯片更符合我们的要求。由于我电路设计的经验不足,在设计的过程中存在许多问题,在老师的指导、组员的帮助和CSDN论坛的大佬资料下成功完成设计。

同学四:这门设计课使我进一步巩固了书本上的知识,做到了学以致用,同时也深刻了解到理论与实践的异同,而实践是检验真理的唯一标准。通过编译软件Keil,使我们进一步了解微控制器的设计与电路搭建过程,其中最为挑战性的是软件设计部分,即编程,我们从书本及网站中查阅大量资料,经过自己扎实的基础,有很多功能都能实现,遇到有不懂的地方最好还是查阅芯片手册,特别是查看时序是最重要,机器的通讯方式都是建立在时序上,即高低电平。最后一步的系统调试发现如何调试都存在问题,后来我查看电路图,发现时钟模块设计错了,这说明程序的实现是建立在完整的硬件电路上。总结经验的时候我得出这样的结论,学习有目的的去学习,若学了不用等于没学;其次,要学以致用,理论联系实际,这才会取得事半功倍的效果,实践才决定知识理论的深度。

同学五:在本次实验中,我主要是负责采购材料,还有其它的一些杂务,可能是我的个人能力不太足,其它的事情我都会学习下组员的,看一下他们的操作,有时候有什么忙也会帮上他。在本次实验中,我更加清楚地了解到一块电路板的产生和制作,每个流程的操作跟每个细节的重要性,制作电路板需要打印电路图,热转印,腐蚀,打孔等等。在此次实验课之后,会对我们从事电子类的工作更受益匪浅,对每一个流程都更熟悉和基本的了解,也加强了自己的动手能力跟应变能力,我们在已有的的理论基础上去展示我们的实践操作能力,我觉得这是一个提升动手能力的机会


标签:temperature,温湿度,可调,humidity,STC89C52RC,时钟,子程序,DHT11
From: https://blog.51cto.com/u_13726704/9097033

相关文章

  • PC9095可调电流限制过压过流保护IC内置功率FET开关
    特点(PC9095)•输入电压范围:•PC9095A、PC9095KA:2.5伏~13.5伏•PC9095B,PC9095KB:2.5伏~10伏•PC9095C,PC9095KC:2.5伏~5.5伏•28V绝对最大额定电压VOUT•带外部电阻器的可调限流器•集成功率FET开关,53mΩRds(开)@5V/1A•内置软启动,防止浪涌电流•保护•超温保护(OTP)•过电压保护(OVP):▪......
  • STM32 IIC温湿度传感器(STH45)实验
    SHT45简介.精度ΔRH=±1.0%RH,ΔT=±0.1°C•VDD=1.08V…3.6V•平均电流:0.4μA,空闲电流:80nA•I2CFM、CRC校验和、乘法。I2C地址。•专利保护选项[1]、PTFE膜和可拆卸保护盖•工作范围:0…100%相对湿度,−40…125摄氏度•在冷凝环境中功能齐全•......
  • kubernetes 设置 Kubernetes master 可调度 pod
    kubernetes设置节点可调度kubectltaintnodenode01node-role.kubernetes.io/master-kubernetes设置节点不可调度kubectltaintnodenode01node-role.kubernetes.io/master="":NoSchedule......
  • 可调用对象包装器和绑定器
    文章参考:爱编程的大丙(subingwen.cn)1.可调用对象一组执行任务的语句都可以视作一个函数、一个可调用对象。C++中提供了可调用对象的概念,其应用相当广泛,例如在处理一些回调函数、触发函数时就会用到。可调用对象有如下几种类型:函数指针:intadd(inta,intb){ret......
  • FPGA 实现SPI 主机双工通信 CS前后肩可调 操作时钟频率可调 ,SPI模式可调,传输位宽可
    1//testbench2`timescale1ns/1ns3modulelcd_spi_m_tb();4regrst_n_i;5regspi_clkx_i;6reg[31:0]spi_data_i;7regspi_start;8regspi_miso_r1,spi_miso_r2;9wirespi_miso_i;10wire[0:0]spi_done;11wir......
  • PLC通过lora网关采集温室大棚温湿度数据
    概述:运用lora网关远程控制大棚内风机,日光灯,温湿度传感器等设备。可以实现远程获取现场环境的空气温湿度、土壤水分温度、二氧化碳浓度、光照强度可以自动控制温室湿帘风机、喷淋滴灌、加温补光等设备,并向远程计算机端推送实时数据,实现现场环境信息化,智能化远程管理。减少人工成......
  • Modbus通用串口转PROFINET IO网关TS-180 在锅炉厂智能温湿度监控系统中的应用
    背景:现代科学技术和工业的迅速发展,不断促进着自动化控制技术及设备通信技术的创新和发展。当前,PLC、DCS、智能仪表等已广泛应用到现场生产控制系统中,本应用案例是在锅炉行业的温湿度监控系统中,西门子S7-300PLC及CP343-1模块与智能温度仪表的通讯,上海泗博自动化技术有限公司......
  • ESP32检测家中温湿度上云,随时随地多端查看温湿度​
    ESP32检测家中温湿度上云,随时随地多端查看温湿度背景介绍上次说到用ArduinoUno板子结合DHT11温湿度传感器,在Serial里实时返回温湿度的方法,总觉得还差点意思,一是只能配合电脑查看,不够节能,也不环保,不够爱护地球母亲,毕竟诸如Arduino之类的板子的电耗最高也就几十个毫安,0.1瓦都不到,电......
  • Arduino UNO使用DHT11温湿度传感器通过串口向PC发送温湿度信息​
    ArduinoUNO使用DHT11温湿度传感器通过串口向PC发送温湿度信息硬件介绍笔者使用的开发板为ArduinoUNO国产兼容板,淘宝上大约卖20rmb左右。如下图DHT11传感器为四脚封装样式,从正面看引脚从左往右依次为1、2、3、4引脚,其中1引脚为VCC3~5V,2引脚为通信引脚要与单片机引脚相连,3引脚是个......
  • 安科瑞环网柜用温湿度控制器的选型以及功能介绍——安科瑞李笑曼
    功能:WHD系列温湿度控制器运用传感器检测柜内的温度与湿度值,并通过控制外接的风扇与加热器对温度与湿度值进行调节,可有效防止因低温、高温造成的设备故障以及受潮或结露引起的爬电、闪络事故的发生。应用范围:中高压开关柜、端子箱、环网柜、箱变......