理工学院数字温度计的设计_第1页
理工学院数字温度计的设计_第2页
理工学院数字温度计的设计_第3页
理工学院数字温度计的设计_第4页
理工学院数字温度计的设计_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、序号:22审定成绩:单片机原理与应用课程设计学生姓名彭前班 级电子一班院 别物电学院专 业电子科学与技术学 号指导老师梅孝安设计时间2014.12.202014.12.28目 录一、设计任务3二、设计方案3三、设计原理3四、设计总结7五、参考文献7一、设计任务 本设计主要是介绍了单片机控制下的温度检测系统,详细介绍了其硬件和软 件设计,并对其各功能模块做了详细介绍,其主要功能和指标如下: 利用温度传感器(DS18B20)测量某一点环境温度 测量范围为-55125,精度为0.5 用液晶进行实际温度值显示二、设计方案 按照系统设计功能的要求,确定系统由3个模块组成:主控制器,测温电路和显示电路。三

2、、设计原理 测温电路模块 1、DS18B20的主要特性1.1、适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数 据线供电1.2、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯1.3、 DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温1.4、DS18B20在使用中不需要任何外围元件,全部 传感元件及转换电路集成在形如一只三极管的集成电路内1.5、温范围55+125,在-10+85时精度为0.51.6、可编程 的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.12

3、5和0.0625,可实现高精度测温1.7、在9位分辨率时最多在 93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快1.8、测量结果直接输出数字温度信号,以一 线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力1.9、负压特性:电源极性接反时,芯片不会因发热而烧毁, 但不能正常工作。2、DS18B20的外形和内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM 、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的外形及管脚排列如下图DS18B20引脚定义:(1)DQ为数字信号输入/输出端;(2)

4、GND为电源地;(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。 表1: DS18B20温度值格式表表2: DS18B20温度数据表3、DS18B20的测温原理 DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。 DS18B20测温原理如下图所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对 低温度系数晶振产生

5、的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即 为所测温度。图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。4、DS18B20的各条ROM命令和接口程序设计 4.1DS18B20控制方法DS18B20有六条控制命令, 指 令 约定代码 操 作 说 明 温度转换 44H 启动DS18B20进行温度转换 读暂存器 BEH 读暂存器9字节二进制数字 写暂存器 4EH 将数据

6、写入暂存器的TH、TL字节 复制暂存器 48H 把暂存器的TH、TL字节写到E2PROM中 重调E2PROM B8H 把E2PROM中的TH、TL字节写到暂存器TH、TL字节 读电源供电方式 B4H 启动DS18B20发送电源供电方式的信号给主CPU 4.2DS18B20的初始化(1) 先将数据线置高电平“1”。(2) 延时(该时间要求的不是很严格,但是尽可能的短一点)(3) 数据线拉到低电平“0”。(4) 延时750微秒(该时间的时间范围可以从480到960微秒)。(5) 数据线拉到高电平“1”。(6) 延时等待(如果初始化成功则在15到60微秒时间之内产生一个由DS18B20所返回的低电平

7、“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。(7) 若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。(8) 将数据线再次拉高到高电平“1”后结束。 4.3DS18B20的写操作(1) 数据线先置低电平“0”。(2) 延时确定的时间为15微秒。(3) 按从低位到高位的顺序发送字节(一次只发送一位)。(4) 延时时间为45微秒。(5) 将数据线拉到高电平。(6) 重复上(1)到(6)的操作直到所有的字节全部发送完为止。(7) 最后将数据线拉高。 4.4DS

8、18B20的读操作(1)将数据线拉高“1”。(2)延时2微秒。(3)将数据线拉低“0”。(4)延时3微秒。(5)将数据线拉高“1”。(6)延时5微秒。(7)读数据线的状态得到1个状态位,并进行数据处理。(8)延时60微秒。5、系统硬件电路的设计 控制单片机采用AT89C51,温度传感器使用DS18B20,用4位共阳LED数码管以动态扫描法实现温度显示。主控制器模块 主控制器选用Atmel公司89系列的AT89C51。AT89C51单片机内有4KB的Flash存储器,可以在线下载程序,方便在系统的开发过程中进行程序的调试。显示电路模块四、设计总结 整个设计通过了软件和硬件上的调试。加深了对单排机

9、功能引脚的了解,我想这对于自己以后的学习和工作都会有很大的帮助。在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。五、参考文献 1夏继强.单片机应用设计培训教程实践篇M.北京:北京航空航天大出版社,2008.2何立明.MCS-51单片机应用系统设计(系统配置与接口技术)M.北京:北京航空航天大学出版社,2003.3李广弟,朱月秀,王秀山.单片机基础M.北京:北京航空航天大学出版社,2001.74

10、 彭楚武 曾屹. 单片机原理与应用(第2版)M. 中南大学出版社,2009附件c语言程序清单#include#include#define uint unsigned int#define uchar unsigned charsbit RS=P20;sbit RW=P21;sbit EN=P22;void Delayms(uint ms) uchar x; while(ms-) for(x=0;x120;x+);uchar Busy_Check() uchar LCD_Status; RS=0;RW=1;EN=1;Delayms(1); LCD_Status=P0;EN=0;return L

11、CD_Status;void Write_LCD_Command(uchar cmd) while(Busy_Check()&0x80)=0x80); RS=0;RW=0;EN=0; P0=cmd;EN=1;Delayms(1);EN=0;void Write_LCD_Data(uchar dat) while(Busy_Check()&0x80)=0x80); RS=1;RW=0;EN=0; P0=dat;EN=1;Delayms(1);EN=0;void Initialize_LCD() Write_LCD_Command(0x38);Delayms(1); Write_LCD_Comma

12、nd(0x01);Delayms(1); Write_LCD_Command(0x06);Delayms(1); Write_LCD_Command(0x0c);Delayms(1);void ShowString(uchar x,uchar y,uchar *str) uchar i=0; if(y=0) Write_LCD_Command(0x80|x); if(y=1) Write_LCD_Command(0x80|x); for(i=0;i16;i+) Write_LCD_Data(stri); sbit DQ=P33;void Delay(uint x)while(-x);uchar

13、 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; uchar lnit_DS18B20() uchar status;DQ=1;Delay(8); DQ=0;Delay(90);DQ=1;Delay(8); status=DQ;Delay(100);DQ=1; return status;int Get_

14、Temperature() int t;float tt; uchar a,b,fh; if(lnit_DS18B20()=1) t=2000; else WriteOneByte(0xcc); WriteOneByte(0x44); lnit_DS18B20(); WriteOneByte(0xcc); WriteOneByte(0xbe); a=ReadOneByte(); b=ReadOneByte(); Delay(100);fh=b&0x80; if(fh!=0) b=b;a=a; tt=(b*256)+a+1)*0.0625;t=(int)(tt*10)*(-1); else tt

15、=(b*256)+a)*0.0625;t=(int)(tt*10); return t;void to_str(int x,uchar *p) uchar ws4;int t; if(x0)p0=-;t=x*(-1);elsep0= ;t=x; ws3=t/1000;ws2=t%1000/100;ws1=t%100/10;ws0=t%10; p1=ws3+0;p2=ws2+0;p3=ws1+0; p4=.;p5=ws0+0;p6=C; if(ws3=0)p1= ; if(ws3=0&ws2=0)p2= ;uchar code xuehao= ;uchar code xingming=pengqian;uchar code xuhao=22;void main() int t; uchar code str116= Current Temp: ; uc

温馨提示

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

最新文档

评论

0/150

提交评论