|
基于单片机的温度控制系统的设计 |
|
|
河北工业大学
毕业论文
作者:XXX学号:XXXXXX
学院:
系(专业):
题目:基于单片机的温度控制系统的设计
指导者:
评阅者:
XXXX年XX月XX日
河北工业大学毕业论文
毕业论文中文摘要
题目:基于单片机的温度控制系统的设计
摘要:
本设计以AT89S51单片机为核心的温度控制系统的工作原理和设计方法。
温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。文中介
绍了该控制系统的硬件部分,包括:温度检测电路、温度控制电路、PC机与单片
机串口通讯电路和一些接口电路。单片机通过对信号进行相应处理,从而实现温
度控制的目的。文中还着重介绍了软件设计部分,在这里采用模块化结构,主要
模块有:数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、继电
器控制程序、超温报警程序。
关键词:AT89S51单片机DS18B20温度芯片温度控制串口通讯
1
河北工业大学毕业论文
毕业论文外文摘要
TitleBasedonMonolithicIntegratedCircuit''sTemperature
ControlSystem''sDesign
Abstract
Thisdesigntakeat89S51monolithicintegratedcircuitascoretemperature
controlsystem''sprincipleofworkanddesignmethod.Thetemperature
signalbythetemperaturechipDS18B20gathering,andtransmitsbydigital
signal''swayforthemonolithicintegratedcircuit.Inthearticle
introducedthiscontrolsystem''shardwarepart,including:Temperature
examinationelectriccircuit,temperature-controlcircuit,PCmachineand
monolithicintegratedcircuitserialportcommunicationchannelandsome
interfacecircuit.Themonolithicintegratedcircuitthroughcarrieson
correspondingprocessingtothesignal,thusrealizesthetemperature
controlgoal.Inthearticlealsoemphaticallyintroducedthesoftware
designpart,usesthemodularstructureinhere,themainmoduleincludes:
Nixietubedisplaysequence,keyboardscanningandpressedkeydisposal
procedure,temperaturesignalprocessingprocedure,black-whitecontrol
procedure,excesstemperaturewarningprocedure.
Keywords:AT89S51MonolithicIntegratedCircuit;DS18B20Temperature
Chip;TemperatureControl;SerialPortCommunication
1
河北工业大学毕业论文
目次
1引言…………………………………………………………………………………1
2设计要求……………………………………………………………………………1
3工作原理……………………………………………………………………………1
4方案设计与论证……………………………………………………………………2
4.1主控制部分………………………………………………………………………3
4.2测量部分…………………………………………………………………………3
5各单元的设计………………………………………………………………………8
5.1键盘单元……………………………………………………………………………8
5.2温度控制及超温和超温警报单元………………………………………………10
5.3温度控制器件电路……………………………………………………………………11
5.4温度测试单元……………………………………………………………………11
5.5七段数码管显示单元…………………………………………………………………11
5.6接口通讯单元……………………………………………………………………13
6电源输入单元……………………………………………………………………14
7程序设计…………………………………………………………………………15
7.1概述………………………………………………………………………………15
7.2程序结构分析……………………………………………………………………16
7.3主程序……………………………………………………………………………17
8.测设分析…………………………………………………………………………17
结论……………………………………………………………………………………18
参考文献………………………………………………………………………………19
致谢……………………………………………………………………………………20
附录A使用说明………………………………………………………………………21
附录B程序清单………………………………………………………………………21
1
河北工业大学毕业论文
1引言
温度控制系统广泛应用于社会生活的各个领域,如家电、汽车、材料、电力
电子等,常用的控制电路根据应用场合和所要求的性能指标有所不同,在工业企
业中,如何提高温度控制对象的运行性能一直以来都是控制人员和现场技术人员努
力解决的问题。这类控制对象惯性大,滞后现象严重,存在很多不确定的因素,难以
建立精确的数学模型,从而导致控制系统性能不佳,甚至出现控制不稳定、失控现
象。传统的继电器调温电路简单实用,但由于继电器动作频繁,可能会因触点不良
而影响正常工作。控制领域还大量采用传统的PID控制方式,但PID控制对象的模
型难以建立,并且当扰动因素不明确时,参数调整不便仍是普遍存在的问题。而采用
数字温度传感器DS18B20,因其内部集成了A/D转换器,使得电路结构更加简单,
而且减少了温度测量转换时的精度损失,使得测量温度更加精确。数字温度传感器
DS18B20只用一个引脚即可与单片机进行通信,大大减少了接线的麻烦,使得单片
机更加具有扩展性。由于DS18B20芯片的小型化,更加可以通过单跳数据线就可以
和主电路连接,故可以把数字温度传感器DS18B20做成探头,探入到狭小的地方,
增加了实用性。更能串接多个数字温度传感器DS18B20进行范围的温度检测。
2设计要求
设计基于单片计算机的温度控制器,用于控制温度。具体要求如下:
1.温度连续可调,范围为0℃-40℃
2.超调量σ%≤20%
3.温度误差≤±0.5℃
4.人-机对话方便
3工作原理
1
河北工业大学毕业论文
温度传感器DS18B20从设备环境的不同位置采集温度,单片机AT89S51获取采
集的温度值,经处理后得到当前环境中一个比较稳定的温度值,再根据当前设定的温
度上下限值,通过加热和降温对当前温度进行调整。当采集的温度经处理后超过设定
温度的上限时,单片机通过三极管驱动继电器开启降温设备(压缩制冷器),当采集
的温度经处理后低于设定温度的下时,单片机通过三极管驱动继电器开启升温设备
(加热器)。
当由于环境温度变化太剧烈或由于加热或降温设备出现故障,或者温度传感头出
现故障导致在一段时间内不能将环境温度调整到规定的温度限内的时候,单片机通过
三极管驱动扬声器发出警笛声。
系统中将通过串口通讯连接PC机存储温度变化时的历史数据,以便观察整个温
度的控制过程及监控温度的变化全过程。
超温报警
AT89S51
8BITCPU
键盘电路
输入电源
DS18B20温度芯片
数据传输
数据显示
继电器1
压缩制冷器
MAX232电平转换
芯片片
PC机
加热器继电器2
3-1工作原理图
4方案设计
2
河北工业大学毕业论文
4.1温度测量部分方案
DS18B20是DALLAS公司生产的一线式数字温度传感器,它具有微型化、低功耗、
高性能抗干扰能力、强易配处理器等优点,特别适合用于构成多点温度测控系统,可
直接将温度转化成串行数字信号(按9位二进制数字)给单片机处理,且在同一总线
上可以挂接多个传感器芯片,它具有三引脚TO-92小体积封装形式,温度测量范围-
55~+125℃,可编程为9~12位A/D转换精度,测温分辨率可达0.0625℃,被测温
度用符号扩展的16位数字量方式串行输出,其工作电源既可在远端引入,业可采用
寄生电源方式产生,多个DS18B20可以并联到三根或者两根线上,CPU只需一根端口
线就能与多个DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电
路。从而可以看出DS18B20可以非常方便的被用于远距离多点温度检测系统。
综上,在本系统中我采用温度芯片DS18B20测量温度。该芯片的物理化学性很稳
定,它能用做工业测温元件,且此元件线形较好。在0—100摄氏度时,最大线形偏
差小于1摄氏度。该芯片直接向单片机传输数字信号,便于单片机处理及控制。
图4-1温度芯片DS18B20
4.2主控制部分方案
AT89S51是一个低功耗,高性能CMOS8位单片机,片内含8kBytesISP(In-system
programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司
的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,
芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的
AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下
特点:40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存
储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,
2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟
振荡器。
3
河北工业大学毕业论文
此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空
闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉
电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复
位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
由于系统控制方案简单,数据量也不大,考虑到电路的简单和成本等因素,因此
在本设计中选用ATMEL公司的AT89S51单片机作为主控芯片。主控模块采用单片
机最小系统是由于AT89S51芯片内含有4kB的E2PROM,无需外扩存储器,电路简
单可靠,其时钟频率为0~24MHz,并且价格低廉,批量价在10元以内。
其主要功能特性:
兼容MCS-51指令系统4k可反复擦写(>1000次)ISPFlashROM
32个双向I/O口4.5-5.5V工作电压
2个16位可编程定时/计数器时钟频率0-33MHz
全双工UART串行中断口线128x8bit内部RAM
2个外部中断源低功耗空闲和省电模式
中断唤醒省电模式3级加密位
看门狗(WDT)电路软件设置空闲和省电功能
灵活的ISP字节和分页编程双数据寄存器指针
可以看出AT89S51提供以下标准功能:4K字节Flash闪速存储器,128字节内
部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时器/计数器,
一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟。同时,AT89S51
可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止
CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式
何在RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直接到一个硬件复
位。
AT89S51引角功能说明
Vcc:电源电压
GND:地
P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口,作
为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入
端口。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和
4
河北工业大学毕业论文
数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字
节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸
收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉
到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被
外部信号校验期间,P1接收低8位地址。表4-1为P1口第二功能。
表4-1P1口第二功能
端口引脚第二功能
P1.5MOSI(用于ISP编程)
P1.6MISO(用于ISP编程)
P1.7SCK(用于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口的
第二功能如下表4-2。
表4-2P3口的第二功能
端口功能第二功能端口引脚第二功能
RXD(P3.0)串行输入口T0(P3.4)定时/计数器0外部输入
TXD(P3.1)串行输出口T1(P3.5)定时/计数器1外部输入
INT0(P3.2)外中断0WR(P3.6)外部数据存储器写选通
INT1(P3.3)外中断1RD(P3.7)外部数据存储器读选通
RST:复位输入。当振荡工作时,RST引脚出现两个机器周期上高电平将使单片机
5
河北工业大学毕业论文
复位。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寄存器。图4-2为AUXR辅助寄存器。
6
河北工业大学毕业论文
图4-2AUXR辅助寄存器
双时钟指针寄存器:为方便地访问内部和外部数据存储器,提供了两个16位数据
指针寄存储器:PD0位于SFR区块中的地址82H、83H和DP1位于地址84H、85H,当SFR
中的位DPS=0时选择DP0,而DPS=1时选择DP1。在使用前初始化DPS。
图4-3双时钟指针寄存器
电源空闲标志:电源空闲标志(POF)在特殊功能寄存储器SFR中PCON的第4位
(PCON.4),电源打开时POF置“1”,它可由软件设置睡眠状态并不为复位所影响。
存储器结构:MCS-51单片机内核采用程序存储器和数据存储器空间分开的结构,
均具有64KB外部程序和数据的寻址空间。
7
程序存储器:如果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引脚输出高电平的复位脉冲。引脚图详见图4-4
图4-4AT89S51单片机引脚图
5各单元的设计
5.1键盘单元
单片机应用系统中除了复位按键有专门的复位电路,以及专一的复位功能外,其
它的按键或键盘都是以开关状态来设置控制功能或输入数据。
键开关状态的可靠输入:为了去抖动我采用软件方法,它是在检测到有键按下
时,执行一个10ms的延时程序后,再确认该键电平是否仍保持闭合状态电平,如保
持闭合状态电平则确认为真正键按下状态,从而消除了抖动影响
8
河北工业大学毕业论文
在这种行列式矩阵键盘非编码键盘的单片机系统中,键盘处理程序首先执行等待
按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按
键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度
较快的线反转法。
对照图示的44键盘,说明线反转法工作原理。首先辨别键盘中有无键按下,有
单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全
扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。如果
有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。判断键盘中哪
一个键被按下是通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依
次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如
果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。
键盘共有16个按键,用于方便设定温度。
…,数字按键,输入数字0----9;
09
,设置的确认,修改设置温度时进行确认;
确认
设置的清除,修改设置温度时进行删除;
清除
开启电源
开启
关闭电源
关闭
显示及设置转换到温度点1,按此按键后,显示预设置温度的数码管
F1
闪烁;
F2
显示及设置转换到温度点2,按此按键后,显示预设置温度的数码管
闪烁;
9
河北工业大学毕业论文
表5-1键盘的按键分布
P2.00123
P2.14567
P2.289F1F2
P2.3清除开启关闭确定
P2.4P2.5P2.6P2.7
5.2温度控制及超温和超温警报单元
当采集的温度经处理后超过规定温度上限时,单片机通过P1.4输出控制信号驱
动三极管D1,使继电器K1开启降温设备(压缩制冷设备):当采集的温度经处
理后低于设定温度下限时,单片机通过P1.5输出控制信号驱动三极管D2,使继电
器K2开启升温设备(加热器1)。当由于环境温度变化太剧烈或由于加热或降温
设备出现故障,或者温度传感头出现故障导致在一段时间内不能将环境温度调整到规
定的温度限内的时候,单片机通过三极管驱动扬声器发出警笛声。具体电路连接如图
5-1所示。
图5-1具体电路连接图
10
河北工业大学毕业论文
5.3温度测试单元
采用温度芯片DS18B20。使用集成芯片,能够有效的减小外界的干扰,提高测量
的精度,简化电路的结构。
5.4温度控制器件电路
单片机通过三极管控制继电器的通断,最后达到控制电热器的目的。
当温度未达到要求时,单片机发送高电平信号使三极管饱和导通,继电器使电源
与电热器接通,电热器加热。温度慢慢升高。
当温度上升到预定温度时,单片机发送低电平信号三极管进入截止状态,继电器
的弹片打到另一侧,使电热器与电源断开,电热器停止加热。
继电器电路中有一个三极管8050的保护电路,即将一个二极管反向接到三机管
的两端。连接方法如图5-2所示。
图5-2单片机控制信号
其原理是:当继电器突然断电时,继电器产生很大的反向电流。二极管的作用是
将反向电流分流,使流过三级管8050的电流比较小,达到保护三极管8050的作用。
5.5七段数码管显示单元
本部分电路主要使用七段数码管和移位寄存器芯片74LS164。单片机通过I2C总
线将要显示的数据信号传送到移位寄存器芯片74LS164寄存,再由移位寄存器控制数
码管的显示,从而实现移位寄存点亮数码管显示。由于单片机的时钟频率达到12M,
移位寄存器的移位速度相当快,所以我们根本看不到数据是一位一位传输的。从人类
视觉的角度上看,就仿佛是全部数码管同时显示的一样。具体见实际连线图如图5-3。
当清除端(CLEAR)为低电平时,输出端(QA-QH)均为低电平。串行数据输入
端(A,B)可控制数据。当A、B任意一个为低电平,则禁止新数据输入,在时钟端
11
河北工业大学毕业论文
(CLOCK)脉冲上升沿作用下Q0为低电平。当A、B有一个为高电平,则另一个就
允许输入数据,并在CLOCK上升沿作用下决定Q0的状态,逻辑封装图如图5-3:
图5-3逻辑封装图
引出端符号:CLOCK时钟输入端;CLEAR同步清除输入端(低电平有效);A,B串
行数据输入端;QA-QH输出端。真值表:表5-2
表5-2真值表
a
bf
c
g
d
e
VCC1
2
3
4
5
6
7
a
b
c
d
e
f
g
8
dp
dp
9
DS6
a
bf
c
g
d
e
VCC1
2
3
4
5
6
7
a
b
c
d
e
f
g
8
dp
dp
9
DS7
a
bf
c
g
d
e
VCC1
2
3
4
5
6
7
a
b
c
d
e
f
g
8
dp
dp
9
DS8
a
bf
c
g
d
e
VCC1
2
3
4
5
6
7
a
b
c
d
e
f
g
8
dp
dp
9
DS9
a
bf
c
g
d
e
VCC1
2
3
4
5
6
7
a
b
c
d
e
f
g
8
dp
dp
9
DS13
a
bf
c
g
d
e
VCC1
2
3
4
5
6
7
a
b
c
d
e
f
g
8
dp
dp
9
DS16
A
1
B
2
QA
3
QB
4
QC
5
QD
6
CLK
8
CLR
9
QE
10
QF
11
QG
12
QH
13
U16
74LS164
A
1
B
2
QA
3
QB
4
QC
5
QD
6
CLK
8
CLR
9
QE
10
QF
11
QG
12
QH
13
U13
74LS164
A
1
B
2
QA
3
QB
4
QC
5
QD
6
CLK
8
CLR
9
QE
10
QF
11
QG
12
QH
13
U12
74LS164
A
1
B
2
QA
3
QB
4
QC
5
QD
6
CLK
8
CLR
9
QE
10
QF
11
QG
12
QH
13
U14
74LS164
A
1
B
2
QA
3
QB
4
QC
5
QD
6
CLK
8
CLR
9
QE
10
QF
11
QG
12
QH
13
U15
74LS164
A
1
B
2
QA
3
QB
4
QC
5
QD
6
CLK
8
CLR
9
QE
10
QF
11
QG
12
QH
13
U9
74LS164+5V+5V+5V+5V+5V+5V
R1R2R3R4R5R6
+5V+5V+5V+5V+5V+5V
SDA
SCL
图5-4实际连线图
12
河北工业大学毕业论文
5.6接口通讯单元
max232资料简介:
该产品是由德州仪器公司(TI)推出的一款兼容RS232标准的芯片。由于电脑串
口rs232电平是-10v+10v,而一般的单片机应用系统的信号电压是ttl电平0
+5v,max232就是用来进行电平转换的,该器件包含2驱动器、2接收器和一个电压发
生器电路提供TIA/EIA-232-F电平。
该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成
5-VTTL/CMOS电平。每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。
主要特点:
1、单5V电源工作
2、LinBiCMOSTM工艺技术
3、两个驱动器及两个接收器
4、±30V输入电平
5、低电源电流:典型值是8mA
6、符合甚至优于ANSI标准EIA/TIA-232-E及ITU推荐标准V.28
7、ESD保护大于MIL-STD-883(方法3015)标准的2000V
51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行
串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而
单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我采用了专用芯片
MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更
简单可靠。
在本设计中采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3
根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是
对我来说已经足够使用了,电路如下图所示,MAX232的第10脚和单片机的11脚连
接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接,串口通讯具体如
图5-5
13
河北工业大学毕业论文
14
图5-5通讯接口连线图
6电源输入部分
控制系统主控制部分电源需要用5V直流电源供电,其电路如图6-1所示,把频率
为50Hz、有效值为220V的单相交流电压转换为幅值稳定的5V直流电压。其主要原理是
把单相交流电经过电源变压器、整流电路、滤波电路、稳压电路转换成稳定的直流
电压。
由于输入电压为电网电压,一般情况下所需直流电压的数值和电网电压的有效值
相差较大,因而电源变压器的作用显现出来起到降压作用。降压后还是交流电压,所
以需要整流电路把交流电压转换成直流电压。由于经整流电路整流后的电压含有较大
的交流分量,会影响到负载电路的正常工作。需通过低通滤波电路滤波,使输出电压
平滑。稳压电路的功能是使输出直流电压基本不受电网电压波动和负载电阻变化的影
响,从而获得稳定性足够高的直流电压。本电路使用集成稳压芯片7805解决了电源稳
压问题。
河北工业大学毕业论文
15
D1
T1
220uF
C5
220uF
C8
0.1uF
C6
0.1uF
C7
7805
123
~220V
输出5V直流电压
5V
470
R3
Res2
D2
VCC
电源指示
图6-1电源部分连线图
7程序设计
7.1程序结构分析
主程序调用了5个子程序,分别是数码管显示程序、键盘扫描及按键处理程序、
温度信号处理程序、继电器控制程序、单片机与PC机串口通讯程序。
键盘扫描电路及按键处理程序:实现键盘的输入按键的识别及进入相应的程序。
温度信号处理程序:对温度芯片送过来的数据进行处理,进行判断和显示。
数码管显示程序:向数码的显示送数,控制系统的显示部分。
继电器控制程序:控制继电器动作
串口通讯程序:实现PC机与单片机通讯,将温度数据传送给PC机。
河北工业大学毕业论文
16
图7-1程序结构图
7.2主程序
河北工业大学毕业论文
程序开始的时候先设置初始化,然后就控制数码管显示当前温度。接着就判断
F1、F2按键是否被按下。按下F1进入温度控制点1的程序、按下F2进入温度控
制点2的程序。程序控制设置温度的两个数码管闪烁的,此时键盘输入有效。有按
键按下的时候进入按键处理程序。按下“确定”按键后,程序进入判断程序和继电
器控制程序。继电器动作后,程序回到显示当前程序,并开始循环。
7.3程序代码(详见附录程序清单)
8.测设分析
1、测试环境
环境温度28摄氏度,室内面积20平方米
测试仪器:数字万用表,温度计0----100摄氏度
2、测试方法
使系统运行,采用温度计同时测量室内度变化情况,得出系统测量的温度。
3、测试结果
设定温度由0摄氏度到40摄氏度
标定温差<=1摄氏度调节时间15s(具体视现场情况)
静态误差<=0.5摄氏度最大超调量1摄氏度
4、通过测试分析,对于实际室内的温度控制,可以再提出以下2点方法:
Ⅰ增加传感器个数,对各个温度传感器采集的数据进行求算术平均,可得到较为
准确的温度值。Ⅱ对实际室内的温度控制,可采用功率较大的电炉,并且通过风扇
对箱内温度进行充分搅和,降温设备可采用空气压缩机等制冷设备。
5、通过实验测试和分析,发现虽然传感器的温度采集精度最高可得到0.06℃,
但测试得到的数据最小间隔为0.03℃。通过分析,当对浮点数求平均处理时,遇
到同一时刻两个传感头采集的温度相差不大,使0.06℃时求出平均温度变为0.03
℃为了解该数据是否真实,可采用一个高精度的数字温度计测试,发现读出的值与
其基本一致,由此推断如果在同一时间增加采集温度的个数,则可以进一步提高温度
的精度。
17
河北工业大学毕业论文
结论
在工业生产和日常生活中,对温度控制系统的要求,主要是保证温度在一定温度
范围内变化,稳定性好,不振荡,对系统的快速性要求不高。在论文中简单分析了单
片机温度控制系统设计过程及实现方法。本系统的测温范围为-10℃~40℃,温度检
测系统根据用户设定的温度范围完成一定范围的温度控制。
89S51的时钟最高可达12M,I/O口可达32个,高的时钟频率和丰富的I/O,都
为我们实现电路功能提供了非常有利的条件。同时也因为开发环境友好,易用,方便,
大大加快本系统设计开发。
本制作的设计中使用了继电器控制的只是插座电路,因此,该系统的可扩展性很
强。随着插入插座的电器的不同,可以实现许多其它功能的电路。
18
河北工业大学毕业论文
参考文献
1曹巧媛主编.单片机原理及应用(第二版).北京:电子工业出版社,2002
2全国大学生电子设计竞赛组委会编.第五届全国大学生电子设计竞赛获奖作品
选编(2001),北京:北京理工大学出版社,2003
3何力民编.单片机高级教程.北京:北京航空大学出版社,2000
4金发庆等编.传感器技术与应用.北京机械工业出版社,2002
5王锦标,方崇智.过程计算机控制.北京:清华大学出版社,1997;36~40
6邵惠鹤.工业过程高级控制.上海:上海交通大学出版社,1997;58—62,78
—101
7胡寿松.自动控制原理.北京:国防工业出版社,2000;103—124
8刘伯春.智能PID调节器的设计及应用.电子自动化,1995;(3):20~25
9KatsuhikoOgata.ModenControlEngineering.Publishinghouseof
electronicsindustry,2000:196—202
10周润景,张丽娜.基于PROTEUS的电路及单片机系统设计与仿真[M].北京:
航空航天
大学出版社,2006.P321~P326
11王忠飞,胥芳.MCS-51单片机原理及嵌入式系统应用[M].西安:西安电子
科技大学出
版社,2007.P268-273
12刘国钧,陈绍业,王凤翥.图书馆目录.第1版.北京:高等教育出版社,1957
13傅承义,陈运泰,祁贵中.地球物理学基础.北京:科学出版社,1985,447
14华罗庚,王元.论一致分布与近似分析.中国科学,1973(4):339~357
15张筑生.微分半动力系统的不变集研究:[学位论文],北京:数学系统学研
究所,1983
16Microchip24C01B/02B8位PIC?单片机产品手册[ED/OL],
http://www.chuandong.com/publish/data/2007/2/data_14_27926.html.
17赵娜,赵刚,于珍珠等.基于51单片机的温度测量系统[J].微计算机信息,
2007,1-2:146-148。
18BorkoH,BernierCL.Indexingconceptsandmethods.NewYork:Academic
19
河北工业大学毕业论文
致谢
致谢
三年的读书生活在这个季节即将划上一个句号,而于我的人生却只是一个逗号,
我将面对又一次征程的开始。在这三年的求学生涯中师长、亲友给与了我大力支持,
在这个翠绿的季节我将迈开脚步走向远方,怀念,思索,长长的问号一个个在求学的
路途中被知识的举手击碎,而人生的思考才刚刚开始。感谢我教书育人的老师,我不
是你们最出色的学生,而你们却是我最尊敬的老师。大学时代的老师治学严谨,学识
渊博,思想深邃,视野雄阔,为我营造了一种良好的精神氛围。授人以鱼不如授人以
渔,置身其间,耳濡目染,潜移默化,使我不仅接受了全新的思想观念,树立了宏伟
的学术目标,领会了对待知识,走向社会的思考方式。在这里尤其要感谢刘建林老师,
从论文题目的选定到论文写作的指导,经由您悉心的点拨,再经思考后的领悟,常常让
我有“山重水复疑无路,柳暗花明又一村”。
感谢父母,焉得谖草,言树之背,养育之恩,无以回报;感谢同学在我遇到困境
时向我伸出援助之手,同窗之谊我们社会再续;感谢这段时间对我帮助给与关怀的叔
叔,阿姨,是你们让我看到了人间真情暖人心,激励我时时刻刻努力,奋发向上,排
除万难勇往直前。在论文即将完成之际,我的心情无法平静,从开始进入课题到论文
的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚
挚谢意!
同时也感谢学院为我提供良好的做毕业设计的环境。
最后再一次感谢所有在毕业设计中曾经帮助过我的良师益友和同学,以及在设
计中被我引用或参考的论著的作者。
20
河北工业大学毕业论文
附录A:使用说明
1、将温度控制箱上的开关全部打到“关”的位置
2、将温度芯片插到温度控制箱的指定位置
3、用串口线将温度控制箱与计算机相连,打开相应的应用程序
4、将用电器的插头插到温度控制箱的插座
5、接上温度控制箱的电源、并打开开关。在温度控制箱上的数码管显示出当前温度
6、按F1键,进入温度点1的设置。通过键盘设置所需要的温度,然后按“确定”键。
系统会将设置值与当前值进行比较,通过温度芯片的反馈,单片机控制加热或冷却水
的温度,使水的温度稳定在设置的温度上。从而达到控制温度的作用。
7、按F2键则相应进入温度点2的设置。与F1键的使用方法相同。
8、当要关闭系统时,先关掉开关,然后再拔掉电源。
框图表示:
系统开始工
作,直至工作
结束,关闭电
按F1或F2进行
温度点1或温度
点2的设定
接上温度芯片,连
接好电路,接上电
源,打开开关
确认温度控制箱
上的开关全部打
到关的状态
附录B:程序清单
主程序:
ORG0000H;DS18B20.ASM
DS18SLEQU41H;用于保存读出温度的低8位
DS18SHEQU40H;用于保存读出温度的高8位
DS18FIGEQU8H;是否检测到DS18B20标志位
A_BIT1EQU31H;数码管个位数存放内存位置
B_BIT1EQU32H;数码管十位数存放内存位置
D_BIT1EQU35H;数码管百位数存放内存位置
DS18CD1EQU42H;DS18CD1-DS18CD8暂存64位ROM
DS18CD2EQU43H;从低到高
DS18CD3EQU44H
DS18CD4EQU45H
21
河北工业大学毕业论文
DS18CD5EQU46H
DS18CD6EQU47H
DS18CD7EQU48H
DS18CD8EQU49H
DS1864BEQU4AH
DS18ADSEQU4BH
DS18DQEQUP1.0;30H,31H,32H,33H:
X个位十位X
MOD7:MOVSP,#60H
LCALLGET_TEMPER;调用读温度子程序
LCALLREADCODE
AJMPMOD7
INIT_1820:;DS18B20初始化
SETBDS18DQ
CLRDS18DQ;延时,500US低MC
MOVR7,#250
DJNZR7,$
MOVR7,#150
DJNZR7,$
SETBDS18DQ;释放总线
LCALLDELAY60US;15-60US的等待时间
MOVR6,#4
SETDSDQ:
LCALLDELAY60US
JNBDS18DQ,SETDSDQFH;60-240US内是否有返回信号,为0跳
DJNZR6,SETDSDQ
MOVR7,#250
DJNZR7,$
CLRDS18FIG
RET
22
河北工业大学毕业论文
SETDSDQFH:
SETBDS18FIG
MOVR7,#250
DJNZR7,$
MOVR7,#100
DJNZR7,$
RET;
数据处理程序:
TEMP0:INCA
AJMPTEMP1
TEMPCOV:MOVA,DS18SL;数据处理子程序
TEMPCOV
MOVB,#16
DIVAB
JBB.3,TEMP0
TEMP1:MOV34H,A;将DS18SL的高四位右移四位,存入
34H中(温度值)
MOVA,B;将DS18SL的低四位X10/16得小数后
一位数.
MOVB,#10
MULAB
MOVB,#16
DIVAB
MOV30H,A;将小数后一位数.存入30H中
MOVA,DS18SH;DS18SH中存放高8位数,权
重16
MOVB,#16
MULAB
ADDA,34H;34H中存入温度值的整数部分
MOVB,#10
23
河北工业大学毕业论文
DIVAB
MOV31H,B;个位存入31H中
MOVB,#10;
DIVAB;
MOV32H,B;十位存入32H中
MOVB,#10;
DIVAB;
MOV35H,B;百位存入33H中
MOVA,DS18SH
MOV33H,#10H;
JBACC.7,EXIT7
MOV33H,#00H
EXIT7:RET
GET_TEMPER:;读出转换后的温度值,并显示
SETBDS18DQ
LCALLINIT_1820;先复位DS18B20
JBDS18FIG,TSS2
RET;判断DS1820是否存在?若DS18B20不存在则返
TSS2:
MOVDS18ADS,#0
DS18JX:
LCALLDS18CODP
MOVA,DS18ADS
ADDA,#9
MOVDS18ADS,A
CJNEA,#63,DS18JX
RET
DS18CODP:
LCALLMRCOVT;转换指定的DS18B20的温度
LCALLMRRDTEDP;显示温度
24
河北工业大学毕业论文
RET
TEMP:
LCALLINIT_1820
JBDS18FIG,NEXT4
RET
NEXT4:
MOVDS18ADS,#9
MOVA,#0CCH;SKIPROM
LCALLWRITE_1820
MOVA,#44H;温度转换命令
LCALLWRITE_1820
LCALLDELAY1S
LCALLMRRDTEDP
RET;写DS18B20的子程序(有具体的时序要求)
WRITE_1820:;写DS18B20
MOVR5,#8
DS18JXWE:
SETBDS18DQ;初始化
CLRDS18DQ
CLRDS18DQ
MOVR7,#5
DJNZR7,$;拉低15US内,写入数据
CLRC
RRCA
MOVDS18DQ,C
LCALLDELAY60US;持续60US
SETBDS18DQ;写完一个位
DJNZR5,DS18JXWE
RET
READ_1820_CODE:;读取CODE64位
25
河北工业大学毕业论文
MOVR4,#8;读8次数
MOVR1,#DS18CD1;低位地址存在R1
DS18JXRD3:
MOVR5,#8;8位数据
DS18JXRD2:
SETBDS18DQ
CLRDS18DQ;前两句完成初始化
NOP
NOP;延时至少1US
SETBDS18DQ;上升沿,并在,15US内读数
MOVR7,#5
DJNZR7,$
MOVC,DS18DQ
RRCA
LCALLDELAY60US;读时序,最少60US
DJNZR5,DS18JXRD2
MOV@R1,A
INCR1
DJNZR4,DS18JXRD3
SETBDS18DQ
RET;读DS18B20的程序,从DS18B20中读出两个字节的温度数
据
READ_18200:
MOVR4,#2;读两次数
MOVR1,#DS18SL;低位地址存在R1
DS18JXRD1:
MOVR5,#8;8位数据
DS18JXRD:
SETBDS18DQ
CLRDS18DQ;前两句完成初始化
26
河北工业大学毕业论文
NOP
NOP;延时至少1US
SETBDS18DQ;上升沿,并在,15US内读数
MOVR7,#5
DJNZR7,$
MOVC,DS18DQ
RRCA
LCALLDELAY60US;读时序,最少60US
DJNZR5,DS18JXRD
MOV@R1,A
DECR1
DJNZR4,DS18JXRD1
SETBDS18DQ
RET
READ_1820_1:;读取1位
SETBDS18DQ
CLRDS18DQ
CLRDS18DQ
CLRDS18DQ
SETBDS18DQ
MOVR7,#5
DJNZR7,$
JBDS18DQ,WEFH
LCALLDELAY10MS
WEFH:
LCALLDELAY60US
RET
READCODE:;读取64位ROM,并显示出来
SETBDS18DQ
LCALLINIT_1820
27
河北工业大学毕业论文
JBDS18FIG,NEXT
RET
NEXT:
MOVA,#33H
LCALLWRITE_1820
LCALLREAD_1820_CODE
LCALLDISPLAYCD
RET
DS1864SEN:;送出64个位的数据
MOVR4,#8
MOVDPTR,#DS18TAB
DS1864SEN1:
MOVA,DS1864B
MOVCA,@A+DPTR
LCALLWRITE_1820
INCDS1864B
DJNZR4,DS1864SEN1
RET
MATCHROM:
LCALLINIT_1820
MOVA,#55H;MARCHROM
LCALLWRITE_1820
MOVDS1864B,DS18ADS
LCALLDS1864SEN
RET
MRCOVT:;匹配ROM并发出温度转换命令
LCALLMATCHROM
MOVA,#44H;发出温度转换命令
LCALLWRITE_1820
LCALLDELAY1S
28
河北工业大学毕业论文
RET
MRRDTEDP:;匹配ROM并显示转换温度
LCALLINIT_1820
LCALLMATCHROM
MOVA,#0BEH;发出读取命令
LCALLWRITE_1820
LCALLREAD_18200
LCALLTEMPCOV
LCALLDISPLAY;调用数码管显示子程序
RET
键盘子程序:
START:NOP;程序开始
LCALLCH_KEY;检查键盘
AJMPSTART;返回
CH_KEY:LCALLKS;检查有没有按键按下
JNZLK1
AJMPCH_KEY
LK1:LCALLT12MS
ACALLKS
JNZLK2
RET
LK2:NOP
LCALLSBIE;按键识别子程序
MOVBUFF,A;送缓冲区以识别是数字键还是功能键?
LCALLCH_KF;判断按键功能。
JBFLAG1,KEY_FUN;标志为1,则为功能键
超温报警程序:
DIV:MOVR2,#08H;1kz持续时间
DIV1:MOVR3,#0FAH
DIV2:CPLP3.3;输出1khz方波
29
河北工业大学毕业论文
LCALLD5ms;调用延时程序1
DJNZR3,DLV2;持续1秒
DJNZR2,DIV1
MOVR2,#10H;2khz持续时间
DIV3:MOVR3,#0FAH
DI4:CPLP3.3;输出2khz方波
LCALLD25ms;调用延时程序2
DJNZR3,DIV4
DJNZR2,DIV3
SIMPDIV;反复循环
D5MS:MOVR7,#0FFH;延时子程序1
LOOP:NOP
NOP
DJNZR7,LOOP
RET
D25MS:MOVR6,#0FFH;延时子程序2
LIN:DJNZR6,LIN
RET
继电器控制程序:
START1:MOVSP,#60H
JD:CPLP2.6;P2.6取反
LCALLDELAY;延时
NOP
SJMPJD
DELAY:MOVR0,#0AH;延时子程序(1秒)
DELAY33:MOVR1,#00H
DELAY44:MOVR2,#0B2H
DJNZR2,$
DJNZR1,DELAY44
DJNZR0,DELAY33
30
河北工业大学毕业论文
31
LJMPSTART1
RET
|
|
|
|
|
|
|
|
|
|
|