温度传感显示器_第1页
温度传感显示器_第2页
温度传感显示器_第3页
温度传感显示器_第4页
温度传感显示器_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

关于温度传感显示器温度传感显示器项目概述本课程设计项目通过51单片机技术为支撑,应用单片机硬件与汇编语言编程技术完成温度传感显示器的项目实现工作,在51单片机外部接上一个温度传感器,通过传感功能,使得外部的温度信号转化成电信号,通过以LED数码显示管的形式显示温度。第2页,共25页,2024年2月25日,星期天温度传感显示器项目流程1.选定温度传感器项目课题项目实现目的:本项目用途广泛实用,与日常生活息息相关密切.项目实现资本不高.2.实现项目思路方案通过网络,书本途径查找温度传感器,51单片机,LED数码显示管相关资料,由温度传感器,单片机控制实现LED数码显示管显示温度并实现报警模拟情况.第3页,共25页,2024年2月25日,星期天3.制作本项目原理图和焊接硬件工作确定落实项目所需元器件,主要元器件包括:89C51单片机,温度传感器,LED数码管等.

使用protel99SE制作项目原理图硬件版面布局,元器件排放.焊接工作开始.项目程序调试确认无误,程序录入芯片.整体项目实现效果调试.制作课程项目设计报告,PPT等.第4页,共25页,2024年2月25日,星期天第5页,共25页,2024年2月25日,星期天

(a)外观图(b)侧面图(c)顶视图图DS18B20芯片表DS18B20详细引脚功能描述序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。第6页,共25页,2024年2月25日,星期天从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,那么,我们就用单片机的P1.4口接DS18B20温度传感器的单线总线2脚,DS18B20温度传感器与单片机的接口如图所示.8051

P1.4

第7页,共25页,2024年2月25日,星期天

由于DS18B20是在一根I/O线上读写数据,而对AT89C51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。因此,对读写的数据位有着严格的时序要求。该协议定义了几种信号的时序:初始化时序、读时序、写时序。根据DS18B20的初始化时序、写时序和读时序,分别编写3个子程序:INIT_1820为初始化子程序,WRITE_1820为写(命令或数据)子程序,READ_1820为读数据子程序,所有的数据读写均由最低位开始。第8页,共25页,2024年2月25日,星期天1初始化时序首先,每一次读写之前都要对DS18B20进行复位,我们先来看看初始化时序,DS18B20温度传感器初始化时序如图所示。DS18B20主动15~60uS单片机主动480uS<T<960uS单片机检测,当检测到为低电平时复位成功,并说明器件存在,当检测到依然为高电平时,说明复位不成功,可从A处再次复位,当多次复位不成功可能器件不存在或故障。A单片机主动单片机主动释放并等待480uS后再作其它操作总线控制器将数据线下拉480—960US然后释放,DS18B20温度传感器收到信号后等待15—60US左右后发出60—240US的存在低脉冲,总线控制器收到此信号表示复位成功。特别注意的是DS18B20温度传感器收到信号后等待15—60US左右后发出60—240US的存在低脉冲,单片机对P1.0进行检测,当检测到为低电平时表示复位成功,并说明器件存在,当检测到依然为高电平时,说明复位不成功,可从A处再次复位,当多次复位不成功可能器件不存在或故障。

480uS<T<960uS第9页,共25页,2024年2月25日,星期天INIT_1820:SETBp1.4NOPNOPCLRP1.4;将数据线下拉500USACALLYS500;500US延时子程序

SETBP1.4;释放数据线

ORLP1,#10H;P1转为输入

ACALLDELAY1;DS18B20收到信号后等待50USJNBP1.4,TSR3;判断DS18B20是否存在

AJMPTSR4TSR3:SETBFLAG1;置标志位,表示DS18B20存在

AJMPTSR5TSR4:CLRFLAG1清标志位,表示DS18B20不存在

AJMPTSR7TSR5:MOVR0,#6BH;单片机等待200US后再作其它操作

TSR6:DJNZR0,TSR6TSR7:SETBp1.4RETDELAY1:MOVR7,#18H;50US延时子程序

DJNZR7,$RET第10页,共25页,2024年2月25日,星期天2写时序我们已经完成了初始化时序,不难,对吧?那现在我们来做一下写操作。DS18B20温度传感器写时序如图所示。>1uS写“1”15uS15uS单片机主动60uS<T<120uS写“0”60uS<T<120uSDS18B20在检测到下降沿15uS后采样DS18B20在检测到下降沿15uS后采样写下一位的启动脉冲写时序是从总线控制器将DS18B20温度传感器的总线拉低时开始,有写1和写0两种类型,它们都必须持续最少60US且每个写时序之间必须至少有1US的恢复时间,DS18B20温度传感器在总线被拉低后的15—60US的时间窗口内采样,总线在此时间内如果总线为高则写1时序,如果为低则写0时序。将总线拉低后,在整个写0时序内部都必须维持总线为低电平(至少60US);当向总线写1时将总线拉低后总线控制器必须在15US内释放总线并将总线拉高。

第11页,共25页,2024年2月25日,星期天WRITE_1820:MOVR2,#8;8位数据

CLRCWRITE1:CLRp1.4;DS18B20温度传感器的总线拉低

MOVR3,#7;延时15USDJNZR3,$RRCA;写入一位数据

MOVp1.4,CMOVR3,#24;延时50USDJNZR3,$SETBp1.4NOPDJNZR2,WRITE1;8位数据送完,结束

SETBp1.4RET第12页,共25页,2024年2月25日,星期天3读时序

