八路温度巡回检测系统.docx

上传人:b****7 文档编号:9759531 上传时间:2023-02-06 格式:DOCX 页数:26 大小:571.88KB
下载 相关 举报
八路温度巡回检测系统.docx_第1页
第1页 / 共26页
八路温度巡回检测系统.docx_第2页
第2页 / 共26页
八路温度巡回检测系统.docx_第3页
第3页 / 共26页
八路温度巡回检测系统.docx_第4页
第4页 / 共26页
八路温度巡回检测系统.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

八路温度巡回检测系统.docx

《八路温度巡回检测系统.docx》由会员分享,可在线阅读,更多相关《八路温度巡回检测系统.docx(26页珍藏版)》请在冰豆网上搜索。

八路温度巡回检测系统.docx

八路温度巡回检测系统

《单片机原理及应用》

课程设计总结报告

 

题目:

八路温度巡回检测系统

设计人姓名:

刘忠强

院系:

电气工程学院

专业:

生物医学工程07级

班级学号:

20074320132

指导教师:

张美琴

日期:

2011-1-2

 

目录

序………………………………………………………02

第一节引言……………………………………………02

1.1系统原理及基本框图……………………………02

1.2设计任务…………………………………………03

1.3设计目的…………………………………………03

第二节硬件设计介绍……………………………………03

2.1单片机简介及STC89C52RC主要性能……………04

2.2DS18B20……………………………………………07

2.3三极管9012………………………………………10

2.4共阴极数码管………………………………………11

2.5晶振…………………………………………………11

第三节软件设计介绍……………………………………12

3.1程序流程图………………………………………12

3.2调试………………………………………………12

3.3实物图……………………………………………13

3.4小结…………………………………………………14

第四节个人心得体会………………………………………14

参考文献……………………………………………………15附1:

元件清单……………………………………………16

附2:

电路设计图…………………………………………16

附3:

源程序………………………………………………17

 

摘要:

详细设计了一种基于DS18B20和STC89C52RC的八路温度巡回检测系统(由于实验及成本原因本文只做一路传输系统)。

该系统从实际应用工程出发,主要对硬件电路设计、电子元件选择、系统应用软件设计等方面进行具体探讨和研究,设计中利用了单片机复位操作,晶振外放电路等来完成一路传输系统。

系统具有性能稳定可靠、功耗低、成本低、测量准确、维护简单等优点,系统设计在实际工作中具有一定的借鉴意义。

关键词:

DS18B20;STC89C52RC;温度检测;传感器。

第一节引言

现代生产生活中,温度的巡回检测与计算机的结合越来越普遍,特别是在冶金,化工,机械,医疗各类行业中广泛使用。

及时采集其信息,及时发现潜在故障,并采取相应的处理措施,对确保其良好运行状态具有重要意义。

单片机有着体积小,功耗低,功能强,性能价格比高等显著优点,将其用于温度巡回监测系统可大大提高控制质量和自动化水平,具有良好的经济效益和推广价值。

利用单片机对温度进行测控的技术日益得到广泛应用。

如何将温度通过传感器变成电信号,再经过处理转换成计算机能够识别的数字量,输入到计算机中,由计算机将采集到的数字量进行不同的处理,然后在显示器显示出来,并进行实时监控。

这已经为当前计算机测量与控制领域的一个重要研究方向。

鉴于此,本文提出一种基于AD590和AT89C51的低成本、远距离传输的温度检测系统设计方案。

1.1系统原理及基本框图

如图1.1所示,实际温度经过DS18B20传感器转换后,然后送到单片机中进行数据处理。

处理后的数据送到LED中显示。

图1.1系统硬件总体结构

根据单片机应用系统的设计原则,首先设计了系统硬件的总体结构如图1.1所示,然后按模块分别对各单元电路进行电路设计,而后进行硬件电路集成。

单片机为系统的控制核心部分。

温度传感器信号由信号处理及放大电路进行处理之后送入A/D转换器,再由单片机控制A/D转换器进行温度数据的采集,而后对温度原始数据进行处理,根据处理结果驱动声光报警电路和执行显示。

电源采用直流电供电,给整个系统提供电源电压。

看门狗采用硬件看门狗电路,防止程序在运行过程中“跑飞”,保证系统运行的稳定、可靠。

基于简单,稳定可靠,价格低廉的原理本文采用了STC89C52RC单片机及DS18B20传感器和LED共阴极显示。

