温度控制毕业论文

更新时间:2024-06-05 23:19:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

家用空调智能温控系统设计与仿真

第一章 引言

(一)课题研究背景

随着科技的进步,社会的发展,以及温度传感器应用在各个领域,智能化已经成为现代温度测控系统发展的主要方向。空调家家户户都能用得到,随着时代的进步,现在的空调已经变得越来越智能化。到目前为止, 国内外各个公司开发的空调控制系统都已经摆脱了第一代、第二代的模拟化,都已经实现了数字化,也就是第三代智能化系统已经实现。这一代系统使用快捷、方便,所以许多工程上都应用了温度控制器。以单片机和温度传感器为基础完成了这个课题,这使我更加深入的把握了单片机的工作特点,还有体会到了理论知识和实践操作中的区别与联系,体会到了单片机应用非常的广泛。

(二)课题研究的目的和意义

社会在变革,时代在发展,温度测量及控制在时代的变革下也变得越来越重要。本设计通过单片机和温度传感器完成了温度控制系统。首先,温度传感器将室内温度收集起来,然后温度数据通过单片机显示在液晶屏LCD上,最后通过单片机的控制使温度保持在设定的范围内。所有的温度数据都要通过液晶显示器LCD完整的显示出来。相关的温度数据可以根据时钟存储。

通过该课程的学习使我对空调系统中计算机控制有一个全面的了解,掌握了简单的计算机控制系统软硬件的设计方法,还学会了软件操作的能力,进一步锻炼了我在嵌入式控制方面的实际工作能力。

(三)设计任务与要求

系统要求利用单片机设计一个智能空调温控系统,能够实时的检测并显示室内温度,能够利用键盘设置温度,并且和室内温度进行比较,当设定的温度高于室内温度时,系统能够自动驱动加热系统工作,使室内温度升高,当设定温度低

于室温时,系统能够驱动制冷系统工作,使室温降低,当两者的温度一样时,不做动作。

二、硬件电路设计

(一)系统设计的框架

我设计的本次系统大致框架如下图所示,它由八个模块组成,单片机是里面最主要的模块,它是这个系统的关键部分。

图1 系统设计框架

(二)单片机最小系统

每个系统都有它本身的核心器件,单片机作为本次设计最重要的器件,下面简单介绍一下它的基本结构和它的最小系统。它为51系列的8位单片机,它由微处理器、程序存储器、数据存储器、四个八位I/O口、计数器、看门狗定时器等等。好多器件都有自己的最小系统,单片机也不例外,它的最小系统也不是完全一样,下图就是我设计的一个基本的最小系统。

图2 单片机最小系统

(三)、单片机的选型

采用单片机STC89C52来完成本次的家用空调的智能温度控制系统,它的特点如下:

1、STC89C52单片机简介

目前,工业检测领域广泛的应用51系列单片机进行设备检测, STC89C52单片机为深圳宏晶科技有限公司生产的单片机,它也是51系列单片机,与C51单片机只有很小的区别,将微型计算机的各个组成部分集成到了一小块半导体硅片上。其中包括:片内振荡器;时钟产生电路;一个全双工UART串行I/O口;五个中断控制系统;两个定时器/记数器;四个并行I/O接口;4K片内程序存储器;一个数据存储器;一个8位的微型处理器CPU;内部总线。但是微调电容和石英晶体需要外接。最高的允许振荡频率是12MHZ。

2、单片机的发展历史

我把单片机的发展分为4个阶段,它们是:

第一阶段:单片机初级阶段,初级阶段的单片机功能还很简单。只能完成很少的功能。

第二阶段:低性能单片机阶段。低性能的单片机可以一次处理8位数据,这个阶段的单片机对单片机的改革与发展起到了一定的促进作用。

第三阶段:高性能的单片机阶段。

第四阶段:推出了16位的、32位的单片机,而且8位的单片机性能得到深度的完善。功能更加齐全。这个阶段的单片机可以完成工业控制的绝大部分的任务,推动了科技的飞速发展。

3、单片机的应用

单片机凭借着它重量轻、体积小,应用到嵌入式系统较容易的特点,得到

了特别广泛的应用。首先可以应用于大部分工业控制系统和检测系统中,可以实现智能控制和工业过程控制等一系列的控制;其次,还可以应用例如家用空调、电冰箱、电热水器等家用电器当中;再次,应用在通信领域,比如各类手机、传真机等;最后,应用在各大高科技领域,例如军事领域,参与导弹控制、各种雷达系统等;还可以用在医疗器械领域,比如智能血压计、普通CT仪等。可见,单片机给我们的生活带来了极大的便利,使我们的生活多姿多彩。 4、STC89C52单片机时序

