基于单片机的温度采集系统设计4.docx
- 文档编号:30106488
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:40
- 大小:1.46MB
基于单片机的温度采集系统设计4.docx
《基于单片机的温度采集系统设计4.docx》由会员分享,可在线阅读,更多相关《基于单片机的温度采集系统设计4.docx(40页珍藏版)》请在冰豆网上搜索。
基于单片机的温度采集系统设计4
XXXXX学院
单片机课程设计报告
题目:
基于单片机的温度采集系统设计
学生姓名
XXX
学号
091XXX4
专业
电子信息工程
班级
2009级1班
指导教师
XXX
学部
计算机科学与电气工程
课程设计时间
2012年6月18日
课程设计题目(小二号黑体字居中书写)
摘 要
随着现代信息技术的飞速发展,温度测量控制系统在工业、农业及人们的日常生活扮演这一个越来越重要的角色,它对人们的生活具有很大的影响,所以温度采集控制系统的设计与研究有十分重要的意义。
本次实际的目的在意学习基于51单片机的温度采集控制系统的设计的基本流程。
本设计采用单片机作为数据处理与控制单元,为了进行数据处理,单片机控制数字温度传感器,把温度信号通过单总线从数字温度传感器传递到单片机上。
单片机数据处理后,发出控制信息改变报警和控制执行模块的状态,同时将当前的温度信息发送到液晶屏进行显示。
本系统可以使用按键来设置温度的限定值,通过进行温度数据的运算处理,发出控制信号达到控制蜂鸣器和继电器的目的。
关键词:
温度传感器单片机液晶显示
[关键词与摘要内容隔行书写,词条用小四号宋体字,词条间用分号(;)隔开,3-5个关键词]
小提示:
当需要从网站或者文档复制到本文档时,先将文字复制到文本文档,然后再从文本文档复制到本文档的相应位置,这样就能够保证格式是正确的!
此行不会被打印
千万不要删除行尾的分节符,此行不会被打印。
(在word菜单-工具-选项-视图标签中,格式标记部分请全部打对号,这样就可以看到隐藏的分节符和空格等信息了)
目 录
千万不要删除行尾的分节符,此行不会被打印。
在目录上点右键“更新域”,然后“更新整个目录”
基于单片机的温度采集系统设计
绪 论
本设计的意义
21世纪的今天,科学技术的发展日新月异,科学技术的进步同时也带动了测量技术的发展,现代控制设备不同于以前,它们在性能和结构发生了翻天覆地的变化。
我们已经进入了高速发展的信息时代,测量技术是当今社会的主流,广泛地深入带应用工程的各个领域。
温度是工业、农业生产中常见的最基本的参数之一,在生产过程中常常需要对温度进行检测和监控,采用微型机进行温度检测、数字显示、信息存储及实时控制,对于提高生产效率和产品质量、节约能源等都有重要的作用。
伴随工业科技、农业科技的发展,温度测量需求越来越多,也越来越重要。
本系统可被广泛的应用于温度测量或相应的可转换为温度量或供电故障监控的工业、农业、环保、服务业、安全监控等工程中,例如:
城市居民小区供热检测、大型仓库温度检测、工业生产测控、农业生产温度测控等。
因为采用微机进行温度检测、数字显示、信息存储及实时控制,对于提高生产效率和产品质量、节约能源等都有重要的作用,并且温度参数对于工业生产的重要性,所以温度测量系统的精确度和智能化一直受到企业的重视。
所以学习并研究温度测量及相关知识可作为一个较为实用的课题方向,能获得较实用的知识和方法。
因此温度测控技术是一个很实用、也很重要的技术,值得去研究掌握。
它拥有的领域也相当广泛,可以应用到消防电器的非破坏性温度检测,电力、电讯设备的过热故障预知检测,空调系统的温度检测,各类运输工具之组件的过热检测,保全与监视系统之应用,医疗与健诊的温度测试,化工、机械等设备温度的过热检测。
因此前景是相当的可观。
本设计的功能
温度监测功能:
利用DS18B20数字温度传感器实现对温度进行准确测量,对高于和低于限定值的温度进行报警处理,同时使温度值显示到液晶屏上。
可通过按键设置限定温度的数值。
本设计的要求
1.根据目标系统的要求,初步掌握总体结构设计的方法和构思,从中选择一种最佳设计方案。
2.根据系统结构规模的要求,掌握单片机外部扩充系统硬件设计的基本过程。
3.根据任务要求和硬件设计要求,首先画出系统功能框图或系统结构草图,然后进行各控制模块的电路原理图设计。
4.熟练掌握Protel99或ProtelDXP软件使用方法和一些技巧,能够保证所设计的原理图符合电气规则和PCB符合相应设计规则。
5.熟练掌握Eeil等软件或开发平台的使用方法,能够通过汇编或C语言编程写出符合控制要求的单片机固件程序。
6.最终按要求完成课程设计报告。
本设计系统结构介绍
系统结构框图及工作流程介绍
本设计采用STC89C52单片机作为数据处理与控制单元,首先单片机控制DS18B20数字温度传感器,把温度信号通过单总线从数字温度传感器传递到单片机上。
单片机数据处理后,发出控制信息改变报警器即控制执行模块的状态,同时将当前的温度信息发送到LCD1602液晶屏进行显示。
温度检测模块介绍
温度传感器选用DS18B20,其单总线的通信方式可以减少系统的线路连接。
DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一直三极管的集成电路。
内温范围-55°C~+125°C,在-10°C~+85°C时的精度为±0.5°C,可编程的分辨率为9~12位,对应的可分辨温度分别为0.5°C、0.25°C、0.125°C、0.0625°C,可实现高精度测温。
显示模块介绍
本系统选用LCD1602作为显示器件,能同时显示16×2个字符。
其显示清晰,并可以显示阿拉伯数字、英文字母、常用的符号和日文假名等,满足了系统的要求。
报警模块介绍
当所检测室内湿度超过或低于所设定值时,报警电路便发出报警,提醒工作人员对温度进行控制。
在这里采用蜂鸣器报警。
本章小结
本章对系统结构及工作流程进行了介绍,并分别介绍了温度检测模、显示模块、报警模块所选用的元器件及功能。
注意:
除第一章绪论外,其他每一章都应该有一个本章小结
系统硬件电路设计
单片机最小系统设计
单片机介绍
89C52单片机是采用40引脚双列插封装的芯片,有些引脚有两种功能。
引脚图见下图所示。
98C52单片机引脚图
下面是引脚功能介绍:
ØVcc(40):
电源+5V。
ØGND(20):
接地。
ØXTAL1(19)和XTAL2(18):
使用内部振荡电路时,用来接石英晶体和电容;使用外部时钟,用来输入时钟脉冲。
ØP0口(39~32):
双向I/O口,既可作地址/数据总线口用,也可作普通I/O口用。
ØP1口(1~8):
准双向通用I/O口。
ØP2口(21~28):
准双向口,既可作地址总线口输出地址高8位,也可作普通I/O口用。
ØP3口(10~17):
多用途端口,既可作普通I/O口用,也可按每位定义的第二功能操作。
ØALE/PROG(30):
地址锁存信号输出端。
在访问片外存储器时,若ALE为有效高电平,则P0口输出地址低8位,可以用ALE信号做外部地址锁存器的锁存信号。
fALE=1/6fOSE,可一作系统中其他芯片的时钟源。
第二功能PROG是对8751的EPROM编程时的编程脉冲输入端。
ØRST(9):
复位信号输入端。
ØEA/Vpp(31):
内部和外部程序存储器选择线。
Ø
(29):
片外程序存储器选通信号,低电平有效。
单片机时钟电路介绍
时钟是时序的基础,89C52片内的一个反向放大器构成振荡器,可以由它产生时钟。
时钟可以由两种方式产生,即内部方式和外部方式,本课设用的是内部方式,其电路图如下图所示。
内部方式连接电路图
内部方式:
在XTAL1和XTAL2端外接石英晶体作定时单元,内部方向放大器自激振荡,产生时钟。
时钟发生器对振荡脉冲二分频,即若石英频率fosc=6MHz,则时钟频率=3MHz.因此,时钟是一个双向信号,由p1相和P2相构成。
Fosc可在1.2~12MHz之间选择,小电容可以取30uf左右。
单片机复位电路介绍
RST引脚是复位信号的输入端。
复位信号是高电平有效。
高电平有效的持续时间应为24个振荡周期以上。
若是时钟频率为6MHz,则复位信号至少应持续4us以上,才可以使单片机复位。
复位以后,07H写入栈指针SP,P0口~P3口均置1(允许输入),程序计数器PC和其他特殊功能寄存器SFR全部清零。
只要该脚保持高电平,89C52便循环复位。
当RST端由高变低后,89C52由ROM的0001H开始执行程序。
89C52的复位不影响内部RAM的内容。
当Vcc加电后,RAM的内容是随机的。
复位电路图
温度采集电路介绍
主要芯片功能介绍
温度传感器DS18B20是美国DALLAS半导体公司生产的单线智能数字温度传感器,可把温度信号直接转换为串行数字信号供计算机处理。
DS18B20的测温范围为-55°C~+125°C,固有测温分辨率为0.5°C,最高分辨率可达到0.5°C,只需一条连接线即可实现与单片机之间的双向通信。
芯片内部结构介绍
下面的方框图示出了DS18B20的主要部件。
DS18B20有三个主要数字部件:
1)64位激光ROM,2)温度传感器,3)非易失性温度报警触发器TH和TL。
芯片引脚功能介绍
ØVCC:
电源+5V。
ØGND:
接地。
ØI/O:
数据输入/输出引脚。
芯片应用电路介绍
如图所示为DS18B20与单片机之间的连接方式,DS18B20数据线I/O与AT89S52单片机P2.7口连接,同时I/O需要接入5.1K上拉电阻,确保传感器单总线正常通信.DS18B20将采集到的温度数据转换成9~12位(可编程)的数字量送往单片机进行处理.
液晶显示电路介绍
主要芯片功能介绍
LCD1602液晶显示模块为工业字符型液晶,能够同时显示16x02即32个字符。
(16列2行)
芯片内部结构介绍
LCD1602液晶显示模块的内部结构如下图所示分为三部分:
一为LCD控制器,二为LCD驱动器,三为LCD显示装置。
芯片引脚功能介绍
第1脚:
VSS为电源地
第2脚:
VDD接5V电源正极
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
第4脚:
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5脚:
RW为读写信号线,高电平
(1)时进行读操作,低电平(0)时进行写操作。
第6脚:
E(或EN)端为使能(enable)端。
第7~14脚:
D0~D7为8位双向数据端。
第15~16脚:
空脚或背灯电源。
15脚背光正极,16脚背光负极。
芯片应用电路介绍
LCD1602液晶显示模块与单片机连接的电路图
与PC连接的电路介绍
主要芯片功能介绍
MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。
芯片内部结构介绍
内部集成两个RS-232C接收器,可以分别接单片机的串行通信口或者实验板的其它串行通信接口。
232是电荷泵芯片,可以完成两路TTL/RS-232电平的转换。
芯片引脚功能介绍
第一部分是电荷泵电路。
由1、2、3、4、5、6脚和4只电容构成。
功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。
第二部分是数据转换通道。
由7、8、9、10、11、12、13、14脚构成两个数据通道。
其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。
8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。
TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
第三部分是供电。
15脚GND、16脚VCC(+5v)。
芯片应用电路介绍
MAX232芯片与单片机及PC连接的电路图
本章小结
注意:
除第一章绪论外,其他每一章都应该有一个本章小结
本章主要是关于本系统用到的硬件设计的介绍。
文中对MCS-51单片机进行了介绍,系统阐述了本设计用到的89C52芯片各管脚功能,并且对时钟脉冲电路、复位电路、温度采集和液晶显示电路进行了一一解释。
重点介绍了本系统的硬件原理图,对其进行了较为细致的说明。
系统软件调试环境介绍
编程软件介绍
单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。
机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(Vision)将这些部份组合在一起。
运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。
掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
软件功能
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
C51工具包的整体结构,其中Vision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。
然后分别由C51及A51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
Keil51的编译环境如图4-1所示。
图中:
标题栏:
显示当前编译的文件
菜单条:
有十项菜单可供选择,相应的所有操作命令均可在此菜单中查找;
工具栏:
常用命令的快捷图标按钮;
管理窗口:
显示工程文件的项目、各个寄存器值的变化、参考资料等;
信息窗口:
显示当前文件编译、运行等相关信息;
工作窗口:
各种文件的显示窗口。
图4-1Keil51的编译环境
软件应用流程
Keil51编译指南:
第1步:
打开Keil51软件,首先弹出一个开机启动画面。
第2步:
然后进入Keil51的开发界面。
下面简要介绍一下Keil51开发环境中各个区域的功能。
Keil51开发环境可以分为四个区域,分别为:
菜单条、项目文件管理窗口、代码编译窗口和代码编译信息窗口四个部分。
菜单条分为十项,所有的命令都可以在这里找到。
下面的命令是一些常用的菜单命令,如文件的打开、关闭及保存。
其中编译命令最为常用。
中间靠左是项目文件管理窗口,这里可以看到当前项目中所包含的所有带编译的文件。
项目文件管理窗口的右侧是代码编译窗口,这事我们最主要的工作区域。
最底层显示了代码编译的信息。
当代码有语法错误时,可以在这里轻松的找到问题的所在。
第3步:
下面以建立一个简单的项目为例,来说明Keil51开发项目的一般方法。
单击Project菜单项,选择NewProject项。
第4步:
此时弹出CreateNewProject对话框,选择合适的路径口,在文件名一栏中填入新工程的名字。
单击保存。
第5步:
根据所用的器件,选择CPU的型号,单击确定。
第6步:
Keil51询问是否生成默认的配置文件,这个可选可不选,这里选定。
单击Yes,观察项目文件管理窗口的变化。
第7步:
在File菜单下单击New选项,新建文件。
此时在代码窗口出现一“Text1”空白文档。
第8步:
在“Text1”中编辑完代码后,单击File菜单中的保存项,弹出保存对话框。
保存名写为text.c。
单击保存。
注意在对文件命名时必须加扩展名。
第9步:
在项目导航栏中SourceGroup上单击右键,选AddFiletoGroup‘SourceGroup1’。
第10步:
此时弹出AddFile对话框。
选中刚才保存的text.c文件。
单击Add。
此时在项目文件管理窗口中就会出现刚才所添加的文件text.c。
第11步:
单击快捷菜单栏中的编译按钮
,可以编译程序。
第12步:
单击Project菜单项,选择OptionforTarget‘Target1’选项。
在弹出的对话框中可以对Project进行总体配置。
第13步:
选择Output选项卡,单击CreateHEXFile,代码输出格式应为HEX-80。
第14步:
单击确定后,并重新编译。
可以看到编译成功之后,Build选项卡里又多了一项。
这是生成的HEX文件。
第15步:
单击Debug菜单项中的Start/StopDebugSession命令或工具栏中的
进入调试界面。
第16步:
单击调试界面Debug菜单项中的Go命令或工具栏中的
运行程序,单击StopRunning命令或
来结束程序。
观察运行结果,若结果正确,便可通过下载软件将它烧写到目标板上去。
这样,一个简单的Keil51下的项目就完成了。
注:
Keil51对汇编语言文件的编译调试步骤和对C语言的编译调试基本上是一样的,只是在第八步中用汇编语言进行代码的编写,并在保存文件时将扩展名加成.asm。
程序下载软件介绍
1安装好PL2303USB232(COM)驱动程序.在stc-isp-v3.91文件夹中双击STC-ISPV391.exe打开下载窗口,开启软件后选则MCU,我们选择STC89C52RC,打开你要下载的.hex文档。
设置好你的COM口通道,如这里是COM4就选择COM4.然后点击Download/下载
当你看到:
Chinese:
正在尝试与MCU/单片机握手连接...请将板上的开关电源关闭在打开。
STC单片机需要内部复位
你看到下面的提示表示你成功下载了
软件功能
STC_ISP_V4.80是由STC公司研发,可以向STC89C51、STC89C52等系列单片机内烧写程序。
可以设置波特率,串口等参数。
同时STC_ISP_V4.80还可以作为串口调试工具,用于串口收发数据的调试软件。
软件应用流程
STC下载线只用一根即可,为标准下在线(电子市场有售),线上有3个接口,分别为2个USB口和一个串行DB9母口。
它们的接法为:
分别接PC机USB取电、接开发板USB口供电和串行DB9母口接PC机COM1或COM2口。
与PC机和开发板连接完成之后,就可使用下载stc-isp软件将HEX文件写入单片机芯片中。
本章小结
本章主要介绍了系统软件调试的环境,包括KEIL51软件和程序下载软件的介绍以及它们的软件功能和软件应用流程。
系统程序设计
系统程序设计流程图
温度采集程序模块详细流程图
程序流程图对应程序代码
voiddelay_18B20(uinti)//延时1微秒
{
while(i--);
}
voidds18b20rst()/*ds18b20复位*/
{
unsignedcharx=0;
DQ=1;//DQ复位
delay_18B20(4);//延时
DQ=0;//DQ拉低
delay_18B20(100);//精确延时大于480us
DQ=1;//拉高
delay_18B20(40);
}
uchards18b20rd()/*读数据*/
{
unsignedchari=0;
unsignedchardat=0;
for(i=8;i>0;i--)
{
DQ=0;//给脉冲信号
dat>>=1;
DQ=1;//给脉冲信号
if(DQ)
dat|=0x80;
delay_18B20(10);
}
return(dat);
}
voidds18b20wr(ucharwdata)/*写数据*/
{
unsignedchari=0;
for(i=8;i>0;i--)
{
DQ=0;
DQ=wdata&0x01;
delay_18B20(10);
DQ=1;
wdata>>=1;
}
}
voidread_temp()/*读取温度值并转换*/
{
uchara1,b1;
uintavalue;//温度值
uchartflag;//温度正负标志
ds18b20rst();
ds18b20wr(0xcc);//*跳过读序列号*/
ds18b20wr(0x44);//*启动温度转换*/
delay();
ds18b20rst();
ds18b20wr(0xcc);//*跳过读序列号*/
ds18b20wr(0xbe);//*读取温度*/
a1=ds18b20rd();
b1=ds18b20rd();
avalue=(b1<<8);
avalue+=a1;
if(avalue<0x0fff)
tflag=0;
else
{
avalue=~avalue+1;
tflag=1;
}
avalue=avalue*(0.625);//温度值扩大10倍,精确到1位小数
send_command(0x80);
send_data('T');//显示“T”
send_command(0x81);
send_data(':
');//显示“:
”
send_T(0x89,avalue,tflag);//在1602上显示温度值
if(tflag==0)
t=avalue;
elset=0-avalue;
}
按键程序模块详细流程图
程序流程图对应程序代码
/********设置最大值********/
voidsetmax()
{
while
(1)
{
if(KEY4==0)
{
max=max+10;
time();
}
elseif(KEY5==0)
{
max=max-10;
time();
}
if(KEY3==0)break;
send_command(0x01);
if(max>=0)
send_T(0xC9,max,0);
else
send_T(0xC9,0-max,1);
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 温度 采集 系统 设计