1 / 24
文档名称:

综合电子设计报告-基于DS18B20的多路温度传感器.docx

格式:docx   页数:24
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

综合电子设计报告-基于DS18B20的多路温度传感器.docx

上传人:799474576 2013/7/31 文件大小:0 KB

下载得到文件列表

综合电子设计报告-基于DS18B20的多路温度传感器.docx

文档介绍

文档介绍:福州大学至诚学院
综合电子设计报告
设计题目: 基于DS18B20的多路温度传感器
专业: 电子科学与技术班级: 1班
姓名: 殷文盛学号: 210991231
同组姓名: 王元正学号: 210991259
指导老师: 赖松林
2012年11月
设计题目:基于DS18B20的多路温度传感器
一、设计要求和目的
1、设计任务和要求:
以MCS-51系列单片机为核心器件,组成一个数字温度计,采用数字温度传感器DS18B20为检测器件,进行多点温度检测,温度显示采用LCD1602显示。
2、设计目的:
通过MCS-51系列单片机STC89C52和DS18B20温度传感器检测温度,熟悉芯片的使用,温度传感器的功能,数码显示管的使用,C语言的设计;并且把所学的数字和模拟电子技术、单片机应用等知识,通过理论联系实际,从题目分析、电路设计调试、程序编制调试的完整实验过程,培养学生正确的设计思想,使学生充分发挥主观能动性,独立解决实际问题,以达到提升学生综合能力、动手能力、文献资料查阅能力的作用,为毕业设计和以后工作打下一个良好的基础。
二、设计原理(包括设计原理图,关键器件等)
本设计采用STC89C52单片机作为控制核心对温度传感器DS18B20控制,读取温度信号并进行计算处理,送到液晶显示器LCD1602显示。按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电路和显示电路。
软件设计
系统程序主要包括主程序、读出温度子程序、温度转换子程序、计算温度子程序、显示等。
主程序,主要功能是完成DS18B20的初始化工作,并进行度温度,将温度转化成为压缩BCD码并在显示器上显示传感器所测得的实际温度。
主程序流程见图:
b、读出温度子程序,主要功能是读出RAM中的9字节,在读出时需要进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如下所示:
c、温度转换命令子程序,主要是发温度转换开始命令,当采用12位分辨率时,转换时间约为750ms,流程图如下:
发DS18B20复位命令
发跳过ROM命令
发温度转换开始命令
结束
d、计算温度子程序,将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定。流程图如下:
(完整程序见附录)
三、调试和结果
问题:程序烧进单片机,接通电源时,蜂鸣器一直响,而且lcd1602只会亮,不会显示特定的文字
解决方法:因为仿真的时候程序和原理图都没有问题,是我们想要的结果,初步判定是硬件即我们制作的pcb板的问题。经检查,发现板中存在两块地,回到软件的pcb视图检查,发现有两点没接上,即出现了跳线,分别在两块地中钻一个小孔,再用导线将其连接;重新接上电源,蜂鸣器还是一直响,结果和上次一样,再次检查硬件pcb,主要针对蜂鸣器进行确认,发现其中本不应该与地相连的因为焊接问题与地连在一起;用烙铁把管脚地方的锡加热去掉和地连在一起的部分;再次接上电源,蜂鸣器不响了,只是lcd1602还是不显示文字,针对lcd1602的电路再次进行检查,发现原理图上lcd1602的4 5 ,而我们实际是将它接在P1口的三个管脚上,因为程序是按着原理图编写的,所以在对lcd初始化的时候是设成了P2口,改正后,再一次接通电源,lcd还是没
显示;参考课件推测,可能是焊接问题导致忙时检查通过率低,致使lcd不能正常工作。重新做过一片pcb,把原件都焊接好了以后,再次检查,结果和原来一样。后来在同学的提醒下,猜测lcd背光问题,调节变位器至适当的值,果然lcd可以显示字符了。
总结,存在问题和改进
通过这次的电子综合设计, 我们主要掌握了LCD1602和温度传感器DS18B20的工作原理和特性,熟悉了单片机的应用。在制作pcb板的过程中容易漏掉某些管脚。最后的成果能够精确的测量温度,并设定温度上下限实现报警提示功能。但未能达到多路温度测控的预期目标。
心得体会
通过这次的电子设计,增强了我的动手能力。在这次设计中,许多器材是很少接触的,上网找了许多的资料,才确定了器材的选择,还有排版。还有许多不明白的地方得到了老师和同学的帮助,也让我受益匪浅,明白了团队协作的重要性。
附录:
完整程序
#include ""
#include ""
#include <>
unsigned char temp[5];
extern char xiaoshu_temp[5],zhen_temp[4];
extern bit flag;
extern bit dot_dis;
code uchar ds18b20_num1[8]={0xF7,0x00,0x0