毕业设计利用单片机及DS18B20制作Word格式文档下载.docx

上传人:b****5 文档编号:16155266 上传时间:2022-11-21 格式:DOCX 页数:17 大小:194.91KB
下载 相关 举报
毕业设计利用单片机及DS18B20制作Word格式文档下载.docx_第1页
第1页 / 共17页
毕业设计利用单片机及DS18B20制作Word格式文档下载.docx_第2页
第2页 / 共17页
毕业设计利用单片机及DS18B20制作Word格式文档下载.docx_第3页
第3页 / 共17页
毕业设计利用单片机及DS18B20制作Word格式文档下载.docx_第4页
第4页 / 共17页
毕业设计利用单片机及DS18B20制作Word格式文档下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

毕业设计利用单片机及DS18B20制作Word格式文档下载.docx

《毕业设计利用单片机及DS18B20制作Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《毕业设计利用单片机及DS18B20制作Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。

毕业设计利用单片机及DS18B20制作Word格式文档下载.docx

本设计所介绍的温度报警器,可以设置上限报警温度,当温度超过设置范围时,可以报警。

与传统的温度测量系统相比,本设计中的数字温度测量报警系统具有很多前者没有的优点,如测温范围广而且准确,采用LCD数字显示,读数方便等。

1.1温度报警器的研究意义

随着电子技术的发展,家用电器和办公设备的智能化、系统化已成为趋势,而这些高性能几乎都要通过单片机实现。

同时,温度作为与我们生活息息相关的一个环境参数,对其的测量和研究也变得极为重要。

故温度检测报警系统在现代生活、生产中得到了越来越广泛的应用。

工业生产带动了人类社会的进步,同时也促进了各种新的传感器的发展。

在工业生产中温度的准确测量是一个比较困难的事情。

从最初的酒精、水银温度计到现在的数字化、集成化的温度计可见传感器的发展是飞快的。

它的快速发展必将带来新一轮的工业化革命和社会发展的飞跃。

本设计所介绍的温度报警器可以设置上限报警温度,当温度不在设定范围内时可以报警,主要用于对测温比较准确的场所,或科研实验室使用。

它具有结构简单,不需外接元件,可由用户设置温度报警界限等特点,可广泛用于食品库、冷库、粮库等需要控制温度的地方。

目前,该类产品已在温控系统中得到广泛的应用。

所以设计意义较为深远。

1.2温度报警器的现状及发展

温度是一种在生产、科研、生活中需要测量和控制的重要物理量,是国际单位制七个基本量之一。

其测量控制一般采用各式各样形态的温度传感器。

根据它们在讯号输出方式上的不同可以分为模拟温度传感器和数字温度传感器。

单片机技术的出现则是为现代工业测控领域带来了一次新的技术革命,目前,单片机以其体积小、重量轻、抗干扰能力强、对环境要求不高、可靠性高、性价比高、开发较为容易等特点,在工业控制、数据采集、智能化仪器仪表、办公自动化等诸多领域得到了极为广泛的应用,并已走入我们的日常生活,现在,随处都可以看到单片机的踪影。

目前温度报警器的发展已经比较成熟了,它能帮助我们实现想要的温度控制,解决身边的很多问题。

2硬件设计

2.1总体设计方案

本设计是一个基于单片机的温度测量电路,传统的温度检测系统采用热敏电阻等温度敏感元件,热敏电阻虽然成本低,但是需要后续信号处理、A/D转换处理等才能将温度转换成数字信号,不但电路复杂,可靠性和精度也相对较低,在应用中还需要解决引线误差补偿、干扰等问题,故传统方案不可取。

进而非常容易考虑到使用温度传感器,在单片机电路设计中,单片机除了可以测量电信号外,还可以用于温度、湿度等非电信号的测量,能独立工作的单片机温度检测、温度控制系统已经广泛的应用于很多领域。

单片机的接口信号是数字信号,要用单片机作为控制器测量温度这类非电信号,就要使用温度传感器将温度信息转换为电流或者电压信号输出,如果转化的信号是模拟信号,还需要进行A/D转化,以满足单片机接口的需要。

进一步联想到可以采用一只温度传感器18B20,此传感器,可以很容易直接读取被测温度值,进行转换,成功地进行温度采集以后,就可以利用单片机进行数据处理,然后通过LCD将温度显示出来,就可以满足设计要求。

硬件部分设计主要包括:

