多通道温度巡检系统设计方案课程设计方案说明书.docx
- 文档编号:28336736
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:54
- 大小:599.40KB
多通道温度巡检系统设计方案课程设计方案说明书.docx
《多通道温度巡检系统设计方案课程设计方案说明书.docx》由会员分享,可在线阅读,更多相关《多通道温度巡检系统设计方案课程设计方案说明书.docx(54页珍藏版)》请在冰豆网上搜索。
多通道温度巡检系统设计方案课程设计方案说明书
摘要
设计一个八路温度巡检系统,用八路DS18B20温度传感器分别检测外界八个不同地点的温度信息,通过AT89C51单片机接收八路温度传感器所返回的信息,经过单片机处理后将温度值和通道数等信息传输到LCD液晶显示器进行显示。
文中详细论述了温度传感器DS18B20的工作原理、温度信息处理过程、温度显示过程、系统的硬件设计方案以及软件程序设计。
关键词:
八路温度巡检;DS18B20;AT89C51;LCD
摘要I
1 绪论1
1.1设计任务及意义…........................................................................................1
1.2DS18B20温度检测原理…….......................................................................1
2系统总体方案设计….............................................................................................5
2.1系统总体方案框图…....................................................................................5
2.2各模块的功能…............................................................................................5
3硬件电路的设计…...................................................................................................6
3.1温度检测电路…............................................................................................6
3.2液晶显示电路…..............................................................................................6
3.2.1LM016L介绍…...................................................................................6
3.2.2LM01与51单片机的连接…..............................................................7
3.3晶振电路…..............................................................................................................8
3.4复位电路…..............................................................................................................8
3.5电源电路…..........................................................................................................9
4系统软件设计…........................................................................................................10
4.1系统软件流程图…...........................................................................................10
4.2程序设计….......................................................................................................10
4.2.1DS18B20的程序设计…....................................................................10
4.2.2LM017L液晶的程序设计…..............................................................11
4.2.3主程序设计….....................................................................................12
5系统仿真….................................................................................................................13
5.1仿真电路的设计…..............................................................................................13
5.2仿真结果…........................................................................................................13
总结….................................................................................................................15
参考文献…..........................................................................................................16
致谢….....................................................................................................................17
附录B程序清单….....................................................................................................19
1绪论
1.1设计任务及意义
本设计实现八路温度检测,要求检测温度范围为-55~125摄氏度,用LCD液晶显示器同时显示测量温度值和通道编号,每3秒钟显示一路温度信息。
以摄氏度为单位,要求能够实现小数的显示。
温度检测在现实生活、生产当中应用比较普遍,而且起着相当大的作用,特别是一些工业的应用当中,温度的检测更是重要的环节,温度的检测和控制直接和安全生产、产品质量、生产效率、节约能源等重大技术指标相联系。
而多路温度的检测在一些范围比较大的施工场地或者监控现场的应用更是广泛,为应用者提供了现场多点的实时环境温度信息。
1.2DS18B20温度检测原理
DS18B20是DALLAS公司生产的单总线式数字温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配处理器等优点,特别适用于构成多点温度测控系统,可直接将温度转化成串行数字信号<提供9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片。
它具有3引脚TO-92小体积封装形式<如图1.1),测温范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可在远端引入,也可采用寄生电源方式产生,多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与多个DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
DS18B20的内部结构:
<1)ROM
在DS18B20内部光刻了一个长度为64-bit的ROM,这个是编码器件的身份识别标志,如下图所示:
图1.1DS18B20
图1.2DS18B20的ROM
64-bit光刻ROM的排列顺序是:
开始(最低>8位是产品类型标号,对于DS18B20来说就是(28H>。
接着的48位是器件自身的序列号;最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1>.光刻ROM的作用是使每个DS18B20都不相同,这样可以实现一根总线上挂接多个DS18B20的目的。
对ROM操作的几种指令:
<2)RAM
高速暂存存储器由9个字节组成,包含了8个连续字节,前面两个字节是测得的温度信息,第一个字节的内容是温度的低8位,第二个字节是温度的高8位。
第三个和第四个字节是温度高限TH和温度底限TL的暂存区,第五个字节是配置寄存器暂存区,第6、7、8、9字节是系统保留用,相当于DS18B20的运算内存,第9个字节是冗余校验字节。
RAM内部字节分布如下表所示:
表1-1DS18B20RAM字节分布
对RAM操作的几种指令:
<3)E
PROM
EEPROM只有三个字节,和RAM的第2、3、4字节的内容相对应,它的作用就是存储RAM第2、3、4字节的内容,以使这些数据在掉电后不丢失。
可能通过几条命令将RAM的该3个字节内容复制到EEPROM或从EEPROM将该3个字节内容复制到RAM的第2、3、4字节去。
因为我们从外部想改写报警值和器件的设置都是只对RAM进行操作的。
要保存这些设置后的数据就还要用相应的命令将RAM的数据复制到EEPROM去。
DS18B20是单总线器件,通讯协议包括几种单线信号类型:
复位脉冲、存在脉冲、写0、写1、读0、读1。
所有这些信号,除存在脉冲外,其余都是由总线控制器<单片机)发出的。
根据DS18B20的通讯协议,主机<单片机)控制DS18B20完成一次操作经过三个步骤:
①要对DS18B20进行复位操作;
②复位成功后发送一条ROM指令;
③最后发送RAM指令,这样才能对DS18B20进行预定的操作。
2系统总体方案设计
系统采用一片AT89C51芯片、八个DS18B20温度传感器和一个LCD液晶显示器,将八个DS18B20并联在单片机的同一个I/O口上,这样可以达到节约I/O的目的,至于单片机怎样分别去读取每一个温度传感器的温度信息,则由软件部分考虑。
2.1系统总体方案框图
八路温度巡检系统的总体设计框图如图2.1所示:
图2.1八路温度巡检系统框图
2.2各模块的功能
温度传感器DS18B20可实施对外界温度的检测,检测到的温度会保存在自身的ROM里。
而对DS18B20的读写控制操作都是通过一根DQ信号线来完成的,对它的操作要严格按照时序进行,这使得对它的编程增加了难度。
而同时正是DS18B20的一线性,使它可以轻松地在AT89C51的控制下组成八路检测系统。
AT89C51检测到温度信息后对其进行处理,还原其真实温度,并将其显示在LCD上。
LCD液晶显示器主要负责显示从单片机处所传来的温度值和通道数等信息,并且将八路的信息进行循环显示。
3硬件电路的设计
3.1温度检测电路
八个DS18B20与51单片机的电路连接入图3.1所示:
图3.1温度检测电路连线图
八个DS18B20的DQ口都同时并联在单片机的P1.0口上。
3.2液晶显示电路
3.2.1LM017L介绍
字符型LM017L是一款能显示两行且每行能显示32个字符的液晶显示屏。
通常采用日立公司生产的控制器HD44780作为LCD的控制芯片。
凡是是基于HD44780液晶芯片的,控制原理是完全相同的,因此HD44780写的控制程序可以方便地应用于市面上大部分的字符型液晶。
LM017的外形如图3.2所示:
图3.2LM017L
LM017L的引脚功能如下表所示:
表3-1LM017L的引脚功能表
3.2.2LM017L与51单片机的连接
LM017L与51单片机的接口原理图如图3.3所示:
图3.3LM017L与单片机的连接图
3.3晶振电路
晶振是给单片机提供工作信号脉冲的,这个脉冲就是单片机的工作速度,比如12M晶振,单片机工作速度就是每秒12M,和电脑的CPU概念一样。
当然,单片机的工作频率是有范围的,不能太大,一般不能超过24M,不然就会不稳定了。
51系列单片机的时钟信号通常有两种电路形式:
内部振荡方式和外部震荡方式。
在引脚X1和X2外接晶体振荡器,就构成了内部振荡电路,如图3.4所示。
晶振与单片机的脚X1和脚X2构成的振荡电路中会产生偕波,这个波对电路的影响不大,但会降低电路的时钟振荡器的稳定性。
为了电路的稳定性起见,ATMEL公司建议在晶振的两引脚处接入两个10pF~50pF的瓷片电容接地来削减偕波对电路的稳定性的影响,所以晶振所配的电容在10Pf~50pF之间都可以的,没有什么计算公式。
这两个电容除了稳定振荡频率,还可以起到快速起振的作用。
晶振常选用频率为6MHz、12MHz或24MHz的,采用串口时常使用频率为11.0592MHz的晶振。
内部振荡方式所得到的时钟信号比较稳定,应用较多。
图3.4晶振电路
3.4复位电路
单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。
89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。
当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期>以上,则CPU就可以响应并将系统复位。
单片机系统的复位方式有:
手动按钮复位和上电复位,本设计中采用的是手动按钮复位方式。
手动按钮复位需要人为在复位输入端RESET上加入高电平。
一般采用的办法是在RESET端和正电源Vcc之间接一个按钮。
当人为按下按钮时,则Vcc的+5V电平就会直接加到RESET端,也可以直接在另一端接一个+5V电源。
手动按钮复位的电路如3.5所示。
由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。
图3.5复位电路
3.5电源电路
在本系统中,有很多芯片都需要电源,所以需要设计一个电源模块。
电源电路原理图如图3.6所示。
220V的交流电经变压器T1降压后,得到+9V的交流电,再经过桥式整流和电容滤波的作用,最终得到+5V的直流电,为系统提供电源。
三端稳压器7805在电路中起稳压作用,交流电经整流滤波后,由三端稳压器稳压后,输出稳定的直流电。
图3.6电源电路
4系统软件设计
本次设计采用的编程语言是C51语言,开发工具是KeilμVision4版本。
4.1系统软件流程图
系统的软件流程图如下图所示:
图4.1系统软件流程图
4.2程序设计
4.2.1DS18B20的程序设计
DS18B20的程序中主要包含以下函数:
externvoidds18b20_init(void>。
//初始化
externunsignedchards18b20_readdata(void>。
//读DS18b20的温度数据
externvoidds18b20_writecommand(unsignedcharcommand>。
//向DS18B20写命令字
externvoidtemperature_process(unsignedchar,unsignedchar>。
//数值处理,把读回的温度分解成整数和小数部分,并转换成ASIC码
//存放在xiaoshu_temp[5],zhen_temp[4]。
externunsignedchar*read_rom(void>。
//读DS18b20中ROM
externbitmatch_rom(unsignedchar*rom>。
//匹配ROM
具体程序内容见附录B中。
4.2.2LM017L液晶的程序设计
LM017L的程序中主要包含以下函数:
/**************************************************************
**功能:
写LCD函数**
**************************************************************/
voidLcd_Write(bitstyle,unsignedcharinput>。
/****************************************************************
**功能:
LCD初始化*
****************************************************************/
voidLcd_Init(void>。
/****************************************************************
**功能:
显示位置设置**
**参数:
x-行;y-列**
****************************************************************/
voidGotoXY(unsignedcharx,unsignedchary>。
/****************************************************************
**功能:
LCD显示函数**
**参数:
str-要显示的字符串指针**
****************************************************************/
voidPrint(unsignedchar*str>。
voidprint_char(uchar>。
/****************************************************************
**功能:
LCD清屏函数voidClrScreen(void>。
具体程序内容见附录B中。
4.2.3主程序设计
在主程序中,实现了对温度的巡检,并把实时测到的温度显示在液晶显示屏上,在很多领域还是比较实用的。
每一片DS18B20都有各自的固定的序列号,在仿真中,事先设定好各个DS18B20的序列号,将其写进程序中,依次进行匹配,从而实现巡检。
主程序具体内容见附录B中。
5系统仿真
5.1仿真电路的设计
用Proteus软件设计的方针电路图如下图所示:
图5.1Proteus仿真电路
5.2仿真结果
在Keil中编译程序直至通过,生成HEX文件,将该HEX文件载入Proteus中的AT89C51芯片中,设置晶振为12MHz,运行仿真,结果如下图所示:
图5.2Proteus仿真结果
总结
<1)本次设计完成了要求的基本的功能,实现了八路温度传感器的实时巡检,但在软件的设计方面存在占用内存空间较大,程序的冗余度较大的问题。
这是由于作者对C语言的程序设计不够熟练,在设计时,没有能够采用一些更为灵活的方法使程序简化所致。
随着以后的学习,相信在这一方面可以有一个较大的长进,实现本设计的程序优化。
<2)由于作者没有相关的软硬件联合设计方面的经验,致使在本设计进行过程中,产生以软件设计为主,而忽略硬件的思维,在设计时浪费了不少时间。
后来随着相关知识的深入,慢慢调整了设计理念,开始以硬件为先,软件为硬件服务的方法设计。
这使得设计的进展加快了,同时使得硬件的设计更为简化,更易懂。
(3>在此次设计用一个I/O同时并联8个DS18B20,这样一来,导致软件程序的编写更加复杂,耗费了较多的时间和精力。
参考文献
[1]黄惟公、邓成中、王燕,单片机原理与应用技术,西安电子科技大学出版社,2007
[2]黄惟公、邓成中,单片机原理与接口技术 [3]戴蓉、游凤荷、周景霞,由单片机和多片DS1820组成的多点温度测控系统,国外电子元器件,2001 [4]赵建领,Protel电路设计与制版宝典,电子工业出版社,2007 [5]郭伟、潘巍,基于单片机八路温度巡检系统设计,实践与探索,2018 [6]周四清、罗雪峰、何献华,基于DS18B20的八路温度巡检仪的设计与应用,科技创新导报,2008 [8]李玉峰、倪虹霞,MCS-51系列单片机原理与接口技术,人民邮电出版社,2004 致谢 在这次课程设计的过程中,我获益匪浅,学到了很多以前不知道的新知识。 首先我要感谢我的指导老师在此次课程设计上给予我的指导、让我能够很快的完成这次的设计,少走了很多的弯路,这是我能顺利完成这次设计并撰写好说明书的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把系统做得更加完善,但由于我的能力水平有限,在这次的设计中还存在许多的不足,希望老师能够帮我指出来。 在此期间,我不仅让曾经学过的专业知识得到了实践,还学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。 其次,我要感谢和我同实验室的师兄,以及那些帮助过我的同学,他们也为我解决了不少我不太明白的设计上的难题。 同时也感谢学院为我提供良好的做设计的环境,此次的亲身设计经历让我永生难忘。 最后再一次感谢所有在设计中曾经帮助过我的良师益友和同学! 附录A八路温度巡检系统电路原理图 附录B程序清单 主程序如下: #include"lcd1602.h" #include"ds18b20.h" unsignedchartemp[5]。 uchards18b20_num1[8]={0xfd,0x00,0x00,0x00,0xb8,0xc5,0x45,0x28}。 //第1路温度序列号 uchards18b20_num2[8]={0x8e,0x00,0x00,0x00,0xb8,0xc5,0x30,0x28}。 //第2路温度序列号 uchards18b20_num3[8]={0xb9,0x00,0x00,0x00,0xb8,0xc5,0x31,0x28}。 //第3路温度序列号 uchards18b20_num4[8]={0xe0,0x00,0x00,0x00,0xb8,0xc5,0x32,0x28}。 //第4路温度序列号uchards18b20_num5[8]={0xd7,0x00,0x00,0x00,0xb8,0xc5,0x33,0x28}//第5路温度序列号。 uchards18b20_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通道 温度 巡检 系统 设计方案 课程设计 方案 说明书