STC89C52的一个机器周期由6个状态组成,分别是s1、s2、s3、s4、s5、s6,每个状态又持续2个(P1和P2)振荡周期。如果采用12MHz的晶体振荡器,那么每个机器周期为1us,在一般情况下,内部的寄存器到寄存器的传输一般发生在P2期间,而不是P1期间。

5、STC89C52单片机的引脚介绍

STC89C52单片机有40个引脚,有电源引脚端、时钟引脚、控制引脚、并行I/O口引脚等。这些引脚有的拥有双向功能,它们组合在一起,共同完成单片机大的强大功能。STC89C52单片机的封装有好多种,例如双列直插式、贴片式等。下图是它的一种最常见的封装。

图2.STC89C52单片机封装

下面叙述一下引脚的功能。 (1)电源引脚VCC和VSS VCC(40脚):接+5V电源正端; VSS(20脚):接+5V电源正端。 (2)外接晶振引脚XTAL2和XTAL1

XTAL1(19脚):接外部石英晶体的一端。在单片机内部,它为反相运算放大器一个输入端,当采用外部时钟时,对于不同的单片机此引脚又有不同的接法,如表1所示:

表1

HMOS单片机 CHOMS单片机

XTAL2(18脚):采用外部时钟时,如下表所示:

表2

HMOS单片机 CHMOS单片机 外部振荡信号输入端 悬空不接 引脚接地 外部振荡信号输入端

而在单片机内部时,接到反相运算放大器输出端 (3)控制引脚

控制引脚有ALE/PROG、EA/VPP、RST/VPD和PSEN等4种形式。

(A).RST/VPD(9脚):复位,高电平有效,单片机的掉电保护或上电复位引脚。在它的上面加上2个周期的高电平,就会让它复位,它的内部各个部分都恢复到原位,就像长跑运动员都会到起点一样,程序就会从头开始执行,单片机内部全部清零。当正常的情况下,它为低电平。

如果由于某些原因是单片机正常供电的电源不能正常工作了,那么就有可能使存在随机存储器里的数据丢掉。VPD就是在单片机不能正常通电时,提供一个应急电源。接上VPD后,就可以保证随机存储器中的数据不会因断电而消失,保证了存储的安全性。

(B).ALE/ PROG (30脚):当访问外部存储器时(程序和数据存储器),它一个机器周期内两次把信号输出,来作为低8位锁存信号。

(C).PSEN(29脚): 低电平有效,用来扩展外部存储器。扩展外部程序存储器时,由PSEN通知芯片,表示要从芯片中读取指令。对于内部存储器,PSEN无效,悬空。 (D).EA/VPP(31脚):EA为第一功能端,外部程序存储器能不能进行访问的控制端口。当EA端为高电平时,单片机会按着由内到外的顺序执行程序,先执行片内的程序指令,如果超出了片内的范围,就会执行片外存储器的程序指令,如果EA为0时,只执行外部存储器的程序指令,片内的不起作用。VPP作为此引脚的第二功能,对片内存储器进行编程时,该引脚接入编程电压 (4)输入/输出(I/O)引脚

(A).P0口(39脚~22脚):由P0.0~P0.7 口组成,当它作为输入/输出接口使用时,要必须要加上拉电阻,才能正常工作。当接扩展I/O口时,P0口为地址总线和数据总线的分时间的复合使用的端口。

(B).P1口(1脚~8脚):P1.0~P1.7口,有第一功能和第二功,在此就不赘述了。值得一提的是第二功能,一般只用P1.1和P1.0,而对于FLASH进行程序校验和编程时,可以用到P1.5、P1.6、P1.7。

(C).P2口(21脚~28脚):P2.0~P2.7口,一般可用作准双向I/O口,不需要像P0口那样加上拉电阻,因为它内部自己具有电阻。

(D).P3口(10脚~17脚):P3.0~P3.7口。它有两个功能,第一个功能和P2口完全一样,第二功能见下表

表3 P3口第二功能的定义 引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

综合上面所介绍的,可以归纳出下面两点:

1).它许多引脚基本上都具备第2功能,这样就简化了引脚。

2).它对外呈现3总线的形式,P0口作为数据总线,由P2、P1口作为地址总线。

第2功能 RXD(串行数据输入口) TXD(串行数据输出口) INT0(外部中断0输入) INT1(外部中断1输入) T0(计数器0外部计数的输入) T1(计数器1外部计数的输入) WR(外部RAM写选通输出) RD(外部RAM读选通输出) (四)温度传感器测量温度的原理及流程

