《字温度传感器毕业设计.docx》由会员分享,可在线阅读,更多相关《字温度传感器毕业设计.docx(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、论 文 摘 要对于温度测量的设备用单片机检测和控制的电子产品在应用上已经越来越广泛。温度是一种最基本的环境参数,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。温度检测有多种方法:传统方法是使用诸如热电偶、热电阻之类的模拟温度传感器。被检测温度信号从热敏元件到单片机,经过众多器件,易受干扰、不易控制且精度不高。测量温度的关键是温度传感器,温度传感器的发展经历了三个阶段。传统的分立式温度传感器。模拟集成温度传感器。智能集成温度传感器。目前,国际上新型温度传感器正从模拟式向数字式,从集成化向智能化、网络化
2、的方向飞速发展。本设计是采用一种新型的可编程温度传感器DS18B20,它能替代模拟温度传感器和信号处理电路,直接与单片机沟通,完成温度采集和数据处理。本设计将DS18B20与AT89C51结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。关键词:测温 DS18B20 数字温度传感器 AT89C51 目 录1. 论文内容摘要 12. 关键词 13. 方案论证与选择 34. 硬件设计 34.1系统的组成 34.2系统硬件设计 34.2.1单片机的选择 34.2.2时钟电路 44.2.3复位电路 54.2.4显示电路 54.2.5温度传感器的
3、选择 55. 软件设计 65.1主程序设计 75.2测量温度子程序设计 85.3初始化子程序 95.4写子程序 105.5读子程序 105.6温度数据进行转换子程序115.7显示子程序126. 参考文献 13一、 方案论证与选择方案一:使用热电阻、热电偶之类的模拟温度传感器,被测温度信号从热敏元件经过众多器件到单片机。方案二:使用可编程温度传感器DS18B20直接与单片机沟通,完成温度采集和数据处理。并与AT89C51结合,实现最简温度检测系统。分析:方案一属于传统的温度检测方法,温度信号易受干扰,不易控制且精度不高;方案二系统设计结构简单,抗干扰能力强,适合于恶劣环境下的现场温度测量。经过分
4、析论证,我选择方案二作为设计方案。二、 硬件设计(一) 系统的组成系统的硬件结构如图1所示,系统电路连接如图2(附录)所示,由温度传感器DS18B20采集被控对象的实时温度,提供给AT89C51的P3.7口作为数据输入。在本设计中我们所控的对象为温室室温。当然作为改进我们可以把传感器与电路板分离,由数据线相连进行通信,便于测量多种对象。图一:系统总体框图 接口电路由Atmel公司的单片机AT89C51、74LS47七段译码器、74LS138三-八译码器、PNP三极管8550、共阳极数码管及外围电路构成。单片机以及并行通信方式从P0.0P0.3口输出控制信号,通过74LS47BCD译码器译码,用
5、6个共阳极数码管静态显示温度,包括符号位(正的话管子灭,负的话显示“”)还有百位,十位,个位带小数点,十分位,百分位,能显示的最小刻度温度值为0.01度。通过DS18B20的2管脚和单片机的P3.7口连线,16位的温度数字量输出到单片机寄存器中,通过程序的作用,把十六进制的带符号温度值转化成十进制带符号温度,通过LED显示模块在数码管显示。(二)系统硬件设计单片机的选择一、Atmel公司的AT89C51。AT89C51是MCS-51系列单片机的典型产品,它由一个8位CPU、128B内部RAM、21个特殊功能寄存器、4个8位并行I/O口、两个16位定时器/计数器、两个外部中断申请输入端、一个串行
6、I/O接口和时钟电路等组成。AT89C51单片机有3个不同的存储空间,分别是64KB的程序存储器(ROM)、64KB的外部数据存储器(RAM)和256B的片内RAM。AT89C51单片机有4个8位并行I/O口,它们在结构和特性上基本相同。当其片外扩展RAM和ROM时,P0口既用于8位数据线也用于低8位地址线,P2口用于高8位地址线,P3口常用于第二功能,本设计中用P3.7作为温度传感器到单片机的数据输入端。 AT89C51具有以下特点:40个引脚,32个外部双向输入/输出(I/O)口,5个中断优先级两层中断嵌套中断,两个16位可编程定时器/计数器,一个全双工串行通信口,片内时钟振荡器。图三:单
7、片机AT89C51引脚图VCC:电源端,正常+5V工作电压。VSS:接地端。RST:复位信号输入端。当晶振在运行状态中只要复位引脚出现两个机器周期的高电平,即可复位。该引脚的第二功能是备用电源输入端,接上+5V备用电源。当芯片突然断电时,能保护片内RAM数据,使复电后能正常运行。ALE/PROG:ALE是地址锁存允许信号。它的作用是把CPU从P0口分时输出的低8位地址锁存在锁存器中。在正常情况下ALE输出信号恒定为1/6振荡频率,并可用作外部时钟或定时。该引脚第二功能PROG是对EPROM编程时的编程脉冲输入端。PSEN:读片外程序存储器选通信号输出端。当执行外部程序存储器数据时,PSEN每个
8、机器周期被激活两次。在访问外部数据存储器和内部程序存储器时PSEN无效。EA/VPP:读片外片内与片外程序存储器的选择端。EA接高电平,程序执行从内部开始。EA接地,程序执行从外部开始。XTAL1/XTAL2:片内振荡电路反相放大器的输入/输出端,采用外部振荡电路时该引脚接地/为振荡信号的输入端。二、Atmel公司的AT89S52。AT89S52是一个低功耗、高性能的CMOS8位单片机,片内含8KB ISP的可反复擦写1000次的Flash只读程序存储器,器件采用Atmel公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和IS
9、P Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S52具有以下特点:40个引脚,8KB Flash片内程序存储器,256B的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级两层中断嵌套中断,两个16位可编程定时器/计数器,两个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。这里我选择AT89C51单片机作为温度测量仪的核心。时钟电路单片机的定时控制功能是用片内的时钟电路和定时电路完成的,片内的时钟产生有两种方式。采用内部时钟电路可外接晶振,对频率进行微调,使频率更加稳定。复位电路复位
10、目的是使单片机或系统中的其他部件处于某种确定的初始状态,常见的复位电路有:上电复位电路和上电及按钮复位电路。图三:复位电路显示电路显示电路由74LS47七段译码器,74LS138三-八译码器,PNP三极管8550,共阳极数码管构成。为节省端口及降低功耗,系统采用动态扫描方式。动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。通常,各位数码管的段选位相应并联在一起,由一个I/O口控制;各位的位选线(公共阴极或阳极COM)由另外的I/O口线控制。动态方式显示时,CPU向ag位输出字形码时,所有显示器接收到相同的字形码,但究竟是哪个显示器亮则取决于COM端,而这一端是由I/
11、O控制的,所以就可以自行决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的,但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感。图四:74LS138真值表74LS138有以下特点:在正常译码称为“使能”情况下,8个译码输出端Y0Y7中只有一个输出端为低电平,其余输出端为高电平。增设了3个使能输入端E1、E2、E3。只有当E1、E2、E3分别为1、0、0时,译码器才能正常译码,否则
12、译码器不能译码,所有输出Y0Y7全为高电平。图三:符号位显示控制显示电路中通过P0口P0.0P0.3接74LS47的A、B、C、D端,来实现ag七段码的“段控”,而每一位的公共端(共阳极)即LED数码管的“位控”,则由P1口的P1.0P1.2接三-八译码器74LS138的A、B、C端,通过译码来决定哪个LED亮,即“位控”。一位LED段码显示器功耗通常为80mA左右,因此在设计显示器驱动电路时,就注意了电路中的组件驱动能力,通常的驱动电路可用门电路驱动或三极管驱动,门电路较为简单,驱动能力一般在100mA左右,常见的芯片有:74HC04、74HC07等。由于在电路中采用的是共阳极的LED数码管
13、,所以在设计电路时加了6个PNP三极管8550对信号进行放大,产生足够大的电流驱动数码管显示。温度传感器的选择当前A/D转换电路的型号很多,但是它们在精度、速度和价格上的差别也很大。系统中选用单总线数字温度传感器DS18B20,在精度、速度和价格等方面都属于中等,这对一般实时控制的数据采集系统来讲是合适的。DS18B20是美国Dallas公司推出的单总线数字测温芯片。具有独特的单总线接口方式,仅需使用一个端口就能实现与单片机的双向通信。与传统的热敏电阻相比能够直接读出被测温度并且可根据实际要求通过简单的编程实现912位的数字值读数方式。从DS18B20读出的信息或写入DS18B20的信息仅需要
14、一根口线读写,其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或两根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。DS18B20与AT89C51结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。本设计用单片机和单总线数字温度传感器DS18B20实现温室温度的测量,测量精度0.01. 图五:DS18B20引脚图DS18B20的外形和内部结构如图所示,引脚定义如下。1脚(GND):地。2脚(DQ):数据输入/输出端(即单线总线)。3脚(VDD)
15、:为外接供电电源输入端,在寄生电源接线方式时接地。DS18B20内部结构主要由4个部分组成:64位光刻ROM、温度灵敏元件、非易失性温度报警触发器TH和TL、配置寄存器,高速暂存存储器,寄生电源等。图六:DS18B20内部结构图图七:DS18B20温度数据表三、 软件设计系统软件设计采用模块化结构。整个程序由主程序、测量温度子程序、DS18B20的初始化子程序、DS18B20的写子程序、DS18B20的读数据子程序、温度数据进行转换子程序、显示子程序等模块组成。DS18B20的工作协议流程是:初始化ROM操作指令存储器操作指令处理数据。其工作时序包括初始化时序、写时序和读时序。故单片机控制DS
16、18B20完成温度转换必须进过3个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。本程序仅挂接一个芯片,使用默认的12位转换精度,外接供电电源,读取的温度值高位字节送WDMSB单元,低位字节送WDLSB单元,再按照温度值字节的表示格式及其符号位,经过简单的变换即可得到实际温度值。假设单片机系统所用的晶振频率为12MHz,根据DS18B20的初始化程序、写程序和读程序,可编写出相应的初始化和读、写3个子程序:INIT18B20为初始化子程序,WRITE18B20为写子程序,READ18B20为读数据子程序
17、,所有的数据读写均由最低位开始。系统主程序流程图如图3所示。首先进行温度测量,然后把测量结果转换成显示码,最后由数码管显示输出。(一) 主程序设计图八:系统主程序流程图WDLSB EQU 30HWDMSB EQU 31HBAIFENWEI EQU 40HSHIFENWEI EQU 40HGEWEI EQU 41HSHIWEI EQU 42HBAIWEI EQU 43HFUHAOWEI EQU 44HFLAG BIT 00HDQ BIT P3.7 ORG 0000HSTART: LCALL GET LCALL COVERT LCALL DISP AJMP START(二) 测量温度子程序设计图九
18、:测量温度子程序流程图GET: SETB DQ LCALL INIT18B20 JB FLAG,JP1 RETJP1: MOV A,#0CCH LCALL WRITE18B20 MOV A,#44H LCALL WRITE18B20 LCALL DELAY1S LCALL INIT18B20 MOV A,#0CCH LCALL WRITE18B20 MOV A,#0BEH LCALL WRITE18B20 LCALL READ18B20 RETDELAY1S:MOV R7,#10DL3: MOV R5,#200DL2: MOV R6,#248DL1: DJNZ R6,DL1 DJNZ R5,D
19、L2 DJNZ R7,DL3 RET(三) 初始化子程序与DS18B20的所有通信都是由一个单片机的复位脉冲和一个DS18B20的应答脉冲开始的。单片机先发一个复位脉冲,保持低电平时间最少480us,最多不能超过960us。然后单片机释放总线,等待DS18B20的应答脉冲。DS18B20在接受到复位脉冲后等待1560us才发出应答脉冲。应答脉冲能保持60240us。单片机从发送完复位脉冲到再次控制总线至少要等待480us。INIT18B20:CLR DQ MOV R7,#33LCALL DELAY15SETB DQMOV R7,#4LCALL DELAY15CLR FLAGJB DQ,JP1S
20、ETB FLAGMOV R7,#28LCALL DELAY15SETB DQJP1: RETDELAY15: MOV R6,#7DL4: DJNZ R6,DL4 RET图十:初始化子程序流程图(四) 写子程序写间隙需要1575us,且在两次独立的写间隙之间至少需要1us的恢复时间,写间隙起始于单片机拉低总线。WRITE18B20:MOV R1,#8 CLR CWR1: CLR DQ MOV R7,#1 LCALL DELAY15 RRC A MOV DQ,C MOV R7,#1 LCALL DELAY15 SETB DQ NOP DJNZ R1,WR1 SETB DQ RET(五) 读子程序读
21、间隙需1560us,且在两次独立的读间隙之间至少需要1us的恢复时间,读间隙起始于单片机拉低总线至少1us。READ18B20: CLR C MOV R1,#2 MOV R0,#WDLSBRD1: MOV R2,#8RD2: SETB DQ NOP NOP CLR DQ NOP NOP MOV R7,#1 LCALL DELAY15 MOV C,DQ RRC A MOV R7,#3 LCALL DELAY15 DJNZ R2,RD2 MOVX R0,A DEC R0 DJNZ R2,RD1 RET(六) 温度数据进行转换子程序CONVERT: MOV A,30H ANL A,#0F0H MOV
22、 3AH,A MOV A,31H ANL A,#0FH ORL A,3AH SWAP A MOV 44H,A ANL A,#7FH MOV B,#10 DIV AB MOV 48H,A MOV A,BMOV 41H,AMOV A,43HMOV B,#10DIV ABMOV 43H,AMOV A,BMOV 42H,AMOV A,44HANL A,#80HMOV 44H,AMOV DPTR,#TABBMOV A,30HANL A,#0FHMOV B,#2MUL ABMOVC A,A+DPTRMOV 40H,AMOV A,30HANL A,#0FHMOV B,#2MUL ABINC AMOVC A,
23、A+DPTRMOV 39H,ARETTABB: DB 0,0,0,6,1,2,1,8,2,5,3,1,3,7DB 0,4,3,5,5,6,6,2,6,8,7,5,8DB 1,8,7,9,3(七) 显示子程序DISPLAY: MOV A,44HJNBACC.7 JP3CLRP1.7JMP JP4JP3:SETP1.7JP4:MOVR0,#39HMOVR3,#05HJP2:MOVA,R3ANLA,0FHMOVP1,AMOVA,R0ANLA,#0FHMOVP0,ACALLDELAY1MSINCR0MOVA,R3CJNEA,#01H ,JP1DECAMOVR3,ASJMPJP2JP1:RETDELAY1MS:MOVR5,#2DL2:MOVR6,#248DL1:DJNZR6,DL1DJNZR5,DL2RET图十一:显示子程序流程图参考文献 湛洪然、刘秋艳编著,单片机原理及实训教程,北京师范大学出版社,2011.8 何立民,单片机教程习题与解答,北京航空航天大学出版社,2003 徐淑华,单片微型计算机原理及应用,哈尔滨工业大学出版社,1991 沈任元、吴勇,数字电子技术基础,机械工业出版社,2012.116