基于单片机的温度采集系统设计(温度传感器报警功能)

以下是资料介绍,如需要完整的请充值下载. 本资料已审核过,确保内容和网页里介绍一致.  
无需注册登录,支付后按照提示操作即可获取该资料.
资料介绍:
【摘要】近年来,单片机以其功能强、体积小、使用方便、性能价格比高等优点,在实时控制、自动测试、智能仪表、计算机终端、遥测通讯、家用电器等许多方面得到了广泛的应用。本文重点对该系统的硬件、软件进行分析设计。在硬件上对各部分电路一一进行了理论分析与方案论证进行了设计,介绍了DS18B20数字温度传感器在单片机下的硬件连接及软件编程,并给出了软件流程图,最终设计完成了该系统的硬件电路。在软件设计上根据硬件电路和该温度采集系统所需要实现的功能,经过反复的模拟运行、调试、修改,最终完成了该系统的软件设计。通过硬件与软件的密切配合,最终设计完成达到了题目所要求的功能。本设计采用的是AT89S51单片机,对多点温度进行采集。通过集成温度传感器DS18B20将温度值转换为电量输出。通过小键盘实现多点温度值的切换显示;可以利用小键盘设定温度的最大值和最小值,对于超过最大值或低于最小值的温度数据通过蜂鸣器进行报警。(优秀毕业设计www.2bysj.cn)
【关键词】单片机AT89C51;温度采集;温度传感器DS18B20;报警功能

温度采集系统的开发在很大意义上提高了生产生活的需要,方便了生产中对温度的控制,有效的提高了生产质量。外围电路比较简单杂,测量精度较高,分辨力高,使用方便。温度检测是现代检测技术的重要组成部分,在保证产品质量、节约能源和安全生产等方面起着关键的作用。本次毕业设计正是为了完成温度采集而设计的,可以说与人们的日常生活是息息相关的,具有很大的现实意义。

系统的总体设计
单片机目前在工业、服务业及制造业都有着广泛的应用,采用单片机实现温度采集具有成本低、开发周期短、易于实现和扩展功能的优点。由于单片机本身具有很强大的数字量处理能力,因此本系统的设计可以为后续的温度控制环节提供服务。
在本次设计中以单片机为核心完成实时温度采集功能,其实现的主要功能如下:
1完成至少四路温度信号的采集;
2能实时显示各路温度信号值;
3可以自行设定温度的上下限;
4具有温度上,下限报警功能;
5硬件原理图,软件实现方案及系统编程













目录
第1章 概述………………………………………………………………………………1
第2章 系统的总体设计…………………………………………………………………4
2.1控制器的选用………………………………………………………………5
2.2温度传感器的选用…………………………………………………………7
2.3显示器的选用………………………………………………………………11
2.4按键的选用…………………………………………………………………11
2.5报警电路……………………………………………………………………12
第3章 系统的硬件设计………………………………………………………………13
3.1时钟电路……………………………………………………………………13
3.2复位电路……………………………………………………………………14
3.3 温度传感器和单片机的硬件接口设计……………………………………16
3.4 显示器和单片机的接口电路………………………………………………19
3.5 键盘和单片机的接口电路…………………………………………………21
第4章 系统的软件设计…………………………………………………………………24
4.1 语言的选择…………………………………………………………………24
4.2主程序方案…………………………………………………………………25
4.3 各模块子程序设计…………………………………………………………26
第5章 总结………………………………………………………………………………38
参考文献…………………………………………………………………………………39
附录一………………………………………………………………………………………40
附录二………………………………………………………………………………………46

附录一
部分程序:
#include
#include
unsigned char code displaybit[]={0xfe,0xfd,0xfb,0xf7,
                                 0xef,0xdf,0xbf,0x7f};
unsigned char code displaycode[]={0x3f,0x06,0x5b,0x4f,
                                    0x66,0x6d,0x7d,0x07,
                                    0x7f,0x6f,0x77,0x7c,
                                    0x39,0x5e,0x79,0x71,0x00,0x40};
unsigned char code dotcode[32]={0,3,6,9,12,16,19,22,
                          25,28,31,34,38,41,44,48,
50,53,56,59,63,66,69,72,
75,78,81,84,88,91,94,97};
unsigned char displaycount;
unsigned char displaybuf[8]={16,16,16,16,16,16,16,16};
unsigned char timecount;
unsigned char readdata[8];
(优秀毕业设计www.2bysj.cn)
sbit DQ=P3^7;
bit sflag;
bit resetpulse(void)
{
unsigned char i;
DQ=0;
for(i=255;i>0;i--);
DQ=1;