欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于DS18B20的数字温度计设计.docx

    • 资源ID:7215257       资源大小:248.21KB        全文页数:20页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于DS18B20的数字温度计设计.docx

    1、基于DS18B20的数字温度计设计基于DS18B20的数字温度计设计一、课程设计目的1.培养学生文献检索的能力,如何利用Internet检索需要的文献资料。2.培养学生综合分析问题、发现问题和解决问题的能力。3.培养学生综合运用知识的能力和工程设计的能力。4.培养学生理论联系实际的能力。5.提高学生课程设计报告撰写水平。二、设计内容、技术条件和要求1设计内容 数字温度计的设计要能实现温度的实时采集与显示,以AT89S51单片机为核心芯片,使用DS18B20数字温度传感器采集环境温度,并通过一组4位共阴极数码管将温度显示出来,也可用LM1602液晶显示屏。方案一:使用按钮控制温度的采集与显示。方

    2、案二:使用定时控制温度的采集与显示,时间间隔1S。2 设计要求设计单片机最小系统(包括复位按钮、晶振电路等);DS18B20应用电路设计。按键电路设计。可使用实验室的实验箱实物实现,也可使用仿真软件Proteus实现。绘制实现本设计内容的硬件电路(原理图),系统的组成框图。编写本课程设计内容的软件设计(包含程序流程图和对程序注释)。三、总体设计思想本设计以检测温度并显示温度提供上下限报警为目的,按照系统设计功能的要求,确定系统由5个模块组成:主控器4、测温电路,报警电路,按键电路及显示电路。系统以DS18B20为传感器用以将温度模拟量转化为电压数字量以总线传入单片机,以AT89S51为主芯片,

    3、在主芯片对DS18B20传入的温度值进行处理,由单片机程序控制,将经处理后的温度由LM1602液晶显示屏显示出来。复位按键电路外部晶振电路中断电路 图3-1 数字温度计设计总体的原理图四、硬件设计1、硬件设计图见附件。2、单片机复位电路工作原理及设计。硬件图如下图一原理是通过使复位端经电阻与Vcc电源接通而产生按键复位电平,保证复位信号高电平持续时间大于2个机器周期。3、单片机晶振电路工作原理及设计硬件图如下图二晶振电路是提供系统时钟信号。为了各部分的同步应当引入公用的外部脉冲信号作为振荡脉冲。电容选择在1030pF之间,因为电容的大小影响振荡器振荡的稳定性和起振的速度。4、按键电路将按键的一

    4、段与单片机I/O口链接,一段与地链接,当按键按下时可以由单片机内的程序检测到。按键采用普通的按钮按键。图三5、LED数码管或LM1602显示屏的设计及应用。1、硬件接线图如下图四2、LM1602L采用标准的16 脚接口分布如下LCD1602模块的管脚分布功能管脚号 管脚名称状态管脚功能1Vss电源地2Vdd电源正极3V0液晶显示偏压信号4RS输入寄存器选着5RW输入读、写操作6E输入使能信号7DB0三态数据总线0(LSB)8DB1三态数据总线9DB2三态数据总线10DB3三态数据总线11DB4三态数据总线12DB5三态数据总线13DB6三态数据总线14DB7三态数据总线(MSB)15LEDA输

    5、入背光+5V16LEDK输入背光地3、指令1)Clear display 清显示指令码:RSR/WDB7DB6DB5DB4DB3DB2DB1DB00000000001清显示指令将空位字符码20H 送入全部DDRAM 地址中,使DDRAM 中的内容全部清除,显示消失;地址计数器AC=0,自动增1 模式;显示归位,光标或者闪烁回到原点(显示屏左上角);但并不改变移位设置模式。2)Return home 归位指令码:RSR/WDB7DB6DB5DB4DB3DB2DB1DB0000000001*归位指令置地址计数器AC=0;将光标及光标所在位的字符回原点;但DDRAM 中的内容并不改变。3)Entry

    6、 mode set 设置输入模式指令码:RSR/WDB7DB6DB5DB4DB3DB2DB1DB000000001I/DSI/D:字符码写入或者读出DDRAM 后DDRAM 地址指针AC变化方向标志:I/D=1,完成一个字符码传送后,光标右移,AC自动加1;I/D=0,完成一个字符码传送后,光标左移,AC自动减1;S:显示移位标志:S=1,将全部显示向右(I/D=0)或者向左(I/D=1)移位;S=0,显示不发生移位;S=1 时,显示移位时,光标似乎并不移位;此外,读DDRAM 操作以及对CGRAM 的访问,不发生显示移位。4)Display on/off control 显示开/关控制指令码

    7、:RSR/WDB7DB6DB5DB4DB3DB2DB1DB00000001DCBD:显示开/关控制标志:D=1,开显示;D=0,关显示;关显示后,显示数据仍保持在DDRAM中,立即开显示可以再现;C:光标显示控制标志:C=1,光标显示;C=0,光标不显示;不显示光标并不影响模块其它显示功能;显示5X8 点阵字符时,光标在第八行显示,显示5X10 点阵字符时,光标在第十一行显示;B:闪烁显示控制标志:B=1,光标所指位置上,交替显示全黑点阵和显示字符,产生闪烁效果,Fosc=250kHz时,闪烁频率为0.4ms左右;通过设置,光标可以与其所指位置的字符一起闪烁。5)Cursor or displ

    8、ay shift 光标或显示移位指令码:RSR/WDB7DB6DB5DB4DB3DB2DB1DB0000001S/CR/L*光标或显示移位指令可使光标或显示在没有读写显示数据的情况下,向左或向右移动;运用此指令可以实现显示的查找或替换;在双行显示方式下,第一行和第二行会同时移位;当移位越过第一行第四十位时,光标会从第一行跳到第二行,但显示数据只在本行内水平移位,第二行的显示决不会移进第一行;倘若仅执行移位操作,地址计数器AC的内容不会发生改变。S/CR/L说明00光标向左移动,AC自动减101光标向右移动,AC自动加110光标和显示一起向左移动,AC值不变11光标和显示一起向右移动,AC值不变

    9、6)Function set 功能设置指令码:RSR/WDB7DB6DB5DB4DB3DB2DB1DB000001DLNF*功能设置指令设置模块数据接口宽度和LCD 显示屏显示方式,即MPU 与模块接口数据总线为4 位或者是8位、LCD 显示行数和显示字符点阵规格;所以建议用户最好在执行其它指令设置(读忙标志指令除外)之前,在程序的开始,进行功能设置指令的执行;DL:数据接口宽度标志:DL=1,8 位数据总线DB7DB0;DL=0,4 位数据总线DB7DB4,DB3DB0 不用,使用此方式传送数据,需分两次进行;N:显示行数标志:N=1,两行显示模式;N=0,单行显示模式;F:显示字符点阵字体

    10、标志:F=1:5X10点阵光标显示模式;F=0:5X7 点阵光标显示模式。7)Set CGRAM address CGRAM地址设置指令码:RSR/WDB7DB6DB5DB4DB3DB2DB1DB00001ACG5ACG4ACG3ACG2ACG1ACG0CGRAM 地址设置指令设置CGRAM地址指针,它将CGRAM存储用户自定义显示字符的字模数据的首地址ACG5ACG0送入AC中,于是用户自定义字符字模就可以写入CGRAM 中或者从CGRAM中读出。8)Set DDRAM address DDRAM地址设置指令码:RSR/WDB7DB6DB5DB4DB3DB2DB1DB0001ADD6ADD5

    11、ADD4ADD3ADD2ADD1ADD0DDRAM 地址设置指令设置DDRAM 地址指针,它将DDRAM 存储显示字符的字符码的首地址ADD6ADD0送入AC中,于是显示字符的字符码就可以写入DDRAM 中或者从DDRAM 中读出;值得一提的是:在LCD 显示屏一行显示方式下,DDRAM 的地址范围为:00H4FH;两行显示方式下,DDRAM的地址范围为:第一行00H27H,第二行40H67H。9)Read busy flag and address 读忙标志BF和AC指令码:RSR/WDB7DB6DB5DB4DB3DB2DB1DB001BFAC6AC5AC4AC3AC2AC1AC0当RS=0

    12、 和R/W=1 时,在E 信号高电平的作用下,BF和AC6AC0被读到数据总线DB7DB0的相应位;BF:内部操作忙标志,BF=1,表示模块正在进行内部操作,此时模块不接收任何外部指令和数据,直到BF=0为止;AC6AC0:地址计数器AC 内的当前内容,由于地址计数器AC 被CGROM、CGRAM和DDRAM的公用指针,因此当前AC 内容所指区域由前一条指令操作区域决定;同时,只有BF=0 时,送到DB7DB0 的数据AC6AC0才有效。10)Write data to CGRAM or DDRAM 写数据到CGRAM或DDRAM指令码:RSR/WDB7DB6DB5DB4DB3DB2DB1DB

    13、010D7D6D5D4D3D2D1D0写数据到CGRAM 或DDRAM 指令,是将用户自定义字符的字模数据写到已经设置好的CGRAM 的地址中,或者是将欲显示字符的字符码写到DDRAM 中;欲写入的数据D7D0 首先暂存在DR 中,再由模块的内部操作自动写入地址指针所指定的CGRAM 单元或者DDRAM单元中。11) Read data from CGRAM or DDRAM 从CGRAM或DDRAM中读数据指令码:RSR/WDB7DB6DB5DB4DB3DB2DB1DB011D7D6D5D4D3D2D1D0从CGRAM 或DDRAM 中读数据指令,是从地址计数器AC指定的CGRAM或者DDR

    14、AM单元中,读出数据D7D0;读出的数据D7D0 暂存在DR中,再由模块的内部操作送到数据总线DB7DB0 上;需要注意的是,在读数据之前,应先通过地址计数器AC 正确指定读取单元的地址。6、DS18B20温度传感器1、DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。DS18B20的性能特点如下:独特的单线接口仅需要一个端口引脚进行通信;实际应用中不需要外部任何元器件即可实现测温;可通过数据线供电,电压范围为3.05.5V;在DS18B20

    15、中的每个器件上都有独一无二的序列号;温度以9或12位数字量读出;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能工作。2、工作原理如下DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应的一

    16、个基数分别置入减法计数器、温度寄存器中,计数器和温度寄存器被预置在55所对应的一个基数值。减法计数器对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器的预置值减到时,温度寄存器的值将加,减法计数器的预置将重新被装入,减法计数器重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。3、内部构造如下 4、硬件接线图如下

    17、7、AT89S51单片机引脚资源、引脚分配。1、单片机组要参数40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。如下图所示:简单介绍如下:1、电源: VCC - 芯片电源,接+5V; VSS - 接地端;2、 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。 3、 控制线:控制线共有4根,1ALE/PROG:地址锁存允许/片内EPROM编程脉冲1ALE功能:用来锁存P0口送出的低8位地址2PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。2PSEN:外ROM读选通信号。3RST/VPD:复位/备用电源。1RST(Reset)功能:复位信号输

    18、入端。2VPD功能:在Vcc掉电情况下,接备用电源。4EA/Vpp:内外ROM选择/片内EPROM编程电源。1EA功能:内外ROM选择端。2Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。4、I/O线:80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。有4个8位并行I/O口,共32条端线: P0、P1、P2和P3口。每一个I/O口都能用作输入或输出。用作输入时,均须先写入“1”;用作输出时,P0口应外接上拉电阻。P0口的负载能力为8个LSTTL门电路;P1P3口的负载能

    19、力为4个LSTTL门电路。在并行扩展外存储器或I/O口情况下,P0口用于低8位地址总线和数据总线(分时传送),P2口用于高8位地址总线,P3口常用于第二功能端口第二名称第二功能P3.0RXD串行口输入端P3.1TXD串行口输出端P3.2INT0外部中断0请求输入端P3.3INT1外部中断1请求输入端P3.4T0定时/计数器0外部信号输入端P3.5T1定时/计数器1外部信号输入端P3.6WR外RAM写选通信号输出端P3.7RD外RAM读选通信号输出端硬件图如下图五LM1602的数据中线接AT89S51的P2口;LM1602的RS接P3.0口,RW接P3.1口,E端接P3.2口;晶振电路接XTAL

    20、1和XTAL2;复位电路接RST;DS18B20接P3.7口;六、实验总结通过这次课程设计,使我认识到理论联系实际的重要性,在实践中扩展了知识面,不但掌握了本专业的相关知识,而且对其他专业的知识也有所了解,从各方面提高了自身的综合素质。经过这次一个较完整的产品设计和制作过程,对于将来学习和工作也是有所裨益的。 在课程设计过程中,遇到了很多的问题通过查阅资料最终得以解决了,这个过程让我受益匪浅。七、主要参考文献1、何立民. 单片机高级教程 第1版北京:北京航空航天大学出版社,20012、MCS51单片机应用设计 张毅刚 修林成 胡振江 编3、MCS51单片微型计算机原理与开发 王树勋 王朝玉 张

    21、新发 编4、徐爱钧 KEIL Cx V7.0单片机高级语言编程与uVision2应用实践,北京,电子工业出版社,20045、李全利、仲伟峰、徐军,单片机原理及应用,北京:清华大学出版社,2006附录1 参考程序 # include /*/ # define LCD_DB P2 # define uchar unsigned char# define uint unsigned int uint t0,t1; uchar str= 2012-06-13; /显示日期 uchar temp111;/ 存放分解ASCII码温度数据 sbit LCD_RS=P30; sbit LCD_RW=P31;

    22、sbit LCD_E=P32; sbit QS=P37;/DS18B20数据引脚 sbit INTR=P33;/中断/*定义函数*/ void LCD_init(void);/初始化函数 void LCD_write_command(uchar command);/写指令函数 void LCD_write_data(uchar dat);/写数据函数 void LCD_set_xy(uchar x,uchar y); /写地址函数void LCD_disp_string(uchar x,uchar y,uchar *p); /显示字符串 void delay_n40us(uint n);/延时

    23、函数 /*初始化函数* void LCD_init(void) LCD_write_command(0x38);/设置8位格式,2行,5x7 LCD_write_command(0x0c);/整体显示,关光标,不闪烁 LCD_write_command(0x06);/设定输入方式,增量不移位 LCD_write_command(0x01);/清除屏幕显示 delay_n40us(100); /*写指令函数* void LCD_write_command(uchar dat) LCD_DB=dat; LCD_RS=0;/指令 LCD_RW=0;/写入 LCD_E=1;/允许 LCD_E=0; d

    24、elay_n40us(1); /*写数据函数* void LCD_write_data(uchar dat) LCD_DB=dat; LCD_RS=1;/数据 LCD_RW=0;/写入 LCD_E=1;/允许 LCD_E=0; delay_n40us(1); /*字符位置函数* void LCD_set_xy(uchar x,uchar y) uchar address; if(y=1) address=0x80+x; else address=0xc0+x; LCD_write_command(address); /*字符串显示* void LCD_disp_string(uchar x,u

    25、char y,uchar *p) /显示字符串 LCD_set_xy(x,y); while(*p) LCD_write_data(*p); p+; delay_n40us(1); /*延时函数* void delay_n40us(uint n) uint i;uchar j;for(i=n;i0;i-)for(j=0;j2;j+); /*+*/DS18B20的程序/*+*/*时钟延时*/void delay (int us)int s;for (s = 0; s us; s+);/*DS18B20的复位*/uchar ow_reset(void) uchar flag; QS = 0; /拉

    26、低电平 delay(30); / 延时500us左右 QS= 1; / 释放总线 delay(3); / 等待DS18B20回应 flag =QS; / 采样总线信号 delay(20); / 等待 return(flag); /*读位*/uchar read_bit(void) uint i; QS = 0; / 拉低总线 QS = 1; / 释放总线 for (i = 0; i 3; i+); / 延时15us左右 return(QS); /返回QS的值/*写位*/void write_bit(char bitval) QS = 0; / 拉低总线 if(bitval=1) QS =1; / 写数据 delay(5);/ 延时 QS = 1;/*读字节*


    注意事项

    本文(基于DS18B20的数字温度计设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开