基于单片机的温度测控系统设计.docx

上传人:b****6 文档编号:7073792 上传时间:2023-01-17 格式:DOCX 页数:26 大小:953.18KB
下载 相关 举报
基于单片机的温度测控系统设计.docx_第1页
第1页 / 共26页
基于单片机的温度测控系统设计.docx_第2页
第2页 / 共26页
基于单片机的温度测控系统设计.docx_第3页
第3页 / 共26页
基于单片机的温度测控系统设计.docx_第4页
第4页 / 共26页
基于单片机的温度测控系统设计.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

基于单片机的温度测控系统设计.docx

《基于单片机的温度测控系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的温度测控系统设计.docx(26页珍藏版)》请在冰豆网上搜索。

基于单片机的温度测控系统设计.docx

基于单片机的温度测控系统设计

中山职业技术学院

毕业设计论文

 

题目:

基于单片机的温度测控系统设计

系部:

电子信息工程系

专业:

计算机控制技术

班级:

09计控2班

学生姓名:

叶夕闻

学号:

5203090229

指导教师:

杨日容

完成时间:

2011年12月21日

摘要

本设计以AT89C51单片机为核心的温度控制系统,利用其工作原理和设计方法实现温度控制。

温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。

文中介绍了该控制系统的硬件部分,包括:

温度检测电路、温度控制电路、PC机与单片机和一些接口电路。

单片机通过对信号进行相应处理,从而实现温度控制的目的。

文中还着重介绍了软件设计部分,在这里采用模块化结构,主要模块有:

数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序。

关键词:

AT89S51单片机;DS18B20温度芯片;温度控制

 

Abstract

ThedesignoftheAT89C51microcontrollerasthecoreofthetemperaturecontrolsystem,theuseofitsworkingprincipleanddesignmethodforcontroloftemperature.DS18B20chiptemperaturesignalfromthetemperatureofthecollection,andtotransmitdigitalsignalstothemicrocontroller.Thispaperintroducesthecontrolsystemhardware,including:

temperaturedetectioncircuit,thetemperaturecontrolcircuit,PCandSingle-chip,andsomeoftheinterfacecircuit.SCMprocessingbythesignalcorrespondingtothetemperaturecontroltoachievethepurpose.Thearticlealsohighlightssomeofthesoftwaredesign,wherethemodularstructure,themainmodulesare:

digitaltubedisplayprogram,thekeyboardscanandkeyprocesses,thetemperaturesignalhandler,over-temperaturealarmprogram.

Keyword:

AT89S51microcontroller;DS18B20chiptemperature;Temperaturecontrol

 

引言

温度控制系统广泛应用于社会生活的各个领域,如家电、汽车、材料、电力电子等,常用的控制电路根据应用场合和所要求的性能指标有所不同,在工业企业中,如何提高温度控制对象的运行性能一直以来都是控制人员和现场技术人员努力解决的问题。

这类控制对象惯性大,滞后现象严重,存在很多不确定的因素,难以建立精确的数学模型,从而导致控制系统性能不佳,甚至出现控制不稳定、失控现象。

传统的继电器调温电路简单实用,但由于继电器动作频繁,可能会因触点不良而影响正常工作。

控制领域还大量采用传统的PID控制方式,但PID控制对象的模型难以建立,并且当扰动因素不明确时,参数调整不便仍是普遍存在的问题。

而采用数字温度传感器DS18B20,因其内部集成了A/D转换器,使得电路结构更加简单,而且减少了温度测量转换时的精度损失,使得测量温度更加精确。

数字温度传感器DS18B20只用一个引脚即可与单片机进行通信,大大减少了接线的麻烦,使得单片机更加具有扩展性。

DS18B20数字温度传感器具有微型化、封装简单、低功耗、高性能抗干扰能力、测量范围广、强易配处理器等优点,可使系统测量更加精确,电路更加简单。

实验测试证明,设计的样机系统测温控温精度均为0.1℃,测温控温的范围可达-55~+125℃,可应用于家用电器、汽车、冷库等领域