斜坡累加器 预 置 计数比较器 低温度系数 振 荡 器 减法计数器 预 置 减到0 温度寄存器 高温度系数 振 荡 器 减法计数器 图3 测温原理内部装置

减到0 初始化 DS18B20 跳过ROM 匹配 温度变换 延时1S 数码管显示 转换成显示码 读暂存器 跳过ROM 匹配 图4 DS18B20测温流程

(五)温度传感器电路

DS18B20是美国的一家公司发明的,它是在模拟的基础上开发的数字温度传感器。它的集成度很高,本设计采用这个传感器有下面的原因:

(1)系统的特性:测温范围是-55℃~+125℃ ,测温的精度为士0.5℃;精度是9到12位,而且是可变的,并且能够二进制串行输出; 12位精度转换的最长时间是750ms;可以超低功耗的工作。

(2)系统复杂称度: 本设计采用的温度传感器是一个单总线形式的元器件,一条总线上可以接许多个传感器,接法十分方便,只连接单片机的一个引脚,测温时不需要任何的外部元器件。

(3)系统成本:体积特别小,而成本也非常低,只有十几块钱。所以它的应用特别广泛。

如下图所示,它的结构非常简单只有三个引脚:电源引脚VDD、数据传输端口DQ 、 GND。DS18B20有两种供电方式:数据线供电、外部供电。对于第一种供电方式,DS18B20总线的上拉电阻由单片机的任意一个I/O接口来完成。 本次设计我采用的是外部供电方式的温度传感器,它的原理图在下面,其中3脚接5V的电源,2脚接一个4.7V的上拉电阻,电阻另一端连接到3脚,并且接到单片机的P1.0口上,1脚则是接地就行。

图5 温度传感器接口

(六)系统电源电路的设计

选择LM2596来完成我本次设计的电源部分,它是属于降压型的,集成度也很高,输出电流3A,输入24V的电压,而输出只有5V,稳定性非常好,负载调节特性能力非常强,线性性能相对来说也是比较好的。

本器件有一些优点:在正常工作的情况下,振荡频率误差很小,它是小于±15%的,输出电压的误差在±4%以下;具有良好的自我保护电路,正常情况下, 80μA的待机电流,就可以完全达到从外部断电的效果,既方便又省电。 电源电路设计如下图10所示。

图6 系统电源模块

(七)LCD显示电路

下图是液晶显示屏LCD1602原理图,它的接法如下: 1脚VSS:电源地。 2脚VDD:电源正极。

3脚VO:液晶显示对比度调节端。 4脚RS:数据/命令选择端。 5脚RW:读写选择端。 6脚E:使能信号。

7~14脚D0~D7:数据口。

15脚:背光电源正极。 16脚:背光电源负极。

图7 液晶显示接口电路

(八)串口通讯电路

采用MAX232A作为转换芯片,来完成通讯电路,它与MAX232内部原理基本上是一样的,只是外接电容不同而已。它的主要特点是:

1、单5V电源工作。 2、 LinBiCMOSTM工艺技术。 3、 ±30V输入电平。

4、 两个驱动器、两个接收器。 5、低电源电流:典型值是8mA。

下图中,16脚接VCC,15脚接地,14脚接TXD,13脚接RXD, MAX232A外围接一些电容。接口电路如下图所示:

图8 串口通讯接口电路

(九)按键接口电路

本设计采用了四个键盘来实现功能,它们分别接到了单片机的P2.0、P2.1、P2.2、P2.3口,另外都接有10K的上拉电阻,电阻的另一端接在一起接5V的电源。电路图如下图所示:

图8 键盘模块电路

(十)DS1302时钟电路

单片机的时钟电路如下图所示,它具有如下特点: 1、 2、 3、 4、

性能功高,功耗低。

带RAM的实时时钟电路。 工作电压为2.5V~5.5V。 与CPU同步通信。

它的接口原理图如下图9所示:

图9 时钟接口电路

(十一)存储器接口电路

采用AT24C256为存储器芯片,用它来完成存储器的电路,它的管脚说明如下表:

管脚名称 A0 A1 SDA SCL WP VCC VSS NC 下图就是它的电路图。

功能 地址输入 串行数据/地址 串行时钟 写保护 电源 接地 悬空,不连接

图10 存储器电路

三、系统软件设计用

主要用C语言来完成单片机编程的软件的设计,用它来实现所需的各种功能。主程序开始是先初始化,对单片机内部各个部分进行归位操作,然后,调用其他子程序完成整个系统的程序,实现要完成的功能。程序流程如图10所示。

初始化 开始 启动DS18B20 读温度 计算温度 LCD显示

图11系统程序流程图

(一)计算温度的子程序

