单片机课程设计报告—温度报警器

2019-12-04来源: 51hei关键字:单片机  温度报警器  DS18B20

1绪论

1.1温度报警器简介

温度报警器是一种通过DS18B20采集周围温度,单片机来处理数据来报警的一种电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的温度报警器是以芯片为核心,通过编程来实现的。


1.2温度报警器的背景与研究意义            

在日常生活中,温度对于我们并不陌生,它是一个时时刻刻存在的物理量在我们的日常生活中占据了十分重要的地位。温度的大小时刻与我们的生产、生命、安全息息相关。因此对温度的测量与控制对各个行业领域有着很及其重要的作用尤其是在金属冶炼、化学研究、建材生产、食品加工、机械制作、石油提炼等工业领域,占据不可忽视的作用。众所周知,当我们进行陶瓷烧烤,制作陶瓷工艺时,必须很精确的控制其烧烤温度,只要我们控制好其温度,这样才能创造出完美的、无瑕疵的艺术品,一旦温度控制不佳,将会一件次品;另外当我们进行酿酒时,同样也需要对温度进行合理适当的控制,只有这样,我们才能够生产出大家公认的好酒。如此可见,对于温度的检测与把控在我们日常生活以及工业生产占据着举足轻重的地位。  


目前,在日新月异的生活变化中,工业和农业领域得到了快速的发展与进步,人们的需求也是不断地扩张,对于电子工业领域,自动化的产品无疑是得到大家的欢迎,随着微型处理器功能的不断强大,单片机无疑成了人们心目中最美好的选择,它的出现为人民的生活带来了不可否认利益,对于工业领域,提高了生产效率,方便了人民的生活。然而随着人们的要求越来越高,对现代科学研究,工作,生活,提供更便利的设施需要从单片机技术开始,向着数字控制系统,智能控制方向不断地发展。


目前,我们在科技迅速发展的现在社会中不断成长,信息技术已经不知不觉的渗透到我们生活的各个方面。为了确保这些科技产品的安全,减少其对我们生命和财产造成损失,我们首先需要控制它们的温度,确保它们在正常的温度之间正常运行,因研究兼备经济实用为一体的温度报警装置具有重要的意义


1.3温度报警器的现状及发展趋势

在现代社会中,由于工业过程控制系统的不断发展,特别是计算机领域中微电子技术以及自动控制理论和设计方法的快速发展,相对中国而言,国外一些发达国家在温度监控系统研究中已经成功取得了超前的成绩,具体的表现其自适应、智能化、参数自整定的特点。以德国、日本、美国等发达国家为例,在上个世纪,他们已经成功生产出了一批商业化的、性能优异的温度监控器以及仪表设备,并且已经投入市场,在工业、家庭等领域得到了广泛的应用,而中国才处于研究的初级阶段。


2  系统整体方案设计

2.1设计目标

本设计采用STC89C52单片机为主控芯片,结合外围电路矩阵键盘、液晶显示器LCD1602等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,组成的温度报警器系统,能够实现:


1.DS18B20不断采集周围环境温度;

2.单片机处理温度的数据显示在DS18B20;

3.用户设定温度报警的上限和下限;


系统整体设计框图如图2-1所示:

图2-1  系统整体设计框图


2.2系统的基本方案

2.2.1 系统方案选择

采用单总线数字温度传感器DS18B20测量温度,直接输出数字信号。便于单片机处理及控制,节省硬件电路。且该芯片的物理化学性很稳定,此元件线形性能好,在0—100摄氏度时,最大线形偏差小于1摄氏度。DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89C51构成的温度装置,它直接输出温度的数字信号到微控制器。每只DS18B20具有一个独有的不可修改的64位序列号,根据序列号可访问不同的器件。这样一条总线上可挂接多个DS18B20传感器,实现多点温度测量,轻松的组建传感网络。


2.2.2 各模块方案选择

2.2.2.1 单片机的选择

采用STC89C52单片机,它是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。


2.2.2.2 温度传感器的选择

DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20的性能特点如下:


●独特的单线接口仅需要一个端口引脚进行通信;

●多个DS18B20可以并联在惟一的三线上,实现多点组网功能;