温度传感器与单片机的连接、报警电路LED与单片机的连接、5v稳压与单片机的连接等组成的。

 

本设计中,温度传感器采用18B20,控制器采用STC89C52RC,显示电路采用LCD1602液晶显示器实现,报警模块采用LED。

总体方框图如下:

图3.1总体方框图

在研究出总体设计方案后,在这一阶段主要的主要工作是查阅各芯片资料,熟悉其功能特性和技术参数,同时学习PROTELDXP软件,用其绘制出硬件原理图,然后继续分析各结构,查阅相关技术资料,查缺补漏,反复修改设计方案,力求完美;

购买所需元件,完成硬件方面的设计。

2.2系统器件的选择

2.2.1单片机的选择

方案一:

AT89C51芯片控制。

AT89C51价格便宜,应用广泛,功能强大,但存储空间小。

方案二:

STC89C52RC芯片控制。

STC89C52RC单片机价格便宜,应用广泛,功能强大,对题目中的要求能够很好的实现。

可以接受18B20温度传感器反馈的温度,实现对LED灯和1602显示的控制,且相对于AT89C51存储空间大,由此可见,常用的STC89C52完全可以满足我们设计方案的需要。

综合以上两种方案,选择方案二。

2.2.2温度传感器的选择

本设计主要应用在实验室等地,测量温度在-10到+40摄氏度之间,18b20温度测量范围从-55到+125摄氏度,精度为±

0.5°

C,适合设计要求,所以传感器选择18b20温度传感器。

2.2.3显示模块的选择

1601显示一行的16个字符,1602显示两行的16个字符,1602还可以显示汉字,满足设计要求,所以选择LCD1602显示模块。

2.3传感器模块18B20

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

DS18B20的性能特点如下:

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

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

无须外接部件;

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

零待机功耗;

温度以9或12位数字量读出;

用户可定义的非易失性温度报警设置;

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

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

2.3.1注意事项:

Ds18b20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中叶应注意以下几个方面的问题:

1.在对ds18b20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。

2.当单总线上所挂ds18b20超过8个小时,就需要解决微处理器的总线驱动问题。

3.18b20从测温结束到将温度值转换成数字量需要一定的转换时间。

图318B20内部结构框图

DS18B20测温原理图

2.4主控制器模块STC89C52RC

STC89C52RC是整个系统的核心处理器,单片机首先把通过传感器测到的现场温度与预先设置的温度进行比较,如果小于预设值,LED点亮,1602显示温度;

如果大于预先设置值,就LED灯闪烁,同时1602液晶显示danger!

、报警开始。

2.4.1基本概述

STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。

AT89S51的极限参数:

工作温度:

-55OCto+125OC储存温度:

-65OCto+150OC

任一引脚对地电压:

1.0Vto7.0V最大工作电压:

6.6V

工作电压:

5.5V~3.3VDC输出电流:

15.0mA

2.5显示模块LCD1602

2.5.1引脚功能和基本特征

图3.9LCD1602引脚分布图

1602采用标准的16脚接口,引脚功能如下:

第1脚:

VSS为地电源。

第2脚:

VDD接5V正电源。

第3脚:

V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,故通常将此脚接地。

第4脚:

RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:

RW为读写信号线,高电平时进行读操作,低电平时进行写操作。

当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。

第6脚:

E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:

D0~D7为8位双向数据线。

第15~16脚:

空脚。

LCD1602的基本特征:

单5V电源电压、低功耗、长寿命、高可靠性。

内置192种字符(160个5×

7点阵字符和32个5×

10点阵字符)。

具有64个字节的自定义字符RAM,可自定义8个5×

8点阵字符或四个5×

11点阵字符。

显示方式:

STN、半透、正显。

驱动方式:

1/16DUTY,1/5BIAS。

视角方向:

6点。

背光方式:

底部LED。

通讯方式:

4位或8位并口可选。

标准的借口特性,适配MC51和M6800系列MPU的操作时序。

2.5.2模块内部结构

图3.10LCD1602结构块图

模块组件内部结构

模块组件内部主要由LCD显示屏(LCDpanel)、控制器(controller)、列驱动器(segmentdriver)和偏压产生电路构成。

LCD显示屏为common和segment交叉形成的点阵,以5×

8点阵的字符结构模式和设置的显示字符树木,选择适宜的行数,分单屏、双屏或者多屏显示规定的字符。

对于双屏或者多屏显示结构的LCD,每一显示屏结构部分,均由各自独立的使能信号E控制。

