基于51单片机的多路温度采集系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机的多路温度采集系统
一、摘要:本设计利用单片机及Keil编程软件编程和PROTEUS单片机仿真软件和电子电工等方面知识,用Keil编程软件编程,用PROTEUS单片机仿真软件仿真。最后制作实物,将程序下载到单片机中,利用(I/O)口采集来自多路温度的数据,根据各路温度的不同,集中准确的显示出来,并且根据所设温度的上下限通过驱动蜂鸣器进行听觉上的报警,同时还可以通过LED灯协助进行视觉上的报警,从而达到多点温度的采集和报警的目的。以Keil编程软件和PROTEUS 软件来进行仿真、分析,调试,为设计提供了一个方便、快捷的途径,为设计节约了设计时间。
关键词:AT89S52单片机温度采集报警
二、设计要求
1、检测的温度范围:0℃~100℃。
2、检测分辨率0.1℃。
3、显示的多路的温度值不相互干扰,而且对各个传感器的所属温度都能进行报警。
三、硬件电路设计
1、系统的设计思路
本设计采用单片机作为数据处理与控制单元,为了进行数据处理,单片机控制数字温度传感器,把温度信号通过单总线从数字温度传感器传递到单片机上。单片机数据处理之后,发出控制信息改变报警和控制执行模块的状态,同时将当前温度信息发送到LCD进行显示。本系统可以实现多路温度信号采集与显示,可以使用程序来设置温度限定值,通过进行温度数据的运算处理,发出控制信号达到控制蜂鸣器和LED进行报警。
2、系统总体设计方案
系统总体主要由对单片机进行编程后得到控制,系统的其他功能部件分别接至单片机的对应I/O口。整体模块如图:
3、主控制器
本次设计选择Atmel 公司生产的AT89C51作为控制芯片。AT89C51是高性能的CMOS8位单片机,片内含有4K bytes 的可反复擦写的只读程序存储器和128的随机存取数据存储器。AT89系列与MCS-51系列单片机相比有两大优势:第一,片内程序存储器采用闪速存储器,使程序的写入更加方便;第二,提供了更小尺寸的芯片,使整个电路体积更小。它以较小的体积、良好的性价比倍受青睐。51单片机管脚图:
单 片 机 系 统 报警电路
晶振.复位 多路温度传感器 LED 显示电路 报警电路 按键电路
4、温度采集电路
本系统采用DS18B20作温度采集器。DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。硬件电路图如下:
5、温度显示电路
LED显示器的驱动是一个非常重要的环节,用来显示采集到的信号。显示电路由LED液晶屏、段驱动电路和位驱动电路组成。此设计不采用段驱动芯片和位驱动芯片,直接由单片机的P1口驱动,实现动态显示。硬件电路图如下:
6、报警电路
此系统的报警电路采用两个LED和一个蜂鸣器来模拟实现,当所采集的四路温
度都处于安全温度范围内时D1和D2都不亮,当其中有任何一路温度低于安全稳定范围内时,D1亮而且蜂鸣器响。同理当其中有任何一路温度高于安全稳定范围内时,D2亮而且蜂鸣器响。
7、本系统的优点
(1)线路简单
DS18B20与单片机之间一根导线进行数据传输,不需要对数据进行转换,接线简单。
(2)温度测量准确
DS18B20的温度分辨率为0.0625,所以对温度值可以进行准确的温度转换。(3)报警温度的范围可调
此系统的报警温度的范围是通过软件设定的,因此想要改变不需要任何硬件上的改变,只需要对程序进行简单的改变,非常方便。
四、总体硬件电路图
五、软件程序设计
由于在此次系统设计中,我主要进行硬件系统的设计,所以在软件程序设计方面参与较少。
程序见附录。
六、电路调试与故障排除
(1) 调试时主要用到的仪表是直流稳压电源和万用表,为了增加报警功能,使用了蜂鸣器,刚开始时直接把蜂鸣器接在单片机上,调试之后发现蜂鸣器不会响,后来经过检查发现是驱动电压过低,经过改进,我们使用了三极管放大,蜂鸣器可以正常工作。
(2) 接上电源后发现LED显示屏显示乱码,我们又仔细检查电路硬件,重新编写程序,又重新烧录,后来LED显示屏可以正常显示。
七、心得体会
单片机课程设计为其将近一个月,我受益匪浅。单片机课是上学期的内容,有很多知识点都遗忘了,所以在做此次课程设计的时候,又去翻阅以前的课本。通过此次课程设计,我对单片机有了更深刻的认识和理解。光有课本上的知识是不够的,一定要理论结合实践,在实践中把理论知识具体化,这样才能更好的掌握好知识。
刚开始以为这次课程设计的电路会比较简单,可是入手后还是感到无从下手。后来在每个阶段我都有不小的收获,熟练了在Proteus软件上设计仿真电路,掌握了书本以外的电子技术知识,培养了专心致志的工作学习习惯,可谓获益匪浅。在摸索该如何设计电路使之实现所需功能的过程中,培养了我的设计思维,增强了动手能力。在改进电路的过程中,我们共同探讨,最后的电路已经比初期设计有了很大提高。在让我们体会到了设计电路的艰辛的同时,也让我体会到成功的喜悦和快乐。
八、参考文献
[1] 张俊谟.单片机中级教程—原理与应用. 北京航天航空大学出版社
[2] 刘大茂.智能仪器与设计.国防工业出版社
[3] 谭浩强. C程序设计. 北京:清华大学出版社
[4] 李伯成. 微型计算机原理及应用技术. 西安电子科技大学
附录程序
#include
#include"lcd1602.h"
#include"ds18b20.h"
#include"ds18b20_2.h"
#include"ds18b20_3.h"
#include"ds18b20_4.h"
#define uchar unsigned char
#define uint unsigned int
#define TIMER0_COUNT 0xEE11
sbit SPK=P3^5;
sbit LED1=P3^6;
sbit LED2=P3^7;
bit flag;
uint wendu;
uint wendu1;
uint wendu2;
uint wendu3;
uchar count,timer0_tick,count=0;