基于STC89C52的温控系统设计.docx
《基于STC89C52的温控系统设计.docx》由会员分享,可在线阅读,更多相关《基于STC89C52的温控系统设计.docx(21页珍藏版)》请在冰豆网上搜索。
基于STC89C52的温控系统设计
泰州职业技术学院
毕业设计论文
题目:
基于STC89C52的温控系统设计
学生姓名
学号
1102030022
学院
信息工程学院
专业
电子信息工程技术
班级
11信息
(1)班
指导教师
2013年4月
摘要
随着信息技术的飞速发展,电子技术已渗透到社会生产、工业控制以及人们日常生活的各个方面。
单片机又称为嵌入式微型控制器,在智能仪表、工业控制、智能终端、通信设备、医疗器械、汽车电器、导航系统和家用电器等很多领域都有着广泛的应用,已成当今电子信息领域应用最广泛的技术之一。
本论文是采用单片机来实现温度显示。
以STC89C52单片机为核心的处理芯片,采用美国最新研发的18B20温度传感器来测量温度,LED数码管来显示检测到的温度。
它结构简单、成本低廉、精度高、使用性强。
解决了以前的误差大、精度低、操作复杂等各种问题。
以下详细介绍这简单又实用基于单片机的温度显示系统。
关键词:
STC89C52单片机、18B20温度传感、12864LCD显示频
第一章绪论
1.1温度传感器的意义
随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息基础的发展水平。
在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。
测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段:
①传统的分立式温度传感器、②模拟集成温度传感器、③智能集成温度传感器。
目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU)。
社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展,在工业生产中需要时时检测温度,其在农业及人们的日常生活中扮演着一个越来越重要的角色,它对人们的生活具有很大的影响,生活也日趋于数字化,而温度是科学技术中最基本的物理量之一,物理、化学、生物等学科都离不开温度。
在工业生产和实验研究中,像电力、化工、石油、冶金、航空航天、机械制造、粮食存储、酒类生产等领域内,温度常常是表征对象和过程状态的最重要的参数之一。
比如,发电厂锅炉的温度必须控制在一定的范围之内;许多化学反应的工艺过程必须在适当的温度下才能正常进行;炼油过程中,原油必须在不同的温度和压力条件下进行分馏才能得到汽油、柴油、煤油等产品。
没有合适的温度环境,许多电子设备就不能正常工作,粮仓的储粮就会变质霉烂,酒类的品质就没有保障。
第二章方案论证与系统结构
2.1方案论证
2.1.1单片机系统方面
世界上不同的国家的很多芯片厂商都生产不同的单片机,如生产的AT89C51、AT89S51、52等,Philips(飞利浦)公司的P80C54、P87C528等,Intel(英特尔)公司的i87C58、i87C51FC等Siemens(西门子)公司的C501-1R、C513A-H等,STC公司的STC89C51RC。
STC89C52RC等等,从成本角度和对芯片的熟悉角度来考虑,本次设计选择Atmel公司的STC89C52作为本次的单片机芯片。
2.1.2温度传感器
采用专用的集成温度传感器(如AD590、LM35/LM45)和数字化温度传感器如DS18B20、测温,数字化温度传感器具有接口简单、直接数字量输出、精确度高等优点。
DS18B20是DALLAS公司的最新单线数字温度传感器,它是世界上第一片支持“一线总线”接口的温度传感器。
一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,它的测量温度范围为-55~+125℃,在-10~+85℃范围内,精度为±0.5℃,现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量,如:
环境控制、设备或过程控制、测温类消费电子产品等,DS18B20支持3~5.5V的电压范围,使系统设计更灵活、更方便、更便宜、体积更小。
因此,本方案选用DS18B20作为温度测量传感器。
从精度方面和计算方面来考虑本次选择DS18B20作为本次的温度采集芯片。
2.1.3显示模块
带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集。
利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字。
也可完成图形显示。
低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶。
第三章硬件模块介绍
3.1STCT89S52单片机介绍
在众多的单片机系列中,STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系列可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C52产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,也适用于常规编程。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超高效的解决方案。
STC89C52具有以下标准功能:
8K字节Flash,256字节RAM,32位I/O口线,3个16位定时器/计数器,一个响亮2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,STC89C52可降至0HZ静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
STC89C52单片机为很多嵌入式控制系统提供了一种灵活性高且廉价的方案。
3.1.1STC89C52主要功能
1、兼容MCS51指令系统;
2、8k可反复擦写(大于1000次)FlashROM;
3、32个双向I/O口;
4、256x8bit内部RAM;
5、3个16位可编程定时/计数器中断;
6、时钟频率0-24MHz;
7、2个串行中断,可编程UART串行通道;
8、2个外部中断源,共8个中断源;
9、2个读写中断口线,3级加密位;
3.1.2STC89C52各引脚功能介绍:
STC89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,STC89C52可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
图3—1STC89C52
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口作为AT89C51的一些特殊功能口,管脚备选功能P3.0RXD(串行输入口),P3.1TXD(串行输出口),P3.2/INT0(外部中断0),P3.3/INT1(外部中断1),P3.4T0(记时器0外部输入),P3.5T1(记时器1外部输入),P3.6/WR(外部数据存储器写选通),P3.7/RD(外部数据存储器读选通)。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0,此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3.2DS18B20温度传感器介绍
温度传感器的种类众多,在应用与高精度、高可靠性的场合时DALLAS(达拉斯)公司生产的DS18B20温度传感器当仁不让。
超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
使得DS18B20更受欢迎。
对于我们普通的电子爱好者来说,DS18B20的优势更是我们学习单片机技术和开发温度相关的小产品的不二选择。
3.2.1DS18B20的主要特征:
1、独特的单线接口仅需要一个端口引脚进行通信;
2、多个DS18B20可以并联在惟一的三线上,实现多点组网功能;
3、无须外部器件;
4、可通过数据线供电,电压范围为3.0~5.5V;
5、零待机功耗;
6、温度以9或12位数字;
7、用户可定义报警设置;
8、报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;
3.2.2DS18B20引脚结构图及其功能描述
DS18B20的引脚排列见下图,其引脚功能描述见表3-1。
图3-2DS18B20实物图
表3-1DS18B20详细引脚功能描述
序号
名称
引脚功能描述
1
GND
地信号
2
DQ
数据输入、输出引脚。
开漏单总接线接口引脚。
当被用着在寄生电源下,也可以向器件提供电源。
3
VDD
可选择的VDD引脚。
当工作寄生电源时,此引脚必须接地。
3.2.3DS18B20内部结构
图3-3DS18B20内部结构
DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图3-3
所示
64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。
温度报警触发器TH和TL,可通过软件写入户报警上下限。
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。
高速暂存RAM的结构为8字节的存储器,结构如表3-2所示。
表3-2表高速暂存RAM
寄存器内存
字节地址
温度值低位(LSB)
0
温度值高位(MSB)
1
高温限制(TH)
2
低温限制(TL)
3
配置寄存器
4
保留
5
保留
6
保留
7
CRC校验位
8
高速暂存器RAM由9个字节的存储器组成。
第0-1个字节是温度的显示位;第2和第3个字节是复的TH和TL,同时第2和第3个字节的数字可以更新;第4个字节是配置寄存器,同时第4个字节的数字可以更新;第5、6、7三个字节是保留的。
可电擦除E2POROM又包括温度触发器TH和TL,以及一个配置寄存器。
3.2.4DS18B20接口电路和工作时序
DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。
另一种是寄生电源供电方式,如图3-4所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。
图3-4DS18B20的接口电路
当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。
采用寄生电源供电方式时VDD端接地。
由于单线制只有一根线,因此发送接口必须是三态的。
由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。
DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。
该协议定义了几种信号的时序:
初始化时序、写数据、读数据。
所有时序都是将主机作为主设备,单总线器件作为从设备。
而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收,数据和命令的传输都是低位在先。
(1)DS18B20的初始化时序
图3-5
1)先将数据线置高电平1;
2)延时(该时间要求不是很严格,但尽可能短一点);
3)数据线拉到低电平0;
4)延时750us(该时间范围可以再480-960us);
5)数据线拉到高电平1;
6)延时等待。
如果初始化成功则在15-60ms内产生一个由DS18B20返回的低电平0,据该状态可以确定它的存在。
但应注意,不能无限等待,不然会是程序进入死循环,所以要进行超时判断;
7)若CPU读到数据线上的低电平0后,还要进行延时,其延时的时间从发出高电平算起最少480us;
8)将数据线再次拉到高电平1后结束。
(2)DS18B20的写数据
图3-6
1)数据线先置低电平0;
2)延时确定的时间为15us;
3)按从低位到高位的顺序发送数据(一次只发送一位);
4)延时时间为45us;
5)将数据线拉到高电平1;
6)重复1)-5)步骤,直到发送完整个字节;
7)最后将数据线拉到1。
(3)DS18B20的读数据
图3-7
1)将数据线拉高到1;
2)延时2us;
3)将数据线拉低到0;
4)延时6us;
5)将数据线拉高到1;
6)延时4us;
7)读数据线的状态得到一个状态位,并进行数据处理;
8)重复1)-7)步骤,直到读取完一个字节。
3.312864液晶显示屏
带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集。
利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字,也可完成图形显示,低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
基本特性:
(1)、低电源电压(VDD:
+3.0-+5.5V);
(2)、显示分辨率:
128×64点;
(3)、内置汉字字库,提供8192个16×16点阵汉字(简繁体可选);
(4)、内置128个16×8点阵字符;
(5)、2MHZ时钟频率;
(6)、显示方式:
STN、半透、正显;
(7)、驱动方式:
1/32DUTY,1/5BIAS;
(8)、视角方向:
6点;
(9)、背光方式:
侧部高亮白色LED,功耗仅为普通LED的1/5—1/10;
(10)、通讯方式:
串行、并口可选;
(11)、内置DC-DC转换电路,无需外加负压;
第四章流程图
根据硬件电路图,综合自己的设计思路,先画出各子程序流程图,再根据流程图编好程序,最后组成系统的整体程序。
4.1系统温度采集流程图
本文的温度采集流程图,如图4.1所示:
图4-1温度采集流程图
第五章软件模块
5.1Keil软件
5.1.1Keil软件使用方法简介:
KeilC51软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,汇编语言和C语言的程序设计,界面友好,易学易用。
下面介绍KeilC51软件的使用方法。
进入KeilC51后,屏幕如5-1图所示。
几秒钟后出现编辑界简单程序的调试。
图5-1进入KeilC51后的编辑界面
学习程序设计语言、学习某种程序软件,最好的方法是直接操作实践。
下面通过简单的编程、调试,引导大家学习KeilC51软件的基本使用方法和基本的调试技巧。
(1)新建工程
单击Project菜单,如图5-2所示,在弹出的下拉菜单中选中NewProject选项,
图5-2新建工程
然后选择你要保存的路径,输入工程文件的名字,比如保存到D盘的CMJ51文件夹里,工程文件的名字为CMJ1。
如图5-3所示,然后点击保存。
图5-3保存工程
这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keilc51几乎支持所有的51核的单片机,我这里还是以大家用的比较多的Atmel的89C52来说明,如下图所示,选择89C52之后,右边栏是对这个单片机的基本的说明,然后点击确定。
图5-4选择单片机型号
完成上一步骤后,屏幕如下图所示:
图5-5添加完单片机后的窗口界面
(2)新建文件
在图5-6中,单击“File”菜单,再下拉菜单中单击“New”选项,
图5-6添加文件
新建文件后屏幕如下图所示:
图5-7添加完文件后的窗口界面
此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了。
图5—8一开始显示的时间
图5—9时间跳过后的显示温度,测量的温度
第六章总结与展望
经过两年的学习,终于完成了我的温度传感器的设计,虽然没有完全达到设计的要求,但从心底里说,还是比较高兴的。
从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单片机便是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程中的最大收获。
致谢
在论文完成之际,我首先向关心帮助和指导我的指导老师李平表示衷心的感谢并致以崇高的敬意!
在论文工作中,遇到了编写程序的问题,一直得到李平老师的亲切关怀和悉心指导,使我很快的解决了问题。
李平老师以其渊博的学识、严谨的治学态度、求实的工作作风和她敏捷的思维给我留下了深刻的印象,我将终生难忘。
再一次向她表示衷心的感谢,感谢她为学生营造的浓郁学术氛围,以及学习、生活上的无私帮助!
值此论文完成之际,谨向李平老师致以最崇高的谢意!
在学校的学习生活即将结束,回顾两年多来的学习经历,面对现在的收获,我感到无限欣慰。
为此,我向热心帮助过我的所有老师和同学表示由衷的感谢!
特别感谢我的师兄李训合对我的学习和生活所提供的大力支持和关心!
还要感谢一直关心帮助我成长的室友张敏,陈红霞,蒋涛!
在我即将完成学业之际,我深深地感谢我的家人给予我的全力支持!
最后,衷心地感谢在百忙之中评阅论文和参加答辩的各位专家、教授!
参考文献
[1]景东升,单片机自动灌溉控制系统研究、设计及应用.北京农业工程大学,1994;
[2]武庆生,仇梅单片机原理与应用.电子科技大学出版,1998,12;
[3]朱定华,单片机原理与接口技术.电子工业出版社,2001,4;
[4]刘瑞新,单片机原理及应用教程.机械工业出版社,2003,7;
[5」吴普特,牛文全,郝宏科.现代化高效节水灌溉设施.化学工业出版社,2002b,5;
[6]刘连吉,ISD单片语音录放器件及电路实现[J].青岛海洋大学学报,2003;
[7]李朝青,单片机原理及接口技术(修订版)[M].北京:
北京航空航天大学出版社,1998;
[8]阎石,数字电子技术基础(第四版)[M].高等教育出版社,2000年5月第一版;
[9]胡汉才,单片机原理及其接口技术[M].清华大学出版社,2000年5月第一版;
[10]何立民,单片机高级教程[M].北京航空航天大学出版社,2000年5月第一版;
[11]陈汝全,电子技术常用器件应用手册[M].第二版,机械工业出版社,2002年5月第一版;
[12]谭浩强,C程序设计[M].清华大学出版社,1999年12月;
附录1
/***********主函数开始******************************************/
voidmain(void)
{
Delay400Ms();//启动等待,等LCD讲入工作状态
LCDInit();//LCM初始化
Delay5Ms();//延时片刻(可不要)
while
(1){
LCDClear();
DisplayListChar(0,1,uctech);//显示字库中的中文数字
DisplayListChar(0,2,net);//显示字库中的中文数字
DisplayListChar(0,3,mcu);//显示字库中的中文
DisplayListChar(0,4,qq);//显示字库中的中文数字
Delay400Ms();
Delay400Ms();
Delay400Ms();
Delay400Ms();
LCDFlash();//闪烁效果
}
}
/*****