




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业设计(论文) 题目题目:温度显示系统的设计与实现温度显示系统的设计与实现 院院 系:系: 控制工程学院 专专 业:业: 自动化 学学 号:号: 姓姓 名:名: 指导教师:指导教师: 2016 年 4 月 I 摘摘 要要 随着大众的生活水平不断的向上提升,以及现代科技的不断发展。人们越来越关 注和自己相关的物理环境因素。 其中, 环境温度是一项和我们的生活密切相关的因素, 例如我们在早上起床的时候都会看看天气预报来了解自己所处的地区的天气状况,以 及实时的温度,从而来决定自己一天的穿着和出行计划。同时,时刻了解我们的环境 温度还在很多生产和农业领域有着巨大的作用。比如农业中的温室大棚,我们就需要 时刻了解大棚的温度。工业生产也是一样,我们需要时刻监测工厂的生产温度。正因 为环境温度和我们息息相关,而且有着重要的作用。所以本次设计就制作了一个温度 显示系统。 全套设计,加全套设计,加 153893706 经过前期的硬设计和软件设计。以及后期的仿真调试。本设计实现了:利用 STC89C51 单片机对环境温度进行实时的采集, 然后通过 LCD1602 液晶显示模块实时 的显示温度,同时通过外置的独立按键进行温度上限和温度下限的实时设定,在采集 了温度之后进行实时的比较, 如果超过设定的温度上限值或者低于设定的温度下限值, 就你用蜂鸣器和 LED 灯进行组合报警提示。 在本次设计中,主要用到了 STC89C51 单片机,DS18B20 集成温度传感器, LCD1602 液晶显示模块,独立按键调节,蜂蜜器和 LED 组合报警模块。进过前期的 大量设计和中期的软件仿真。从整体的系统设计到分块的软件和硬件设计,采用分块 独立设计,后期整合的方式进行。保证了系统设计的高效和可靠性。在大量的测试和 实际的软件仿真测试之后得出结论。 本文所采用的硬件和软件设计方式是正确可靠的。 能够实现我们最初的目的,实时显示温度并在超过温度设定值的时候进行报警。 关键词:关键词:单片机,DS18B20,温度采集,液晶显示 II ABSTRACT As the publics living standards continue to upgrade, and the continuous development of modern science and technology. People are increasingly concerned with their own physical environment factors. The ambient temperature is a and our lives are closely related to the factors, for example, we in the morning will look at the weather forecast to know the weather conditions in the area, and the real- time temperature, so as to decide a day dress and travel plans. At the same time, time to understand our environment temperature is still a lot of production and agriculture has a huge role in the field of. For example, the agriculture of the greenhouse, we need to know the temperature of the greenhouse. Industrial production is the same, we need time to monitor the production temperature of the plant. Because of the environmental temperature and we are closely related, but also has an important role. So the design of the production of a temperature display system. After the previous hard design and software design. Simulation and debugging. This design realized: real- time acquisition of ambient temperature using STC89C51 MCU, and then through the LCD1602 liquid crystal display module to display real- time temperature, at the same time by an external, independent of the key for the real- time set upper and lower temperature limits, the collected temperature in real- time comparison, if exceeds a set temperature limit value or lower than the set temperature lower limit value, you with the buzzer and LED lamp combination alarm. In this design, mainly uses the STC89C51 monolithic integrated circuit, the DS18B20 integrated temperature sensor, the LCD1602 liquid crystal display module, the independent key regulation, honey and LED combination alarm module. A large number of design and medium- term software simulation. From the overall system design to the sub block of the software and hardware design, the use of block independent design, the way of late III integration. Ensure the design of the system is efficient and reliable. After a lot of tests and the actual software simulation test, the conclusion is drawn. The design method of hardware and software used in this paper is correct and reliable. To achieve our initial purpose, real- time display of temperature and in excess of the temperature set value alarm. Key words: MCU, DS18B20, temperature acquisition, liquid crystal display 目 录 摘摘 要要 . I ABSTRACT . II 第第 1 章章 绪绪 论论 . 6 1.1 设计的目的 . 6 1.2 国内外研究现状 . 7 1.3 本次设计的内容和任务 . 7 第第 2 章章 系统总体设计方案系统总体设计方案 . 8 2.1 系统理论分析 . 8 2.2 设计的总体组成 . 9 2.3 系统的硬件模块 . 9 2.4 系统的软件模块 . 10 第第 3 章章 控制器件选择控制器件选择 . 11 3.1 单片机的组成和特点 . 11 运算器 . 11 控制器 . 12 主要寄存器 . 12 3.2 STC89C51 单片机介绍 . 13 3.2.1 STC89C51 单片机特点 . 14 3.2.2 STC89C51 单片机资源介绍 . 15 3.2.3 STC89C51 单片机定时器介绍 . 18 第第 4 章章 数据采集器的选择数据采集器的选择 . 18 4.1 不同传感器的比较 . 19 V 4.2 DS18B20 温度传感器 . 19 4.2.1 DS18B20 传感器简介 . 19 4.2.2 DS18B20 传感器工作方式介绍 . 20 初始化 . 20 写操作 . 21 读操作 . 21 4.2.3 DS18B20 传感器数据转换方式 . 22 第第 5 章章 系统硬件设计系统硬件设计 . 23 5.1 STC89C51 单片机系统电路 . 24 5.1.1 复位电路的设计 . 24 5.1.2 STC89C51 单片机的晶振电路 . 25 5.2 DS18B20 传感器电路 . 26 5.3 系统电路的设计 . 26 5.4 液晶显示电路的设计 . 27 5.4.1 LCD1602 的特点 . 28 5.4.2 LCD1602 引脚介绍 . 28 5.5 蜂鸣器和 LED 报警电路的设计 . 29 第第 6 章章 系统软件设计系统软件设计 . 30 6.1 系统软件设计所使用的编程环境介绍 . 30 6.2 主程序模块设计 . 31 6.3 定时中断函数的设计 . 31 6.4 计算函数设计 . 32 6.5 显示函数程序流程 . 32 6.6 蜂鸣器和 LED 预警流程图 . 33 6.7 数据采集流程图 . 33 6.8 按键清除流程图 . 34 第第 7 章章 仿真设计仿真设计 . 35 7.1 仿真软件介绍 . 35 7.2 本次设计的仿真图设计 . 36 主要参考文献主要参考文献 . 37 附附 录录 一一 设计电路图设计电路图 . 38 VI 附附 录录 二二 仿真电路图仿真电路图 . 38 附附 录录 三三 设计源程序设计源程序 . 39 致致 谢谢 . 错误!未定义书签。 第第 1 章章 绪绪 论论 在人们的生活中,很多环境因素总是在实时的影响着大家。例如实时的天气状况, 实时的环境温度,空气质量等。我们总是希望可以对我们所在的环境进行实时的了解, 这来是因为人有着天生的求知欲。同时,知道我们身边的环境因素对我们做出决定也有 着重要的参考作用,例如今天的天气好,你可能会选择外出郊游,但是今天如果是下雨 天,你可能就会选择在家中休息。温度对我们的重要性是不言而喻的。长期以来,人们 对温度的感知都是来自于经验和自身的感觉。而如今,利用新型的科学技术,我们可以 确切的知道我们的环境温度。本文就实现了一个环境温度采集显示系统,同时还加入了 温度设定和报警功能。 本设计采用了 STC89C51 单片机作为系统的采集和控制中枢部分。利用 DS18B20 作为环境温度传感器,将环境温度转换为数字信号,然后单片机对数据进行读取,计数 出实时的环境温度。然后将数据发送给显示模块 LCD1602 进行温度的实时显示。同时 本次设计还在显示的基础上加入了温度报警功能。通过外置的 3 个独立按键。我们可以 设定一个温度上限报警值和一个温度下限报警值。只要我们的系统采集的数据不在我们 设定的范围内。单片机就会启动蜂鸣器和 LED 灯进行报警。从而通知人们进行必要的 操作,例如开电暖气进行加热或者开空调进行降温等操作。这种方式可以避免人们以往 的盲目或者靠感觉进行温度控制的方式。 1.1 设计的目的 因为环境温度对我们有着十分重要的影响,所以我们需要清楚的知道问所处的环境 的实时温度。在我们需要进行温度的精确控制的时候,如果我们还是靠着以往的那种凭 感觉,靠经验的方式进行。在现代社会看来是一种十分落后的方式方法了。所以本设计 的目的就是开发出一套可以准确的显示我们的环境温度,并且可以进行温度的设定报警 7 整个 系统 软件 设计 硬件 设计 仿真 设计 的系统。比如我们家中有小孩子,在孩子很小的时候,不会表达自身的感受。而大人对 小孩子的加衣服或者吹风都靠经验的话,显然是不科学的一种方式。本系统就将取代人 们靠感觉,凭经验来判断环境温度这一种不科学的方式 1.2 国内外研究现状 经过前期大量的资料查阅和文献阅读,以及使用互联网进行资料收集后得知,目前 国内外的温度采集显示还处在一个刚刚出现的阶段。大家都还是在探索的过程中。所以 出现的方案和使用领域也是五花八门。随着智能手机的出现和大量使用,温度采集和显 示这一个功能在很多智能手机上也开始出现了,借由第三方的 APP 和手机本身的传感 器例如红外传感器,温度传感器等。可以在手机上进行实时的温度采集和显示。而使用 的温度采集方式目前也有很多种,例如使用数字集成的稳定传奇,使用模拟的金属传感 器,利用红外采集空气温度的方式。在不同的领域也有着不同的方案选择,比如有的领 域就需要非接触的测量方式,有的就可以采用接触的测量方式。总的来看,很多温度采 集显示系统还都是停留在温度的采集和简单的显示上,功能显得比较单一。 1.3 本次设计的内容和任务 本次设计的主要内容: 总体方案的设计和确定, 硬件部分的设计, 软件部分的设计, 仿真电路的设计。通过几个方面来完成本次需要达到的设计目的:完成一个基于 51 单 片机的额温度显示和报警系统。系统的设计任务框图如图 1- 1 所示: 图 1- 1 系统设计任务框图 本次设计的主要任务:使用 STC89C51 单片机作为系统的采集和控制中枢部分。利 用 DS18B20 作为环境温度传感器,将环境温度转换为数字信号,然后单片机对数据进 行读取,计数出实时的环境温度。然后将数据发送给显示模块 LCD1602 进行温度的实 8 时显示。通过外置的 3 个独立按键。可以设定一个温度上限报警值和一个温度下限报警 值。 只要我们的系统采集的数据不在我们设定的范围内。单片机就会启动蜂鸣器和 LED 灯进行报警。 第第 2 章章 系统总体设计方案系统总体设计方案 在我们进行功能设计之前,我们需要首先对我们的整个系统进行完整的方案设计, 只有在总体的方案设计完成之后,我们才可以按照我们的总体方案进行具体的功能设 计。这样的方法是高效的也是科学的方法。 2.1 系统理论分析 在我们进行系统的硬件,软件和仿真设计之前,我们需要首先进行整个系统的理论 分析,只有在理论分析可行之后。我们才可以开始具体的设计方案的执行过程。 首先我们需要明确我们设计需要达到的目的是: 使用 STC89C51 单片机作为系统的 采集和控制中枢部分。利用 DS18B20 作为环境温度传感器,将环境温度转换为数字信 号,然后单片机对数据进行读取,计数出实时的环境温度。然后将数据发送给显示模块 LCD1602 进行温度的实时显示。 通过外置的 3 个独立按键。 可以设定一个温度上限报警 值和一个温度下限报警值。只要我们的系统采集的数据不在我们设定的范围内。单片机 就会启动蜂鸣器和 LED 灯进行报警。这其中。DS18B20 作为集成的温度传感器,在读 取上采用的是总线操作模式。 而显示器件和蜂鸣器以及 LED 和独立按键都是简单的 I/O 操作就可以完成。经过上面的理论分析,我将本次设计分为了以下几个方面来实现: 1、单片机系统的使用。 2、DS18B20 的数据读取。 3、LCD1602 液晶显示模块的操作。 4、普通 I/O 口的读取操作。 5、系统电源设计。 6、仿真系统设计。 在以上几个方面存在着先后的顺序,我们应该是先进行了仿真设计,然后进行各个 模块的程序设计,在仿真中进行模块程序的仿真,在通过仿真之后。我们再进行模块的 9 数据获取 数据显示 实时提示 电源电路 单片机 完整 系统 硬件设计工作。 2.2 设计的总体组成 在上面的分析中可以知道。本次设计所采用的器件具体有哪些。已经各个模块需要 实现的具体功能是什么。所以我们可以很轻松的得到本次设计的系统总体组成框图应该 是如下图 2- 1 所示: 图 2- 1 系统的总体组成框图 在上面的系统总体组成框图中。完整的系统作为核心任务存在,各个子系统或者说 模块为核心任务而存在。在服务整个系统功能的时候,各个子系统还需要相互的配合, 完成各自任务的同时还需要照顾到整个系统的设计过程。 2.3 系统的硬件模块 设计中使用了大量的电子器件,例如单片机,温度传感器,蜂鸣器,LED,独立按 10 键和液晶显示器等等。不同的元件在系统中都有着不同的作用,各个元件分担着自己所 承担的独立模块任务,每个器件的选择和有机组合而形成本设计功能执行的物理元素, 只有我们合理的安排和设计好每个元器件,我们才能获得系统有效和正确工作的前提。 硬件的正确工作才能保证我们后期的软件调试可以正常有序的进行。进过大量的分析和 设计,本次系统的硬件组成将如图 2-2 所示进行设计: 图 2- 2 系统的硬件组成框图 在设计好每个模块之后,我们就可以得到需要的硬件系统了。所以硬件的组成是本 次设计中很看重的一个部分。 2.4 系统的软件模块 通过和硬件相结合考虑,我们能知道本次设计中的软件应该有哪些部分:获得温度 传感器数据的采集函数,软件启动的初始化函数,按键清除函数,数据计算函数,定时 中断函数,数据显示函数,报警函数。很明显,本系统的软件组成框图应该如下所示: 图 2- 3 系统的软件组成框图 每一个完整的电子设计,都是由多个方面所组成的,每个方面都是成功的关键,没 系统初始化 定时采集函数 外部按键 计算显示 提示和预警 单片机 电源电路 温度传感器 液晶显示 蜂鸣器 和 LED 11 有主次之分,只要有一个方面不正常,那整个系统的功能就不是正确的。所以在设计的 时候,要特别注意每个模块的正确性。无论是开始的软件设计还是后面的硬件设计。 第第 3 章章 控制器件选择控制器件选择 要完成本次设计的任务,我们有很多可以选择的器件。例如单片机,DSP,FPGA, PLC 等等。但是我们在选择器件的时候要考虑到器件的成本,开发难度,可靠性,封装 类型等等方面。进过大量的资料查询和实际测试,本设计最后采用了单片机作为核心的 控制器件。单片机也可以称单片微控制器,它和片上系统不一样,单片机不但可以进行运 算处理,还可以做逻辑控制,其包括了输入输出端,片上CPU有的还有专用的乘法器,独有 的存储单元和 DSP 运算单元。它的体积小、质量轻、价格便宜、为学习、应用和开发提 供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。目前单片 机的发展已经十分成熟,单片的处理位数从 4 位到 8 位,16 和 32 位都有。单片的运行 速度也冲以前的几 M 到现在的高端单片机可以运行到上百 M。 3.1 单片机的组成和特点 目前主流单片机主要由以下几个部分组成: 运算器 运算器由运算部件算术逻辑单元(Arithmetic /蜂鸣器控制引脚 sbit LED = P17; /LED 控制引脚 sbit key1=P36; /按键 sbit key2=P35; sbit keyc=P34; void InitTimer0(void);/初始化定时器 void UsartConfiguration();/串口初始化 void SendOneByte(unsigned char c); void delayms(uint time); void getkey(); void main() LCD1602_Init(); /液晶初始化 Start18B20(); /启动 DS18B20 InitTimer0(); /初始化定时器 UsartConfiguration();/初始化串口接收 波特率 4800 SendOneByte(127); SendOneByte(200); while(1) getkey(); 40 uchar time50ms=0; int temp; /读取到的当前温度值 char receiveData;/保存接收到的数据 bit highflag=0; /串口标志位 char high=10;/- 127 到 +128 char low=3;/- 127 到 +128 bit highORlow=0; void Timer0Interrupt(void) interrupt 1 /50ms TH0 = 0 x9e; /3c TL0 = 0 x58; /b0 time50ms+; if(time50ms19)/20*50=1000ms=1s time50ms=0; if(Get18B20Temp(/把数据转换为放大 100 倍的正常人可以读懂的数 SendOneByte(temp/100);/发送数据 LcdDisplayTemp(temp,high,low);/在 1602 第一行显示 并且启动下一次转 换 if(temphigh*100|templow*100)/超过温度限报警 LED=0; BUZZ=BUZZ; /不断翻转蜂鸣器使能端 从而形成频率 41 else LED=1; BUZZ=0; void Usart() interrupt 4 /串口接收中断 if(RI) receiveData=SBUF;/串口接收到的数据 if(128=receiveData)/接下来是上限标志 highflag=1; else /传送的数据 if(highflag) high=receiveData; RI = 0;/清除接收中断标志位 else TI = 0; void UsartConfiguration() 42 SCON=0X50; /设置为工作方式 1 TMOD |=0X20; /设置计数器工作方式 2 PCON=0X80; /波特率加倍 TH1=0XF3; /计数器初始值设置,注意波特率是 4800 的 12M 只能这样 了 TL1 = TH1; ES=1; /打开接收中断 EA=1; /打开总中断 TR1=1; /打开计数器 void SendOneByte(char c) SBUF = c; while(!TI); TI = 0; void InitTimer0(void) /定时器 0 初始化为 50ms TMOD |= 0 x01; TH0 = 0 x3C; TL0 = 0 xB0; EA = 1; ET0 = 1; TR0 = 1; void getkey() if(key1=0) delayms(3); 43 if(key1=0) if(highORlow) high- - ; else low- - ; while(!key1); else if(key2=0) delayms(3); if(key2=0) if(highORlow) high+; else low+; while(!key2); else if(keyc=0) delayms(3); if(keyc=0) highORlow=highORlow; while(!keyc); 44 void delayms(uint time) uchar i=100; while(time- - ) while(i- - ); /DS18B20/ #includeDS18B02.h #include / nop sbit IO_18B20 = P37; /DS18B20 通信引脚 /* 软件延时函数,延时时间(t*10)us */ void DelayX10us(unsigned char t) do _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); while (- - t); /* 复位总线,获取存在脉冲,以启动一次读写操作 */ bit Get18B20Ack() 45 bit ack; EA = 0; /禁止总中断 IO_18B20 = 0; /产生 500us 复位脉冲 DelayX10us(50); IO_18B20 = 1; DelayX10us(6); /延时 60us ack = IO_18B20; /读取存在脉冲 while(!IO_18B20); /等待存在脉冲结束 EA = 1; /重新使能总中断 return ack; /* 向 DS18B20 写入一个字节,dat- 待写入字节 */ void Write18B20(unsigned char dat) unsigned char mask; EA = 0; /禁止总中断 for (mask=0 x01; mask!=0; mask=1) /低位在先,依次移出 8 个 bit IO_18B20 = 0; /产生 2us 低电平脉冲 _nop_(); _nop_(); if (mask else IO_18B20 = 1; DelayX10us(6); /延时 60us IO_18B20 = 1; /拉高通信引脚 46 EA = 1; /重新使能总中断 /* 从 DS18B20 读取一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 2099.31-2025家用和类似用途插头插座第31部分:装有USB电源的插座的特殊要求
- 材料力学与智能材料性能应用拓展研究开发创新应用重点基础知识点
- 消防中控室火灾应急预案(3篇)
- 地铁火灾应急预案研究(3篇)
- 追求卓越与平凡的2024年高考作文试题及答案
- 2025年VB考试严选试题及答案全貌
- 行政管理考试典型案例分析:试题及答案
- 木工厂火灾应急预案(3篇)
- 2025年社会变迁与风险管理策略试题及答案
- 计算机科学发展现状试题及答案
- 汽车定点洗车协议书
- 抖音直播电商供应链服务及品牌授权与管理合同
- 2025央国企CIO选型指南-ERP产品
- 【MOOC答案】《光纤光学》(华中科技大学)章节作业期末慕课答案
- 2025内蒙古工程咨询监理有限责任公司招聘监理项目储备库人员400人笔试参考题库附带答案详解
- 劳动合同书范本介绍5篇
- 江苏省南京市、盐城市2025届高三年级5月第二次模拟考试化学试题及答案(南京盐城二模)
- 上海市金山区2025届高三下学期二模数学试卷(含答案)
- 【MOOC】宇宙简史-南京大学 中国大学慕课MOOC答案
- 学院“课程思政”建设管理办法(新)
- 室外总平施工方案17345
评论
0/150
提交评论