单片机课程设计报告-基于单片机的数字温度计设计

上传人:aa****6 文档编号:29985866 上传时间:2018-01-26 格式:DOC 页数:23 大小:975KB
返回 下载 相关 举报
单片机课程设计报告-基于单片机的数字温度计设计_第1页
第1页 / 共23页
单片机课程设计报告-基于单片机的数字温度计设计_第2页
第2页 / 共23页
单片机课程设计报告-基于单片机的数字温度计设计_第3页
第3页 / 共23页
单片机课程设计报告-基于单片机的数字温度计设计_第4页
第4页 / 共23页
单片机课程设计报告-基于单片机的数字温度计设计_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《单片机课程设计报告-基于单片机的数字温度计设计》由会员分享,可在线阅读,更多相关《单片机课程设计报告-基于单片机的数字温度计设计(23页珍藏版)》请在金锄头文库上搜索。

1、单片机课程设计报告基于单片机的数字温度计设计 1 绪论2 方案设计3 系统的硬件设计3.1 主控制器3.2 显示电路3.3 温度传感器工作原理3.4 温度传感器接口电路4 系统的软件设计4.1 主程序4.2 温度测量4.2.1 初始化 DS18B204.2.2 等待应答信号4.2.3 DS18B20 读字节4.2.4 DS18B20 写字节4.2.5 启动温度测量4.2.6 读取测量结果4.2.7 各算法流程图4.3 数码管显示5 系统的测试与总结参考文献附录 1 原理图附录 2 源程序清单1 绪 论随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定

2、的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息基础的发展水平。在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温

3、度的测量,因此研究温度的测量方法和装置具有重要的意义。测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段:传统的分立式温度传感器模拟集成温度传感器智能集成温度传感器。目前的智能温度传感器(亦称数字温度传感器 )是在 20 世纪 90 年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ATE) 的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU)。社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络

4、传感器、研制单片测温系统等高科技的方向迅速发展,本文将介绍智能集成温度传感器 DS18B20 的结构特征及控制方法,并对以此传感器,89S51 单片机为控制器构成的数字温度测量装置的工作原理及程序设计作了详细的介绍。与传统的温度计相比,其具有读数方便,测温范围广,测温准确,输出温度采用数字显示,主要用于对测温要求比较准确的场所,或科研实验室使用。该设计控制器使用 ATMEL 公司的 AT89S52 单片机,测温传感器使用 DALLAS 公司DS18B20,用数码管来实现温度显示。2 方案设计本设计主要是介绍了单片机控制下的温度检测系统,详细介绍了其硬件和软件设计,并对其各功能模块做了详细介绍,

5、其主要功能和指标如下:利用温度传感器(DS18B20)测量某一点环境温度测量范围为-55125,精度为0.5用数码管进行实际温度值显示采用 AT89S52 单片机 P3 .5 口控制温度传感器 DS18B20 的温度测量,以四位数码感形式输出测量温度,原理图如下图 1.1 所示: 图 2.1 DS18B20 与单片机接口原理图 2.2总体设计方框图3 系统的硬件设计3.1 主控制器AT89S52 是 一 种 低 功 耗 、 高 性 能 CMOS8 位 微 控 制 器 , 具 有 8K 在 系 统可 编 程 Flash 存 储 器 。 使 用 Atmel 公 司 高 密 度 非 易 失 性 存

6、储 器 技 术 制 造 ,与 工 业 80C51 产 品 指 令 和 引 脚 完 全 兼 容 。 片 上 Flash 允 许 程 序 存 储 器 在系 统 可 编 程 , 亦 适 于 常 规 编 程 器 。 在 单 芯 片 上 , 拥 有 灵 巧 的 8 位 CPU 和在 系 统 可 编 程 Flash, 使 得 AT89S52 为 众 多 嵌 入 式 控 制 应 用 系 统 提 供 高灵 活 、 超 有 效 的 解 决 方 案 。 AT89S52 具 有 以 下 标 准 功 能 : 8k 字 节 Flash, 256 字 节 RAM, 32 位 I/O 口 线 , 看 门 狗 定 时 器 ,

7、 2 个 数 据 指 针 , 三 个 16 位 定 时 器 /计 数 器 , 一 个 6 向 量 2 级 中 断 结 构 , 全双 工 串 行 口 , 片 内 晶 振 及 时 钟 电 路 。 另 外 , AT89S52 可 降 至 0Hz 静 态 逻 辑 操 作 , 支 持 2 种 软 件 可 选 择 节 电 模 式 。 空 闲 模 式 下 , CPU 停 止 工 作 , 允许 RAM、 定 时 器 /计 数 器 、 串 口 、 中 断 继 续 工 作 。 掉 电 保 护 方 式 下 , RAM内 容 被 保 存 , 振 荡 器 被 冻 结 , 单 片 机 一 切 工 作 停 止 , 直 到

