毕业设计(论文)基于DS18B20 AT89S51的数字温控器设计_第1页
毕业设计(论文)基于DS18B20 AT89S51的数字温控器设计_第2页
毕业设计(论文)基于DS18B20 AT89S51的数字温控器设计_第3页
毕业设计(论文)基于DS18B20 AT89S51的数字温控器设计_第4页
毕业设计(论文)基于DS18B20 AT89S51的数字温控器设计_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、分类号分类号 密级密级 udc 毕毕 业业 设设 计计 基于 ds18b20at89s51 的 数字温控器设计 学生姓名学生姓名 学号学号 指导教师指导教师 系(中心)系(中心) 信息工程系 专专 业业 电子信息工程 年级年级 论文答辩日期论文答辩日期 年 月 日 中中 国国 海海 洋洋 大大 学学 青青 岛岛 学学 院院 基于 ds18b20at89s51 的数字温控器设计 完成日期: 指导教师签字: 答辩小组成员签字: i 摘 要 在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要 被控参数。其中,温度控制也越来越重要。在工业生产的很多领域中,人们都需要对 各类加热炉、

2、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用单片机对温度 进行控制不仅具有控制方便、简单和灵活性大等优点,而且可以大幅度提高被控温度 的技术指标,从而能够大大的提高产品的质量和数量。因此,单片机对温度的控制问 题是一个工业生产中经常会遇到的控制问题。 单片机是一种集 cpu、ram、rom、i/o 接口和中断系统等部分于一体的器件,只需 要外加电源和晶振就可实现对数字信息的处理和控制。因此,单片机广泛用于现代工 业控制中。 本论文侧重介绍“单片机温度控制系统”的软件设计及相关内容。论文的主要内 容包括:采样、滤波、键盘、led 显示和报警系统,加热控制系统等。作为控制系统中 的一个典型实

3、验设计,单片机温度控制系统综合运用了微机原理、自动控制原理、模 拟电子技术、数字控制技术、键盘显示技术等诸多方面的知识,是对所学知识的一次 综合测试。 关键词:单片机;数字控制;温度计;ds18b20;at89s51 ii design of digital temperature controller based on ds18b20 digital control; thermometers; ds18b20; at89s51 iii 目 录 1 绪论 .1 1.1 课题的背景及意义 .1 1.2 相关技术的发展概况 .1 2 总体设计方案 .3 2.2 设计思路 .3 2.2 数字温控器

4、设计方案论证 .3 2.3 方案选择 .4 2.4 总体设计框图 .4 3 主要芯片概述 .5 3.1 单片机 at89s51.5 3.2 数字温度传感器 ds18b20.6 3.3 二四译码器 .8 4 硬件电路设计 .9 4.1 主模块.9 4.2 温度采集模块.10 4.3 温度传感与单片机的连接.10 4.4 显示模块 .11 4.5 报警电路.11 4.6 复位电路及电源电路.12 5 软件程序分析.13 5.1 系统软件算法分析 .13 5.2 主程序 .13 5.3 读出温度子程序 .13 5.4 温度转换命令子程序 .15 5.5 计算温度子程序 .15 5.6 显示数据刷新子

5、程序 .16 结束语.17 参考文献.18 致 谢.19 附 录.20 基于 ds18b20 gnd为电源地; vdd为外接供电电源输入端。 图 3-2 ds18b20 内部结构图 3、ds18b20 工作原理 ds18b20 的读写时序和测温原理与 ds1820 相同,只是得到的温度值的位数因分辨 率不同而不同,且温度转换时的延时时间由 2s 减为 750ms。 ds18b20 测温原理如图 3 所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信 号送给计数器 1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计 数器 2 的脉冲输入。计数器 1 和温度寄

6、存器被预置在55所对应的一个基数值。计 数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当计数器 1 的预置值减到 0 时,温度寄存器的值将加 1,计数器 1 的预置将重新被装入,计数器 1 重新开始对低温 度系数晶振产生的脉冲信号进行计数,如此循环直到计数器 2 计数到 0 时,停止温度 基于 ds18b20i-) / 8次一个字节 dq = 0; /脉冲信号 date=1; /右移一位 dq = 1; /脉冲信号 if(dq) date|=0 x80; delay(4); / 延时 return(date); / 返回读取温度数据其程序流程图 y 启动 ds18b20 初始化 发读温

