DS18B20温度测量设计实验报告2_第1页
DS18B20温度测量设计实验报告2_第2页
DS18B20温度测量设计实验报告2_第3页
DS18B20温度测量设计实验报告2_第4页
DS18B20温度测量设计实验报告2_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.信息工程学院成绩课程设计说明书 ( 论文 )题目 :温度测量课程 名 称 :单片机课程设计专业 :电子信息工程班级 :电信 0901学生 姓 名 :学号 :3116 10设计 地 点 :3#北 603指导 教 师 :设计起止时间:2012 年 5 月 2 日至 2012 年 5 月 22 日.目 录一、设计功能要求:3二、 系统总体设计方案:51、基本设计思想:52、实施方案论述:6三、 系统分析与设计:61、程序流程图及说明62、温度计的的电路设计9四、 源码清单:12五、 改进意见与收获体会 :18六、 主要参考资料:19.一、设计功能要求:本次的设计主要是利用了数字温度传感器DS18B

2、20 测量温度信号,计算后可以在 LCD 数码管上显示相 应的温度值 。 其温度测量范围为-55125,精确到 0.5。本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围内时,可以报警。数字温度计所测量的温度采用数字显示,控制器使用单片机 89C51,测温传感器使用 DS18B20,用 LCD1602 实现温度显示。从温度传感器 DS18B20 可以很容易直接读取被测温度值,进行转换即满足设计要求。本次使用的单片机 89C51 和 MCS-51 是完全兼容的,是一种带 4K 字节闪烁可编程可擦除只读存储器 (FPEROMFalsh Programmable and Erasab

3、le Read Only Memory)的低电压、高性能 CMOS8 位微处理器。 其主要特点如下:? 8 位 CPU。? 工作频率最高为 24M。? 128B 数据存储器。? 4KB 程序存储器。? 程序存储器的寻址空间为 64KB 。? 片外数据存储器的寻址空间为 64KB 。? 128 个用户位寻址空间。? 21 个字节特殊功能寄存器。? 4 个 8 位的并行 I/O 接口: P0、P1、P2、P3。? 两个 16 位定时 /计数器。? 两个优先级别的 5 个中断源。? 1 个全双工的串行 I/O 接口,可多机通信。? 111 条指令,喊乘法指令和除法指令。? 较强的位处理能力 。? 采

4、用单一 +5V 电源。对于 89C52 而言,不同之处在于:有 256B 的数据存储器、 8K 的程序存储器、全双工串行 I/O 接口、 6 个中断源、 3 个 16 位定时 /计数器,工作频率可升直 33Mhz。比 51 拥有更高的性能。单片机要对 DS18B20 进行读写,主要通过如下子程序进行驱动。.( 1)复位:在使用 DS18B20 时,首先需要对单片机进行复位。复位时,单片机给 DS18B20 的单总线至少 480us 的低电平信号。当 DS18B20 检测到此复位信号后会在 15-60us 内给出一个一个存在脉冲。 该存在脉冲是是一个60-240us 的低电平信号。为了能够接收到

5、此低电平,需要单片机在复位电平结束之后将总线拉高。( 2)ROM 指令:包括读 ROM 指令,指定匹配芯片、跳跃 ROM 、芯片搜索、报警芯片搜索。ROM 指令为 8 位长度,功能是对片内的 64 位光刻 ROM进行操作。其主要目的是为了分辨总线上的多个器件。不过,在本系统中由于只有一个 DS18B20,所以不需要进行 ID 辨识,所以可以采用一条特殊的跳过指令。具体指令可以参看其 datasheet。(3)发送存储器操作指令:在ROM 指令发送给 DS18B20 后,紧接着需要向它发送存储器操作指令,操作指令同样为8 位,共六条,分别是写RAM数据、读 RAM 数据、将 RAM 数据复制到