本程序是读温度的程序。首先是开始,然后进行初始化,接着判断DS18B20是不是存在,如果存在执行ROM操作指令程序,还要执行存储器操作命令的程序,将数据存储在ROM中,最后,读取测量的温度值返回到主程序接着执行下面的程序。如果不存在,就说明温度传感器没有进行收集温度的操作,就直接返回到主程序。其程序流程图如图11所示。

图12读温度流程图

(二)按键处理子程序

按键处理子程序参数设置,它分两层分析,首先判断enter键是不是按下,如果没有按下,说明键盘没有输入,就返回主程序。如果判断按键真的按下了,就进行第二层指令的判断,看看enter_flag是不是1,如果是1的话,也要像上面那样返回主程序。如果不是1,则判断是否由enter按下,如果是,则会执行enter子程序flag=1,返回上一级程序;如果不是接着看是不是up和down按下,如果不是,顺序执行下面程序;最后通过display程序返回判断enter_flag是否为1的程序;如果按下了,都要通过自己下面的子程序返回到第二层的enter_flag是不是为1的程序,接着进行判断。它的程序流程框图如图12所示。

图12 温度转换流程图

(三)计算温度子程序

计算温度子程序主要负责将随机存储器中读取的值进行8421BCD码的转换运算,并判断是零上温度还是零下的温度。首先判断温度是零上还是零下,如果是零上的话,就要在温度数值的前面放上正号;接下来执行的是计算小数位温度

BCD值的指令,之后执行计算整数位温度BCD值的程序,最后结束程序。如果温度是零下的话,就将温度值进行补码运算并且在前面加负号,接下来和上面一样,执行计算小数位温度BCD值的指令,之后,执行计算整数位温度BCD值的程序,最后结束程序。它的程序流程图如图13所示。

计算小数位温度 BCD值 计算整数位温度 BCD值 结束 否 开始 温度零下? 是 温度值取补码置“—”标志 置“+”标志 图13 计算温度子程序

(四)显示数据是不是刷新子程序

本程序主要是对数据进行刷新操作。首先执行程序,将温度数据移入显示寄存器,接着判断十位是不是0,如果十位不是0,说明不用进位,所以数据不需要刷新,结束程序。如果十位是0,接下来判断百位是不是0,如果百位不是0,

则执行百位显示数据的程序,最后结束程序。当百位是0时,就说明数据需要更新,则执行十位数据显示符号百位不显示的程序。最后结束程序。完成数据的更新。程序流程图如图14。

结束 温度数据移入显示寄存器 否

十位数0? 是 百位数0? 是 十位数显示符号百位数不显示 百位数显示数据(不显示符号) 否 图14 数据刷新子程序

四、软件的应用

本次设计我采用的电脑软件有protel2004、proteus8、keil uv4来完成课题目标。protel2004主要来完成电路图的搭建,因为平时用的比较多,所以比较熟练。keil uv4用来完成C语言的编程,主要流程是创建工程—新建文件—添加已经创建的文件—写程序—程序编译—程序的调试。这里需要注意的是,一个总体的程序必须放在一个工程下面,否则的话会出现编译错误或者功能不能实现的问题。proteus8是比较先进的仿真软件,使用本软件时首先进行编辑环境和系统运行环境的设置。设置好各种环境后就可以进行所需要的虚拟仿真,实现功能,仿真步骤如下: 1、proteusISIS下的电路设计。

2、源程序生成目标代码文件(*.hex文件)。

3、调试与仿真。

五、结束语

基于单片机的C语言编程,灵活方便,我们可以根据设计的温度,升温、降温、制冷和制热。对周围温度做到实时地监控,方便进行及时的调整,这些用一个小小的遥控就可以实现,是不是很方便。

本系统的特点可以归纳如下:

1、随便设置一个参数就可以产生一个模拟温度,而且温度范围可以随便设定;

2、使用proteus和keil软件方便简单灵活,而且非常容易操作。对于设计现象的观察也是一目了然,非常清楚。

3、统计方便快捷,无需手动计算,系统自带的函数功能能很快计算出所需要的参数,比如最大值最小值和各温度所发生的时间。 4.非常易于观看实验效果,各个时刻的温度变化很容易显示出来,便于分析计算。

5、系统也可以自带的报警模块,会在当前温度高于设定的温度时发生告警;

6、控制方便,不用时轻轻按一下遥控器就可以完成关闭操作。 虽然在这次设计中,也遇到了一些困难,例如程序设计中出现了编程的错误、仿真的过程中出现现象错误等等,不过在老师的帮助下这些问题都得到了解决,锻炼了我坚强的意志。

本文来源:https://www.bwwdw.com/article/abh6.html

Top