1总体设计

该系统将检测点的温度采集之后发送到单片机进行处理,并通过矩阵按键进行温度上限和下限的设定。

当温度超过设定值范围后,单片机将发出控制信号启动升温装置或降温装置,使温度恒定在一定的范围。

该系统主要包括温度采集模块、矩阵按键模块、主控模块、温度控制模块、测温控温显示模块等,其结构框图如图1所示:

图1系统总体框图

该系统由核心部件AT89C51来处理从键盘输入电路和温度采集电路送入的数据,并通过温度显示电路进行温度显示,由温度控制电路来进行相应的升温或降温的操作。

 

2硬件设计

2.1主控制模块

AT89C51是一个低功耗,高性能CMOS8位单片机,片内含8kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。

AT89S51具有如下特点:

40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时器,2

个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

单片机系统原理图如图2所示:

图2单片机系统原理图

由于系统控制方案简单,数据量也不大,考虑到电路的简单和成本等因素,因此在本设计中选用ATMEL公司的AT89C51单片机作为主控芯片。

主控模块采用单片机最小系统是由于AT89C51芯片内含有4kB的E2PROM,无需外扩存储器,电路简单可靠,其时钟频率为0~24MHz,并且价格低廉。

AT89C51提供以下标准功能:

4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时器/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟。

同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。

空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。

掉电方式何在RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直接到一个硬件复位。

AT89C51引角功能说明

Vcc:

电源电压

GND:

P0口:

P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口,作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端口。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

P1口:

P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号校验期间,P1接收低8位地址。

表1为P1口第二功能:

表1P1口第二功能

端口引脚

第二功能

P1.5

MOSI(用于ISP编程)

P1.6

MISO(用于ISP编程)

P1.7

SCK(用于ISP编程)

P2口:

P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流I。

