资源目录
压缩包内文档预览:(预览前20页/共36页)
编号:544789
类型:共享资源
大小:195.12KB
格式:ZIP
上传时间:2015-12-01
上传人:QQ28****1120
认证信息
个人认证
孙**(实名认证)
辽宁
IP属地:辽宁
6
积分
- 关 键 词:
-
电器电子毕业设计论文
- 资源描述:
-
毕业设计208水温控制器,电器电子毕业设计论文
- 内容简介:
-
0 上饶职业技术学院 电子工程系 课程设计 课程名称: 电子技术应用模块 题目名称: 水温控制 器 年 级: 06 级 学生专业: 应用电子技术 学生学号: ZD06010040 54 指导教师 : 吴国辉 学生姓名: 技术职称: 高级工程师 2008 年 5 月 30 日 nts 1 课程设计任务书 1 课程名称 电子技术应用模块 2 课程性质 必 选 专业课 3 适用年级 06 级 4 适用专业 应用电子技术 5 设计题 目 水温控制器 6 实验要求 选 开 7 选题要求 最多组数 2 组 每组最多人数 2人 8 指导老师 吴国辉 职称 高级工程师 9 设计目的 9.1 进一步掌握模拟电子技术,数字电子技术等课程的知 识在本课程设计中的应用 9.2 熟悉电路的设计过程及设计方法 9.3 掌握课程设计的基本过程和课程设计报告的撰写方法 10 设计要求 10.1 设计一个水温控制器 10.2 温度设定范围为 40到 90。最小区分度为 1 10.3 环境温度降低时,温度控制的静态误差不超过 1 11 课程设计的进度安排 11.1 2008 年 5月 9日 到 17 日 ,完成初稿 nts 2 11.2 2008 年 5月 18 日 到 30日 ,上交课程设计报告及实验样品 12 参考书目 12.1 黄永定 主编 电子线路实验与课程设计 北京 机械工业出版社 2005.8 12.2 谢自美 电子线路设计、实验、测试 武汉 华中科技大学出版社 12.3 高吉祥 全国大学生电子 设计竞赛培训系列教程 北京 电子工业出版社 2000年 13 任务书下达时间 2008年 4月 28日 nts 3 课程设计评分标准 (选开实验) 姓名: 年级: 06 级 专业: 应用电子技术 班级: 06 电子( 1) 班 总分: 考核项目 平 时 成 绩 设 计 报 告 总成绩 考核内容 态度、纪律( 20%) 设计报告书写和水平( 80%) 考核环节 团 结 协作 有 钻研精神 爱护公物文明卫生 遵守纪律和制度 摘要符合要求、语句通顺、内容充实、图表和曲线清晰符合规范、文字规范。方案选择、论证、设计、计算正确。 分值 6 6 8 80 100 评分 评分教师: 评分时间: 年 月 日 课程设计评分标准 (选开实验) 姓名: 年级: 06 级 专业: 应用电子技术 班级: 06 电子( 1) 班 总分: 考核项目 平 时 成 绩 设 计 报 告 总成绩 考核内容 态度、纪律( 20%) 设计报告书写和水平( 80%) 考核环节 团 结 协作 有 钻研精神 爱护公物文明卫生 遵守纪律和制度 摘要符合要 求、语句通顺、内容充实、图表和曲线清晰符合规范、文字规范。方案选择、论证、设计、计算正确。 分值 6 6 8 80 100 评分 评分教师: 评分时间: 年 月 日 nts 4 课程设计报告 年级 06级 专业 应用电子技术 班级 1 班 姓名 温美军 王乐 指导老师 吴国辉 职称 高级工程师 课程名称 电子技术应用模块 课程性质 必选 专业课 设计项目 水温控制 器 系统 实验要求 选开 1 设计目的 1.1 进一步掌握模拟电子技术、数字电子技术等课程的知识在本课程设计中的应用 1.2 熟悉电路的 设计过程及设计方法 1.3 掌握课程设计的基本过程和课程设计报告的撰写方法 2 设计要求 2.1 设计一个水温控制器 2.2 温度设定范围为 40到 90。最小区分度为 1 2.3 环境温度降低时,温度控制的静态误差不超过 1 3 课程设计的进度安排 3.1 2008年五月 9号到 17 号,完成初稿 3.2 2008 五月 18 号到 30 号 ,上交课程设计报告及 实验样品 nts 5 水温控制系统 摘要 本系统以 AT89C51, AT89C2051 单片机为核心,主要包括传感器温度采集, A/D 模 /数转换,按扭操作,单片机控制,数码管数字显示等部分。本系统采用 PID 算法实现温度控制功能,通过串行通信完成两片单片机信息的交互而实现温度设定、控制和显示。本设计还可以通过串口与上位机(电脑)连接,实现电脑控制。系统设计有体积小、交互性强等优点。为了实现高精度的水温控制,本单片机系统采用 PID 算法控制和 PWM 脉宽调制相结合的技术,通过控制双向可控硅改变电炉和电源的接通、断开,从而 改变水温加热时间的方法来实现对水温的控制。本系统由键盘显示和温度控制两个模块组成,通过模块间的通信完成温度设定、实温显示、水温升降等功能。具有电 路结构简单、程序简短、系统可靠性高、操作简便等特点。 关键词 度传感器 , 温度校准 ,温度控制 1 引言 随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业。传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数 据处理问题能够得到很好的解决。本系统采用了 DS18B20 单总线可编程温度传感器 ,来实现对温度的采集和转换,大大简化了电路的复杂度,以及算法的要求。在一些温控系统电路中,广泛采用的是通过热电偶、热电阻或 PN 结测温电路经过相应的信号调理电路,转换成 A D 转换器能接收的模拟量,再经过采样保持电路进行 A D 转换,最终送入单片机及其相应的外围电路,完成监控。但是由于传统的信号调理电路实现复杂、易受干扰、不易控制且精度不高。本文介绍单片机结合 DS18B20 水温控制系统设计,因此,本系统用一种新型的可编程温度传感器( DS18B20),不需复杂的信号调理电路和 A D 转换电路能直接与单片机完成数据采集和处理,实现方便、精度高,可根据不同需要用于各种场合 . nts 6 2 DS18B20 温度传感器实验 2.1 工作原理 DS18B20 是 DAllAS 公司生产的一线式数字温度传感器。它将地址线、数据线和控制线合为一根双向串行传输数据的信号线,允许在这根信号线上挂接多个 DS18B20;因此,单片机只需通过一根 I/O线就可以多个 DS18B20通信。每个芯片内外还有一个 64位的 ROM,其中存有各个器件自身的序列号,作为器件独有的 ID号码。 DS18B20简化了测量器件与计算机的接口电路,使得电路简单,使用更加方便。 DS18B20的特性: 测温范围: -55 +125 转换精度: 9 12 位二进制数(包括一位符号),可编程确定转换精度的位数。 测温分辨率: 9 位精度为: 0.5, 12位精度为 0.0625。 转换时间: 9位精度为 93.75ms, 10位精度为 187.5ms, 12位精度为 750ms。 具有非易失性上、下限报警设定的功能。 DS18B20的硬件电路图如图 2-1。 DS18B20的温度值是以补码的形式表示的,在处理数据的时候要特别注意 。下面列出了用 12位精度测出的数字量,用十六位补码的形式表示。 18B20 引脚示 表 2-1 温度值与 DS18B20输出的二进制值对照表 温度值 / 数字输出(二进制) 数字输出(十六进制) +85 0000 0101 0101 0000 055OH +25.0626 0000 0001 1001 0001 0191H +10.125 0000 0000 1010 0010 00A2H +0.5 0000 0000 0000 1000 0008H 0 0000 0000 0000 0000 0000H +0.5 1111 1111 1111 1000 FFF8H -10.125 1111 1111 0101 1110 FF5EH -25.0626 1111 1110 0110 1111 FE6FH 图 2-1 DS 意图 nts 7 DS18B20 有严格的读写时序,读写数据都应按照此时序进行,否则读出的温度数值将产生错误。 使用 DS18B20时,主机应先向 DS18B20送出复位信号,主机将数据线拉低并保持 480960S;然后再释放数据线 ,由上拉电阻拉高 15 60S;然后再由 DS18B20 发出低电平 60240S,就完成了复位操作。 在主机对 DS18B20写数据时,应先将数据线拉低 1S以上,再写入数据(写 1为高,写 0 为低)。待主机写入的数据变化 15 60S 后, DS18B20 将对数据线采样。要求主机写入数据到 DS18B20的保持时间为 60 120S。 2次写数据操作的间隙应大于 1S。 读数据之前,主机应先将数据线拉低,再释放。 DS18B20在数据线从高电平跳低后 15S内将数据送到数据线上。主机在 15S后读取数据线。 如要了解有关 DS18B20 更多的知识,请查阅相关资料,此处不再叙述。 -55 1111 1100 1001 0000 FC90H nts 8 2.2、电路原理图 2 3、元器件清单 类别 型号 数量 单位 说明 集成电路 AT89C51 1 片 DS18B20 1 片 74LS245 1 片 双向驱动器 数码管 5位 5 位 3 温度校准实验 3.1、工作原理 对于精度要求不高的测量, DS18B20 完全能够满足要求。但是对于精度要求较高的场合,由于 DS18B20 内部采用了模数转换器,并且其本身具有分散性,则经常通过校准程 序来弥补偏差,运用校准程序的前提时要有比 DS18B20 更为精确的测温仪器,这里为了说明问题,我们使用点温计代替。 图 2-2 DS18B20 温度传感器实验 nts 9 例如: 实际温度( DS18B20) 理想温度(点温计) 偏差值 5 5.2 +0.2 10 10.6 +0.6 20 20.9 +0.9 40 39.2 -0.8 60 61.3 +1.3 80 81.9 +1.9 90 92.2 +2.2 nts 10 图 3-1 实际温度 偏差温度曲线 通过曲线,可以看出温度的偏差基本呈上升趋势,初步分三个阶段进行补偿, 0 19.99,补偿值为 +0.5; 20 69.99,补偿值为 +1.1; 70 99.99,补偿值为+2.0。如要整个温度范围内更为精确的显示,可以将温度的范围划分为更多的段,进行更加细致的补偿。 程序方面只需要在温读转换子程序后插入一温度补偿子程序即可,然后再分别测量以上温度值,与理想温度值比较,写出相对误差。 3.2、参考程序 ;. ;表示省略 ;. JIAO_Z EQU 7EH ;校准数据的整数部分 JIAO_X EQU 7DH ;校准数据的小数部分 J1_Z EQU 00H ;第 1 段校准数据的整数部分 J1_X EQU 80H ;第 1 段校准数据的小数部分 J2_Z EQU 01H ;第 2 段校准数据的整数部分 J2_X EQU 02H ;第 2 段校准数据的小数部分 J3_Z EQU 02H ;第 3 段校准数据的整数部分 J3_X EQU 00H ;第 3 段校准 数据的小数部分 ;. ;表示省略 ;. MAIN_LOOP: LCALL GET_TEMPER ;读取温度值 LCALL DATA_CHANGE ;调用数据转换子程序 nts 11 LCALL JIAOZHENG ;注意将校准子程序插入到此处 LCALL DATA_CHULI ;调用数据处理子程序 LCALL DISPLAY SJMP MAIN_LOOP ;. ; 表示省略 JIAOZHENG: ;校准子程序 MOV A , 28H CJNE A , #20 , JZ1 JZ1: JC JZ4 CJNE A , #70 , JZ2 JZ2: JC JZ3 MOV JIAO_Z , #J3_Z ;70 99.99,补偿值为 +2.0 MOV JIAO_X , #J3_X AJMP JZ5 JZ3: MOV JIAO_Z , #J2_Z ; 20 69.99,补偿值为 +1.1 MOV JIAO_X , #J2_X AJMP JZ5 JZ4: MOV JIAO_Z , #J1_Z ; 0 19.99,补偿值为 +0.5 MOV JIAO_X , #J1_X JZ5: MOV A , 27H ADD A , #80H MOV 27H , A MOV A , 28H ADDC A , #01H nts 12 MOV 28H , A RET ;. ;表示省略 ;. 说明: 加省略号的地方表示还有程序,与 DS18B20 传感器实验的程序有联系 4 温度控制过程实验 4.1、工作原理 用 800W 热得快代替加热装置,对一杯水进行加热; 4.1.1、通过 改变滑动变阻器,来调节热得快的功率; 4.1.2、绘制出水温在不同功率加热情况下的温度随时间的上升曲线; 4.1.3、绘制出水温在自然环境下温度随时间的下降曲线; 4.1.4、根据绘制的曲线,在设定的温度基础上,选择出合适的功率来加热,以便得到最理想的动态平衡。 4.2、工作原理 要改变加热装置的功率,通过改变加在其两端的电压值实现,考虑到安全问题,这里使用固态继电器通过改变其通断时间来调节加热装置功率的大小,电路图如图 3-4。 nts 13 图中控制部分是由 555 电路构成的占空比可调方波发生器,总时间为 T=0.39S,约等于市交流电的 40倍。通过调节滑动变阻器来改变方波的占空比, 从而改变通过加热加热装置的平均电压获得不同的功率。如:占空比为 1: 2,则加热装置获得的平均电压约等于 110V,则加热装置的功率变为原来的 1:4。 4.3、电路原理图 图 4-3 功率可调水温加热电路图 nts 14 4.4、元器件清单 类别 型号 数量 单位 说明 集成电路 555 1 片 固态继电器 1 只 电阻 10K 2 只 滑动变阻器 100K 1 只 二极管 1N4148 2 只 电容 4.7 1 只 0.01 1 只 5 水温控制系统的总体调试 5.1、工作原理 工作原理如下框图。 其中恒温部分为动态控制过程。如人工设定温度 80.5,如果当前温度小于人工设预 置 控 制 温度采集 电路 单 片 机 数码显示 工作指示 控制电路 超温报警 电 源 加热器 nts 15 定的温度,如当前温度位 25,则启动加热装置;当两者温度差小于 0.00 0.99(此值可根据加热装置的功率来设定),则切断加热装置,利用余热继续加热,经过一段时间后,加热装置余热耗尽,水温开始下降,当下降到两者温差小于 1.00 1.99再次接通加热装置,直至温差小于 0.00 0.99的时候再次切断,周而复始,最终达到动态平衡。nts 16 5.2、总电路 原理 图 图 4-5 水温控制系统总电路原理图 nts 17 说明: 整个电路分为六大部分, DS18B20 温度检测, 51 单片机数据处理及输出控制信号,独立式按键人工设定温度,功率调节电路、报警电路。搭接或制作的时候可以先将每一部分硬件电路调试好,然后进行整体连接调试。 6、水温控制系统总程序 ;堆栈区为 30H40H ;显示缓冲区为 4AH4EH ;读取后的温度值高 4 位存放在 28H 中,低 8位在 29H ;转换后的数据整数部分在 28H 中,小数部分在 27H ;DS18B20温度转换子程序, 6M晶振。 ALAM BIT P2.6 ;当 DS18B20不存在时的提示端口,为高电平。 PT18B20 BIT P2.5 ;DS18B20 的端口 FLAG1 BIT 2FH.0 ;是否检测到 DS18B20 标志位 FUHAO BIT 2FH.1 ;符号标志位 ,用于显示温度的符号。 KEY BIT 2FH.2 ;是否按下人工设定温度按键, 1是, 0 否 TEMPH EQU 2AH ;温度转换高 4 位暂存区 TEMPL EQU 2BH ;温度转换低 8 位暂存区 STEMPH EQU 2CH ;暂存人工输入数据的高 4位 STEMPL EQU 2DH ;暂存人工 输入温度的低 8位 DIS_FUHAO EQU 4AH DIS_SHI EQU 4BH ;显示的十位数缓冲区 nts 18 DIS_GE EQU 4CH ;显示的个位数缓冲区 DIS_SHIF EQU 4DH ;显示的十分位数缓冲区 DIS_BAIF EQU 4EH ;显示的百分位数缓冲区 GET_SHI EQU 50H ;人工设定温度十位缓冲区 GET_GE EQU 51H ;人工设定温度个位缓冲区 GET_SHIF EQU 52H ;人工设定温度十分位缓冲区 GET_BAIF EQU 53H ;人工设定温度百分位缓冲区 JIAO_Z EQU 7EH ;校准数据的整数部分 JIAO_X EQU 7DH ;校准数据的小数部分 DELAY1 EQU 7CH ;用于控制人工设定温度时的延时时间 XUHAO EQU 7BH ;用于控制人工设定温度输入数据时的位置 ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV SP , #30H ;设置堆栈区 MOV 2FH , #00H ANL P2 , #0E0H ;屏蔽低五位,即初始化显示不亮 CLR P3.3 ;初始化时关闭加热装置 CLR P3.4 ;初始化时关闭报警装置 MOV R0 , #4AH MOV R7 , #0AH CLR0: ;清除显示缓冲区 MOV R0 , #00H INC R0 DJNZ R7 , CLR0 MAIN_LOOP: JB P3.0 , DKEY1 LCALL DATA_GET ;调用人工设定温度获取子程序 nts 19 DKEY1: JB P3.2 , DKEY2 ;输入键取消人工温度设定 LCALL DISPLAY LCALL DISPLAY JB P3.2 , DKEY2 CLR P3.3 CLR P3.4 CLR KEY JNB P3.2 , $ DKEY2: LCALL GET_TEMPER ;读取温度值 LCALL DATA_CHANGE ;调用数据转换子程序 LCALL JIAOZHENG ;调用校正子程序 LCALL DATA_CHULI ;调用数据处理子程序 LCALL DISPLAY ;响应时间大约为 800ms JNB KEY , DEKY3 LCALL T_CONTROL ;调用温度控制子程序 DEKY3: SJMP MAIN_LOOP DATA_CHANGE: ;数据转换子程序 JNB 28H.3 , CHA1 ;转换后的结果符号位由标志 FUHAO确定 SETB FUHAO ;整数部分存放在 28H中,小数部分存放在 27H中 MOV A , 28H CPL A MOV 28H , A MOV A , 29H CPL A nts 20 ADD A , #01H MOV 29H , A MOV A , 28H ADDC A , #00H MOV 28H , A AJMP CHA2 CHA1: CLR FUHAO CHA2: MOV 27H , 29H MOV A , 27H ANL A , #0FH SWAP A MOV 27H , A MOV A , 29H ANL A , #0F0H SWAP A MOV 29H , A MOV A , 28H ANL A , #0FH SWAP A ORL A , 29H MOV 28H , A MOV TEMPH , 28H MOV TEMPL , 27H RET DATA_CHULI: ;数据处理子程序。 MOV R2 , 27H ;将最终转换得到的结果送入显示缓冲区 nts 21 LCALL HBD2 ;注意,转换后均以 BCD码表示 MOV A , R2 MOV 27H , A ANL A , #0FH MOV 4EH , A MOV A , R2 ANL A , #0F0H SWAP A MOV 4DH , A MOV A , 28H MOV C , F0 ADDC A , #00H MOV 28H , A MOV B , #10 DIV AB MOV 4BH , A MOV 4CH , B RET HBD2: MOV R4 , #3 ;获取三位十进制码 HBD3: MOV A , R2 ;原小 数扩大十倍 MOV B , #10 MUL AB MOV R2,A PUSH B ;保存溢出的一位十进制码 DJNZ R4 , HBD3 ;计算完四位十进制码 POP ACC ;取出千分位 MOV R3 , A nts 22 POP ACC ;取出百分位 MOV R2 , A POP ACC ;取出十分位 SWAP A ORL A , R2 ;拼装成高字节码小数 MOV R2 , A CJNE R3 , #05 , HBD4 ;若千分位大于等于 5,则向前进位,小于5则舍去 HBD4: JC HBD5 ADD A , #01H DA A MOV R2 , A MOV F0 , C HBD5: RET DATA_GET: JNB P3.0 , $ MOV DIS_SHI , #00H MOV DIS_GE , #00H MOV DIS_SHIF , #00H MOV DIS_BAIF , #00H DATA_GET1: JB P3.0 , DGET1 MOV DELAY1 , #02H LCALL YSHE JB P3.0 , DGET1 SJMP RETD ;按下确定键后表示温度已经设定好,返回 DGET1: nts 23 JB P3.1 , DGET2 LCALL YSHE JB P3.1 , DGET2 INC XUHAO MOV A , XUHAO CJNE A , #04 , DGET2 MOV XUHAO , #00H DGET2: JB P3.2 , DGET3 LCALL YSHE JB P3.2 , DGET3 MOV R0 , #XUHAO CJNE R0 , #00H , DGET31 INC GET_SHI MOV A , GET_SHI CJNE A , #05H , DGET32 MOV GET_SHI , #00H DGET32: MOV DIS_SHI , GET_SHI SJMP DGET38 DGET31: CJNE R0 , #01H , DGET33 INC GET_GE MOV A , GET_GE CJNE A , #0AH ,DGET34 MOV GET_GE , #00H DGET34: MOV DIS_GE , GET_GE SJMP DGET38 nts 24 DGET33: CJNE R0 , #02H ,DGET35 INC GET_SHIF MOV A , GET_SHIF CJNE A , #0AH , DGET36 MOV GET_SHIF , #00H DGET36: MOV DIS_SHIF , GET_SHIF SJMP DGET38 DGET35: INC GET_BAIF MOV A , GET_BAIF CJNE A , #0AH , DGET37 MOV GET_BAIF , #00H DGET37: MOV DIS_BAIF , GET_BAIF SJMP DGET38 DGET38: MOV DELAY1 , #25 LCALL YSHE SETB KEY DGET3: LCALL DISPLAY1 SJMP DATA_GET1 RETD: JNB P3.0 , $ RET T_CONTROL: ;温度控制子程序 nts 25 MOV A , GET_SHIF ANL A , #0FH SWAP A MOV R2 , A MOV A , GET_BAIF ANL A , #0FH ORL A , R2 MOV R2 , A LCALL BHD1 MOV A , R3 ANL A , #0F0H MOV STEMPL , A MOV A , GET_SHI MOV B , #10 MUL AB ADD A , GET_GE MOV STEMPH , A CLR C MOV A , STEMPL SUBB A , TEMPL MOV A , STEMPH SUBB A , TEMPH JC TCON1 CJNE A , #00H , TCON2 CLR P3.3 ;温差小于 1,切断加热装置 TCON2: SETB P3.3 ;温差大于 1,启动加热装置 CJNE A , #02H , TCON3 TCON3: nts 26 JC TCON4 SETB P3.4 AJMP TCON1 TCON4: CLR P3.4 AJMP RETT TCON1: CLR P3.3 CLR C MOV A , TEMPL SUBB A , STEMPL MOV A , TEMPH SUBB A , STEMPH CJNE A , #02H , TCON5 TCON5: JC TCON6 SETB P3.4 TCON6: CLR P3.4 RETT: RET ;标号: 1 功能:单字节码小数转换成单字节十六进制小数 ;入口条件:待转换的双字节码小数在 R2中。 ;出口信息:转换后的双字节十六进制小数在 R3中。 ;影响资源: PSW、 A、 R2 R6 堆栈需求: 字节 BHD1: nts 27 MOV R6 , #08H ;准备计算两个字节小数 MOV R3 , #00H BHD2: MOV A , R2 ;按十进制倍增 ADD A , R2 DA A MOV R2 , A MOV A , R3 ;将进位标志移入结果中 RLC A MOV R3 , A DJNZ R6 , BHD2 ;共计算 8小数 RET ;以下是读取 DS18B20 温度的子程序 ;读出的温度低位存入 29H(TEMPER_L),高位存入 28H(TEMPER_H) GET_TEMPER: ; 读出转换后的温度值 SETB PT18B20 LCALL INIT_1820 ;先复位 DS18B20 JB FLAG1,TSS2 RET ; 判断 DS1820是否存在 ?若 DS18B20不存在则返回 TSS2: ;DS18B20已经被检测到 ! MOV A,#0CCH ; 跳过 ROM匹配 LCALL WRITE_1820 MOV A,#44H ; 发出温度转换命令 LCALL WRITE_1820 ;这里通过调用显示子程序实现延时一段时nts 28 间 , LCALL Y750MS ;等待 AD转换结束 ,12位的话 750毫秒 LCALL INIT_1820 ;准备读温度前先复位 MOV A,#0CCH ; 跳过 ROM匹配 LCALL WRITE_1820 MOV A,#0BEH ; 发出读温度命令 LCALL WRITE_1820 LCALL READ_18200 ; 将读出的温度数据保存到 28H/29H RET INIT_1820: SETB PT18B20 NOP CLR PT18B20 MOV R1,#3 ;主机发出延时 600微秒的复位低脉冲 TSR1: MOV R0,#48 DJNZ R0,$ DJNZ R1,TSR1 SETB PT18B20 ;然后拉高数据线 NOP NOP MOV R0,#25H TSR2: JNB PT18B20,TSR3 ;等待 DS18B20 回应 DJNZ R0,TSR2 LJMP TSR4 ; 延时 TSR3: SETB FLAG1 ; 置标志位 ,表示 DS1820存在 LJMP TSR5 nts 29 TSR4: CLR FLAG1 ; 清标志位 ,表示 DS1820不存在。 SETB ALAM ; 点亮二极管表示 ds1820不存在。 MOV 29h,#00h ; 不存在时温度值显示为零。 MOV 28h,#00h LJMP TSR7 TSR5: MOV R0,#57 TSR6: DJNZ R0,TSR6 ; 时序要求延时一段时间 TSR7: SETB PT18B20 RET WRITE_1820: ; 写 DS18B20 的子程序 MOV R2,#8 ; 一共 8位数据 CLR C WR1: CLR PT18B20 MOV R3,#3 DJNZ R3,$ RRC A MOV PT18B20,C MOV R3,#12 DJNZ R3,$ SETB PT18B20 NOP DJNZ R2,WR1 SETB PT18B20 RET nts 30 READ_18200: ; 读 DS18B20的程序 ,从 DS18B20中读出两个字节的温度数据 MOV R4,#2 ; 将温度高位和低位从 DS18B20中读出 MOV R1,#29H ; 低位存入 29H(TEMPER_L),高位存入28H(TEMPER_H) RE00: MOV R2,#8 ;数据一共有 8位 RE01: CLR C SETB PT18B20 NOP CLR PT18B20 NOP NOP SETB PT18B20 MOV R3,#5 RE10: DJNZ R3,RE10 MOV C,PT18B20 MOV R3,#12 RE20: DJNZ R3,RE20 RRC A DJNZ R2,RE01 MOV R1,A DEC R1 DJNZ R4,RE00 RET nts 31 DISPLAY: ;显示子程序 MOV DPTR , #SHUMA ;注意采用的是动态显示的方式,需要对数码管进行逐个扫描 JB FUHAO , DISPLAY1 MOV P1 , #0A7H AJMP DISPLAY2 DISPLAY1: MOV P1 , #0BFH DISPLAY2: SETB P2.0 ACALL Y2MS CLR P2.0 MOV A , DIS_SHI MOVC A , A+DPTR MOV P1 , A SETB P2.1 ACALL Y2MS CLR P2.1 MOV A , DIS_GE MOVC A , A+DPTR ANL A , #7FH MOV P1 , A SETB P2.2 ACALL Y2MS CLR P2.2 MOV A , DIS_SHIF MOVC A , A+DPTR MOV P1 , A SETB P2.3 nts 32 ACALL Y2MS CLR P2.3 MOV A , DIS_BAIF MOVC A , A+DPTR MOV P1 , A SETB P2.4 ACALL Y2MS CLR P2.4 RET DISPLAYS: ;人工设定温度时显示子程序 MOV DPTR , #SHUMA ;注意采用的是动态显示的方式,需要对数码管进行逐个扫描 MOV R0 , #XUHAO MOV P1 , #0FFH SETB P2.0 ACALL Y2MS CLR P2.0 MOV A , DIS_SHI MOVC A , A+DPTR CJNE R0 , #00H , DISS1 ANL A , #7FH DISS1: MOV P1 , A SETB P2.1 ACALL Y2MS CLR P2.1 MOV A , DIS_GE MOVC A , A+DPTR nts 33 CJNE R0 , #01H , DISS2 ANL A , #7FH D
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。