




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
温度传感显示器 项目负责人 邓深文05110049邝振华05110149 温度传感显示器项目概述 本课程设计项目通过51单片机技术为支撑 应用单片机硬件与汇编语言编程技术完成温度传感显示器的项目实现工作 在51单片机外部接上一个温度传感器 通过传感功能 使得外部的温度信号转化成电信号 通过以LED数码显示管的形式显示温度 温度传感显示器项目流程 1 选定温度传感器项目课题项目实现目的 本项目用途广泛实用 与日常生活息息相关密切 项目实现资本不高 2 实现项目思路方案通过网络 书本途径查找温度传感器 51单片机 LED数码显示管相关资料 由温度传感器 单片机控制实现LED数码显示管显示温度并实现报警模拟情况 3 制作本项目原理图和焊接硬件工作确定落实项目所需元器件 主要元器件包括 89C51单片机 温度传感器 LED数码管等 使用protel99SE制作项目原理图硬件版面布局 元器件排放 焊接工作开始 项目程序调试确认无误 程序录入芯片 整体项目实现效果调试 制作课程项目设计报告 PPT等 a 外观图 b 侧面图 c 顶视图图DS18B20芯片表DS18B20详细引脚功能描述 从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线 单线接口 读写 那么 我们就用单片机的P1 4口接DS18B20温度传感器的单线总线2脚 DS18B20温度传感器与单片机的接口如图所示 8051P1 4 由于DS18B20是在一根I O线上读写数据 而对AT89C51单片机来说 硬件上并不支持单总线协议 因此 我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问 因此 对读写的数据位有着严格的时序要求 该协议定义了几种信号的时序 初始化时序 读时序 写时序 根据DS18B20的初始化时序 写时序和读时序 分别编写3个子程序 INIT 1820为初始化子程序 WRITE 1820为写 命令或数据 子程序 READ 1820为读数据子程序 所有的数据读写均由最低位开始 1初始化时序首先 每一次读写之前都要对DS18B20进行复位 我们先来看看初始化时序 DS18B20温度传感器初始化时序如图所示 总线控制器将数据线下拉480 960US然后释放 DS18B20温度传感器收到信号后等待15 60US左右后发出60 240US的存在低脉冲 总线控制器收到此信号表示复位成功 特别注意的是DS18B20温度传感器收到信号后等待15 60US左右后发出60 240US的存在低脉冲 单片机对P1 0进行检测 当检测到为低电平时表示复位成功 并说明器件存在 当检测到依然为高电平时 说明复位不成功 可从A处再次复位 当多次复位不成功可能器件不存在或故障 480uS T 960uS 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 2写时序我们已经完成了初始化时序 不难 对吧 那现在我们来做一下写操作 DS18B20温度传感器写时序如图所示 写时序是从总线控制器将DS18B20温度传感器的总线拉低时开始 有写1和写0两种类型 它们都必须持续最少60US且每个写时序之间必须至少有1US的恢复时间 DS18B20温度传感器在总线被拉低后的15 60US的时间窗口内采样 总线在此时间内如果总线为高则写1时序 如果为低则写0时序 将总线拉低后 在整个写0时序内部都必须维持总线为低电平 至少60US 当向总线写1时将总线拉低后总线控制器必须在15US内释放总线并将总线拉高 WRITE 1820 MOVR2 8 8位数据CLRCWRITE1 CLRp1 4 DS18B20温度传感器的总线拉低MOVR3 7 延时15USDJNZR3 RRCA 写入一位数据MOVp1 4 CMOVR3 24 延时50USDJNZR3 SETBp1 4NOPDJNZR2 WRITE1 8位数据送完 结束SETBp1 4RET 3读时序 当准备从DS18B20温度传感器读取数据时 总线控制应先发出读时序 读时序从总线被拉低至少1US以后开始 从DS18B20输出的数据在启动读时序的下降沿后15US内有效 因此CPU必须在读时序开始的15US内释放总线 将总线控制权交给DS18B20并采样总线状态 读时序结束时DS18B20释放总线 交出总线控制权 总线被外拉上拉电阻拉回高电平空闲状态 所有读时序必须维持至少60US 每个时序之间至少有1US的恢复时间 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 软件程序 HIG MKEQU32H 设定最高温度LOW MKEQU33H 设定最低温度TEM HEQU36H 当前温度的高8位TEM LEQU35H 当前温度的低8位TEM NUMEQU30H 当前温度FLAG1EQU00H DS18B20存在的标志DQEQUP1 4ORG0000HSTART MOVSP 60HMOVIE 00HSETBDQSTART 1 CLRP0 2CLRP0 3MOVHIG MK 30HMOVLOW MK 24HLCALLINIT 1820JNBFLAG1 START 1 MAIN0 LCALLGET TEM 调用读温度子程序LCALLTEM COV 温度转换 并转化成BCDLCALLDISPLAYMAIN1 MOVA TEM NUMCJNEA HIG MK MAIN2CLRCMAIN2 JCMAIN3SETBP0 3AJMPMAIN0MAIN3 CJNEA LOW MK MAIN4CLRCMAIN4 JNCMAIN5SETBP0 2AJMPMAIN0MAIN5 CLRP0 2CLRP0 3AJMPMAIN0 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 将从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 WRITE 1820 MOVR2 8CLRCWRITE1 CLRDQMOVR3 5DJNZR3 RRCAMOVDQ CMOVR3 21DJNZR3 SETBDQNOPDJNZR2 WRITE1SETBDQRET READ 1820 ORLP1 20HMOVR4 2MOVR1 35HREAD0 MOVR2 8MOVA 00HREAD1 CLRCSETBDQNOPNOPCLRDQNOPSETBDQMOVR3 4DJNZR3 MOVC DQRRCAMOVR3 26DJNZR3 DJNZR2 READ1MOV R1 AINCR1DJNZR4 READ0SETBDQNOPNOPCLRDQACALLDELAY1SETBDQRET INIT 1820 SETBDQNOPNOPCLRDQACALLYS500SETBDQORLP1 1 0HACALLDELAY1JNBDQ TSR3AJMPTSR4TSR3 SETBFLAG1AJMPTSR5TSR4 CLRFLAG1AJMPTSR7TSR5 MOVR0 6BHTSR6 DJNZR0 TSR6TSR7 SETBDQRET 显示子程序DISPLAY PUSHACCSETBRS0MOVR2 02HMOVR1 30HMOVR3 0FDHMOVDPTR TABSCAN 1 MOVA R1MOVCA A DPTRMOVP2 AINCR1MOVA R3MOVP1 AACALLDELAYRLAMOVR3 ADJNZR2 SCAN 1CLRRS0POP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC 61169-1-9:2025 EN-FR Radio-frequency connectors – Part 1-9: Mechanical test methods – Safety wire hole pull-out
- 物业管理小区能源管理系统协议
- 有趣的户外活动记事+活动细节描写5篇范文
- 在线课程教育培训协议
- 银行入行考试试题及答案
- 银行出纳考试试题及答案
- 六一剪发活动方案
- 六一墙纸活动方案
- 六一幼儿花展活动方案
- 六一操场活动方案
- 2025年行政能力测验考试真题及答案
- 2024年宁夏中卫沙坡头区招聘社区专职工作者真题
- 2025年江苏省南京市中考物理模拟练习卷(含答案)
- 人教部编版三年级下册语文各单元【习作范文】
- 教师普法考试题及答案
- 水冷空调项目可行性研究报告
- 2025年小产权房的买卖合同5篇
- 清运垃圾污水合同范本
- 夫妻婚内财产财产协议书
- 合伙地摊火锅协议书
- 反诈防骗安全教育主题班会
评论
0/150
提交评论