7、度命令 读取操作,crc 校验 9 字节完? crc 校验正? 确? 移入温度暂存器 结束 n n y 基于 ds18b20 用于保存读出温度的低8位 temper_h equ 28h; 用于保存读出温度的高8位 flag1 equ 38h; 是否检测到ds18b20标志位 a_bit equ 20h; 数码管个位数存放内存位置 b_bit equ 21h ; 数码管十位数存放内存位置 main: lcall get_temper; 调用读温度子程序 mov a, 29h mov c,40h; 将28h中的最低位移入c rrc a mov c, 41h rrc a mov c, 42h rrc

8、 a mov c, 43h rrc a mov 29h, a lcall display; 调用数码管显示子程序 ajmp main ; 循环显示 init_18b20: ; 这是ds18b20复位初始化子程序 setb p3.2 nop clr p3.2 mov r1,#3; 主机发出延时537微秒的复位脉 冲 tsr1: mov r0,#107 djnz r0, $ djnz r1, tsr1 setb p3.2; 然后拉高数据线 nop nop nop mov r0, #25h tsr2: jnb p3.2,tsr3; 等待ds18b20回应 djnz r0, tsr2 ljmp tsr

9、4 ; 延时 tsr3: 基于 ds18b20 置标志位,表示ds18b20存在 ljmp tsr5 tsr4: clr flag1 ; 清标志位,表示ds18b20不存在 ljmp tsr7 tsr5: mov r0, #117 tsr6: djnz r0,tsr6 ; 时序要求延时一段时间 tsr7: setb p3.2 ret get_temper: ; 读出转换后的温度值 setb p3.2 lcall init_18b20; 先复位ds18b20 jb flag1 ,tss2 ret ; 判断ds18b20是否存在? 若ds18b20不存在则返回 tss2: ; ds18b20已经被

10、检测到! mov a,#0cch ; 跳过rom匹配 lcallwrite_18b20; mov a,#44h ; 发出温度转换命令 lcallwrite_18b20; 等待ad转换结束,12位的话750 微秒 lcall display lcall init_18b20; 准备读温度前先复位 mov a,#0cch ; 跳过rom匹配 lcallwrite_18b20 mov a,#0beh ; 发出读温度命令 lcallwrite_18b20 lcall read_18b20; 将读出的温度数据保存到 35h/36h ret write_18b20: ; 写ds18b20的子程序 mov

11、r2,#8; 一共8位数据 clr c wr1: clr p3.2 mov r3, #6 djnz r3, $ rrc a mov p3.2, c mov r3, #23 djnz r3, $ setb p3.2 基于 ds18b20 从ds18b20中读出两字节温度数 据 mov r4,#2 ; 将温度从ds18b20中读出 mov r1,#29h ; 低位存入29h re00: mov r2,#8; 数据一共有8位 re01: clr c setb p3.2 nop nop clr p3.2 nop nop nop setb p3.2 mov r3, #9 re10: djnz r3, r

12、e10 mov c, p3.2 mov r3, #23 re20: djnz r3, re20 rrc a djnz r2, re01 movr1,a dec r1 djnz r4, re00 ret 显示子程序 display: mov a,29h; 将29h中的数转换成10进制 mov b,#10 ; 10进制/10=10进制 div a b mov b _bit, a; mov a_ bit, b ; 个位在b movdptr, #num tab ; 指定查表启始地址 mov r0, #4 dpl1: mov r1,#250 ; 显示1000次 dplop:mov a v, a _bit ; 取个位数 movc a,a+dptr ; 查个位数的7段代码 基于 ds18b20 送出个位的7段代码 clr p3.4 ; 开个位显示 acall d1ms ; 显示1ms setb p3.4 mov a, v b _bit ; 取出十位数 movc a,a+dptr ; 查出十位数的7段代码 mov p1,a ; 送出十位的7段代码 clr p3.3 ; 开十位显示 acall d1ms ; 显示1ms setb p3.3 djnz r1,dplo

温馨提示

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

评论

0/150

提交评论