●无须外部器件;

●可通过数据线供电,电压范围为3.0~5.5V;

●零待机功耗;

●温度以9或12位数字;

●用户可定义报警设置;

●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;

●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;

DS18B20内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。DS18B20的管脚排列如图3.5所示。64位光刻ROM是出厂前被光刻好的,它可以看作是该DS18B20的地址序列号。不同的器件地址序列号不同。


2.2.2.3 显示模块的选择

液晶显示采用LCD 液晶显示,显示的位数多,由单片机驱动。此方案有美观、显示清晰多样的优点。


2.2.2.4 报警模块的选择

采用有源蜂鸣器来报警(需要一定的频率才可以驱动),可以发出声音报警且降低了成本。


2.3主要元器件介绍

2.3.1  STC89C52的简介

STC89C52是一种带8K字节闪烁可编程可檫除只读存储器的低电压,高性能COMOS8的微处理器,俗称单片机。该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。


STC89C52具体介绍如下:

① 主电源引脚(2根)

VCC(Pin40):电源输入,接+5V电源

GND(Pin20):接地线

②外接晶振引脚(2根)

XTAL1(Pin19):片内振荡电路的输入端

XTAL2(Pin20):片内振荡电路的输出端

③控制引脚(4根)

RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。

ALE/PROG(Pin30):地址锁存允许信号

PSEN(Pin29):外部存储器读选通信号

EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。

④可编程输入/输出引脚(32根)

STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。

P0口(P39~P32):8位双向I/O口线,名称为P0.0~P0.7

P1口(P1~P8):8位准双向I/O口线,名称为P1.0~P1.7

P2口(P21~P28):8位准双向I/O口线,名称为P2.0~P2.7

P3口(P10~P17):8位准双向I/O口线,名称为P3.0~P3.7


2.3.2 LCD1602的简介

本设计所使用的是不带字库的LCD1602液晶显示屏,因为其可以在proteus中仿真,便于设计 ,其引脚表如2-3所示。

表2-3 12864引脚

3 系统的硬件设计与实现

3.1 系统硬件概述                           

本系统是通过键盘扫描模块,既能够显示数据并且还能修改密码,开锁密码,具有强大的功能,通过键盘扫描模块输入到单片机控制系统STC89C52 中。然后通过LCD显示模块来显示我们所要有数据,还有一个就是报警模块,当输入的密码相同时,则显示模块的灯点亮,当输入的密码是错误时,重新输入,三次出错蜂鸣器响,发出报警。为了达到设定的功能,本装置键盘扫描模块、单片机控制模块、LCD显示模块,报警模块等4 模块组成。


3.2主要单元电路的设计

3.2.1温度采集模块电路的设计

3.2.2单片机控制模块电路的设计

单片机作为本装置的核心器件,在系统中起到控制报警、以及LCD显示的作用,其中采用的是STC89C52是标准的40 引脚双列直插式集成电路芯片,有4 个八位的并行双向I/O 端口,分别记作P0、P1、P2、P3。第20 引脚为接地端;第40引脚为电源端;第31 引脚需要接高电位使单片机选用内部程序存储器;第18、19 脚之间接上一个12MHz 的晶振为单片机提供时钟信号;第9 脚为复位脚,当其接高电位时,单片机停止工作。P1 口接LCD控制引脚,P0 口连接一LCD1602显示屏数据输入端,P3 口与12 个阵列式按键相连实现对键盘的扫描。如图3-2所示。

图3-2主控电路图


3.2.3报警模块电路的设计

本模块的作用是当开锁按钮被按下时,如果LCD当前显示值相同,则红灯点亮,当输入的数与密码不同时,则蜂鸣器立刻发出声音报警。如图3-3所示。

图3-3 报警电路图


3.2 LCD1602显示模块电路的设计

本模块主要用于显示指示用户密码输入要求。根据管脚要求连接电路,P0口接上

[1] [2]
关键字:单片机  温度报警器  DS18B20 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic481940.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:单片机定时器占空比按键调整Proteus仿真程序
下一篇:基于89c52的简易计算器设计

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