1.2设计任务

利用单片机与AD转换器设计一个八路温度巡回检测系统,对某粮库或冷冻厂八点(八个冷冻室或八个粮仓)进行温度巡回检测。

能够测量-30~+50oC的温度范围,检测精度要求不大于±1oC。

采用数码管显示测量值;单片机和AD转换器型号自选(如单片机可选AT89S51或AT89C51等;AD转换器可选ADC0809或ADC0804等)。

1.3设计目的

通过文献调研、电路设计、计算机仿真及焊接、调试综合训练,提高学生在单片机及传感器应用方面的实践技能,培养学生综合运用理论知识解决实际问题的能力。

初步掌握工程设计方法和组织实践的基本技能,逐步熟悉开展科学实践的程序和方法。

第二节硬件设计介绍

2.1单片机简介

单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机处理器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。

单片微型计算机简称单片机,是典型的嵌入式微控制器,常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。

单片机由芯片内仅有CPU的专用的处理器发展而来。

最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。

早期的单片机都是8位或4位的。

随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。

90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。

随着INTELi960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。

而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。

目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。

当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。

单片机有很多的特点,主要表现在:

体积小、功耗低、价格廉、控制功能强、应用现场环境恶劣等等。

本设计核心采用了STC89C52单片机。

STC89C51/52单片机系列是在MCS—51/52系列的基础上发展起来的,STC-51系列单片机基本结构框图如图2.1.1所示:

图2.1.151系列单片机基本结构框图

VCC:

供电电压。

  GND:

接地。

  P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

  P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

  P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

  P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

  RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

89c51/52芯片为40引脚双列直插封装,单一的+5V电源,其引脚排列和逻辑结构如图2—1,它具有3个可编程I/O口,其中个2个口(A和B)为8位口,1个口(C)为6为口。

此外还有256单元的RAM和1个14位计数结构的定时器/计数器。

STC89C52RC的主要性能:

单片机的引脚功能图:

图2.2STC89C52引脚图

STC89C52的引脚(图2.1.2)和89系列的引脚一样,之所以选用此单片机的原因是降低成本,提升性能,原有程序直接使用,无需改动。

复位及复位电路

复位操作

复位是单片机的初始化操作。

其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。

除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。

除PC之外,复位操作还对其他一些寄存器有影响,它们的复位状态如表一所示。

表一一些寄存器的复位状态

寄存器

复位状态

寄存器

复位状态

PC

0000H

TCON

00H

ACC

00H

TL0

00H

PSW

00H

TH0

00H

SP

07H

TL1

00H

DPTR

0000H

TH1

00H

P0-P3

FFH

SCON

00H

IP

XX000000B

SBUF

不定

IE

0X000000B

PCON

0XXX0000B

TMOD

00H

2.2DS18B20

DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式,其引脚及封装图如图2.2.1示。

图2.2.1DS18B20引脚及封装图

DS18b20内部主要有三个数字部件:

64位激光ROM、温度传感器、非易失性温度报警触发器TH和TL。

DS18B20的性能特点如下:

●独特的单线接口方式仅需要一个端口引脚进行通信;

●多个DS18B20可以并联在唯一的三线上,实现多点组网功能;

●无需外部器件;

●可通过数据线供电,电压范围:

3.0~5.5V;

●测温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃

●零待机功耗

●温度以9或12位数字量读出;

●用户可定义的非易失性温度报警设置

●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件

●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作

DS18B20测温原理

DS18B20的测温原理如图2.2.2所示,图中低温度系数晶振的振荡频率受温度的影响很小用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量.计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55℃所对应的一个基数值。

减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温图2.2.2中的斜率累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。

在正常测温情况下,DS1820的测温分辨力为0.5℃,可采用下述方法获得高分辨率的温度测量结果:

首先用DS1820提供的读暂存器指令(BEH)读出以0.5℃为分辨率的温度测量结果,然后切去测量结果中的最低有效位(LSB),得到所测实际温度的整数部分Tz,然后再用BEH指令取计数器1的计数剩余值Cs和每度计数值CD。

考虑到DS1820测量温度的整数部分以0.25℃、0.75℃为进位界限的关系,实际温度Ts可用下式计算:

Ts=(Tz-0.25℃)+(CD-Cs)/CD

 

图2.2.2DS18B20测温原理图

2.3三极管的工作原理

