51温度控制系统
- 格式:doc
- 大小:430.97 KB
- 文档页数:11
基于51单片机的温度控制系统王鹏魏宗乐李贝贝一、摘要单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。
DS18B20是美国DALLAS公司生产的数字温度传感器芯片,具有结构简单、体积小、功耗小、抗干扰能力强、使用方便等优点。
本文设计的一种温度控制系统,用STC89C52单片机作为温控器,选用DS18B20数字温度传感器,可任意设置上下限报警温度,采用数码管实时显示温度。
二、关键词STC89C52单片机、上下限报警、数码管显示温度三、正文3.1. 设计目的(1)了解电子系统的设计方法,巩固和提高学过的基础理论和专业知识;(2)学习DS18B20数字温度传感器的测温原理,提高运用所学专业知识进行独立思考和综合分析、解决实际问题的能力;(3)增强对单片机的认识,掌握分析处理问题的方法,进行调试、计算等基本技能的训练,达到具有一定程度的实际工作能力。
3.2.具体内容及要求用单片机为主控制器,设计以温度控制系统。
(1)基本要求①实现0-99℃范围内的温度检测,精度1.0级。
②通过两位LED显示器显示被测温度值。
③可通过按键设置温度报警值,并在LED上进行显示。
(2)发挥部分①增加报警功能,当被测温度超过报警限时,发出声音报警。
②将精度改进为0.1级。
3.3系统总体方案设计3.3.1、设计方案论证方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,其中还涉及到电阻与温度的对应值的计算,感温电路比较麻烦。
而且在对采集的信号进行放大时容易受温度的影响出现较大的偏差。
方案二进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。
从以上两种方案,很容易看出,采用方案二,电路比较简单,费用较低,可靠性高,软件设计也比较简单,故采用了方案二。
3.3.2系统总体构成图如下:3.3.3、硬件设计:控制部分的选择较多,但是作为温度计,在成本上最合适的是单片机,对于题目要求的控制能力也能胜任,利用STC89S52自身强大的功能和优异的可扩展性,配上电路实验箱、四位一体数码管和按键等少量外围电路,就能搭建合适本次实验的小系统。
从而大大缩短设计流程,把设计的重点放在温度探测单元,串行通信协议两个部分。
3.3.4、软件设计 ①单片机软件设计单片机程序由主程序和中断子程序组成的。
主程序负责对来自上位机的命令进行解析并执行读温度值、存储温度值、输出控制等等,中断服务程序只负责单片机和上位机之间的数据发送与接收。
②掉电存储设计当设置完成上下限之后,进行EEPROM 存储设定值,实现掉电存储的功能。
89C52键盘电路 DS18B20温度传感器数码管显示蜂鸣器报警晶振电路报警LED 灯3.4、系统各个模块设计:3.4.1单片机最小系统1、STC89C52单片机管脚图如下:2、各引脚功能:(1)XTAL1(19脚);XTAL2(18脚)----外接时钟引脚。
XTAL1为片内振荡电路的输入电源和时钟引脚.VCC(40脚)GND(20脚)常压为+5V,低压为+3.3V。
(2)端。
XTAL2为片内振荡电路的输出端,8051的时钟有两种方式,一种是片内振荡方式,需要在这两个引脚接石英晶体和振荡电容,振荡电容的值一般选择为10P~~30P。
另一种外部时钟方式即XTAL1接地,外部时钟信号从XTAL2脚输入。
(3)RST(9脚)---单片机的复位引脚。
P0口(39脚~~32脚)—双向8位I/O口,每个口可以独立控制。
51单片机PO口内部没有上拉电阻,为高阻状态,所以不能正常的输出高低电平,因此该组I/O口在使用的时候务必要接上拉电阻,一般我们采用接入10K的上拉电阻。
P1口(1脚~8脚)---准双向8位I/O口。
每个口可以独立操作控制,内带上拉电阻,这种接口输出没有高阻状态,输入也不能锁存,固然不是真正的双向I/O口,之所以称它为”准双向”是因为该口在作为输入使用前要先向该口进行写一操作,然后单片机内部才可以正确读出外部信号,也就是要使其先要有个准备过程,所以才称准双向口。
对52单片机的P1.0引脚的第二功能为T2定时器的外部输入,P1.1引脚的第二功能为T2EX捕捉,重装触发,即T2的外部控制器。
P2口(21脚~~28脚)---准双向8位I/O口,每个口都可以独立操作控制,内带上拉电阻,与P1口相似。
P3口(10脚~~17脚)----准双向8位I/O口,每个口可以独立操作控制,内带上拉电阻,作为第一功能使用时就当作普通I/O口,与P1口相似。
作为第二功能使用时,各引脚的定义如表:值得强调的是,P3口的每一个引脚均可以独立定义为第一功能的输入/输出或第二功能。
P3口引脚第二功能定义:标号引脚第二功能说明P3.0 10 RXD 串行输入口P3.1 11 TXD 串行输出口P3.2 12 /INTO 外部中断0P3.3 13 /INT1 外部中断1P3.4 14 T0 定时器/计数器0外部输入口P3.5 15 T1 定时器/计数器1外部输入口P3.6 16 /WE 外部数据存储器写脉冲P3.7 17 /RD 外部数据存储器读脉冲3.4.2、显示部分:本系统采用三极管驱动四位一体共阳数码管显示温度,数码管有两种显示方式,即静态显示和动态显示。
静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。
当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。
这种方法的优点是占用CPU时间少,显示便于监测和控制。
缺点是硬件电路比较复杂,成本较高;动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。
选亮数码管采用动态扫描显示。
所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。
动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
本设计数码管采用动态显示。
如下图:3.4.3、键盘输入如图:本设计采用三个键,可任意调整上下限报警温度,简单实用。
其中,K1键为设置键,按第1下,上限温度调整;按第2下,下限温度调整;按第3下,显示实际温度。
Key2键为每按一次设置温度加1。
Key3键为每按一次设置温度减1。
3.4.4、报警电路本设计中采用三极管驱动蜂鸣器报警,其中,LED为报警指示灯。
当温度高于上限温度时,或者低于温度下限的时候产生声光报警。
3.4.5、测温电路本设计采用DS18B20温度传感器测量温度。
DS18B20简介其两种封装如图:温度传感器的种类众多,在应用与高精度、高可靠性的场合时DALLAS(达拉斯)公司生产的DS18B20温度传感器当仁不让。
超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强,使得DS18B20更受欢迎。
对于我们普通的电子爱好者来说,DS18B20的优势更是我们学习单片机技术和开发温度相关的小产品的不二选择。
了解其工作原理和应用可以拓宽您对单片机开发的思路。
DS18B20的主要特征:1. 全数字温度转换及输出。
2. 先进的单总线数据通信。
3. 最高12位分辨率,精度可达土0.5摄氏度。
4. 12位分辨率时的最大工作周期为750毫秒。
5. 可选择寄生工作方式。
6. 检测温度范围为–55°C ~+125°C (–67°F ~+257°F)7. 内置EEPROM,限温报警功能。
8. 64位光刻ROM,内置产品序列号,方便多机挂接。
9. 多样封装形式,适应不同硬件系统。
DS18B20引脚功能:·GND 电压地·DQ 单数据总线·VDD 电源电压·NC 空引脚DS18B20工作原理及应用:DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。
其一个工作周期可分为两个部分,即温度检测和数据处理。
在讲解其工作流程之前我们有必要了解18B20的内部存储器资源。
18B20共有三种形态的存储器资源,它们分别是:ROM 只读存储器,用于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上56的位的CRC码(冗余校验)。
数据在出产时设置不由用户更改。
DS18B20共64位ROM。
RAM 数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。
第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像。
在上电复位时其值将被刷新。
第5个字节则是用户第3个EEPROM的镜像。
第6、7、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。
第9个字节为前8个字节的CRC码。
EEPROM 非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3位EEPROM,并在RAM都存在镜像,以方便用户操作。
电路图如下:3.5、系统软件设计3.5.1、单片机软件设计:(1)主程序:主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。
这样可以在一秒之内测量一次被测温度,其程序流程如下所示:主程序流程图(2)读温度子程序:先让DS18B20复位,然后发跳过ROM匹配命令,再发出温度转换命令,让DS18B20进行温度转换,延时等待转换完毕后,再将已转换的温度值一一地从各个DS18B20取出,转换成ascall码后再发送到PC机上,如此循环。
程序框图如下:读温度程序框图(3)温度比较报警子程序此程序是将实际温度与设置的报警上下限比较,决定是否发出报警信号。
由于T为实际温度的绝对值,TH、TL也是温度的绝对值,因此判断大小关系时要通过其正负符号来确定。
B4组------基于51单片机的温度控制系统11温度比较报警子程序4.结论本温控系统通过STC89C52单片机采集从DS18B20温度传感器所测得的温度数据,并通过串口实时传送到上位机。