2.8报警电路

本设计采用蜂鸣器报警电路,它由晶体管和蜂鸣器组成。

由单片机I/O口输出信号控制晶体管的导通或截止,晶体管导通,则蜂鸣器报警。

通过单片机来控制蜂鸣器产生报警声音。

2.9存贮电路

本设计采用24C02C存贮电路。

由单片机I/O口输出信号控制掉电存贮,当单片机上电后,设置报警温度,掉点之后,从新给单片机上电,设置的温度不变。

 24C02是一个2K位串行CMOSE2PROM,内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。

AT24C02有一个16字节页写缓冲器。

该器件通过IIC总线接口进行操作,有一个专门的写保护功能。

A0,A1,A2器件地址选择;

SDL串行数据地址;

SCL串行时钟;

WP;

写保护;

VCC工作电压+5V;

VSS接地。

2.11各接口电路

2.11.1主控制模块与温度传感模块的连接

图2.11主控制器STC89C52RC与温度传感器18B20接口图

这一部分的主要功能是电路接通以后,DS18B20进行温度采集工作,然后将收集到的数据送入STC89C52RC进行处理,使得主控制器可以将数据处理好后送入下一部分电路进行工作。

2.11.2主控制模块与显示模块的连接

图2.12主控制器AT89C51与显示模块LCD连接图

STC89C52RC与显示模块LCD1602连接形成显示电路,接通电源后,DS18B20将采集到温度传送给主控制器STC89C52RC,主控制器进行计算、转换等工作之后把数据传给LCD1602模块,则LCD1602显示屏上会显示出当前的温度。

2.11.3系统报警电路连接

图3.13温度测量报警部分图

3系统软件设计

3.1 主程序设计

主程序的主要功能是负责温度的实时显示,读出并处理18B20测量的当前温度值,送入主控制器进行数据处理并转换为数字信号后进行显示,其流程图如下所示。

图2.1主程序流程图

系统软件采用C语言编写。

在中断服务程序中,实现用户输入以及上位机的接口功能;

在主程序中,实现温度传感器网络的自动搜索、获取温度信息,并根据预先设定的温度上限,实现相应的报警功能。

该系统中,根据不同的分辨率要求,可通过编程设定,该流程可满足高精度设计要求。

3.2 

显示模块子程序

  在测得温度后,将温度数据转换为十进制数的温度表示,然后再通过查表调用液晶1602显示在液晶上,这里面数据处理类似于由二进制转换为十进制,再由十进制转换为ASCII码。

首先要对LCD进行初始化设置,写入报警温度的上限值,同时进行温度比较,若当时温度在设定的上限范围内,则LED点亮,1602显示实时温度,若温度超过上限温度,则LED开始闪烁,1602显示danger提醒。

结论

本设计所介绍的温度计报警器与传统的温度计相比,可以设置上限报警温度,当温度不在设置范围内时,可以进行报警,该系统主要用于对测温比较准确的场所,或科研实验室使用。

18B20集温度测量、A/D转换于一体,具有体积小、动态范围宽、测量精度高、单总线结构、直接与CPU接口等特点。

经试验,基于STC89C52RC单片机和DS18B20的温度测量仪,设计简单,控制方便,测量准确,测温范围宽,另外,利用单总线具有很强的扩展性,还可以组建多点的温度检测网络。

因此,基于STC89C52RC单片机和18B20的温度测量仪,具有广泛的应用前景。

目前,该类产品已在温度控制系统中得到了广泛的应用。

故该设计意义较为深远。

同时,该方案具有安装方便、数字化程度高、精度高、适应性强等特点,在多种温度检测系统中都具有重大意义。

本设计实现了利用单片机以及18B20进行温度报警器的制作,通过这次设计,使我接触到了很多之前没有学习过的理论知识,专业设计是对大学四年学习生活的总结以及学习能力的一次综合检验。

通过这次设计,使我在电路知识方面有很大提高,学习并掌握了单片机应用的基本知识以及温度传感器18B20等芯片的使用方法;

通过动手实践操作,将理论知识应用于实际,使自己的知识更加生动丰富,经过一段时间的学习和制作,最终完成了利用单片及DS18B20实现温度报警器制作的设计。

另外,通过本次设计,我了解到了温度报警器电路设计在现代生活、生产领域的重要意义及应用情况。

