1、 目录1.引言 .11.1 绪论 .11.2 课程设计任务书 .12.设计方案 .43.硬件设计方案 .43.1 最小系统的设计 .43.2 LED 发光报警电路 .63.3 DS18B20 的简介及在本次设计中的应用 .63.3.1 DS18B20 的外部结构及管脚排列 .63.3.2 DS18B20 的工作原理 .73.3.3 DS18B20 的主要特性 .83.3.4 DS18B20 的测温流程 .93.3.5 DS18B20 与单片机的连接 .93.4 报警温度的设置 .93.5 数码管显示 .103.5.1 数码管工作原理 .103.5.2 数码管显示电路 .123.6 硬件电路总体
2、设计 .124.软件设计方案 .134.1 主程序介绍 .134.1.1 主程序流程图 .134.1.2 主流程的 C 语言程序 .144.2 部分子程序 .184.2.1 DS18B20 复位子程序 .184.2.2 写 DS18B20 命令子程序 .194.2.3 读温度子程序 .214.2.4 计算温度子程序 .234.2.5 显示扫描过程子程序 .245.基于 DS18B20 的温度采集显示系统的调试 .266.收获和体会 .287.参考文献 .29课程设计用纸第 1 页 1.引言1.1 绪论随着科学技术的发展,温度的实时显示系统应用越来越广泛,比如空调遥控器上当前室温的显示,热水器温
3、度的显示等等,同时温度的控制在各个领域也都有积极的意义。采用单片机对温度进行控制不仅具有控制方便、简单、灵活性大等特点,而且还可以大幅度提高被控温度的技术指标。本文介绍了基于 DS18B20 的温度实时采集与显示系统的设计与实现。设计中选取单片机 AT89C51 作为系统控制中心,数字温度传感器 DS18B20 作为单片机外部信号源,实现温度的实时采集。并且用精度较好的数码管作为温度的实时显示模块。利用单片机程序来完成对 DS18B20 与 AT89C51 的控制,最终实现温度的实时采集与显示。采用单片机对温度进行控制不仅具有控制方便、简单、灵活性大等特点,而且还可以大幅度提高被控温度的技术指
4、标。1.2 课程设计任务书微机原理与接口技术课程设计任务书(二)题目:基于 DS18B20 的温度采集显示系统的设计一、课程设计任务传统的温度传感器,如热电偶温度传感器,具有精度高,测量范围大,响应快等优点。但由于其输出的是模拟量,而现在的智能仪表需要使用数字量,有些时候还要将测量结果以数字量输入计算机,由于要将模拟量转换为数字量,其实现环节就变得非常复杂。硬件上需要模拟开关、恒流源、D/A转换器,放大器等,结构庞大,安装困难,造价昂贵。新兴的IC温度传感器如DS18B20,由于可以直接输出温度转换后的数字量,可以在保证测量精度的情况下,大大简化系统软硬件设计。这种传感器的测温范围有一定限制(
5、大多在50120) ,多适用于环境温度的测量。DS18B20可以在一根数据线上挂接多个传感器,只需要三根线就可以实现远距离多点温度测量。本课题要求设计一基于DS18B20的温度采集显示系统,该系统要求包含温度采集模块、温度显示模块(可用数码管或液晶显示)和键盘输入模块及报警模块。所设计的系统可以从键盘输入设定温度值,当所采集的温度高于设定温度时,进行报警,同时能实时显示温度值。二、课程设计目的通过本次课程设计使学生掌握:1)单总线温度传感器 DS18B20 与单片机的接口及 DS18B20 的课程设计用纸第 2 页 编程;2)矩阵式键盘的设计与编程;3)经单片机为核心的系统的实际调试技巧。从而
6、提高学生对微机实时控制系统的设计和调试能力。三、课程设计要求1、要求可以从键盘上接收温度设定值,当所采集的温度高于设定值时,进行报警(可以是声音报警,也可是光报警)2、能实时显示温度值,要求保留一位小数;四、课程设计内容1、人机“界面”设计;2、单片机端口及外设的设计;3、硬件电路原理图、软件清单。五、课程设计报告要求报告中提供如下内容:1、目录2、正文(1)课程设计任务书;(2)总体设计方案(3)针对人机对话“界面”要有操作使用说明,以便用户能够正确使用本产品;(4)硬件原理图,以便厂家生成产(可手画也可用 protel 软件) ;(5)程序流程图及清单(子程序不提供清单,但应列表反映每一个
7、子程序的名称及其功能) ;(6)调试、运行及其结果;3、收获、体会4、参考文献六、课程设计进度安排周次 工作日 工作内容1 布置课程设计任务,查找相关资料2 熟悉相关芯片及使用方法3 完成总体设计方案4 画出硬件原理图及程序流程图第一周5 完成硬件接线,编写程序并调试第 1 编写程序并调试课程设计用纸第 3 页 2 编写程序并调试3 编写程序并调试及准备课程设计报告4 完成课程设计报告并于下午两点之前上交二周5 答辩本课题共需两周时间七、课程设计考核办法本课程设计满分为 100 分,从课程设计平时表现、课程设计报告及课程设计答辩三个方面进行评分,其所占比例分别为 20%、40%、40%。课程设
8、计用纸第 4 页 2.设计方案本次的课题设计要求是基于 DS18B20 的温度采集显示系统,该系统要求包含温度采集模块、温度显示模块和键盘输入模块及报警模块。其中温度采集模块所选用的是DS18B20 数字温度传感器进行温度采集,温度显示模块用的四位八段共阴极数码管进行温度的实时显示,键盘输入模块采用的是按钮进行温度的设置,报警模块用的是 LED 灯光报警。具体方案见图 2-1。AT89C51P0P2P2P1 P3最小系统蜂鸣器报警段选四位共阴极数码管显示温度报警温度的设定DS18B20 温度传感器位选图 2-1 总体设计方案3.硬件设计方案3.1 最小系统的设计本次设计单片机采用的是 AT89
9、C51 系列的,它由一个 8 位中央处理器(CPU),4k 字节 Flash 闪速存储器,128 字节内部 RAM,32 个 I/O 口线,两个 16 位定时/计数器,一个串行 I/O 口及中断系统等部分组成。其结构如图 3-1 所示:课程设计用纸第 5 页 图 3-1 AT89C51 系列单片机引脚排列图 3-2 单片机最小系统接线图图 3-2 为单片机最小系统的接线图,其中 C1、C2 均选用 20PF 的,晶振 X1 用的是XTAL1XTAL2RSTEA课程设计用纸第 6 页 11.0592MHZ 的。晶振电路中外接电容 C1,C2 的作用是对振荡器进行频率微调,使振荡信号频率与晶振频率
10、一致,同时起到稳定频率的作用,一般选用 1030pF 的瓷片电容。并且电容离晶振越近越好,晶振离单片机越近越好。晶振的取值范围一般为 024MHz,常用的晶振频率有 6MHz、12 MHz、11.0592 MHz、24 MHz 等。晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。图 3-2 中 C3,R1 及按键构成了最小系统中的复位电路,本次设计选择的是手动按钮复位,手动按钮复位需要人为在复位输入端 RST 上加入高电平。一般采用的办法是在RST 端和正电源 Vcc 之间接一个按钮。当人为按下按钮时,则 Vcc 的+5V 电平就会直接加到 RST 端。由于人的动作再快也会使按钮
11、保持接通达数十毫秒,所以,完全能够满足复位的时间要求。在单片机最小系统中还要将 EA 的非接高电平,如图 3-2 也有体现出来。3.2 LED 发光报警电路图 3-3 LED 发光报警电路图 3-3 为 LED 报警电路的接法,其中一根线接单片机的 8 号 P1.7 口,另外一根接地。当温度超过预设温度值时 LED 灯被接通发光报警。3.3 DS18B20 的简介及在本次设计中的应用3.3.1 DS18B20 的外部结构及管脚排列DS18B20 的管脚排列如图 3-4 所示:DS18B20 引脚定义:(1)DQ 为数字信号输入 /输出端;(2)GND 为电源地;(3)VDD 为外接供电电源输入
12、端(在寄生电源接线方式时接地)P1.7课程设计用纸第 7 页 图 3-4 DS18B20 的引脚排列及封装3.3.2 DS18B20 的工作原理DS18B20 的读写时序和测温原理与 DS1820 相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由 2s 减为 750ms。 DS18B20 测温原理如图 3-5 所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器 1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器 2的脉冲输入。计数器 1 和温度寄存器被预置在55 所对应的一个基数值。计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当计数器 1 的预置值减到 0 时,温度寄存器的值将加 1,计数器 1 的预置将重新被装入,计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器 2 计数到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器 1 的预置值。