在访问8位地址的外部数据存储器(如执行:

MOVX@Ri指令)时,P2口线上的内(也即特殊功能寄存器,在整个访问期间不改变。

Flash编程或校验时,P2也接收高位地址和其它控制信号。

P3口:

P3口是一组带有内部上拉电阻的8位双向I/O口。

P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。

作输入端口时,被外部拉低的P3口将用上拉电阻输出电流I。

P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,P3口的第二功能如下表2:

表2P3口的第二功能

端口功能

第二功能

端口引脚

第二功能

RXD(P3.0)

串行输入口

T0(P3.4)

定时/计数器0外部输入

TXD(P3.1)

串行输出口

T1(P3.5)

定时/计数器1外部输入

INT0(P3.2)

外中断0

WR(P3.6)

外部数据存储器写选通

INT1(P3.3)

外中断1

RD(P3.7)

外部数据存储器读选通

RST:

复位输入。

当振荡工作时,RST引脚出现两个机器周期上高电平将使单片机复位。

WDT益出将使该引脚输出高电平,设置SFRAUXR的DISRTO位(地址8EH)可打开或关闭该功能。

DISRTO位缺省为RESET输出高电平打开状态。

ALE/PROG:

当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。

即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出的正脉冲信号,因此它可对外输出时钟或用于定时目地,要注意的是:

第当访问外部数据存储器时将跳过一个ALE脉冲。

如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。

该位禁位后,只有一条MOVX和MOVC指令ALE才会被激活。

此外,该引脚伎被微弱拉高,单片机执行外部程序时,应设置ALE无效。

PSEN:

程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。

当访问外部数据存储器,高有两次有效的PSEN信号。

EA/VPP:

外部访问允许。

欲使CPU公访问外部程序存储器(地址0000H-FFFFH),EA端必须保持低电平(接地)。

需注意的是:

如果加密位LB1被编程,复位时内部会锁存EA端状态。

如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。

Flash存储器编程时,该引脚加上+12V的编程电压Vpp。

XTAL1:

振荡器反相放大器及内部时钟发生器的输入端。

XTAL2:

振荡器反相放大器的输出端。

AT89S51单片机内部构造及功能:

特殊功能寄存器:

特殊功能寄存器的片内空间分存如下图3-2所示。

这些地址并没有全部占用,没有占用的地址不可使用,读这些地址将得到一个随意的数值。

而写这些地址单元将不能得到预期的结果。

中断寄存器:

各中断允许控制位于IE寄存器,5个中断源的中断优先级控制位于IP寄存器。

双时钟指针寄存器:

为方便地访问内部和外部数据存储器,提供了两个16位数据指针寄存储器:

PD0位于SFR区块中的地址82H、83H和DP1位于地址84H、85H,当SFR中的位DPS=0时选择DP0,而DPS=1时选择DP1。

在使用前初始化DPS。

电源空闲标志:

电源空闲标志(POF)在特殊功能寄存储器SFR中PCON的第4位(PCON.4),电源打开时POF置“1”,它可由软件设置睡眠状态并不为复位所影响。

存储器结构:

MCS-51单片机内核采用程序存储器和数据存储器空间分开的结构,均具有64KB外部程序和数据的寻址空间。

程序存储器:

如果EA引脚接地(GND),全部程序均执行外部存储器。

在AT89S51,假如接至Vcc(电源+),程序首先执行从地址0000H-0FFFH(4KB)内部程序存储器,再执行地址为1000H-FFFFH(60KB)的外部程序存储器。

数据存储器:

在AT89S51的具有128字节的内部RAM,这128字节可利用直接或间接寻址方式访问,堆栈操作可利用间接寻址方式进行,128字节均可设置为堆栈区空间。

看门狗定时器(WDT):

WDT是为了解决CPU程序运行时可能进入混乱或死循环而设置,它由一个14bit计数器和看狗复位SFR(WDTRST)构成。

外部复位时,WDT默认为关闭状态,要打开WDT,必按顺序将01H和0E1H写到WDTRST寄存器,当启动了WDT,它会随晶体振荡器在每个机器周期计数,除硬件复位或WDT溢出复位外没有其它方法关闭WDT,当WDT溢出,将使RST引脚输出高电平的复位脉冲。

2.2键盘输入模块

单片机应用系统中除了复位按键有专门的复位电路,以及专一的复位功能外,其它的按键或键盘都是以开关状态来设置控制功能或输入数据。

键开关状态的可靠输入:

为了去抖动我采用软件方法,它是在检测到有键按下时,执行一个10ms的延时程序后,再确认该键电平是否仍保持闭合状态电平,如保持闭合状态电平则确认为真正键按下状态,从而消除了抖动影响

在这种行列式矩阵键盘非编码键盘的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。

当确认有按键按下后,下一步就要识别哪一个按键按下。

对键的识别通常有两种方法:

一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。

按键复位电路原理图如图3所示:

图3按键复位电路原理图

对照图示的键盘,说明线反转法工作原理。

首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。

方法是:

向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。

如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。

判断键盘中哪一个键被按下是通过将列线逐列置低电平后,检查行输入状态来实现的。

方法是:

依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。

2.3温度测试模块

DS18B20是DALLAS公司生产的一线式数字温度传感器,它具有微型化、低功耗、高性能抗干扰能力、强易配处理器等优点,特别适合用于构成多点温度测控系统,可直接将温度转化成串行数字信号(按9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片,它具有三引脚TO-92小体积封装形式,温度测量范围-55~+125℃,可编程为9~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可在远端引入,业可采用寄生电源方式产生,多个DS18B20可以并联到三根或者两根线上,CPU只需一根端口线就能与多个DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。

从而可以看出DS18B20可以非常方便的被用于远距离多点温度检测系统。

综上,在本系统中我采用温度芯片DS18B20测量温度。

该芯片的物理化学性很稳定,它能用做工业测温元件,且此元件线形较好。

在0—100摄氏度时,最大线形偏差小于1摄氏度。

该芯片直接向单片机传输数字信号,便于单片机处理及控制。

温度芯片DS18B20如图4所示:

图4温度芯片DS18B20

采用温度芯片DS18B20。

使用集成芯片,能够有效的减小外界的干扰,提高测量的精度,简化电路的结构。

为了使测得的温度更准确,采用了温度传感器DS18B20来获取当前温度,而DS18B20是采用I2C总线进行通信的,如图5所示,单片机使用P2.7端口与DS18B20的数据通讯端口相连接,并通过软件实现P2.7控制DS18B20的读和写。

单片机与DS18B20的通信如图5所示:

图5单片机与DS18B20的通信

2.4七段数码管显示模块

在本系统中采用了LED七段数码动态显示电路来显示温度值,显示范围在0-99之间。

LED显示器是单片机应用系统中常见的输出器件,而在单片机的应用上也是被广泛运用的。

如果需要显示的内容只有数码和某些字母,使用LED数码管是一种较好的选择。

LED数码管显示清晰、成本低廉、配置灵活,与单片机接口简单易行。

数码管如图6所示:

图6数码管

LED数码管作为显示字段的数码型显示器件,它是由若干个发光二极管组成的。

数码管显示原理图7所示:

图7数码管显示原理图

当发光二极管导通时,相应的一个点或一个笔画发亮,控制不同组合的二极管导通,就能显示出各种字符,常用的LED数码管有7段和“米”字段之分。

这种显示器有共阳极和共阴极两种。

共阴极LED显示器的发光二极管的阴极连在一起,通常此共阴极接地。

当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。

同样,共阳极LED显示器的发光二极管的阳极接在一起,通常此共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。

本次设计所用的LED数码管显示器为共阳极。

 

3软件设计

3.1设计思路、主程序流程图

根据所学知识,实现本系统的软件部分将使用汇编语言,要配合硬件部分实现输入一个需要恒定的温度值和偏差温度,与从温度传感器所获取的当前实际温度相比较,并向温度控制执行电路发出升温或降温的命令,在这一过程中将随时显示当前温度值和设置的温度值。

其主要实现的部分包括:

键盘输入、温度采集、数据转换、动态显示、温度控制等。

主程序流程图如图8所示:

图8主程序流程图

3.2温度采集子程序

温度采集子程序主要负责驱动外部的温度传感器DS18B20进行工作,通过串口通信方式向DS18B20写入ROM命令,并读取当前温度值,将读取的数据存放在26H-2EH存储单元,其中26H单元存放温度值的低位,27H单元存放温度值的高位,程序流程图如图9所示:

图9温度采集子程序流程图

3.3动态显示子程序

在该恒温系统中使用了两个两位的LED七段数码管来显示系统所采集的当前温度值和设置的温度值,为了不占用更多的单片机端口,在针对显示电路的设计时采用了动态显示的方案,而动态显示子程序的主要任务就是控制显示电路的扫描规律。

其程序流程图如图10所示:

图10动态显示子程序流程图

 

4系统调试

单片机应用系统样机组装好后,便可进入系统的在线(联仿真器)调试,其主要任务是排除样机硬件故障,并完善其硬件结构,试运行所设计的程序,排除程序错误,优化程序结构,使系统达到期望的功能,进而固化软件,使其产品化

4.1硬件调试

静态测试

 在样机加电之前,首先用万用表等工具,根据硬件电器原理图和装配图仔细检查样机线路的正确性,并核对元器件的型号、规格和安装是否符合要求。

应特别注意电源的走线,防止电源之间的短路和极性错误,并重点检查扩展系统总线(地址总线、数据总线和控制总线)是否存在相互间的短路或与其它信号线的短路。

第二步是加电后检查各个插件上引脚的电位,仔细测量各点电位是否正常,尤其应注意单片机插座上的各点电位,若有高压,联机时将会损坏仿真器。

第三步是在不加电情况下,除单片机以外,插上所有的元器件,最后用仿真适配器将样机的单片机插座和仿真器的仿真接口相连,为联机调试做准备。

  

4.2软件调试

软件调试所使用的方法有:

计算程序的调试方法、I/O处理程序的调试法等。

1.计算程序的调试方法

 计算程序的错误是一种静态的固定的错误,因此主要用单拍或断点运行方式来调试。

根据计算程序的功能,事先准备好一组测试数据。

调试时,用防真器的写命令,将数据写入计算程序的参数缓冲单元,然后从计算程序开始运行到结束,运行的结果和正确数据比较,如果对有的测试数据进行测试,都没有发生错误,则该计算程序调试成功;如果发现结果不正确,改用单步运行方式,即可检查出错误所在。

计算程序的修改视错误性质而定。

若是算法错误,那是根本性错误,应重新设计该程序;若是局部的指令有错,修改即可。

如果用于测试的数据没有全部覆盖实际计算的原始数据的类型,调试没有发现错误可能在系统运行过程中暴露出来。

2.I/O处理程序的调试

 对于A/D转换一类的I/O处理程序是实时处理程序,因此一般用全速断点运行方式或连续运行方式进行调试。

4.3调试结果

经硬件调试和软件调试后,最终调试结果温度为22.8℃。

如图11所示:

图11温度显示

 

5结论

在设计该系统的过程中我充分应用了在课堂上所学的相关理论知识,当把理论知识通过自己的双手变成实际后,使我对电路设计有了更多的了解,同时又产生了更浓厚的兴趣。

本系统的核心技术表现在温度采集、矩阵键盘输入和动态显示部分,其中温度采集的硬件部分使用温度传感器DS18B20,通过软件控制与DS18B20的串口通讯来进行温度采集;键盘输入采用键码的扫描来实现.。

为了实现这一系列功能我主动与指导老师交流,并且查阅了大量相关的书籍,在此过程中进一步锻炼了自己思考问题与解决问题的能力,巩固并提高了自己的单片机、数字电路、模拟电路等相关知识。

该系统实现的最终功能是控制外界温度,使温度恒定在一定的范围内,统所能测量温度的范围在0-99度之间,能恒定的范围是在1-98度之间,所以该系统在日常生活与生产中有较大的应用空间,特别是运用在养值业方面。

而在一些特殊的生产环境中,其需要恒温的范围远远超过了该系统,该恒温系统是不适用的,这也是该系统有待完善的地方。

 

致谢

三年的读书生活在这个季节即将划上一个句号,而于我的人生却只是一个逗号,我将面对又一次征程的开始。

在这三年的求学生涯中师长、亲友给与了我大力支持,在这个翠绿的季节我将迈开脚步走向远方,怀念,思索,长长的问号一个个在求学的路途中被知识的举手击碎,而人生的思考才刚刚开始。

感谢我教书育人的老师,我不是你们最出色的学生,而你们却是我最尊敬的老师。

大学时代的老师治学严谨,学识渊博,思想深邃,视野雄阔,为我营造了一种良好的精神氛围。

授人以鱼不如授人以渔,置身其间,耳濡目染,潜移默化,使我不仅接受了全新的思想观念,树立了宏伟的学术目标,领会了对待知识,走向社会的思考方式。

在这里尤其要感谢杨日容老师,从论文题目的选定到论文写作的指导,经由您悉心的点拨,再经思考后的领悟,常常让我有“山重水复疑无路,柳暗花明又一村”的感觉。

感谢父母,焉得谖草,言树之背,养育之恩,无以回报;感谢同学在我遇到困境时向我伸出援助之手,同窗之谊我们社会再续。

在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚谢意!

同时也感谢学院为我提供良好的做毕业设计的环境。

最后再一次感谢所有在毕业设计中曾经帮助过我的良师益友和同学,以及在设计中被我引用或参考的论著的作者。

 

附录

附录1

主程序代码

#include

#defineucharunsignedchar

#defineuintunsignedint

#defineD0P0

#defineucharunsignedchar

unsignedcharhour,min,sec,T50ms;

unsignedcharq,m,n,p;

sbit

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

当前位置:首页 > 教学研究 > 教学计划

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

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