三极管是一种控制元件,主要用来控制电流的大小,以共发射极接法为例(信号从基极输入,从集电极输出,发射极接地),当基极电压UB有一个微小的变化时,基极电流IB也会随之有一小的变化,受基极电流IB的控制,集电极电流IC会有一个很大的变化,基极电流IB越大,集电极电流IC也越大,反之,基极电流越小,集电极电流也越小,即基极电流控制集电极电流的变化。

但是集电极电流的变化比基极电流的变化大得多,这就是三极管的放大作用。

IC的变化量与IB变化量之比叫做三极管的放大倍数β(β=ΔIC/ΔIB,Δ表示变化量。

),三极管的放大倍数β一般在几十到几百倍。

三极管在放大信号时,首先要进入导通状态,即要先建立合适的静态工作点,也叫建立偏置,否则会放大失真。

本文中当某一通道的温度测量值超出预先设定的上、下限报警值或系统运行出现故障时,系统发出声光报警以提醒用户注意。

报警电路中光报警采用发光二极管,声报警采用蜂鸣器来设计,蜂鸣器电路中,9012晶体管起开关作用,P2.6输出低电平时,管脚输出电压经过lK限流电阻分压后,到达9012基极的电压为使得晶体管发射结正偏,集电结反偏,晶体管导通,蜂鸣器上电而产生声响。

发光二极管电路中,主要是限流电阻的设计,由于发光二极管工作电流是3mA-30mA,导通压降为1.8V;而单片机工作在5V电压时,I/O口输出低电平的最大灌入电流是16mA,输出的低电平是Vss+0.6V这样在限流电阻上的压降就是5-1.8-0.6=2.6V,而电流要限定在8mA左右,所以电阻阻值为2.6V/8mA=325欧姆,在实际电路中选用330欧姆的电阻即能满足要求。

2.4共阴极数码管

图2.4共阴极管引脚图

共阴极数码管的8个发光二极管的阴极(二极管负端)连接在一起。

通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。

当某段驱动电路的输出端为高电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。

此时,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。

2.5晶振

为了产生时钟信号,在8052内部设置了一个反相放大器,XTAL1是片内振荡器反相放大器的输入端,XTAL2是片内振荡器反相放大器的输出端,也是内部时钟发生器的输入端。

当使用自激振荡方式时,XTAL1和XTAL2外接石英晶振,使内部振荡器按照石英晶振的频率振荡,就产生时钟信号。

晶振一般使用石英晶体,其频率由系统需要和器件决定,在频率稳定度要求不高时也可以使用陶瓷滤波器。

使用石英晶体时C1、C2为C1=C2=30(±10)pF,使用陶瓷滤波器时,C1=C2=40(±10)pF。

本系统用12MHZ的石英晶振,接STC89C52RC的18和19脚,具体电路如图2.5所示。

图2.5时钟信号电路(晶振)

 

第三节软件设计介绍

3.1程序流程图

3.1程序流程图

3.2调试

硬件调试

1.初步检查:

检查电路板上每根导线是否都连接好没有出现断路及各芯片是否插好。

2.仪器检查:

初步检查完毕后,用万用表检测各接线点之间是否断路、短路。

3.加电检查:

完成1、2步后,给电路加上电流检测电路是否运行,查看显示元件是否有反应。

软件调试

通过外接接口对单片机写入程序,让其运行看是否能检测和显示温度,检测测值是否符合设计要求,根据测值适当的修改电路或程序,直至运行无误。

3.3实物图

图3.3.1硬件调试

图3.3.2软件调试

图3.3.3调试完成后

3.4小结

在本次设计的过程中,我发现很多的问题,本次单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法(比如T内码转化程序,T内码转化为BCD码),虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,就是简单的AD转换程序要充分考虑整体用时,要调试很久。

程序编写的时候也要很重视子程序的模块化。

只有很好的模块化之后才能有利于用到别的程序中。

就是因为自己的模块化不是很好导致很多莫名的错误。

在课程设计我也认识到了团队合作的重要性,很多很好的算法要通过大家的不断讨论,交流才能出来。

在当今社会一个人很难成就大业,要有自己的一个核心的团队才能使工作更有效率。

第四节个人心得

在这十几天的课程设计过程中我感受良多,不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。

创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。

拿到设计题目后,我们按老师的安排做课程设计:

一理论设计,确定设计方案画出系统框图,用Protel画出完整规范的电路图并利用仿真软件对电路图进行整体或局部仿真,初步确定电路图无错误,且符合设计的要求;列出元器件清单。

