欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于单片机的智能温度检测器设计大学学位论文.docx

    • 资源ID:9061975       资源大小:848.50KB        全文页数:48页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于单片机的智能温度检测器设计大学学位论文.docx

    1、基于单片机的智能温度检测器设计大学学位论文基于单片机的智能温度检测器的设计摘 要本设计研究基于单片机的智能温度检测器,旨在通过单片机及温度传感器实现自动检测报警功能。设计中首先对其背景及意义进行叙述切入主题,然后对整个系统的硬件设计和软件设计以及软件调试设计重点分析,其中在硬件设计中还分别对其所选器件做了一个简单的叙述介绍,比如按键,蜂鸣器,LCD1602液晶,DS18B20温度传感器,AT89C51单片机等,最后再对这一设计进行一个总结。设计中使用4个按键组成独立按键进行对温度上下限的设定,采用无源蜂鸣器作为报警装置。整个系统使用LCD1602液晶作为显示装置,实时显示检测温度和设定的上下限

    2、值。本系统硬件结构简单,操作灵活,以高级语言C语言开发,KEIL4程序开发软件为开发工具设计而成。关键词: AT89C51单片机;温度检测器;DS18B20;KEIL4开发软件;LCD1602液晶The design of intelligent temperature detector based on single-chip microcomputerABSTRACTThe design of intelligent temperature detector based on MCU, to achieve automatic detection by the microcontrolle

    3、r and temperature sensor alarm function. The design of the first described the background and significance of the subject, then the system hardware design and software design and debugging software design focuses on the analysis, which in the hardware design of the device are selected to do a simple

    4、 narrative, such as buttons, buzzer, LCD1602 LCD, DS18B20 temperature sensor, AT89C51 SCM, then the design of a summary. The 4 key components used in the design of key independent temperature limit setting, using passive buzzer as the alarm device. The whole system using LCD1602 as a liquid crystal

    5、display device, display real-time temperature detection and set limit on the value of. The hardware of this system has the advantages of simple structure, flexible operation, with the language C language development, KEIL4 application development software development tools and design.Key Words: AT89

    6、C51 microcontroller;temperature sensor;DS18B20;KEIL4 software;LCD1602 LCD第1章 绪论1.1 课题研究的背景及意义温度是一个非常重要的物理量,无论是工业控制还是家庭等场所的测量都是有十分重要的意义。在工业生产中,其对温度控制要求是非常严格的,尤其是对一些特殊的材料的煅烧,其温度有的在低范围,有的在高范围温度,有的需要恒定的温度。因此需要对温度进行严格的控制,传统使用的温度检测仅仅是使用一些模拟温度器件进行检测,此温度误差是非常大的,而且在早期的显示器中都是用的是指针式显示界面,人机交互非常不方便,人们还要仔细看才知道现在温

    7、度多少,也不能实现自动报警检测和温度的设定,因此需要人们在旁边守着温度表看,如果温度高于一定的时候就不加燃料,否则继续添加燃料,此种方案是非常浪费能源的。随着科技的不断发展,尤其是微处理器及传感器的快速发展,于是就开启了智能化的温度检测器,并且拥有一个非常好的人机交互界面,人们只需要看下液晶显示屏就知道准确温度,通过按键的操作就可以实现对温度上下限值的设置。通过传感器精确的测温及单片机的智能控制,就可以实现温度超限报警指示,低于下限关闭报警指示。因此极大的节约了工业劳动力及能源的消耗。因此本设计中研究基于单片机智能温度检测器设计就非常有必要了。1.2 单片机的意义和本设计特点在现代生活的各个领

    8、域中,单片机几乎已经完全控制了整个行业,甚至已经潜移默化的改变了人们的生活方式和生活习惯,大到航空航天领域,小到马路上各式各样的花样灯控制等等。这无不体现单片机的智能以及重要性。可以预见单片机今后的发展方向:1)低功CMOS耗化;2)微型单片化;3)主流与多品种共存化;4)大容量、高性能化:以往单片机内的ROM为1KB4KB,RAM 为64128B;单片机又称单片微控制器,它把一个计算机系统集成到一个芯片里。简单的来讲,就是把我们电脑主板上是由CPU处理、程序存储器、数据存储器、输入输出电路IO、显示设备等模块集成到了一块微小的芯片之内。它体积小,价格便宜,功能丰富,调写程序便利。因为它兼容了

    9、传统的8051系列MCS-51指令单片机,移植性能强,相对高性能的单片机来讲,它使用起来是很便利的。4k的flash存储器,8bit的位宽处理,128的RAM。该设计使用它可以满足我们的所有需求。我们在这个设计中采用了51内核单片机AT89C51作为核心部件,主要起主控作用,引领整个系统的运行控制,当作控制器的核心部位。本设计主要特点采用了数字温度传感器DS18B20进行温度的检测,通过按键设定温度上下限后即可实现自动检测报警,实现了其智能化特点。整个系统使用的是LCD1602液晶进行显示,实时显示测试的温度及设定的上下限值,通过一个无源蜂鸣器和LED发光二极管作为系统的报警指示,当检测温度高

    10、于设定上限的时候驱动蜂鸣器报警,只有当温度低于下限值报警指示灯灭。因此就可以组建成一个基于单片机的智能温度检测器了。第2章 硬件设计2.1系统总设计结构图本设计由主控芯片AT89C51单片机,晶振电路,复位电路,电源电路,DS18B20测温电路,LCD显示电路,按键电路,声光报警电路组成。51单片机全权负责整个系统的执行控制过程。如图1:图2-1 系统总设计图2.2蜂鸣器、LED和按键简介蜂鸣器可分为2种,一种是无源蜂鸣器,一种是有源蜂鸣器,此二者的区分在于,有源蜂鸣器直接给高或低电平就能驱动发声,但是无源蜂鸣器需要给他一定的脉冲触发信号才能使蜂鸣器发声,在此设计中我们使用的是无源蜂鸣器,即在

    11、控制他的时候我们必须输出一定频率的脉冲方能时此蜂鸣器发声报警。图2-2 蜂鸣器LED是半导体二极管的一种,可以把电能转换成光能。发光二极管与普通的二极管一样是由一个PN结组成的,也具有单向导电性。当给二极管加上一个正向电压时,二极管导通;反之,截止状态。在正向电压中,从P区注入到N区的空穴和N区注入到P区的电子,在PN结附近内P区的空穴和N区的电子复合,产生辐射的荧光。所以这样就有产生发光的电子,LED发光的原理就是这样。按键,它是常用控制器件的一种,通常被用来对需要控制的电路开或断即接通状态或者断开状态,内部的电流是很小的,应而可以达到手动控制的作用。在这里我们设计中使用的常用的按键,其按下

    12、后会有些许的波动,导致高低电平不稳,所以在后面的程序编写过程中需要专门用软件来消抖,一般其抖动的时间在10ms左右,如果不想再软件上做消抖处理也可以在硬件上做消抖,可以在按键那并接一个RC电路,那样就可以起到充放电延时的作用。这样一来单片机就可以对按键按下和按键断开有一个稳定的判断识别了。图2-3 按键2.3主控芯片AT89C51单片机的简介单片机又称单片微控制器,它把一个计算机系统集成到一个芯片里。简单的来讲,就是把我们电脑主板上是由CPU处理、程序存储器、数据存储器、输入输出电路IO、显示设备等模块集成到了一块微小的芯片之内。它体积小,价格便宜,功能丰富,调写程序便利。因为它兼容了传统的8

    13、051系列MCS-51指令单片机,移植性能强,相对高性能的单片机来讲,它使用起来是很便利的。它具有以下标准功能: 4k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,内置2KB EEPROM,拥有3个16位的定时器和计数器,还有外部中断2个,和全双工串行口等等。它的最高运作频率35MHz,6T/12T可选。其特性有:4K字节程序存储空间;256字节数据存储空间;内带2K字节EEPROM存储空间;可直接使用串口下载;芯片参数:1. 它是51单片机的加强版,拥有2种时钟模式,一种是6个时钟机器周期的,还有一种是12个时钟机器周期的,它完全兼容传统51单片机的指令系统。2.

    14、工作电压:5.5V3.3V(5V单片机)/3.8V2.0V(3V 单片机)。3.工作频率范围:040MHz,相当于普通8051 的080MHz,实际工作 频率可达48MHz。4. 用户应用程序空间为8K字节。5. 片上集成256 字节RAM。6. 通用I/O 口(32 个),复位后为:单片机拥有40个管脚,P0,P1,P2,P3各8个,还有复位1个,晶振2个,电源2个,EA一个,ALE一个。P0口内部无上拉电阻,是漏极开路的,所以在使用P0口的时候一定要外接上拉电阻。 其他3个口都有内部的上拉电阻,所以可以不用外接。7. 单片机可以直接通过P30 P31 RXD和TXD串口管脚下载程序。8.

    15、具有EEPROM 功能。9. 该单片机拥有3 个定时器和计数器其为16位的。即定时器T0、T1、T2。10.有2个外部中断,可以通过下降沿或者低电平触发中断。11. 可以使用定时器模拟出多个异步串行口。12. 工作温度范围:-40+85(工业级)/075(商业级)。13. PDIP封装,引脚图如下:图2-4 AT89C51芯片图2.4 LCD1602液晶简介LCD1602为字符型液晶显示器,通常只能显示字符和数字,如果想显示汉字的话一般选择LCD12864,LCD1602能够显示2行字符,每一行显示16个字符,故得名为1602。其内部含有许多个RAM,我们使用到的是40个。通过控制1602的控

    16、制管脚RS,RW,E我们即可向LCD1602显示器中写入数据,具体的显示位子第一行起始地址是0x80,第二行显示的起始地址是0x40+0x8。其具体的图形如下:图2-5 LCD16022.5 DS18B20温度传感器简介数字温度传感器DS18B20是DALLAS公司生产的一款超小体积并且抗干扰能力强和精度高的数字温度传感器。不需要将模拟量转化为数字量A/D转换电路,直接将温度测量值转换成为数字量。DS18B20的测量范围为-55-125,精度为0.5。DS18B20引脚如下,DS18B20它是单总线接口的总共有3个管脚,一个VCC 一个GND还有一个就是DQ数据管脚,在单总线通信中对时序是非常

    17、严格的。图2-6 DS18B20管脚图2.6系统电路设计本设计中使用51内核芯片单片机是AT89C51,通过2个22P电容和1个12MHz的晶振组成的晶振电路,系统的时钟脉冲就是由它提供,还有通过1个电阻和1个电解电容和1个按键组成的复位电路,使用4个按键组成独立按键进行对温度上下限的设定,采用无源蜂鸣器作为报警装置。整个系统使用LCD1602液晶作为显示装置,实时显示检测温度和设定的上下限值。2.6.1晶振电路电路中C1无极性电容和C2无极性电容是起振电容。当12MHz晶振在高频的情况工作时,会产生一定的寄生的电感。为了使电感达到平衡和产生谐振,那么可以加上2个10-33pf的无极性电容。具

    18、体的大小可以参考下晶振厂家提供的参数手册。单片机的内部有一振荡电路,我们需要在外部接上晶振电路单片机才能工作。晶振和电容与内部的电路组成振荡电路。只要单片机一上电,电容启振,晶振工作,这样单片机就有一个持续的时钟信号。51单片机内部有一个12分频器,因此时钟周期为 t = 1/12000000 1us。图2-7 晶振电路2.6.2复位电路此系统使用的51单片机是高电平复位。对于AT89C51,只需在复位引脚加上2个机器周期的高电平,就能让单片机复位。单片机的IO口显示高电平,程序计数器从零开始执行。采用的手动复位,按下按钮,复位引脚获得高电平,单片机复位,松开按钮后,单片机重新开始工作。单片机

    19、的 9 脚 RST(Reset)复位引脚,如图。当我们的程序运行到1000行的时候,单片机重启启动了,之前运行的数据将会丢失,因为RAM是不储存在我们的flash区域的,这个时候,那么我们的单片机会重新开始运行,这个过程就是复位。当我们的程序运行中,遇到一些特殊情况造成系统奔溃了,我们把这种情况叫做死机,类似我们的电脑的,这个时候我们可以手动按下复位按键,单片机会重新运行。复位电路的存在,就是防止一些特殊情况的发生,在程序跑飞的时候能够还原。复位电路的工作原理:51单片机高电平复位。对AT89C51来说,在复位引脚加2个机器周期的高电平,可使单片机复位。单片机的IO口呈现高电平,程序计数器从零

    20、开始执行。采用的手动复位,按钮按下,复位引脚得到高电平,单片机复位,按钮松开后,单片机开始工作。当这个电路处于稳定状态时,电容隔离直流电,隔离+5V。此时复位按键在弹起的状态,R31的电阻是没有电压差的。我们的这个到单片机是高电平复位,低电平工作,当按下去的时候,电容起到放电的作用,瞬间是+5V的高电平。所以,在按下的一瞬间,高电平复位成功。我们再来分析从没有电到上电的过程。电容C1上方是5V电压,这个时候哦电容C1进行充电,正离子从上往下充电,负电子从GND往上充电,这个时候电容对电路来说是短路的,相当于一根导线,电压都加在了R31这个电阻上,那么RST上的电压值,Vrst = R31*I,

    21、随着电容充电越多,在充满的时候,电流就会越来越小的,那么此时Vrst上的电压也会变小,直到电容充满后,线路中不再有电流,那么这个时候Rst和GND的电位就相等了,也即是0V。从这个过程中,Rst复位引脚是先持续一段时间的高电平,然后再低电平,之后单片机正常运行。我们可以根据一条充放电的公式得到:T = 1.2RC,把我们上图的参数带入,求得是564us,大于2个机器周期。重要一点的是,每个单片机复位高电平的时候都是不,具体的要参考手册。图2-8 复位电路2.6.3电源电路向单片机供电。单片机电源:AT89C51单片机的工作电压范围:3.3V5.5V, 一般给51单片机外接一个5V的直流稳压电源

    22、。连接方式为VCC(40脚):接电源+5V端VSS(20脚):接电源地端。本设计使用市电220V交流作为输入,通过一个变压器降压后再经过整流电桥整流变为直流,通过电容滤波等处理,最后经过降压芯片7805稳压到5V,然后将输出的5V接入到单片机端供电。变压器是电源进行电源转换的,有升压变压器,也有降压变压器,我们使用的是降压变压器,需要将市电220V降到50V左右,其中我们需要选择好变压器,变压器有前圈和后圈,其计算公式是N1/N2=V1/V2,因此我们就可以计算出后半圈的电压输出大小。如图:图2-9 变压器将变压器降压后的交流电我们还需要对其整流,使其交流变为直流,我们可以通过单相桥式整流电路

    23、,通过整流电路,我们就可以得到一个直流波动的电压。正电压经过D3进来然后经过D4出去,负电压经过D5进来,经过D2出去,因此也就将交流变化为直流。图2-10 单相桥式整流电路输出电压经过整流电路整流为直流后,其电压还是波动的,因此我们需要将其通过一个电源滤波电路滤波,我们使用的滤波电路时由电解电容及无极性电容组成,将整流电压经过一个470uf的电解电容,就可以使其波动滤除掉,因为我们需要得到一个5V电压,所以我们还需要对其进行稳压处理,我们使用的稳压芯片是7805,将其滤波后的电压通过7805输入端,输出端就可以得到一个5V电压,为了安全起见,我们还需要将其稳压后的电压进行滤波,使其稳压通过一

    24、个470u的电解电容和一个1nf的无极性电容,最终我们就可以得到一个标准的5V直流电压了,将其电压供给整个系统作为电源。滤波电路如下:图2-11 滤波电路总电源电路如下:图2-12 电源电路2.6.4 LCD显示电路此设计中采用的是字符型LCD1602,它只能显示数字及字符,可以显示2行,每一行可以显示16个字符,通过控制LCD的数据命令RS管脚和读写RW管脚还有使能E管脚。即可实现对LCD1602的读写了。我们将LCD1602的数据脚通过单片机P0口控制,数据命令及使能管脚通过单片机的P25 P26 P27口控制,通过按照LCD1602通讯时序控制,我们即可将要显示的数据通过P0口发送到LC

    25、D上实时显示。具体电路如下:图2-13 LCD显示电路2.6.5按键电路在本设计中我们使用了4个按键接到单片机管脚P32,P33, P34,P35上,另一端共地,如果有按键按下去了,单片机的对应管脚就会被拉为低电平,因此可以使用此方法来判断,按键是否按下,然后做出相应的动作。其中我们将2个按键接在了单片机的P32和P33 管脚上,此管脚可以设定为单片机外部中断0 和1模式,即当有按键按下时进入中断函数进行处理,处理结束后可以返回主函数继续运行。按键K1是对温度上下限值设定的切换,K2 K3是对温度数据的加减,K4是设定确认。具体电路如下:图2-14 按键电路2.6.6声光报警电路此设计中我们使

    26、用的是无源蜂鸣器,即只有触发一定频率的脉冲才能使蜂鸣器发声。我们将单片机的P37管脚接在PNP型三极管上,当单片机P37口输出一定频率的脉冲即可触发蜂鸣器发声了。同时设计中还使用了一个发光二极管进行温度报警指示,将其阳极接在单片机的P31管脚,单片机P31输出一个高电平的时候LED发光,反之熄灭。具体电路如下:图2-15 声光报警电路2.6.7测温电路此设计中我们使用数字温度传感器DS18B20的数据口接到单片机的P36管脚,通过此管脚模拟单总线时序与DS18B20进行通信。管脚上拉一个电阻,使其通信更加稳定运行,具体电路如下:图2-16 测温电路2.7总电路设计用Proteus仿真软件绘制的

    27、完整电路图如下:图2-17 总电路第3章 软件设计3.1系统软件设计整体思路现在开发都是追求快速,尽最大的缩短开发周期,以前的汇编语言现在已经很少使用了,现在开发使用最多的是高级语言,然而C语言又是高级语言中的佼佼者。本设计中我们使用的是C语言开发。硬件电路中使用到了LCD1602,如果要对LCD进行显示,首先就要对LCD进行初始化操作,我们参考LCD1602数据手册的初始化过程可知:首先进行一个短暂延时,然后写指令38H,延时一段时间,然后写入指令0CH,即显示开和光标设置,延时一段时间然后写入指令06H即显示光标功能设置,最后写入指令01H,即清屏。因此我们就对LCD进行初始化完成,就可以

    28、在LCD上面进行显示操作了。具体程序如下:void init() /LCD初始化函数 delay(1000); wrc(0x38); wrc(0x38); wrc(0x38); wrc(0x06); wrc(0x0c); wrc(0x01);根据上面LCD初始化过程的介绍,我们就可以将其过程通过流程图的形式展现出来,LCD1602初始化程序流程图如下:硬件设计中我们使用单片机的P0口控制LCD1602的数据口D0-D7,单片机的P25,P26,P27分别控制单片机的RS,RW,E。因此如果我们要对LCD进行操作的话我们首先要明确LCD1602的读写函数的编写,我们参考LCD1602读写时序,如

    29、下:图3-1 LCD1602读写时序图在编写写命令函数的时候,首先要将RS=0,此是选择命令,在把写打开RW=0,最后是触发一个低脉冲的使能信号E,然后将命令发送给P2即可。在编写写数据函数的时候和上面一样,只是将RS=1改变即可,其他的完全一样。具体程序如下:void wrc(uint8 c) /LCD写命令函数 delay(1000); rs=0; rw=0; e=0; P0=c; e=1; delay(10); e=0;void wrd(uint8 dat) /LCD写数据函数 delay(1000); rs=1; rw=0; e=0; P0=dat; e=1; delay(10); e

    30、=0; rs=0;硬件中使用到了按键来设定温度的上下限值,由于按键K1和K4接在单片机的外部中断0和外部中断1管脚上,因此我们需要对外部中断0和1进行初始化及中断函数才能使用,具体初始化函数如下:void int0init() /外部中断0初始化 EA=1; EX0=1; IT0=1; /选择下降沿触发void int1init() /外部中断1初始化 EA=1; EX1=1; IT1=1; /选择下降沿触发 void int0() interrupt 0 delay(1000);/消抖处理 mode+; sheding=0; if(mode=3) mode=1; void int1() in

    31、terrupt 2 delay(1000);/消抖处理 mode=0; sheding=1;还有2个按键接在了单片机的P34和P35管脚上,我们知道按键按下后会有一个抖动的问题,因此我们需要在软件内进行消抖处理,一般是延时10ms进行滤波,具体操作如下:delay(1000);/消抖处理按键处理后我们还需要对按键是否松开来判断,通过一个while来判别。硬件还使用到了DS18B20进行温度的检测,由于其是单总线通信,因此我们需要严格按照DS18B20时序图来进行编写。初始化时序如下:图3-2 DS18B20初始化时序图针对初始化时序可以编写如下函数:void ds18b20init() /18b20的初始化 dq=1; delay(1); dq=0; delay(80); dq=1; delay(5); dq=0; delay(20); dq=1; delay(35);DS18B20写时序如下:图3-2 DS18B20写时序图DS18B20读时序:图3-2 DS18B20读时序图因此可以编写温度传


    注意事项

    本文(基于单片机的智能温度检测器设计大学学位论文.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开