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

下载本文档

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

文档简介

西安欧亚学院信息工程学院 单片机课程设计说明书 成绩 信息工程学院课程设计说明书(论文)题 目: 温度测量 课 程 名 称: 单片机课程设计 专 业: 电子信息工程 班 级: 电信0901 学 生 姓 名: 学 号: 31 16 10 设 计 地 点: 3#北603 指 导 教 师: 设计起止时间:2012年5月2日至2012年5月22日目 录一、设计功能要求:3二、 系统总体设计方案:51、基本设计思想:52、实施方案论述:6三、 系统分析与设计:61、程序流程图及说明62、温度计的的电路设计9四、 源码清单:12五、 改进意见与收获体会:18六、 主要参考资料:19一、设计功能要求: 本次的设计主要是利用了数字温度传感器ds18b20测量温度信号,计算后可以在lcd数码管上显示相应的温度值。其温度测量范围为-55125,精确到0.5。 本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围内时,可以报警。数字温度计所测量的温度采用数字显示,控制器使用单片机89c51,测温传感器使用ds18b20,用lcd1602实现温度显示。从温度传感器ds18b20可以很容易直接读取被测温度值,进行转换即满足设计要求。本次使用的单片机89c51和mcs-51是完全兼容的,是一种带4k字节闪烁可编程可擦除只读存储器(fperomfalsh programmable and erasable 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条指令,喊乘法指令和除法指令。 较强的位处理能力 。 采用单一+5v电源。 对于89c52而言,不同之处在于:有256b的数据存储器、8k的程序存储器、全双工串行i/o接口、6个中断源、3个16位定时/计数器,工作频率可升直33mhz。比51拥有更高的性能。 单片机要对ds18b20进行读写,主要通过如下子程序进行驱动。(1)复位:在使用ds18b20时,首先需要对单片机进行复位。复位时,单片机给ds18b20的单总线至少480us的低电平信号。当ds18b20检测到此复位信号后会在15-60us内给出一个一个存在脉冲。该存在脉冲是是一个60-240us的低电平信号。为了能够接收到此低电平,需要单片机在复位电平结束之后将总线拉高。(2)rom指令:包括读rom指令,指定匹配芯片、跳跃rom、芯片搜索、报警芯片搜索。rom指令为8位长度,功能是对片内的64位光刻rom进行操作。其主要目的是为了分辨总线上的多个器件。不过,在本系统中由于只有一个ds18b20,所以不需要进行id辨识,所以可以采用一条特殊的跳过指令。具体指令可以参看其datasheet。(3)发送存储器操作指令:在rom指令发送给ds18b20后,紧接着需要向它发送存储器操作指令,操作指令同样为8位,共六条,分别是写ram数据、读ram数据、将ram数据复制到eeprom、温度转换、将eeprom中的报警值复制到ram、工作方式切换。(4)执行和读写操作:一个存储器操作指令结束后则将进行指令执行或数据读写。如果是进行温度转换,需要等待ds18b20执行其指令,转换时间一般为500us。ds18b20温度值格式默认的12位转化后得到的12位数据,存储在18b20的两个8比特的ram中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。 如图:ds18b20常用rom指令:指 令 约定代码功 能读rom33h读ds1820温度传感器rom中的编码(即64位地址 符合 rom 55h发出此命令之后,接着发出 64 位 rom 编码,访问单总线上与该编码相对应的 ds1820 使之作出响应,为下一步对该 ds1820 的读写作准备。 搜索 rom 0foh用于确定挂接在同一总线上 ds1820 的个数和识别 64 位 rom 地址。为操作各器件作好准备。 跳过 rom 0cch忽略 64 位 rom 地址,直接向 ds1820 发温度变换命令。适用于单片工作。 告警搜索命令 0ech执行后只有温度超过设定值上限或下限的片子才做出响应。 二、系统总体设计方案1、基本设计思想 基本设计方案:根据ds18b20的通讯协议,单片机控制ds18b20完成温度转换必须经过三个步骤:每一次读写之前都要对ds18b20进行复位操作,复位成功后发送一条rom指令,最后发送ram指令,这样才能对ds18b20进行预定的操作。复位要求主cpu将数据线下拉500微秒,然后释放,当ds18b20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主cpu收到此信号表示复位成功。 于是,给ds18b20不同的时序,可以读取温度传感器的值,根据温度算法算出当时的温度值,在给显示部分,通过lcd显示出来。2、实施方案论述这个课题主要实现温度的检测以及通过数码管显示这两个大功能,以及读取这个相对较为容易的功能。因此在温度检测这一模块上,利用ds18b20这一目前比较先进的温度传感器,可以很精确地感测实时温度,对于ds18b20的通讯协议的控制,读取测量的温度值,经过一定的算法,可以把温度转化为十进制,分别为高位和低位,先暂存起来。经显示模块调用,最终在lcd上显示。时钟电路c51主控电路ds18b20复位电路 显示电路 电路方框图2、 系统分析与设计1、程序流程图及说明主函数完成对ds18b20的初始化,读取温度的转换值,调用数据处理的子程序然后再生成显示代码,再将温度显示出来,然后根据温度显示的代码判断温度值可以判断它的值是否超出了预设的范围。然后返回到主函数开始的位置,无论温度值是否超出预设值,程序都会返回开始的位置,重复循环。开始始初始化、设置常量调用ds18b20初始化子程序读温度转换值调用数据处理子程序生成显示码显示温度值主函数流程图dq置1ds18b20复位flag=?1发送occh 命令,跳过rom匹配发送温度转换命令44h延时750us以上ds18b20初始化跳过rom匹配发送温度命令obeh调用读数据子程序返回ds18b20复位子程序dq置1dq置0延时至少573msdq置1短延时等待ds18b20回应dq=?0flag置1flag置0延时dq置1 温度值子程序2、温度计的的电路设计温度计采用at89c51单片机作为微处理器,温度计系统的外围接口电路由晶振、lcd显示电路、复位电路、温度检测电路、lcd驱动电路。温度计系统的的硬件电路图如下图所示。温度计的工作过程是:初始化其接收需要检测的温度,并一直处于检测状态,并将检测到的温度值读取,并转化为十进制数值,通过lcd显示出来,再显示温度,方便用户来读数使用记录数据。具体实现方法是:单片机将从p2.2管脚读进来的数据进行处理,p0.1到p0.7为数码管的段选端口,通过rp1的驱动对lcd进行驱动。硬件电路原理图时钟电路复位电路显示电路温度检测电路3、 源码清单#include #include #define uint unsigned int#define uchar unsigned char#define delaynop() _nop_();_nop_();_nop_();_nop_();sbit 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_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();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);write_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 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();writeonebyte(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_tabletemp_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;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_display_bu

温馨提示

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

评论

0/150

提交评论