画出程序流程图,编写程序,按上述要求画出逻辑电路图交指导教师审阅通过后,进行下一步骤。

在开始几天去图书馆搜索资料,调研文献,进一步熟悉单片机和相关芯片的知识,感到自己以前学习的不足,特别在元器选择时更要求我们对各个元器件有一定的了解。

二方案实践对所选定的设计方案进行计算机仿真、硬件电路焊接制作并进行软硬件调试,加以改进完善。

在这阶段是最繁琐的时候,电路的焊接要特别小心,制作硬件电路时,做到认真仔细、一丝不苟。

注意连线正确,焊接规范,尽量做到整齐美观并保证接触良好;集成块插牢并注意方向;电源和地线不要短路,以避免人为故障。

经过两天的电路焊接后组长用万用表检查整块电板中线有没有断路,焊点之间有没有短路。

还好整个过程没有出现故障,为我们后面的设计节约了很多时间。

如今程序写好,电路调式完毕,一切都通过,我们终于松了口气。

虽然期间有点累,但很高兴,这次设计是一次锻炼的好机会,使我在学习和巩固新、老知识的同时,训练了自己综合运用知识的能力、分析解决新问题的能力,同时也提高了自己工程实践能力;在设计的过程中,我与同学一同学习、一同讨论,大家集思广益,发扬了团队协作精神,我们终于把从课本里学到的东西用到了实际,做出了实际的东西。

 

参考文献

[1]李红刚,方佳,王强,钱双艳.《基于At89C51的八路温度巡回检测系统设计》[J].热带农业工程,2010年第34卷第1期

[2]李朝青.《单片机原理及接口技术》[M].北京:

航空航天大学出版社,2007

[3]孙进生等.《电子产品设计实例教程》[M].北京:

冶金工业出版社,2004

[4]张伟等.《Protel99SE实用教程》[M].北京:

人民电邮出版社,2008

[5]白瑞青,金功伟.《单片机温度巡回监测系统》[J].测试技术学报,98年第12卷第3期

[6]陈世和.《电工电子实习教程》[M].北京:

航空航天大学出版社,2007

[7]宏晶科技《STC89C52RC/RD+系列单片机中文指南》[M].:

深圳,2005

 

附1:

元器件清单

序号

型号

个数

1

STC89C51(52)RC

1

2

DS18B20

1

3

排阻(1K)

1

4

排针(4)

1

5

.排针

(2)

1

6

按键

1

7

LED显示灯(8×4)

1

8

蜂鸣器

1

9

12MHZ晶振

10

1K电阻

11

4.7K电阻

1

12

10K电阻

13

0.47K电阻

1

14

30PF电容

2

15

22UF电容

1

16

S9012三极管

1

17

显示灯

1

注:

封装都为标准封装

附2:

电路设计图

附3:

源程序

#include"reg52.h"

#include"intrins.h"//_nop_();延时函数用

#defineDisdataP0//段码输出口

#definediscanP2//扫描口

#defineucharunsignedchar

#defineuintunsignedint

sbitDQ=P1^0;//温度输入口

sbitDIN=P0^7;//LED小数点控制

uinth;

uinttemp;

//**************温度小数部分用查表法***********//

ucharcodeditab[16]=

{0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};

//

ucharcodedis_7[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf};

ucharcodescan_con[4]={0xFE,0xFD,0xFB,0xF7};//列扫描控制字

uchardatatemp_data[2]={0x00,0x00};//读出温度暂放

uchardatadisplay[5]={0x00,0x00,0x00,0x00,0x00};//显示单元数据,共4个数据和一个运算暂用

/*****************11us延时函数*************************/

voiddelay(uintt)

{

for(;t>0;t--);

}

/****************显示扫描函数***************************/

scan()

{

chark;

for(k=0;k<4;k++)//4位LED扫描控制

{

Disdata=0XFF-dis_7[display[k]];//数据显示

if(k==1){DIN=1;}//小数点显示

discan=scan_con[k];//位选

delay(300);

}

}

/****************DS18B20复位函数************************/

ow_reset(void)

{

charpresence=1;

while(presence)

{

while(presence)

{

DQ=1;_nop_();_nop_();//从高拉倒低

DQ=0;

delay(50);//550us

DQ=1;

delay(6);//66us

presence=DQ;//presence=0复位成功,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1