您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 基于STC89C52温度控制系统
1基于单片机STC89C52温控系统摘要文章介绍了基于单片机STC89C52[1]温度控制的硬件设计和软件设计,它在很多领域都广泛运用,而该系统硬件部分的重心在于单片机。DS18B20温度测量系统是以STC89C52单片机作为控制核心,智能温度传感器DS18B20为控制对象,用2极共阳数码管显示,用蜂鸣器报警,发光二极管作为指示灯,运用C语言[2]实现系统的各种功能。设计完成了DS18B20的温度采集电路、显示电路、温度处理电路、报警提示电路。关键词温度传感器DS18B20;单片机STC89C52;蜂鸣器;发光二极管1.设计分析(1)温度设定范围为0~99℃,最小区分度为1℃,标定温度≤1℃,当外界温度高于或低于设定值时蜂鸣器报警。(2)用十进制2极共阳数码管显示实际的温度,最小区分度为1℃。(3)四键盘输入,设置温度加、减、确定、复位,实现对电路的控制。2.设计方案实现温度控制的方法主要有以下几种:方案一:采用纯硬件的闭环控制系统。该系统的优点在于速度较快,但可靠性比较差控制精度比较低、灵活性小、线路复杂、调试、安装都不方便。且要实现题目所有的要求难度较大。方案二:FPGA/CPLD或采用带有IP内核的FPGA/CPLD方式。即用FPGA/CPLD完成采集,存储,显示及A/D等功能,由IP核实现人机交互及信号测量分析等功能。这种方案的优点在于系统结构紧凑,可以实现复杂的测量与与控制,操作方便;缺点是调试过程复杂,成本较高。方案三:单片机与高精度温度传感器结合的方式。即用单片机完成人机界面,系统控制,信号分析处理,由前端温度传感器完成信号的采集与转换。方案三克服了方案一、二的缺点,所以本设计任务是基于STC89C52单片机和温度传感器实现对温度的控制。系统框图如下图2.1:2图2.1系统总体控制框图用DXP设计的整体电路图如图2.2所示。12Y1XTALGNDFM1X1X227pFC1GNDVCCVCCK1K218B20FM1ALED0D1D2D3D4D5D6D7D3D4D2D1VCCK1f2g3e4d5K6c8DP7b9a10LED1P10/T1P11/T2P123P134P145P156P167INT113INT012T115T014EA/VP31X119X218RESET9RD17WR16P2021P2122P2223P2526P2425P2324P2627P2728RXD10TXD11ALE/P30P0732P0633P0534P0435P0336P0237P0138P0039PSEN29P1782040289C52DB1DB2DB3DB4INT1CSDARSLCDEX1X2RSTRDWRVCC3I/O2GND1DS1DS18B20VCCGND18B20S1S2S3S4D0D1D2D3D4D5D6D7K1K21234P3Header4GNDVCCDB1DB2DB3DB41KR3MK1Mic1Q2PNPVCCGNDFM2FM2132P4Header312P5Header21KR19Res2Q32N3906GNDCSDAINT1RSP24GND123456789P1Header9VCC10uFC310KR1GNDRSTQ5PNPQ4PNPVCCVCC10KR210KR827pFC27887WR1234P6Header4VCC10KR64.7KR74.7KR410KR5VCC键盘输入模块数码管显示模块单片机最小系统流水灯模块温度信号采集模块蜂鸣器报警模块5V继电器电源模块图2.2温控系统的整体设计图3.硬件设计根据总系统的结构可以将其分为八个功能模块:单片机STC89C52主控制模单片机STC89C52温度传感器DS18B20键盘输入数码管显示电路蜂鸣器报警3块、DS18B20温度信号采集模块、键盘输入模块、数码管温度显示模块、蜂鸣器报警模块、流水灯模块、5V继电器模块、电源模块。3.1单片机STC89C52单片机STC89C52主控制模块即整个系统的核心模块,主要通过执行其程序存储器Rom[3]中的程序来对其4个并行I/O口进行读写操作完成对其他模块的控制。STC89C52芯片具有以下主要功能特性:①、兼容MCS51指令系统;②、8k可反复擦写(大于1000次)FlashROM;③、32个双向I/O口;④、256x8bit内部RAM;⑤、3个16位可编程定时/计数器中断;⑥、时钟频率0-24MHz;⑦、2个串行中断,可编程UART[4]串行通道;⑧、2个外部中断源,共8个中断源;⑨、2个读写中断口线,3级加密位;⑩、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能[6];⑪、有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。STC89C52单片机的40个引脚中有2个专用于主电源引脚,2个外接晶振的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出I/O引脚。89C52引脚图以及各引脚功能如图3.1所示。P10/T1P11/T2P123P134P145P156P167INT113INT012T115T014EA/VP31X119X218RESET9RD17WR16P2021P2122P2223P2526P2425P2324P2627P2728RXD10TXD11ALE/P30P0732P0633P0534P0435P0336P0237P0138P0039PSEN29P1782040289C524图3.189C52引脚图VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口[5],每脚可吸收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。因此它可用作5对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个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温度信号采集模块DS18B20温度信号采集模块是由一个温度信号采集器组成,主要是温度信号采集并将数据传回给单片机主控制模块。传感器采集的温度值通过传回给主控制模块STC89C52单片机进行处理,然后送入数码管进行温度显示。温度处理模块是由5V继电器控制。DS18B20的性能特点:①、独特的单线接口仅需要一个端口引脚进行通信;②、多个DS18B20可以并联在惟一的三线上,实现多点组网功能;③、可用数据线供电,电压范围:3.0~5.5V;④、测温范围:-55℃~+125℃,在-10℃~+85℃时精度为±0.5℃;可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃;⑤、12位分辨率时最多在750ms内把温度值转换为数字;⑥、报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;⑦、每个芯片唯一编码,支持联网寻址,零功耗等待。DS18B20电路图如图3.2所示。6VCC3I/O2GND1DS1DS18B20VCCGND18B20图3.2DS18B20温度信号采集模块3.3键盘输入模块键盘输入模块是由四输入键盘组成,S1为温度设定加、S2为温度设定减、S3为确定键、S4为复位键,键盘输入模块如图3.3所示。S1S2S3S4CSDAINT1RSGNDWR图3.3键盘输入模块3.4数码管温度显示模块数码管温度显示模块是对温度的当前值进行显示。如图3.4所示。K1f2g3e4d5K6c8DP7b9a10LED1D0D1D2D3D4D5D6D7K1K2Q5PNPQ4PNPVCCVCC10KR210KR87887图3.4数码管温度显示模块3.5流水灯模块流水灯模块是有四个LED发光二极管组成,指示整个系统正常工作。如图3.5所示。7D3D4D2D1VCCDB1DB2DB3DB410KR64.7KR74.7KR410KR5图3.5流水灯模块3.6蜂鸣器报警模块蜂鸣器报警模块就是对当采集的温度值大于或者小于用户自定义的遇界温度值进行报警提示。如图3.6所示。FM11KR3MK1Mic1Q2PNPVCCGND图3.6蜂鸣器报警模块3.7电源模块电源模块给整个电路板提供电源,使其正常工作。如图3.7所示。1234P3Header4GNDVCC1234P6Header4图3.7电源模块3.85V继电器5V继电器相当于一个自动开关,在电路中起着自动调节、安全保护、转换8电路等作用。如图3.8所示。FM2132P4Header31KR19Res2Q32N3906GNDVCC5V继电器图3.85V继电器整体设计的PCB效果图如图3.9所示。图3.9整体PCB设计图4.软件设计根据单片机STC89C52的管脚功能,用C语言编程,数码管管脚接P2口,按键控制位接P3口,LED管脚接P1口。具体C语言程序设计见附录。系统的控制流程图如图4所示。91)主程序流程图2)中断程序流程图图4程序流程图5.设计操作步骤①将PCB制图打印,制板10x10。②将PCB图滑面向上,板子在PCB图上放,一起放入曝光箱中曝光。注意事项:a.曝光时间在120S以上。b.曝光时注意胶片图的正反面,以免曝光错误。C.曝光时注意封闭箱体,按“开始”进行曝光。曝光箱如图5.1所示。图5.1曝光箱③曝光后
本文标题:基于STC89C52温度控制系统
链接地址:https://www.777doc.com/doc-4449219 .html