现代社会已经步入了一个数字时代,很多使人们生活更便捷的服务都是建立在电子技术的基础上的,而单片机技术则可以看作是“基础中的基础”,可见,它已经深入了我们的生活和工作中,并发挥着巨大的作用。

另外,通过这次设计还使我更加深刻地认识到网络是一个巨大的资源宝库,要学会科学合理利用这个大宝藏为我们的生活带来更多的便捷。

参考文献(References)

[1]严芸.浅谈温度传感器的现状与发展[J].大众科技,2006,(5):

38-39.

[2]谭浩强.C程序设计[M].清华大学出版社,1999.

[3]杨小川.ProtelDXP设计指导教程[M].清华大学出版社,2003.

[4]贵国庆.LCD1602液晶显示秒表[J].电子制作,2006.(4):

59-61.[

[5]朱蕤、张常年.基于AT89C51单片机的温度传感器控制电路[D].北方工业大学,2006.

[6]黄继昌.传感器工作原理及应用实例[M].人民邮电出版社.1998.

[7]周航慈.单片机程序设计基础[M].北京航空航天大学出版社.2003.

[8]谢宜仁.单片机实用技术问答[M].人民邮电出版社.2003.

[9]朱善君.单片机接口技术与应用[M].清华大学出版社.2005.

[10]郭亨礼.传感器实用电路[M].上海科学技术出版社.1992.

[11]谢宜仁.单片机实用技术问答[M].人民邮电出版社.2003.

[12]肖来胜.单片机技术实用教程[M].华中科技大学出版社.2004.

[13]Transistorspecificationsmanual.HowardW.Sams&

Co.,Inc[M].1972.

附录(C语言程序设计)

#include<

reg52.h>

//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

stdio.h>

#include"

18b20.h"

1602.h"

delay.h"

#defineOVERTEMP30//定义超温报警数值

bitReadTempFlag;

//定义读时间标志

sbitLED=P1^1;

voidDelay(unsignedintt);

//函数声明

voidInit_Timer0(void);

//定时器初始化

/*------------------------------------------------

串口通讯初始化

------------------------------------------------*/

voidUART_Init(void)

{

SCON=0x50;

//SCON:

模式1,8-bitUART,使能接收

TMOD|=0x20;

//TMOD:

timer1,mode2,8-bit重装

TH1=0xFD;

//TH1:

重装值9600波特率晶振11.0592MHz

TR1=1;

//TR1:

timer1打开

//EA=1;

//打开总中断

//ES=1;

//打开串口中断

TI=1;

}

主函数

voidmain(void)

{

inttemp;

floattemperature;

chardisplaytemp[16];

//定义显示区域临时存储数组

LCD_Init();

//初始化液晶

DelayMs(20);

//延时有助于稳定

LCD_Clear();

//清屏

Init_Timer0();

UART_Init();

Lcd_User_Chr();

//写入自定义字符

LCD_Write_String(0,0,"

koucheng"

);

danger!

!

"

LCD_Write_Char(13,1,0x01);

//写入温度右上角点

LCD_Write_Char(14,1,'

C'

//写入字符C

while

(1)//主循环

{

LED=1;

LCD_Write_String(0,0,"

if(ReadTempFlag==1)

ReadTempFlag=0;

temp=ReadTemperature();

temperature=(float)temp*0.0625;

sprintf(displaytemp,"

Temp%7.3f"

temperature);

//打印温度值

LCD_Write_String(0,1,displaytemp);

//显示第二行

}

if(temperature>

OVERTEMP)//如果超温则提示

LED=0;

//将P1.0口赋值0,对外输出低电平

Delay(10000);

//调用延时程序;

更改延时数字可以更改延时长度;

//用于改变闪烁频率

LED=1;

//将P1.0口赋值1,对外输出高电平

//主循环中添加其他需要一直工作的程序

}

voidDelay(unsignedintt)

while(--t);

定时器初始化子程序

voidInit_Timer0(void)

TMOD|=0x01;

//使用模式1,16位定时器,使用"

|"

符号可以在使用多个定时器时不受影响

//TH0=0x00;

//给定初值

//TL0=0x00;

EA=1;

//总中断打开

ET0=1;

//定时器中断打开

TR0=1;

//定时器开关打开

定时器中断子程序

voidTimer0_isr(void)interrupt1

staticunsignedintnum;

TH0=(65536-2000)/256;

//重新赋值2ms

TL0=(65536-2000)%256;

num++;

if(num==300)//

num=0;

ReadTempFlag=1;

//读标志位置1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1