基于51单片机的数字温度报警器_第1页
基于51单片机的数字温度报警器_第2页
基于51单片机的数字温度报警器_第3页
基于51单片机的数字温度报警器_第4页
基于51单片机的数字温度报警器_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

郑州科技学院郑州科技学院 单片机课程设计 题 目 基于 51 单片机的数字温度报警器 专业班级 电气工程及其自动化 班 院 系 电气工程学院 姓 名 学 号 指导教师 日 期 2017 年 6 月 2 日 目 录 1 课程设计目的 1 2 课程设计任务与要求 1 3 设计方案与论证 1 3 1 单片机的选择 2 3 2 温度传感器的选择 2 3 3 显示模块选择 3 4 系统硬件电路设计 3 4 1 系统整体电路图 3 4 2 单片机最小系统 4 4 3 报警电路设计 5 4 4 显示电路设计 5 4 5 电源电路设计 6 5 系统软件设计 7 5 1 主程序 7 5 2 读出温度子程序 7 5 3 温度转换命令子程序 7 5 4 计算温度子程序 7 6 仿真过程 7 6 1 仿真软件介绍 7 6 2 仿真结果 8 7 总结与致谢 10 参考文献 11 附录 1 总体原理图 12 附录 2 实物图 13 附录 2 源程序 14 1 1 课程设计目的 温度控制在冶金 化工 建材 食品 机械 石油等工业中 具有不可或缺的作用 对于不同场所 不同工艺 所需温度高低范围不同 精度不同 则采用的测温元件 测温 方法以及对温度的控制方法也将不同 产品工艺不同 控制温度的精度不同 时效不同 则对数据采集的精度和采用的控制算法也不同 所以 对温度的测控方法多种多样 随着 电子技术和微型计算机的迅速发展 微机测量和控制技术也得到了迅速的发展和广泛的应 用 利用微机对温度进行测控的技术 也便随之而生 并得到日益发展和完善 越来越显 示出其优越性 随着科技水平的不断提高 单片机给人带来的方便也是不可否定的 其中数字温度计就 是一个典型的例子 但人们为现代人工作 科研 生活 提供更好的更方便的设施就需要 从数单片机技术入手 一切向着数字化控制 智能化控制方向发展 本设计即用单片机对温度进行实时检测与控制 通过数字温度计与传统的温度计相比 具有读数方便 测温范围广 测温准确 其输出温度采用数字显示 主要用于对测温比较 准确的场所 或科研实验室使用 该设计控制器使用单片机 AT89S52 测温传感器使用 DS18B20 用 4 位共阳极 LED 数码管以串口传送数据 实现温度显示 能准确达到设计要求 本温度计属于多功能温度计 功能较强 可以设置上下限报警温度 且测量准确 误差小 当测量温度超过设定的温度上下限时 启动蜂鸣器和指示灯报警 2 课程设计任务与要求 基本范围 0 99 精度误差小于 0 5 LED 数码直读显示 实现声光报警 可以 任意设定温度的上下限报警功能 3 设计方案与论证 方案一 由于本设计是测温电路 根据设计要求可以使用热敏电阻之类的感温器件利 用其感温效应 然后将随被测温度变化的电压或电流采集过来 经过 A D 转换后 将数据 传输到单片机进行数据的处理 然后在显示电路上显示 这样就可以将被测温度显示出来 这种设计需要用到 A D 转换电路 感温电路比较麻烦 方案二 在单片机电路设计中 大多都是使用传感器 这是非常容易想到利用数字温 度传感器 所以可以采用一只温度传感器 DS18B20 此传感器 可以很容易直接读取被测 2 温度值 进行转换 然后传输给单片机进行数据处理 就可以满足设计要求 从以上两种方案 很容易看出 采用方案二 电路设计比较简洁 软件设计也比较简 单 故采用方案二 3 1 单片机的选择 AT89S52 单片机是一个低功耗 高性能 CMOS 8 位单片机 片内含 8k Bytes ISP In system programmable 的可反复擦写 1000 次的 Flash 只读程序存储器 器件采用 ATMEL 公 司的高密度 非易失性存储技术制造 兼容标准 MCS 51 指令系统及 80C51 引脚结构 芯片内 集成了通用 8 位中央处理器和 ISP Flash 存储单元 片上 Flash 允许程序存储器在系统可编 程 亦适于 常规编程器 在功能强大的微型计算机的 AT89S52 单芯片上 拥有灵巧的 8 位 CPU 和在系统可编程 Flash 使得 AT89S52 为众多嵌入式控制应用系统提供高灵活 超有 效的解决方案可为许多嵌入式控制应用系统提供高性价比的解决方案 AT89S52 引脚结构 图如图 3 1 图 3 1 AT89S52 结构图 3 2 温度传感器的选择 温度传感器的种类众多 在应用与高精度 高可靠性的场合时 DALLAS 达拉斯 公司 生产的 DS18B20 温度传感器当仁不让 超小的体积 超低的硬件开消 抗干扰能力强 精 度高 附加功能强 使得 DS18B20 更受欢迎 DS18B20 的主要特征 全数字温度转换及 3 输出 最高 12 位分辨率 精度可达土 0 5 摄氏度 12 位分辨率时的最大工作周期为 750 毫秒 可选择寄生工作方式 检测温度范围为 55 C 125 C 67 F 257 F 内置 EEPROM 限温报警功能 用户可定义报警设置 64 位光刻 ROM 内置产品序列号 方便多机挂接 多样封装形式 适应不同硬件系统 独特的单线接口仅需要一个端口引脚 进行通信 多个 DS18B20 可以并联在惟一的三线上 实现多点组网功能 无须外部器件 可通过数据线供电 电压范围为 3 0 5 5V 零待机功耗 温度以 9 或 12 位数字 报警 搜索命令识别并标志超过程序限定温度 温度报警条件 的器件 3 3 显示模块选择 数码管是一种半导体发光器件 其基本单元是发光二极管 数码管按段数分为七段数 码管和八段数码管 八段数码管比七段数码管多一个发光二极管单元 多一个小数点显示 按能显示多少个 8 可分为 1 位 2 位 4 位等等数码管 按发光二极管单元连接方式分 为共阳极数码管和共阴极数码管 共阳数码管是指将所有发光二极管的阳极接到一起形成 公共阳极 COM 的数码管 共阳数码管在应用时应将公共极 COM 接到 5V 当某一字段发光 二极管的阴极为低电平时 相应字段就点亮 当某一字段的阴极为高电平时 相应字段就 不亮 共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极 COM 的数码管 共阴数码管在应用时应将公共极 COM 接到地线 GND 上 当某一字段发光二极管的阳极为高 电平时 相应字段就点亮 当某一字段的阳极为低电平时 相应字段就不亮 4 系统硬件电路设计 4 1 系统整体电路图 该系统电路主要包括 单片机最小系统 DS18B20 温度传感器系统 报警系统 LED 显 示模块电路及电源接口和数据下载接口等电路 如图 4 1 所示 图中有三个独立式按键可以分别调整温度计的上下限报警设置 图中蜂鸣器可以在被 测温度不在上下限范围内时 发出报警鸣叫声音 同时 LED 数码管将没有被测温度值显示 这时可以调整报警上下限 从而测出被测的温度值 图中的按健复位电路是上电复位加手动复位 使用比较方便 在程序跑飞时 可以手 动复位 这样就不用在重起单片机电源 就可以实现复位 4 图 4 1 系统整体电路图 4 2 单片机最小系统 最小系统包括晶振电路 复位电路 按键设置部分 AT89S52 单片机最小系统的电路 如图 4 2 单片机 AT89S52 具有低电压供电和体积小等特点 四个端口只需要两个口就能满足电 路系统的设计需要 很适合便携手持式产品的设计使用系统可用二节电池供电 5 图 4 2 单片机最小系统电路 4 3 报警电路设计 报警电路中加一 PNP 三极管驱动 基极接单片机 P11 口 当端口变成低电平时 驱动 三极管会导通 VCC 电压加载到蜂鸣器使其发声 报警发光二极管亮 如图 4 3 图 4 3 报警电路 4 4 显示电路设计 如图 4 4 采用 LG3641BH LED 数码管显示电路采用 4 位共阳 LED 数码管从 P14 P15 P16 P17 串口输出段码 用 PNP 三极管进行驱动 当相应的端口变成低电平时 驱动相应的三极管会导通 驱动三极管给数码管相应的位供电 这时只要 P0 口送出数字的 显示代码 数码管就能正常显示数字 6 图 4 4 数码管显示电路 4 5 电源电路设计 我们选用的是串联起来的 4 节 1 5v 的 5 号电池 从经济的角度考虑的 干电池比较便 宜 但其还有不足之处 干电池存储的是电量 随着电量的消耗 它的供电电压就会不断 的下降 所有我们需要使用一个稳压器 来保证电源供给的是标准的 5v 电压 4 节 1 5v 串联起来产生的和电压最大是 6v 而本文的 AT89S52 单片机工作电压的范围是 4v 5 5v 在该系统中我们使用的电压是 5v 这时我们可以用 LM7805 稳压器来产生稳定的 5v 电压 15 稳压电路如下图 4 5 所示 图 4 5 LM7805 稳压电路 在该电路中 C12 是极性电容 起到稳压的作用 而 C2 是非极性电容 它起的作用是 滤除输出电压中不是直流的成分 即滤波 LM7805 稳压芯片的稳压压差为 2V 左右 在实际使用中容易出现电压过低的状态 此 时提供的电源达不到系统的电源要求 会出现程序跑飞的现象 而另一款 LM2904 的稳压 7 压差可以达到 40mV 效果比 LM7805 好很多 但考虑到经济原因我们采用 LM7805 只要 在稳压前端提供较大的电源供应即可 5 系统软件设计 系统程序主要包括主程序 读出温度子程序 温度转换命令子程序 计算温度子程序 按键扫描 5 1 主程序 主程序的主要功能是负责读出并处理 DS18B20 的测量的当前温度值 温度的实时显示 并根据设置的上下限判断是否报警 系统开始运行时 温度传感器测量并计算温度值通过 P1 0 口传输进单片机里进行处理 经过处理后的数据再通过 P0 口传输到数码管进行显示 通过按键设置温度报警界限 当超过报警界限时单片机将相应的数据通过 P1 1 口传输进行 声光报警 温度测量每 1s 进行一次 这样可以在一秒之内测量一次被测温度 5 2 读出温度子程序 读出温度子程序的主要功能是读出 RAM 中的 9 字节 在读出时需进行 CRC 校验 校 验有错时不进行温度数据的改写 5 3 温度转换命令子程序 温度转换命令子程序主要是发温度转换开始命令 当采用 12 位分辨率时转换时间约为 750ms 在本程序设计中采用 1s 显示程序延时法等待转换的完成 5 4 计算温度子程序 计算温度子程序将 RAM 中读取值进行 BCD 码的转换运算 并进行温度值正负的判定 6 仿真过程 6 1 仿真软件介绍 本次仿真用了 Proteus 软件 Proteus 海神 的 ISIS 是一款 Labcenter 出品的电路分析实 物仿真系统 可仿真各种电路和 IC 并支持单片机 元件库齐全 使用方便 是不可多得 的专业的单片机软件仿真系统 该软件的特点 1 全部满足我们提出的单片机软件仿真 系统的标准 并在同类产品中具有明显的优势 2 具有模拟电路仿真 数字电路仿真 单片机及其外围电路组成的系统的仿真 RS 一 232 动态仿真 1 C 调试器 SPI 调试器 8 键盘和 LCD 系统仿真的功能 有各种虚拟仪器 如示波器 逻辑分析仪 信号发生器等 3 目前支持的单片机类型有 68000 系列 8051 系列 AVR 系列 PIC12 系列 PIC16 系列 PIC18 系列 Z80 系列 HC11 系列以及各种外围芯片 4 支持大量的存储器和外 围芯片 总之该软件是一款集单片机和 SPICE 分析于一身的仿真软件 功能极其强大 可仿真 51 AVR PIC Proteus 与其它单片机仿真软件不同的是 它不仅能仿真单片机 CPU 的工作情况 也 能仿真单片机外围电路或没有单片机参与的其它电路的工作情况 因此在仿真和程序调试 时 关心的不再是某些语句执行时单片机寄存器和存储器内容的改变 而是从工程的角度 直接看程序运行和电路工作的过程和结果 对于这样的仿真实验 从某种意义上讲 是弥 补了实验和工程应用间脱节的矛盾和现象 18 程序编译用 Keil 软件 Keil C51 生成的目标代码效率非常之高 多数语句生成的汇编 代码很紧凑 容易理解 在开发大型软件时更能体现高级语言的优势 6 2 仿真结果 将生成的 cao hex 文件调入 Proteus 电路图的单片机中 点击图左下角的开始键运行 程序的开始界面如图 6 1 数码管显示 图 6 1 仿真程序初始化 程序初始化后通过调节 DS18B20 温度传感器的数值 数码管会显示相应的数值 例如 9 10 其结果如图 6 2 所示 图 6 2 仿真程序正常运行结果 在设置系统报警温度上下限时 按下按键 S1 数码管会显示 H38C 系统默认上限 为 38 此时进入温度上限设置模式 可通过调节 S2 和 S3 分别增加和减小数码管上显示 的数字 例如设置上限为 39 如图 6 3 所示 接着再次按下键 S1 数码管会显示 L05C 系统默认下限为 5 此时进入温度下 限设置模式 可通过调节 S2 和 S3 分别增加和减小数码管上显示的数字 例如设置下限为 5 如图 6 4 所示 10 图 6 3 仿真设置最高温度报警线 图 6 4 仿真设置温度报警最低线 当温度超过设置的上下限时 系统会进行声光报警 蜂鸣器会发出 滴 滴 滴 蜂鸣声 同时 LED 灯会闪烁 7 总结与致谢 通过本次的课程设计 我学到了很多东西 同时在做的过程中也发现很多的问题 从 最初的课题选择到对相关课题资料的搜集与摘选 再到自己的思路的设计 编写以致最后 阶段的修改与完善 在这一过程中 我对我所学习的相关电子知识又有了更深一层的学习 和理解 让我对自己所学的又有了更深的掌握 单片机课程设计重点就在于软件算法的设 计 需要有很巧妙的程序算法 只有我们去试着做了 才能真正的掌握 只学习理论有些 东西而不结合实践是很难理解的 更谈不上掌握 从这次的课程设计中 我真正的意识到 在以后的学习中 要理论联系实际 把我们 所学的理论知识用到实际当中 学习单机片机更是如此 程序只有在经常的写与读的过程 中才能提高 这就是我在这次课程设计中的最大收获 在此过程中 我也要感谢对我一直悉心指导和帮助的指导教师 朱小会老师 正是 在她不厌其烦的指导和讲解中 让我对我的课程设计思路逐渐清晰明朗 每当在我课程设 计中遇到困难时总能迎刃而解 总之非常感谢她这段时间对我们的鼓励和指导 11 参考文献 参考文献 1 李朝青 单片机原理及接口技术 简明修订版 杭州 北京航空航天大学出版社 1998 2 李广弟 单片机基础 北京 北京航空航天大学出版社 1994 3 江力 单片机原理与应用技术 清华大学出版社 2006 4 蔡美琴等 MCS 一 51 系列单片机系统及其应用 M 北京 高等教育出版社 1999 5 王树勋 MCS 一 51 单片微型计算机原理与开发 北京 机械工业出版社 1995 6 何希才 传感器及其应用电路 北京 电子工业出版社 2001 7 刘迎春 叶湘滨 传感器原理设计与应用 第三版 M 长沙 国防科技大学出版社 1997 8 靳达 单片机应用系统开发实例导航 北京 人民邮电出版社 2003 9 潘新民 王燕芳 微型计算机实用系统设计 M 北京 人民邮电出版社 1992 10 胡汉才 单片机原理及接口技术 北京 清华大学出版社 1996 11 何力民 MCS 一 51 系列单片机应用系统设计 北京 北京航空航天大学出版社 1993 12 江晓安 等数字电子技术 编著 西安电子科技大学出版社 1993 13 阎石 数字电子技术基础 第三版 北京 高等教育出版社 1989 14 廖常初 现场总线概述 J 电工技术 1999 15 靳达 单片机典型模块设计实例导航 北京 人民邮电出版社 2003 16 王松武 于鑫 武思军 电子创新设计与实践 北京 国防工业出版社 2005 12 附录 1 总体原理图 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 RST 9 P3 0 RXD 10 P3 1 TXD 11 P3 2 INT0 12 P3 3 INT1 13 P3 4 T0 14 P3 5 T1 15 P3 6 WR 16 P3 7 RD 17 XTAL2 18 XTAL1 19 GND 20 A8 P2 0 21 A9 P2 1 22 A10 P2 2 23 A11 P2 3 24 A12 P2 4 25 A13 P2 5 26 A14 P2 6 27 A15 P2 7 28 PSEN 29 ALE PROG 30 EA VPP 31 AD7 P0 7 32 AD6 P0 6 33 AD5 P0 5 34 AD4 P0 4 35 AD3 P0 3 36 AD2 P0 2 37 AD1 P0 1 38 AD0 P0 0 39 VCC 40 U1 AT89C51 Y112MHz C2 30 C3 30 e 1 d 2 dp 3 c 4 g 5 S4 6 b 7 S3 8 S2 9 f 10 a 11 S1 12 U3 4 LED 12 34 K2 SET 12 34 K3 DEC 12 34 K4 ADD VCC GND 1 DQ 2 VCC 3 U2 DS18B20 R13 2 2K D2 ALAM R14 10K R16 10K VCC A A F F B B E E D D dp dp C C G G S4 S3 S2 S1 VCC VCC R15 2 2K LS1 SPEAKER b ce Q5 9012 C1 10uF R9 2 2K R10 2 2K R11 2 2K R12 2 2K VCC b ce Q1 9012 b ce Q4 9012 b ce Q2 9012 b ce Q3 9012 S1 S2 S3 S4 12 34 K1 VCC COM 1 R1 2 R2 3 R3 4 R4 5 R5 6 R6 7 R7 8 R8 9 RP1 10K 3 21 P1 POWER 1 1 2 2 3 3 4 4 5 5 6 6 S1 13 附录 2 实物图 14 附录 2 源程序 程序名称 DS18B20 温度测量 报警系统 简要说明 DS18B20 温度计 温度测量范围 0 99 9 摄氏度 可设置上限报警温度 下限报警温度 即高于上限值或者低于下限值时蜂鸣器报警 默认上限报警温度为 38 默认下限报警温度为 5 报警值可设置范围 最低上限报警值等于当前下限报警值 最高下限报警值等于当前上限报警值 将下限报警值调为 0 时为关闭下限报警功能 include include DS18B20 h define uint unsigned int define uchar unsigned char 宏定义 define SET P3 1 定义调整键 define DEC P3 2 定义减少键 define ADD P3 3 定义增加键 define BEEP P3 7 定义蜂鸣器 bit shanshuo st 闪烁间隔标志 bit beep st 蜂鸣器间隔标志 sbit DIAN P2 7 小数点 uchar x 0 计数器 signed char m 温度值全局变量 uchar n 温度值全局变量 uchar set st 0 状态标志 signed char shangxian 38 上限报警温度 默认值为 38 signed char xiaxian 5 下限报警温度 默认值为 5 uchar 15 code LEDData 0 xC0 0 xF9 0 xA4 0 xB0 0 x99 0 x92 0 x82 0 xF8 0 x80 0 x90 0 xff 延时子程序 void Delay uint num while num 初始化定时器 0 void InitTimer void TMOD 0 x1 TH0 0 x3c TL0 0 xb0 50ms 晶振 12M 定时器 0 中断服务程序 void timer0 void interrupt 1 TH0 0 x3c TL0 0 xb0 x 外部中断 0 服务程序 void int0 void interrupt 0 EX0 0 关外部中断 0 if DEC 0 if shangxian xiaxian shangxian xiaxian else if DEC 0 if xiaxian99 shangxian 99 else if ADD 0 if xiaxian shangxian xiaxian shangxian 读取温度 void check wendu void uint a b c c ReadTemperature 5 获取温度值并减去 DS18B20 的温漂误差 a c 100 计算得到十位数字 b c 10 a 10 计算得到个位数字 m c 10 计算得到整数位 n c a 100 b 10 计算得到小数位 if m99 m 99 n 9 设置温度显示上限 显示开机初始化等待画面 Disp init P2 0 xbf 显示 P1 0 xf7 Delay 200 P1 0 xfb Delay 200 P1 0 xfd Delay 200 P1 0 xfe Delay 200 P1 0 xff 关闭显示 显示温度子程序 Disp Temperature 显示温度 P2 0 xc6 显示 C P1 0 xf7 Delay 300 P2 LEDData n 显示个位 P1 0 xfb Delay 300 P2 LEDData m 10 显示十位 DIAN 0 显示小数点 P1 0 xfd Delay 300 P2 LEDData m 10 显示百位 18 P1 0 xfe Delay 300 P1 0 xff 关闭显示 显示报警温度子程序 Disp alarm uchar baojing P2 0 xc6 显示 C P1 0 xf7 Delay 200 P2 LEDData baojing 10 显示十位 P1 0 xfb Delay 200 P2 LEDData baojing 10 显示百位 P1 0 xfd Delay 200 if set st 1 P2 0 x89 else if set st 2 P2 0 xc7 上限 H 下限 L 标示 P1 0 xfe Delay 200 P1 0 xff 关闭显示 报警子程序 void Alarm if x 10 beep st beep st x 0 if m shangxian else BEEP 1 主函数 19 void main void uint z InitTimer 初始化定时器 EA 1 全局中断开关 TR0 1 ET0 1 开启定时器 0 IT0 1 IT1 1 check wendu check wendu for z 0 z2 set st 0 if set st 0 EX0 0 关闭外部中断 0 EX1 0 关闭外部中断 1 check wendu Disp Temperature 20 Alarm 报警检测 else if set st 1 BEEP 1 关闭蜂鸣器 EX0 1 开启外部中断 0 EX1 1 开启外部中断 1 if x 10 shanshuo st shanshuo st x 0 if shanshuo st Disp alar

温馨提示

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

评论

0/150

提交评论