单片机主动>1uS1uS>>1uS>1uS15uS释放启动脉冲15uS释放启动脉冲单片机主动T<60uSDS18B20主动单片机采样第一位DS18B20主动单片机采样第二位T<60uS当准备从DS18B20温度传感器读取数据时,总线控制应先发出读时序,读时序从总线被拉低至少1US以后开始,从DS18B20输出的数据在启动读时序的下降沿后15US内有效,因此CPU必须在读时序开始的15US内释放总线,将总线控制权交给DS18B20并采样总线状态,读时序结束时DS18B20释放总线,交出总线控制权,总线被外拉上拉电阻拉回高电平空闲状态,所有读时序必须维持至少60US,每个时序之间至少有1US的恢复时间。第13页,共25页,2024年2月25日,星期天READ_1820:ORLP1,#10HMOVR4,#2;将温度高位和低位从DS18B20中读出MOVR1,#35H;低位存入35H单元,高位存入36H单元READ0:MOVR2,#8MOVA,#00HREAD1:CLRC;读取一位数需要至少60USSETBp1.4NOPNOPCLRp1.4;保持至少1US的低电平NOPSETBp1.4;释放数据线MOVR3,#4;延时9US,必须在15US内读取数据DJNZR3,$

MOVC,P1.4RRCAMOVR3,#26DJNZR3,$DJNZR2,READ1MOV@R1,A;低8位数据读完,存入35H单元

INCR1;指向36H单元

DJNZR4,READ0;高8位数据读完,存入36H单元

SETBp1.4;读时序结束时DS18B20释放总线

NOPNOPCLRp1.4ACALLDELAY1SETBp1.4RET第14页,共25页,2024年2月25日,星期天软件程序:HIG_MKEQU32H;设定最高温度LOW_MKEQU33H;设定最低温度TEM_HEQU36H;当前温度的高8位TEM_LEQU35H;当前温度的低8位TEM_NUMEQU30H;当前温度

FLAG1EQU00H;DS18B20存在的标志DQEQUP1.4ORG0000HSTART:MOVSP,#60HMOVIE,#00H

SETBDQSTART_1:CLRP0.2CLRP0.3MOVHIG_MK,#30HMOVLOW_MK,#24HLCALLINIT_1820JNBFLAG1,START_1第15页,共25页,2024年2月25日,星期天MAIN0:LCALLGET_TEM;调用读温度子程序

LCALLTEM_COV;温度转换,并转化成BCDLCALLDISPLAYMAIN1:MOVA,TEM_NUMCJNEA,HIG_MK,MAIN2CLRCMAIN2:JCMAIN3SETBP0.3AJMPMAIN0MAIN3:CJNEA,LOW_MK,MAIN4CLRCMAIN4:JNCMAIN5SETBP0.2AJMPMAIN0MAIN5:CLRP0.2CLRP0.3AJMPMAIN0第16页,共25页,2024年2月25日,星期天

GET_TEM:SETBDQGET_MK1:LCALLINIT_1820JBFLAG1,GET_MK2LJMPGET_MK1GET_MK2:LCALLDELAY1MOVA,#0CCHLCALLWRITE_1820MOVA,#44HLCALLWRITE_1820GET_MK5:NOPCLRDQNOPSETBDQMOVR3,#4DJNZR3,$CLRCMOVC,DQJNCGET_MK5GET_MK3:LCALLINIT_1820JBFLAG1,GET_MK4LJMPGET_MK3GET_MK4:LCALLDELAY1MOVA,#0CCHLCALLWRITE_1820MOVA,#0BEHLCALLWRITE_1820LCALLREAD_1820RET第17页,共25页,2024年2月25日,星期天将从DS18B20中读出的温度数据进行转换TEM_COV:MOVA,TEM_LANLA,#0F0HSWAPAMOVTEM_NUM,ATEM_COV3:MOVA,TEM_HANLA,#07HSWAPAORLA,TEM_NUMMOVTEM_NUM,A;保存变换后的温度数据

LCALLBIN_BCDRETBIN_BCD:PUSHACCMOVB,#10DIVABMOV31H,AMOV30H,BPOPACCRET

第18页,共25页,2024年2月25日,星期天WRITE_1820:MOVR2,#8CLRCWRITE1:CLRDQMOVR3,#5DJNZR3,$RRCAMOVDQ,CMOVR3,#21DJNZR3,$SETBDQNOPDJNZR2,WRITE1SETBDQRET第19页,共25页,2024年2月25日,星期天READ_1820:ORLP1,#20HMOVR4,#2MOVR1,#35HREAD0:MOVR2,#8MOVA,#00HREAD1:CLRCSETBDQNOPNOPCLRDQNOPSETBDQMOVR3,#4DJNZR3,$MOVC,DQRRCAMOVR3,#26DJNZR3,$DJNZR2,READ1MOV@R1,AINCR1DJNZR4,READ0SETBDQNOPNOPCLRDQACALLDELAY1SETBDQRET第20页,共25页,2024年2月25日,星期天INIT_1820:SETBDQNOPNOPCLRDQACALLYS500SETBDQORLP1,#1.0HACALLDELAY1JNBDQ,TSR3AJMPTSR4TSR3:SETBFLAG1AJMPTSR5TSR4:CLRFLAG1AJMPTSR7TSR5:MOVR0,#6BHTSR6:DJNZR0,TSR6TSR7:SETBDQRET第21页,共25页,2024年2月25日,星期天显示子程序DISPLAY:PUSHACCSETBRS0MOVR2,#02HMOVR1,#30HMOVR3,#

温馨提示

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

评论

0/150

提交评论