6、EEPROM、温度转换、将 EEPROM中的报警值复制到RAM 、工作方式切换。(4)执行和读写操作:一个存储器操作指令结束后则将进行指令执行或数据读写。如果是进行温度转换,需要等待DS18B20 执行其指令,转换时间一般为 500us。DS18B20 温度值格式默认的 12 位转化后得到的 12 位数据,存储在 18B20 的两个 8 比特的 RAM 中,二进制中的前面 5 位是符号位,如果测得的温度大于 0,这 5 位为 0,只要将测到的数值乘于 0.0625 即可得到实际温度;如果温度小于 0,这 5 位为 1,测到的数值需要取反加 1 再乘于 0.0625 即可得到实际温度。如图:DS

7、18B20 常用 ROM 指令:指 令约定代码功 能.读 DS1820温度传感器 ROM中的编码(即 64 位地读 ROM33H址发出此命令之后,接着发出64位 ROM 编码,访问单总线上与该编码相对应的DS1820 使之符合 ROM55HDS1820 的读写作准作出响应,为下一步对该备。用于确定挂接在同一总线上DS1820 的个数和搜索 ROM0FOH识别 64 位 ROM 地址。为操作各器件作好准备。忽略 64 位 ROM 地址,直接向 DS1820 发跳过 ROM0CCH温度变换命令。适用于单片工作。告警搜索执行后只有温度超过设定值上限或下限的命令0ECH片子才做出响应。二、系统总体设计

8、方案1、基本设计思想基本设计方案: 根据 DS18B20 的通讯协议,单片机控制 DS18B20 完成温度转换必须经过三个步骤:每一次读写之前都要对 DS18B20 进行复位操作,复位成功后发送一条 ROM 指令,最后发送 RAM 指令,这样才能对 DS18B20 进行预定的操作。 复位要求主 CPU 将数据线下拉 500 微秒,然后释放,当 DS18B20 收到信号后等待 1660 微秒左右,后发出 60240 微秒的存在低脉冲,主 CPU 收到此信号表示复位成功。于是,给 DS18B20 不同的时序,可以读取温度传感器的值,根据温度算法算出当时的温度值,在给显示部分,通过 LCD 显示出来

9、。.2、实施方案论述这个课题主要实现温度的检测以及通过数码管显示这两个大功能,以及读取这个相对较为容易的功能。因此在温度检测这一模块上,利用 DS18B20 这一目前比较先进的温度传感器,可以很精确地感测实时温度,对于 DS18B20 的通讯协议的控制,读取测量的温度值,经过一定的算法,可以把温度转化为十进制,分别为高位和低位,先暂存起来。经显示模块调用,最终在 LCD 上显示。时钟电路显示电路C51 主控复位电路电路DS18B20电路方框图二、系统分析与设计1、程序流程图及说明主函数完成对 DS18B20 的初始化,读取温度的转换值,调用数据处理的子程序然后再生成显示代码,再将温度显示出来,

10、然后根据温度显示的代码判断温度值可以判断它的值是否超出了预设的范围。然后返回到主函数开始的位置,无论温度值是否超出预设值,程序都会返回开始的位置,重复循环。.开 始始初始化、设置常量调用 DS18B20 初始化子程序读温度转换值调用数据处理子程序生成显示码显示温度值主函数流程图.DQ 置 1.DS18B20 复位子程序DQ 置 1.DQ 置 0.温度值子程序.2、温度计的的电路设计温度计采用 AT89C51 单片机作为微处理器,温度计系统的外围接口电路由晶振、 LCD 显示电路、复位电路、温度检测电路、 LCD 驱动电路。温度计系统的的硬件电路图如下图所示。温度计的工作过程是:初始化其接收需要

11、检测的温度,并一直处于检测状态,并将检测到的温度值读取,并转化为十进制数值,通过LCD 显示出来,再显示温度 ,方便用户来读数使用记录数据。具体实现方法是:单片机将从P2.2 管脚读进来的数据进行处理,P0.1到 P0.7 为数码管的段选端口,通过RP1 的驱动对 LCD 进行驱动。硬件电路原理图.时钟电路复位电路显示电路.温度检测电路三、源码清单#include #include #define uint unsigned int#define uchar unsigned char#define delayNOP() _nop_();_nop_();_nop_();_nop_();sbit

12、 DQ = P33;sbit LCD_RS = P20;sbit LCD_RW = P21;sbit LCD_EN = P22;uchar code Temp_Disp_Title=Current Temp : ;uchar Current_Temp_Display_Buffer= TEMP:;uchar code Temperature_Char8 =0x0c,0x12,0x12,0x0c,0x00,0x00,0x00,0x00;uchar code df_Table=0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9.;uchar CurrentT = 0;uchar Temp

13、_Value=0x00,0x00;uchar Display_Digit=0,0,0,0;bit DS18B20_IS_OK = 1;void DelayXus(uint x)uchar i;while(x-)for(i=0;i200;i+);bit LCD_Busy_Check()bit result;LCD_RS = 0;LCD_RW = 1;LCD_EN = 1;delayNOP();result = (bit)(P0&0x80);LCD_EN=0;return result;void Write_LCD_Command(uchar cmd)while(LCD_Busy_Check();

14、LCD_RS = 0;LCD_RW = 0;LCD_EN = 0;_nop_();_nop_();P0 = cmd;.delayNOP();LCD_EN = 1;delayNOP();LCD_EN = 0;void Write_LCD_Data(uchar dat)while(LCD_Busy_Check();LCD_RS = 1;LCD_RW = 0;LCD_EN = 0;P0 = dat;delayNOP();LCD_EN = 1;delayNOP();LCD_EN = 0;void LCD_Initialise()Write_LCD_Command(0x01);DelayXus(5);W

15、rite_LCD_Command(0x38);DelayXus(5);Write_LCD_Command(0x0c);DelayXus(5);Write_LCD_Command(0x06);DelayXus(5);void Set_LCD_POS(uchar pos)Write_LCD_Command(pos|0x80);void Delay(uint x).while(-x);uchar Init_DS18B20()uchar status;DQ = 1;Delay(8);DQ = 0;Delay(90);DQ = 1;Delay(8);DQ = 1;return status;uchar

16、ReadOneByte()uchar i,dat=0;DQ = 1;_nop_();for(i=0;i= 1;DQ = 1;_nop_();_nop_();if(DQ)dat |= 0X80;Delay(30);DQ = 1;return dat;void WriteOneByte(uchar dat).uchar i;for(i=0;i= 1;void Read_Temperature()if(Init_DS18B20()=1)DS18B20_IS_OK=0;elseWriteOneByte(0xcc);WriteOneByte(0x44);Init_DS18B20();WriteOneBy

17、te(0xcc);WriteOneByte(0xbe);Temp_Value0 = ReadOneByte();Temp_Value1 = ReadOneByte();DS18B20_IS_OK=1;void Display_Temperature()uchar i;uchar t = 150, ng = 0;if(Temp_Value1&0xf8)=0xf8)Temp_Value1 = Temp_Value1;Temp_Value0 = Temp_Value0+1;if(Temp_Value0=0x00).Temp_Value1+;ng = 1;Display_Digit0 = df_Tab

18、leTemp_Value0&0x0f;CurrentT = (Temp_Value0&0xf0)4) | (Temp_Value1&0x07)4);Display_Digit3 = CurrentT/100;Display_Digit2 = CurrentT%100/10;Display_Digit1 = CurrentT%10;Current_Temp_Display_Buffer11 = Display_Digit0 + 0;Current_Temp_Display_Buffer10 = .;Current_Temp_Display_Buffer9= Display_Digit1 + 0;

19、Current_Temp_Display_Buffer8= Display_Digit2 + 0;Current_Temp_Display_Buffer7= Display_Digit3 + 0;if(Display_Digit3 = 0)Current_Temp_Display_Buffer7= ;if(Display_Digit2 = 0&Display_Digit3=0)Current_Temp_Display_Buffer8= ;if(ng)if(Current_Temp_Display_Buffer8= )Current_Temp_Display_Buffer8= -;else if(Current_Temp_Display_Buffer7= )Current_Temp_Di

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论