8、下 一 个 中 断 或 硬 件复 位 为 止 。 8 位 微 控 制 器 8K 字 节 在 系 统 可 编 程 Flash AT89S52图 3.1 时钟电路与复位电路3.2 显示电路显示采用 4 位数码管,图 3.2.1 为数码管段驱动,图 3.2.2 为数码管位驱动,图 3.2.3 为温度显示电路 图 3.2.1 数码管段驱动图 3.2.2 数码管位驱动 图 3.2.3 温度显示电路3.3 温度传感器工作原理DS18B20 温度传感器是美国 DALLAS 半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现

9、位的数字值读数方式。DS18B20 的性能特点如下: 独特的单线接口仅需一个端口引脚进行通讯 简单的多点分布应用 无需外部器件 可通过数据线供电 零待机功耗 测温范围-55+125,以0.5递增。华氏器件-67+2570F,以0.90F 递增 温度以9 位数字量读出 温度数字量转换时间200ms(典型值) 用户可定义的非易失性温度报警设置 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列、各种封装形式如图 3.3.1所示,DQ 为数据输入/输出

10、引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;GND为地信号;VDD为可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。其电路图 3.3.2所示.。 图 3.3.1外部封装形式 图3.3.2传感器电路图DS18B20 的测温原理如图 3.3.3 所示,图中低温度系数晶振的振荡频率受温度的影响很小用于产生固定频率的脉冲信号送给减法计数器 1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器 2 的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20 就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量.计数门的开启时间由高温度

11、系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入减法计数器 1 和温度寄存器中,减法计数器 1 和温度寄存器被预置在-55 所对应的一个基数值。减法计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器 1 的预置值减到 0 时温度寄存器的值将加 1,减法计数器 1 的预置将重新被装入,减法计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器 2 计数到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温图 2 中的斜率累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述

12、过程,直至温度寄存器值达到被测温度值,这就是 DS18B20 的测温原理。另外,由于 DS18B20 单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。系统对 DS18B20 的各种操作必须按协议进行。操作协议为:初始化 DS18B20(发复位脉冲)发 ROM 功能命令发存储器操作命令处理数据。预 置低 温 度 系 数 振 荡 器高 温 度 系 数 振 荡 器斜 率 增 加 器计 数 器 1比 较预 置= 0温 度 寄 存 器计 数 器 2= 0Tx加 1停 止 1 2图 3.3.3 DS18B20 测温原理图在正常测温情况下,DS1820 的测温分辨力为 0.5,可采用下述方

13、法获得高分辨率的温度测量结果:首先用 DS1820 提供的读暂存器指令(BEH)读出以0.5为分辨率的温度测量结果,然后切去测量结果中的最低有效位(LSB) ,得到所测实际温度的整数部分 Tz,然后再用 BEH 指令取计数器 1 的计数剩余值 Cs和每度计数值 CD。考虑到 DS1820 测量温度的整数部分以 0.25、0.75为进位界限的关系,实际温度 Ts 可用下式计算:CDs-25.0) ( )( Tzs3.4 温度传感器接口电路 图 3.4.1 温度传感器接口电路4 系统的软件设计4.1 主程序/*- 主函数 -*/void main()while(1)Convert(); /调用启动

14、温度转换函数RdTemp(); /调用读取温度值函数4.2 温度测量4.2.1 初始化 DS18B20/*- 初始化 DS18B20 -*/void TxReset() uint i;DQ=0; /发送复位脉冲i=100;while(i0) i-; /拉低 900us DQ=1; /释放总线i=4;while(i0) i-;4.2.2 等待应答信号/*- 等待 DS18B20 应答 -*/void RxWait() uint i;while(DQ); /等待 15-60uswhile(DQ); /DS18B20 发出存在脉冲 60-240usi=4;while(i0) i-;4.2.3 DS1

15、8B20 读字节/*- 读取一位数据 -*/bit RdBit()uchar i;bit b;DQ = 0; /读开始 1usi+;DQ = 1; /产生读时间隙 15usi+;i+;b = DQ; /读位i = 8;while(i0) i-; /等待 60usDQ = 1; /释放总线return b;/*- 读取字节数据 -*/uchar RdByte()uchar i,j,d;d=0;for(i=0;i1);return d;4.2.4 DS18B20 写字节/*- 写入字节数据 -*/void WrByte(uchar d)uint i;uchar j;bit btmp;for(j=0;j1;if(btmp) /写 1DQ=0; /延时 15usi+;i+;DQ=1;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号