ARM小记
ARM何物  ARM(Advanced RISC Machines,进阶精简指令集机器),如果你一直把这个单词读成“A”-“R”-“M”,那么将有一个好消息和一个坏消息要告诉你。好消息是:你 这是初次接触到ARM技术相关的文章,而本文内容正是专为你量身打造的,无论你是嵌入式系统的门外汉还是单片机技术的初学者,都可以通过本文轻松地了解ARM技术。 请相信我,这并不困难!坏消息是:我很抱歉的告诉你, 它的正确读法应该是“arm”,是手臂、胳膊的英文发音。 很出丑是不是?但除非你是在大声朗读,不然没人会知道 的。你又多了一个知识和一个不可告人的秘密。调整一下心态,我们的故事就从这里开始吧!  
发表于 2019-12-02
ARM小记
AVR单片机教程——烧写HEX文件
每一次build项目,编译器都会生成多个文件,其中有一个就是hex文件。之前在IDE中配置的external tools,就是把这个hex文件烧写到单片机中去的。然而,有些时候你想运行别人的程序,但拿不到别人的源码,只能拿到一个hex文件。比如,我现在就把明天作业的答案(没错,明天有作业)以hex文件的形式(平台不让上传hex文件,所以我就打了个包,使用前请先解压)给你,让你抢先体验一下。这时,你就需要用AVRDUDESS来烧写hex文件。初次打开AVRDUDESS,界面上所有选项都是默认的。在左上角下拉框中选择USBasp(在最后的位置)。点击右上角Detect,会自动选择好单片机型号。在Flash框中选择要烧写的文件。点击Go
发表于 2019-12-02
AVR单片机教程——烧写HEX文件
AVR单片机教程——随机点亮LED
;led_set 的第一个参数只有在 [0, 3] 范围内才有效,因此我们把 rand() 的返回值对4取模。srand(1) 被打上注释,是因为这行调用没有必要。把这段代码编译并烧写进单片机,你会发现LED闪烁的时间是不等长的,这是因为可能存在连续两次亮相同灯的情况。为了解决这个问题,我们引入一个变量,保存当前亮的LED,并让下一个亮的LED与当前的不同。代码如下: 1 #include <ee1/led.h> 2 #include <ee1/delay.h> 3  4 #include
发表于 2019-12-02
AVR单片机教程——按键状态
今天我们来讲按键。开发板的右下角有4个按键,按下会有明显的“咔嗒”声。如何检测按键是否被按下呢?首先要把按键或直接或间接地连接到单片机上。与之前使用的4个LED不同,4个按键没有全部连接到单片机上——左边2个是连接的,右边2个通过按键上方标有B2、B3的接口引出(从左到右分别为B0、B1、B2和B3)。如果要使用B2、B3,要用杜邦线连接到16个单片机引出针脚上。开发板库中与按键相关的函数定义在 <ee1/button.h> ,这里是库函数手册。值得一提的是1.1版本的库中,换用枚举类型表示按键等设备,不再使用整数与宏定义(但用整数也是兼容的)。在Atmel Studio 7.0中写代码时,编辑器
发表于 2019-12-02
AVR单片机教程——按键动作
,因为博客园代码着色是按照C#的规则,bool 是其中一个关键字。但是应当注意,C语言中没有 bool 这个关键字,而是 _Bool ;bool 与 true 和 false 都在 <stdbool.h> 中定义。我们还没有解释过第一段代码中的 delay(40) 。如果你把它去掉,你会发现判定经常出错,往往在抬起的时候被多判定了一次,在按得不是很用力时很不稳定。这是按键内部的机械结构决定的,当处于连通和不连通位置的交界处时,单片机检测到的电平会迅速跳变(按键的原理,以及单片机如何检测按键
发表于 2019-12-02
AVR单片机教程——拨动开关
;   if (switch_changed(SWITCH_0))12             led_flip(LED_GREEN);13         delay(40);14     }15 }如果把按键拨到关(即下)再复位单片机,一切安好,但是如果一开始是开的状态,LED的状态会总是与开关相反。为什么呢?因为开关可以保存状态,这是第一个差别。所以,我们可以每次得知开关状态改变后读取开关状态,并传给LED: 1 #include <ee1/led.h> 
发表于 2019-12-02
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved