




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科生毕业设计(论文) 题题 目:目: 基于单片机的数字温度计的设计基于单片机的数字温度计的设计 学生姓名:学生姓名: 系系 别:别: 机械与电气工程系机械与电气工程系 专业年级:专业年级: 指导教师:指导教师: 20132013 年年 6 6 月月 2020 日日 中国石油大学胜利学院本科毕业设计(论文) 摘要 本文主要介绍了一个基于 at89c51 单片机的测温系统,详细描述了利用数字温度 传感器 ds18b20 开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编 程以及各模块系统流程进行了详尽分析,对各部分的电路进行了介绍,该系统可以方 便的实现温度采集和显示,并可以根据需要,任意设定上下限报警温度,它适合我们 日常生活和工农业生产中的温度测量,也可以当做温度处理模块嵌入其他系统中,作 为其他主系统的辅助扩展。ds18b20 和 at89c51 结合实现最简温度检测系统。本温度 计属于多功能温度计,可以设置上下限报警温度,当温度不在设置范围内时,可以报 警。 关键词:关键词:单片机;数字控制;温度计; ds18b20;at89c51 中国石油大学胜利学院本科毕业设计(论文) abstract this paper introduces a temperature measurement system based on at89c51 microcontroller, a detailed description of the process of using digital temperature sensor ds18b20 temperature measurement system development, focusing on the sensor under the scm hardware connection, software programming and system flow of each module were analyzed in detail on the part of the circuit, the system can realize temperature acquisition convenient and display, and can according to need, set the alarm temperature, it is suitable for our daily life and industrial and agricultural production in the temperature measurement, it can also be used as a temperature processing module embedded in other systems, as other auxiliary system. ds18b20 and at89c51 combine to achieve the most simple temperature detection system. the multi-purpose thermometer, you can set the alarm temperature, when the temperature is not in the set range,it can alarm. keywords: single chip microcomputer; digital control; thermometer; ds18b20; at89c51 中国石油大学胜利学院本科毕业设计(论文) 目录 前 言.6 第一章 硬件设计.7 1.1 at89c51 芯片功能简介.7 1.1.1 at89c51 芯片简介.7 1.1.2 引脚功能.7 1.2 数字温度传感器模块.8 1.2.1 ds18b20 性能.8 1.2.2 ds18b20 引脚说明.9 1.2.3 ds18b20 测温原理.9 1.2.4 ds18b20 的工作时序.10 1.3 测温电路设计11 1.4 按键模块设计.12 1.5 报警电路设计.12 1.6 显示电路设计.13 1.7 串口电路设计.13 第二章 系统软件设计.14 2.1 各模块的程序设计.14 2.1.1 主程序流程图14 2.1.2 读出温度子程序.14 2.1.3 温度转换命令子程序.15 2.1.4 计算温度子程序.16 2.1.5 显示数据刷新子程序.17 2.1.6 报警子程序.17 2.1.7 按键扫描处理子程序.18 2.2 keil c51 编程软件18 2.2.1 keil c51 简介 18 2.2.2 keil c51 软件应用 18 第三章 系统的仿真与总结.20 3.1 protues 仿真.20 3.1.1 protues 简介.20 3.1.2 proteus 的工作过程20 3.1.3 protues 测温仿真.21 3.1.4 性能分析.23 3.2 总结.23 3.2.1 硬件方面23 3.2.2 软件方面23 致谢.26 中国石油大学胜利学院本科毕业设计(论文) 附录.27 附录 a 程序清单27 附录 b 系统总设计图37 中国石油大学胜利学院本科毕业设计(论文) 6 前 言 随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为 主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建 材、机械、食品、石油等各个行业。传统的温度采集方法不仅费时费力,而且精度差, 单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。温度是工业对象 中的一个重要的被控参数。然而所采用的测温元件和测量方法也不相同;产品的工艺 不同,控制温度的精度也不相同。因此对数据采集的精度和采用的控制方法也不相同。 传统的控制方式以不能满足高精度,高速度的控制要求,如温度控制表温度接触器, 其主要缺点是温度波动范围大。由于他主要通过控制接触器的通断时间比例来达到改 变加热功率的目的,受仪表本身误差和交流接触器的寿命限制,通断频率很低。近几 年来快速发展了多种先进的温度控制方式,如:pid 控制,模糊控制,神经网络及遗 传算法控制等。这些控制技术大大的提高了控制精度,不但使控制变得简便,而且使 产品的质量更好,降低了产品的成本,提高了生产效率。 本设计使用单片机作为核心进行控制。单片机具有集成度高,通用性好,功能强, 特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点, 在数字、智能化方面有广泛的用途。 本课题的研究方法是利用单片机和数字温度传感器 ds18b20 设计一台数字温度计。 单片机作为主控制器,数字温度传感器 ds18b20 作为测温元件,传感器 ds18b20 可以 读取被测量温度值,进行转换,从而用 4 位共阴极 led 数码管来显示转换后的温度值。 本课题的主要研究内容如下: 1. 温度测试基本范围 0100。 2. 精度为 0.5。 3. led 数码管显示。 4. 可以设定温度的上下限报警功能。 5. 实现报警提示。 中国石油大学胜利学院本科毕业设计(论文) 7 第一章 硬件设计 1.1 at89c51 芯片功能简介 1.1.1 at89c51 芯片简介 at89c51 是一种带 4k 字节闪烁可编程可檫除只读存储器(fperom-flash programable and erasable read only memory )的低电、高性能 cmos 8 位微处理 器。 1.1.2 引脚功能 at89c51 芯片的引脚图如图 1-1 所示: xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0.0/ad0 39 p0.1/ad1 38 p0.2/ad2 37 p0.3/ad3 36 p0.4/ad4 35 p0.5/ad5 34 p0.6/ad6 33 p0.7/ad7 32 p1.0 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 p3.0/rxd 10 p3.1/txd 11 p3.2/int0 12 p3.3/int1 13 p3.4/t0 14 p3.7/rd 17 p3.6/wr 16 p3.5/t1 15 p2.7/a15 28 p2.0/a8 21 p2.1/a9 22 p2.2/a10 23 p2.3/a11 24 p2.4/a12 25 p2.5/a13 26 p2.6/a14 27 u1 at89c51 图 1-1 at89c51 引脚图 at89c51 的引脚功能如下: 1、主电源引脚(2 根) vcc:电源输入,接5v 电源 中国石油大学胜利学院本科毕业设计(论文) 8 gnd:接地线 2、外接晶振引脚(2 根) xtal1:片内振荡电路的输入端 xtal2:片内振荡电路的输出端 3、控制引脚(4 根) rst/vpp:复位引脚,引脚上出现 2 个机器周期的高电平将使单片机复位。 ale/prog:地址锁存允许信号 psen:外部存储器读选通信号 ea/vpp:程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接 高电平则从内部程序存储器读指令。 4、可编程输入/输出引脚(32 根) at89c51 单片机有 4 组 8 位的可编程 i/o 口,分别位 p0、p1、p2、p3 口,每个口 有 8 位(8 根引脚),共 32 根。 po 口:8 位双向 i/o 口线,名称为 p0.0p0.7 p1 口:8 位准双向 i/o 口线,名称为 p1.0p1.7 p2 口:8 位准双向 i/o 口线,名称为 p2.0p2.7 p3 口:8 位准双向 i/o 口线,名称为 p3.0p3.7 1.2 数字温度传感器模块 1.2.1 ds18b20 性能 1、独特的单线接口仅需一个端口引脚进行通信 2、简单的多点分布应用 3、无需外部器件 4、可通过数据线供电 5、零待机功耗 6、测温范围-55+125,以 0.5递增 7、可编程的分辨率为 912 位,对应的可分辨温度分别为 0.5、0.25、 0.125和 0.0625 8、温度数字量转换时间 200ms,12 位分辨率时最多在 750ms 内把温度转换为数 字 中国石油大学胜利学院本科毕业设计(论文) 9 9、应用包括温度控制、工业系统、消费品、温度计和任何热感测系统 10、负压特性:电源极性接反时,传感器不会因发热而烧毁,但不能正常工作 1.2.2 ds18b20 引脚说明 ds18b20 内部结构主要由四部分组成:64 位光刻 rom、温度传感器、非挥发的温 度报警触发器 th 和 tl、配置寄存器。ds18b20 的管脚有三个,dq 为数据输入/输出 引脚,当被用在寄生电源下,也可以向器件提供电源;gnd 为地信号;vdd 为可选择 的电源引脚,当工作于寄生电源时,此引脚必须接地;当 vdd 端口接电源时是使用外 部电源。 1.2.3 ds18b20 测温原理 ds18b20 的测温原理如图 1-2 所示,图中低温度系数晶振的振荡频率受温度的影 响很小,用于产生固定频率的脉冲信号送给减法计数器 1,高温度系数晶振随温度变 化其震荡频率明显改变,所产生的信号作为减法计数器 2 的脉冲输入,图中还隐含着 计数门,当计数门打开时,ds18b20 就对低温度系数振荡器产生的时钟脉冲进行计数, 进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首 先将-55 所对应的基数分别置入减法计数器 1 和温度寄存器中,减法计数器 1 和温 度寄存器被预置在-55 所对应的一个基数值。 减法计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器 1 的预置值减到 0 时温度寄存器的值将加 1,减法计数器 1 的预置将重新被装入,减法 计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计 数器 2 计数到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温 度。图中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计 数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温 度值,这就是 ds18b20 的测温原理。 中国石油大学胜利学院本科毕业设计(论文) 10 预置斜率累加器 比较低温度系数振荡器计数器 1 温度寄存器 tx 预置 =0 高温度系数振荡器 =0 0 计数器 2 t1 加 1 停止 t2 图 1-2 ds18b20 测温原理图 1.2.4 ds18b20 的工作时序 ds18b20 的工作协议流程是:初始化rom 操作指令存储器操作指令数据传 输。其工作时序包括初始化时序、写时序和读时序,如图 1-3 (a) (b) (c)所示。 主机控制 ds18b20 完成任何操作之前必须先初始化,即主机发一复位脉冲(最短 为 480us 的低电平),接着主机释放总线进入接收状态,ds18b20 在检测到 i/o 引脚上 的上升沿之后,等待 15-60us 然后发出存在脉冲(60-240us 的低电平)。 写时间片:将数据从高电平拉至低电平,产生写起始信号。在 15us 之内将所需 写的位送到数据线上,在 15us 到 60us 之间对数据线进行采样,如果采样为高电平, 就写 1,如果为低电平,就写 0。在开始另一个写周期前必须有 1us 以上的高电平恢 复期。 ds18b20 等待 ds18b20tx 产生 15us16us 脉冲 60-240 主机复位脉冲 vcc 480us1us ds18b20 采样 15us min typ max min typ max 15us 30us 15us 15us 30us 图 1-3(b)写时序 vcc 主机读“0”时隙 主机读“1”时隙 1-wire bus gnd 主机采样 1us 15us 15us 30us 主机采样 15us 图 1-3(c)读时序 读时间片:主机将数据线从高电平拉至低电平 1us 以上,再使数据线升为高电平, 从而产生读起始信号。主机在读时间片下降沿之后 15us 内完成读位。每个读周期最 短的持续期为 60us,各个读周期之间也必须有 1us 以上的高电平恢复期。 1.3 测温电路设计 数字温度传感器 ds18b20 的测温电路如图 1-4 所示: 中国石油大学胜利学院本科毕业设计(论文) 12 图 1-4 测温电路 1.4 按键模块设计 利用单片机的 io 口实现按键的中断输入。另外需要一个与门实现与中断端口的连 接。按键电路如图 1-5 所示,期中按键 k1 为进入/退出设置键;k2 为增加键;k3 为 减少键。 图 1-5 按键模块 1.5 报警电路设计 三极管驱动蜂鸣器:报警电路如图 1-6 所示,三极管 q5 来驱动喇叭 ls1。 图 1-6 报警电路 中国石油大学胜利学院本科毕业设计(论文) 13 1.6 显示电路设计 采用四位共阴极 led 数码管来显示温度,可以直接读取,温度精确到 0.1。四 位数码管的显示电路如图 1-7 所示,从左到右依次是百位,十位,个位,十分位。 图 1-7 显示电路 1.7 串口电路设计 单片机与上位机(pc 机)的接口电路如图 1-8 所示: 图 1-8 接口电路 中国石油大学胜利学院本科毕业设计(论文) 14 第二章 系统软件设计 2.1 各模块的程序设计 系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子 程序,显示数据刷新子程序和按键扫描处理子程序等。 2.1.1 主程序流程图 主程序的主要功能是负责温度的实时显示、读出并处理 ds18b20 测量的当前温度 值,温度测量每 1s 进行一次。这样可以在一秒之内测量一次被测温度,其程序流程 见图 2-1 所示。 图 2-1 主程序流程图 2.1.2 读出温度子程序 读出温度子程序的主要功能是读出 ram 中的 9 字节,在读出时需进行 crc 校验, 初始化 调用显示子程序 1s 到? 初次上电 读出温度值温度计算处 理显示数据刷新 发温度转换开始命令 n y n y 中国石油大学胜利学院本科毕业设计(论文) 15 校验有错时不进行温度数据的改写。其程序流程图如图 2-2 所示: 图 2-2 读出温度子程序流程图 2.1.3 温度转换命令子程序 温度转换命令子程序主要是发温度转换开始命令,当采用 12 位分辨率时转换时 间约为 750ms,在本程序设计中采用 1s 显示程序延时法等待转换的完成。温度转换 命令子程序流程图如图 2-3 所示: y 发 ds18b20 复位命令 发跳过 rom 命令 发读取温度命令 读取操作,crc 校验 9 字节完? crc 校验正? 确? 移入温度暂存器 结束 n n y 中国石油大学胜利学院本科毕业设计(论文) 16 发 ds18b20 复位命令 发跳过 rom 命令 发温度转换开始命令 结束 图 2-3 温度转换命令子程序流程图 2.1.4 计算温度子程序 计算温度子程序流程图如图 2-4 所示。 图 2-4 计算温度子程序流程图 开始 温度零下? 温度值取补码置“”标志 计算小数位温度 bcd 值 计算整数位温度 bcd 值 结束 置“+”标志 n y 中国石油大学胜利学院本科毕业设计(论文) 17 2.1.5 显示数据刷新子程序 显示数据刷新子程序主要是对分离后的温度显示数据进行刷新操作,当标志位位 为 1 时将符号显示位移入第一位。程序流程图如图 3-5 所示。 图 2-5 显示数据刷新子程序流程图 2.1.6 报警子程序 设置报警标志位 beep,报警流程图如图 2-6 所示: y 图 2-6 报警流程图 温度数据移入显示寄存 器 十位数 0? 百位数 0? 十位数显示符号 百位数不显示 百位数显示数 据(不显示符号) 结束 n n y y 读取测量温度值 温度值 120 或 #include #include /_nop_();延时函数用 #define dm p0 /段码输出口 #define uchar unsigned char #define uint unsigned int sbit dq=p17; /温度输入口 sbit l1=p20; /数码管 1 sbit l2=p21; /数码管 2 sbit l3=p22; /数码管 3 sbit l4=p23; /数码管 4 sbit beep=p35; /蜂鸣器 sbit set=p14; /温度设置切换键 sbit add=p15; /温度加 sbit dec=p16; /温度减 int temp1=0; /显示当前温度和设置温度的标志位为 0 时显示当前温度 uint h; uint temp; uchar r; uchar high=120,low=20; uchar sign; uchar q=0; uchar tt=0; uchar scale; uchar code ditab16=0x00,0x01,0x01,0x02, /温度小数部分用查表法 0x03,0x03,0x04,0x04, 0x05,0x06,0x06,0x07, 中国石油大学胜利学院本科毕业设计(论文) 28 0x08,0x08,0x09,0x09; uchar code table_dm12=0x3f,0x06,0x5b,0x4f, /小数断码表 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x00,0x40; uchar table_dm1=0xbf,0x86,0xdb,0xcf, /共阴 led 段码表“0“ “1“ “2“ “3“ “4“ “5“ “6“ “7“ “8“ “9“ “不亮“ “-“ 0xe6,0xed,0xfd,0x87, 0xff,0xef; /个位带小数点的断码表 uchar data temp_data2=0x00,0x00; /读出温度暂放 uchar data display5=0x00,0x00,0x00,0x00,0x00; /显示单元数据,共 4 个数 据和一个运算暂用 void delay(uint t) / 延时函数 for (;t0;t-); void scan() int j; for(j=0;j0;i-) dq=1;_nop_(); 中国石油大学胜利学院本科毕业设计(论文) 30 _nop_(); /从高拉倒低 dq=0; _nop_(); _nop_(); _nop_(); _nop_(); /5 us dq=val /最低位移出 delay(6); /66 us val=val/2; /右移 1 位 dq=1; delay(1); uchar read_byte(void) /ds18b20 读 1 字节函数/从总线上取 1 个字节 uchar i; uchar value=0; for(i=8;i0;i-) dq=1; _nop_(); _nop_(); value=1; dq=0; _nop_(); _nop_(); _nop_(); _nop_(); /4 us dq=1; _nop_(); 中国石油大学胜利学院本科毕业设计(论文) 31 _nop_(); _nop_(); _nop_(); /4 us if(dq)value|=0x80; delay(6); /延时 66 us dq=1; return(value); read_temp() /读出温度函数 ow_reset(); /总线复位 delay(200); write_byte(0xcc); /发命令 write_byte(0x44); /发转换命令 ow_reset(); delay(1); write_byte(0xcc); /发命令 write_byte(0xbe); temp_data0=read_byte(); /读温度值的第字节 temp_data1=read_byte(); /读温度值的高字节 temp=temp_data1; temp6348) / 温度值正负判断 tem=65536-tem;n=1; / 负温度求补码,标志位置 1 display4=tem / 取小数部分的值 display0=ditabdisplay4; / 存入小数部分显示值 display4=tem4; / 取中间八位,即整数部分的值 display3=display4/100; / 取百位数据暂存 display1=display4%100; / 取后两位数据暂存 display2=display1/10; / 取十位数据暂存 display1=display1%10; /个位数据 r=display1+display2*10+display3*100; if(!display3)/符号位显示判断 display3=0x0a; /最高位为 0 时不显示 if(!display2) display2=0x0a; /次高位为 0 时不显示 if(n)display3=0x0b; /负温度时最高位显示“-“ void xianshi(int horl) /设置温度显示转换 int n=0; if(horl128) horl=256-hor
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第七节 综合实践活动-学生周末时间分配调查表说课稿-2025-2026学年初中信息技术河大音像版2020七年级下册-河大音像版2020
- 2025科技园区租赁合同
- 高中政治统编版(2019)必修一教学设计+教学设计
- 云南省昆明市黄冈实验学校高中生物必修三教学设计
- 油墨厂乙二醇乙醚存储规章
- 陕西省蓝田县焦岱中学高一上学期政治教学设计(必修一)
- 活动2 IP地址与域名说课稿-2025-2026学年初中信息技术人教版新疆专用七年级下册-人教版新疆专用
- 家居产品质量监督检验合同
- 江苏省徐州市八年级政治下册 第六单元 复兴中华 第18课 民族情 民族魂 第2框 五十六个民族是一家说课稿 苏教版
- 2023三年级英语上册 Unit 1 Hello The fourth period (第四课时)说课稿 人教PEP
- 聚焦财税场景的AIBM生态服务行业白皮书
- 《教育心理学》教材
- 教育部《中小学德育工作指南》-德育工作指南
- 柜式七氟丙烷操作培训
- 知识产权代理服务协议
- 东亚文化视野下的日本语言文学知到智慧树章节测试课后答案2024年秋华东师范大学
- 2024年08月北京2024年建信养老金管理有限责任公司校园招考笔试历年参考题库附带答案详解
- DG-TJ 08-2445-2024 城镇排水管渠在线监测技术标准
- 强信念 转作风 提能力 促发展 学习心得体会
- 朋友的古诗句
- 房屋市政工程生产安全重大事故隐患判定标准(2024版)宣传海报
评论
0/150
提交评论