基于at89c52单片机的多点温度测试系统设计内容摘要:

1 时显示 5 10 点阵。 命令 7: CGRAM 地址设置,地址范围 00H~ 3FH(共 64 个单元,对应 8 个自定义字符)。 命令 8: DDRAM 地址设置,地址范围 00H~ 7FH。 命令 9:读忙 标志和计数器地址。 计数器地址范围 00H~ 7FH。 命令 10: 写 DDRAM 或 CGROM。 要配合地址设置命令。 命令 11:读 DDRAM 或 CGROM。 要配合地址设置命令。 一个多路温度采集系统,包括多路温度信息的采集、转换、显示等环节。 本系统主要包括微处理器、四路温度的采集器、显示电路、复位电路、时钟电路、键盘电路、声光报警电路等。 11 单片机最小系统的设计 单片机最小系统,是组成一个独立工作的单片机系统是,芯片和连接各芯片之间的总线少的不能再少。 一般情况下包括:单片机、时钟电路、复位电路。 时钟电路的设计 在 AT89C52 的引脚 XTAL1 和 XTAL2 端外接晶体振荡器(简称晶振),就构成了内部震荡方式,时钟电路如图 31 所示,其中电容 C1 和 C2 的作用是稳定频率和快速起振,典型值为 30pF,晶振 CYS 的震荡频率要小于12MHZ,典型值为 6MHZ、 12MHZ 或 ,由于本系统要与 PC 机通信,所以应选择 的晶振,这样便于将波特率设定为标称值。 图 31 时钟电路 复位电路的设计 复位是使单片机获系统中的其他部件处于某种确定的初始状态。 单片机上电后首先从复位操作开始。 单片机的复位是通过复位电路实现的,在实际 12 应用中,复位操作有两种方式形式:一是上电复位,二是按键复位。 本系统采用按键复位。 复位信号变低电平时,单片机开始执行程序。 复位电路如图 32 所示,按键复位支路由按键 RESET,电阻 R1, R2 组成,电路的参数为: R1=470Ω,R2=200Ω。 通过电路分析可知,在单片机运行期间,当 RESET 按键按下时,按键接通相当于短路,电容 C3 的电压不能跃变, RST 引脚获得高电平信号,随着电容 C3 的放电, RST 引脚的电平将逐渐下降 ,两个机器周期后单片机就执行 复位操作。 图 32 复位电路 温度采集模块的设计 本系统将四个 DS18B20 的 DQ 端子分别接在单片机的 ~ 口上,通过单片机发送指令分别对每个温度传感器进行读写操作,这样可以跳过读每个 DS18B20 的序列号而直接进行温度的读写, 从而实现多点温度检测系统。 DS18B20 有三个引脚,其中两根是电源线 VDD 和 GND,另外一根用作 13 总线 DQ(Data In/Out),其输入和输出均是数字信号,与 TTL 电平兼容,因此其可以与微处理器直接进行接口,从而省去了一般传感器所必需的中间转换环节。 四片 DS18B20 采用外接独立电源供电,这使 DS18B20 的工作稳定,并使测控系统可以随时侦测 DS18B20 的工作状态,做出适时的指令操作。 DS18B20 的接口电路如图 33 所示。 图 33 DS18B20 的接口电路 LCD 显示电路 本系统通过 P0 口来连接 LCD1602 的 D0~ D7,采用 8 路 10KΩ 的排阻限流, ~ 口分别连接 1602 的 RS、 R/D、 E,通过这三个引脚来控制1602 的读写。 四路温度同时显示在 1602 上,便于读数,接口电路如图 34所示。 14 图 34 LCD1602 接口电路 键盘电路 控制电路是一个单片机系统必不可少组成部分,本系统在运行的过程中会根据外部环境的变化对温度报警的上下限进行设置,故把单片机的 ~ 口作为控制按钮的输入端,它们在运行中对应的功能分别为设置温度报警上限、设置温度报警下限、温度值加 温度值减 1 和退出。 当有按键按下时,单片机对应的端口会被置 0,单片机会做出相应的响应,并通过LCD1602 进行显示。 键盘电路如图 35 所示。 图 35 键盘电路 15 声光报警电路 由于本系统设有报警系统,单片机需对 温度传感器所测得的温度进行检测,并与设定的温度上限县进行比较,当发现所测温度超出所设定温度值的范围时单片机发出报警信号。 声光报警电路如图 36 所示,通过 口来控制蜂鸣器报警,通过 ~ 来控制四只不同颜色的发光二极管,四只发光二极管对应四只 DS18B20 温度传感器,单片机复位后 P1 口输出高电平,四只二极管被点亮,当某只温度传感器超出温度范围时,相应的控制端口置0,熄灭发光二级管进行报警提示,同时蜂鸣器会响起。 图 36 声光报警电路 16 工作方案简介 软件程序是一个 单片机系统正常工作的核心,单片机根据程序来执行相关指令,使系统实现所有的预定功能。 本系统通电以后进行复位初始化操作,四路 DS18B20 测取个路温度送入 LCD 液晶屏显示,再启动报警系统对路温度进行检测,观察是否有温度超出设定的温度范围,如果有,则启动报警,同时提示电路进行提示,单片机随时对按键系统(温度上下限的设定)进行检测,当发现有控制按钮按下时,对相应的按键进行响应,设置温度检测的上下限,再与设定温度进行对比,检测温度。 整个系统进行循环工作。 主程序流程图 程序处理是整个系统的关键,即简洁的硬件结构 是靠复杂的软件来支持的。 主程序的主要功能是负责读出并处理 DS18B20 的测量温度值、温度值的实时显示及报警功能。 本系统采用自顶向下循环执行程序设计,模块化程序设计,单片机带有复位功能,当系统运行出现错误时,可以通过复位操作对整个系统进行复位。 根据对以上流程图的分析系统软件设计可分为温度的读取转换模块、 LCD 温度显示模块、按键处理模块和报警模块几个部分。 17 开 始L C D 初 始 化 显 示读 取 并 显 示 四 路 温 度按 键 处 理 子 程 序温 度 报 警 子 程 序退 出 温 度 上 下 限 设定 , 显 示 四 路 温 度设 定 温 度 上 下 限 子 程 序 图 41 主程序流程图 温度读取转换模块 四路温度采集传感器分别接在单片机的 ~ 口,可以从四个口读取温度,在读取温度时可以跳过读 ROM 命令, DS18B20 操作命令可以分为四步:复位命令、跳过读 ROM 命令、读 RAM 命令和数据交换命令。 再执行完以上四步以后,单片机判断温度符号,送入 LCD 液晶屏显示。 流程图如图 42 所示。 18 温 度 读 取 额 程 序 入 口D S 1 8 B 2 0 复 位D Q 拉 低延 时 大 于 4 8 0 μ s。 跳 过 读 D S 1 8 B 2 0 序 列 号启 动 温 度 转 换跳 过 读 D S 1 8 B 2 0 序 列 号D S 1 8 B 2 0 读 取 温 度D S 1 8 B 2 0 复 位8 位 数 据 读 完。 判 断 温 度 值 符 号返 回 NYNY 图 42 温度读取转换流程图 1) 复位和应答脉冲时隙 首先,主机发送“复位脉冲”(低电平),将 DS18B20 的 DQ 总线下拉为低电平,并保持 480μs 以上,之后主机释放数据线并转入接收状态;由上 19 拉电阻将 DQ 总线拉 至高电平,与此同时, DS18B20 开始检测脉冲电平的上升沿,这个过程大约延迟 15~ 60μs,完成此操作后 DS18B20 发送存在脉冲,将 DQ 总线下拉为低电平 [5]。 2) 写时隙 写“ 0”时,主机把 DQ 单总线直接下拉为点电平,并保持 60μs 以上(且小于 120μs),完成写 0 时隙。 写“ 1”时,主机先把 DQ 单总线下拉为低电平(持续时间为 1μs 以上),并在 15μs 之内释放 DQ 总线,又上拉电阻把 DQ总线上拉为高电平,这个全程的时隙长度要大于 60μs,这样就完成了写 1时隙 [5]。 3) 读时隙 DS18B20 器件仅 在主机发出读时隙时,才向主机传输数据。 所有读时隙至少需要 60μs。 且在两次独立的读时隙之间,至少需要 1μs 的恢复时间。 每个读时隙由主机发起,至少拉低总线 1μs。 液晶显示模块 点阵字符式液晶显示器 LCD1602 模块为 2 16 字, LCD 液晶屏的显示通过四部:初始化 LCD、读操作、写操作、数据显示。 通过编程使第一路温度显示在液晶显示器的 00H~ 005H 位置,第二路温度显示在液晶显示器的0AH~ 0FH 位置,第三路温度显示在液晶显示器的 40H~ 45H 位置,第四路温度显示在液晶显示器的 4AH~ 4FH 位置。 LCD 显示模块流程图如图 43所示。 20 L C D 显 示 入 口L C D 初 始 化读 L C D写 L C D按 地 址 显 示 思 路 温 度返 回 图 43 LCD 显示模块流程图 按键处理模块 实现温度报警需要对报警温度的上下限进行设置,不同环境下的报警温度也有所不同,本系统通过单片机的 ~ 口连接五个按键来对温度进行设置,当单片机接收到按键信号时对各引脚的不同功能进行响应,单片机各引脚功能如表 41 所示,按键处理模块流程图如图 44 所示。 表 41 引脚功能 引脚 引脚功能 设置温度上限 设置温度下限 加 1 减 1 退出 21 按 键 处 理 子 程 序 入 口是 否 有 键 按 下。 设 置 温 度 上 下 限。 L C D 显 示 字 符 串 “ s e t h i g h ” L C D 显 示 字 符 串 “ s e t l o w ”是 否 有 键 按 下。 加 1。 调 用 加 1 子 程 序 调 用 减 1 子 程 序返 回NYNYNYNY 图 44 按键处理模块流程图 声光报警模块 当单片机读取四路 DS18B20 的温度后会对思路温度进行检测,与设定的温度上下限进行比较,当发现某路温度超出设定范围时,单片机会发出报警信号,使 口输出矩形波,蜂鸣器实现报警,同时提示电路的发光二极管会对应熄灭进行报警提示,可以观察出是哪一路温度超出温度设定范围,报警模块流程图如图 45 所示。 22 报 警 子 程 序 入 口读 取 四 路 D S 1 8 B 2 0 温 度 值某 路 温 度 值 超 出 设 定 范 围。 P 1 . 7 口 输 出 矩 形 波 驱动 蜂 鸣 器 报 警相 应 温 度 提 示 口 输 出 低 电 平 , 发光 二 极 管 熄 灭 , 进 行 报 警 提 示返 回NY 图 45 报警模块流程图 PROTEUS 软件是英国 Labcenter Electronics 公司出品的电子设计自动化软件,包括 ISIS 和 ARES 两部分, ISIS 提供了 30 多个元件库数千种元器件和多种现实存在的虚拟仪器仪表,可以直观地仿真微控制器系统、数字电路和模拟电路的功能和结果。 PROTEUS 软件最大的特色之处就是可以仿真包括外围接口模数混合电路在内的微控制器系统,是一款不可多得的优秀单片机系统仿真平台。 本系统先在 PROTEUS 软件中会只好硬件原理图,在电器连接性检 查无误的情况下,与第三方软件 Keilc 连接调试,用 Keil’s uVision 开发源代码,并进行编辑,生成可执行文件( .HEX)后,选中单片机 AT899C52,左键点击 AT89C52,在出现的对话框里点击 Program File 按钮,找到刚才编译得到 23 的 HEX 文件,然后点击“ OK”按钮进行模拟。 点击模拟调试按钮,进人调试状态,经对各个环节进行调试,仿真结果无误,可以进行实物焊接。 在系统的设计过程中,使用了数字化的温度传感器 DS18B20,简化了系统的结构,与传统的以模拟量为基础的温度传感器想比, 数字化的温度传感器不需要进行 A/D 转换,温差的补偿,使用起来更加方便可靠。 由于整个系统使用的信号全部为数字量,可以直接将底线接在电源的负极,而不用去考虑模拟接地。 使用液晶显示器 LCD1602 可以将四路温度同时显示,观察起来十分方便。 在本次设计过程中,硬件的选取和软件的编程都是极大考验,要尽量降低系统的复杂程度,又要使系统在性价比最高的基础上实现其所有的功能。 单片机强大的综合性功能使软件程序的设计变得简单,各变量的使用非常灵活,在设计时要考虑按键的去抖动,同时也要注意高低电平的输出,采用软硬件相结合的方式,可 以避免走许多弯路,有利于系统的维护和调试。 24 参考文献 [1] 李全利 《单片机原理及接口技术》,北京:高等教育出版社, 2020 年,第二版,第19~ 29 页。 [2] 韩志军 《单片机系统设计与应用实例》,北京:机械工业出版社, 2020 年,第二版,第 231~ 244 页。 [3] 肖看,李群芳 《单片机原理、接口及应用》,北京:清华大学出版社, 2020 年,第二版,第 300~ 309页。 [4] 喻宗泉,李建。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。