ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:193.01KB ,
资源ID:13623067      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-13623067.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的DS18B20温度测量.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于单片机的DS18B20温度测量.docx

1、基于单片机的DS18B20温度测量基于DS18B20的温度测量系统组员:计佳辰 11221120组员:徐文杰 112211101.课题要求测量环境中的温度,以BCD码的形式在LED上显示2. 设计背景随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测和显示系统应用于诸多领域。传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差,这里设计的数字温度计具有读数方便,测温围广,测温精确,数字显示,适用围宽等特点。本设计选用AT89C51单片机作为主控制器件,DS18B20作为测温传感器,通过L

2、M016L实现温度显示。通过DS18B20直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在0100最大线性偏差小于0.01。该器件可直接向单片机传输数字信号,便于单片机处理及控制。另外,该温度计还能直接采用测温器件测量温度,从而简化数据传输与处理过程。3.设计方案3.1总体设计思路方案与系统框图采用数字温度芯片DS18B20测量温度,输出信号全数字化。采用了单总线的数据传输,由数字温度计DS18B20和AT89C51单片机构成的温度测量装置,DS18B20的DQ与AT89C51的P3.7口相连,与它直接输出温度的数字信号,采用AT89C51单片机控制,温度显示由四位八

3、段LED显示屏完成,LED的D0D7为8位双向数据端,与AT89C51的P1口相连,系统框图如下图所示。 3.2 DS18B20芯片介绍DS18B20引脚定义:(1)DQ为数字信号输入输出端(2)GND为电源地(3)VDD为外接供电电源输入端温度寄存器(0和1字节) DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。 这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到

4、实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。 DS18B20 的温度操作是使用16 位,也就是说分辨率是0.0625。BIT15BIT11 是符号位,为了就是表示转换的值是正数还是负数。3.3 LED显示屏(共阴)介绍A,B,C,D,E,F,G,DP管脚是段选引脚,1,2,3,4是位选引脚(低电平有效),字形码如下: 3.4AT89C51芯片VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地

5、址的第八位。在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口的管脚被外部拉低,将输出电流。这是由于部上拉的缘故。P

6、2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口

7、)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要

8、注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有部程序存储器。注意加密方式1时,/EA将部锁定为RESET;当/EA端保持高电平时,此间部程序存储

9、器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.5硬件电路图本系统过温度传感器DS18B20的数据线DQ与主控芯片51单片机的P3.7相连接,DS18B20将采集到的数据送给单片机,经过单片机出来后,显示在8位数据线与单片机P1口的液晶LED上。位选由P2控制。3.6 程序设计 4.仿真与调试附录TMPL EQU 29HTMPH EQU 28HDATAIN BIT P3.7ORG 0000HMAIN: MOV P1,#0FFH;LED显示清零(空格)LCALL GET_TEMPER

10、;调用初始化,写指令,读指令子程序LCALL CVTTMP;十六进制转换为BCD码LCALL DISP1;LED显示温度子程序AJMP MAIN;初始化DS18B20INIT_1820:SETB DATAINNOPCLR DATAIN;拉低DQ发送复位脉冲MOV R1,#3;延时TSR1: MOV R0,#107DJNZ R0,$DJNZ R1,TSR1SETB DATAIN;拉高DQNOP DATAIN,$;等待应答脉冲MOV R0,#117;延时TSR6:DJNZ R0,$TSR7:SETB DATAINRET;初始化完毕;调用初始化,写指令,读指令子程序GET_TEMPER:SETB D

11、ATAINLCALL INIT_1820;调用初始化子程序MOV A,#0CCHLCALL WRITE_1820;写命令,0CCH送入DS18B20,跳过ROM检测MOV A,#44HLCALL WRITE_1820;写命令,把44H送入DS18B20,在DS18B20部进行温度转换。把测得的数据转换成十六进制LCALL INIT_1820;调用初始化子程序MOV A,#0CCHLCALL WRITE_1820;写命令,把0CCH送入DS18B20,跳过ROM检测MOV A,#0BEHLCALL WRITE_1820;读命令,把0BEH送入DS18B20,准备读DS18B20的温度数据(十六进

12、制)LCALL READ_18200;读命令,把温度数据读入单片机(以十六进制保存)RET;调用初始化,写指令,读指令子程序完毕WRITE_1820:;调用写指令子程序开始MOV R2,#8CLR CWR1: CLR DATAINMOV R3,#6DJNZ R3,$RRC AMOV DATAIN,CMOV R3,#23DJNZ R3,$SETB DATAINNOPDJNZ R2,WR1SETB DATAINRET;调用写指令子程序完毕READ_18200:;调用读指令子程序开始MOV R4,#2MOV R1,#29HRE00: MOV R2,#8RE01: CLR CCLR DATAINNOP

13、SETB DATAINMOV R3,#9RE10:DJNZ R3,RE10MOV C,DATAINMOV R3,#23RE20:DJNZ R3,RE20RRC ADJNZ R2,RE01MOV R1,ADEC R1DJNZ R4,RE00RET;调用读指令子程序完毕CVTTMP: MOV A,TMPH;调用温度转换子程序,十六进制转换为BCD码MOV R0,AANL A,#80HJZ TMPC11MOV A,TMPLCPL AADD A,#1MOV TMPL,AMOV A,TMPHCPL AADDC A,#0MOV TMPH,ATMPC11:MOV A,TMPLANL A,#0FHMOV DP

14、TR,#TMPTABMOVC A,A+DPTRMOV 70H,AMOV A,TMPLANL A,#0F0HSWAP AMOV TMPL,AMOV A,TMPHANL A,#0FHSWAP AORL A,TMPLH2BCD: MOV B,#100DIV ABMOV 73H,AB2BCD1:MOV A,#10XCH A,BDIV ABMOV 72H,AMOV 71H,BMOV A,R0;调整指令,调整负号,空格ANL A,#80HJZ ZHENGMOV A,72HJNZ DIS0MOV 73H,#0AHMOV 72H,#0BHSJMP DISBCD1DIS0:MOV 73H,#0BHSJMP DI

15、SBCD1ZHENG: MOV A,73HCJNE A,#00H,DISBCD1MOV 73H,#0AHMOV A,72HCJNE A,#00H,DISBCD1MOV 72H,#0AHDISBCD1:RET;温度转换子程序完毕TMPTAB:DB 0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9DISP1:MOV R1,#70H;显示子程序开始(共阴极)MOV R5,#0FEHPLAY: MOV P1,#00HMOV A,R5MOV P2,AMOV A,R1MOV DPTR ,#TABMOVC A,A+DPTRMOV P1,AMOV A,R5 ACC.1,L00P1SETB P1.7;第二位小数点保留,其他位清掉L00P1: LCALL DL1MSINC R1MOV A,R5JNB ACC.3,ENDOUTRL AMOV R5,ASJMP PLAYENDOUT: MOV P1,#00HMOV P2, #0FFHRET;显示子程序完毕TAB: DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FH,00H,40HDL1MS: MOV R6,#14H;延时子程序DL1: MOV R7,#100DJNZ R7,$DJNZ R6,DL1RETEND

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2