具有无线远传的温度法热计量器设计_毕业设计说明书(编辑修改稿)内容摘要:

断方式检测定时器是否定时结束,如果定时结束然后立即把当前的温度值写入到 AT24C02 中进行保存。 这样做的目的是防止掉电温度数据的丢失 ,使温度数据不完整造成经济影响。 同时 将采集到的温度值用 LCD1602 显示到 每户的 客户端 (温度的平均值)。 最后通过串口与 GSM 模块通信以控制启动 SIM300 和数据的收发等。 本装置结构简单、传输 数据稳定 可靠, 安装方便,好组网又 具有实时在线通信 且 成本低 等 优点。 研究 /设计的目标 本系统是一种安装在以水为媒体的集中供热系统中,用于对用户的采暖热量进行计算分配的装置。 该装置集成了热计量技术,和数据通信技术。 温度法是利用在同样的气候条件和相同的时间内,各个房间的耗热量与室温有关的原理。 此法可以将山墙,屋面,地面等 部位的多耗热量分摊到楼内的各个用户上,体现了在舒适条件相同的情况下,应交相同供热费的原则。 按一个供热系统所 4 有热用户每户用的平均温度进行 供热费用 收取的基本原则,而温度法热计量系统是依据热用户的住房面积和室内温度,系统每十五分钟进行一次 每室的 温度采集 然后求取每户的 平均 温度,然后再将 数据储存 并且远程传输。 本系统的硬件电路图主要实现的是每室温度的采集,然后将每室的温度通过数据线传输给每户的中断,然后利用 STC12C5A60S2 作为处理器,将每室的温度值采集到处理器中,然后求取平均值,然后再发送开启串口中断通过SIM300 把数据远程传输给供热公司,供热公司将每户的数据定时的保存在计算机中,留作后续的温度记录和处理。 本设计的扩展部分为 用 LCD1602 液晶屏显示年月日时分秒 以及当前的温度值 ,并且为用户提供了温度上下限保护功能,同时又增加了按键记录当前温度,这样做的目的是可以把不合理的温度记录下来,方便用户向供热公司提出反应的凭证。 用户可以记录十组温度值,而且可以随时调用这十组的温度值,也可以任意的擦掉保存的记录值。 整个电路才用9V开关电源供电。 本设计的系统硬件 总 结构图如 图 11 所示 : 图 11系统总结构图 5 第 2 章 系统的工作原理 系统的 原理 本系统 采用 STC12C5A60S2 作为主处理芯片,采集供热用户的每室温度,每室 的温度数据通过温度通信线传输给户终端。 然后 户终端再 求取每户的 平均温度值, 并且每五分钟写一次温度数据到 AT24C04 进行保存,最后 由每户的终端通 过 SIM300 将 保存在 AT24C04 中的温度 数据 定时发 送给供热终端,这样可以避免 被 供热用户和供热公司 之间因为供热问题发生经济纠纷。 本系统的处理芯片如图 21 所示。 STC12C5A60S2 处理芯片 6 图 21 STC12C5A60S2 CPU( STC12C5A60S2) 主要性能 CPU 的主要性能 与 MCS51 单片机产品兼容 、 60K字节在系统可编程 Flash存储器、 1000次擦写周期、全静态操作: 0Hz~ 33Hz 、三级加密程序存储器 、 32 个可编程 I/O 口线、三个 16 位定时器 /计数器八个中断源、全双工 UART 串行通道、 低功耗空闲和掉电模式 、掉电后中断可唤醒 、看门狗定时器 、双数据指针、掉电标识符 等。 功能特性描述 7 STC12C5A60S2 是一种低功耗、高性能 CMOS8 位微控制器,具有 60K 在系统可编程 Flash 存储器。 使用高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容 [1]。 片上 Flash允许程序存储器在系统可编程,亦适于常规编程器。 在单芯片上,拥有灵巧的 8 位 CPU和在线系统可编程Flash,使得 STC12C5A60S2 为众多嵌入式控制应用系统提供高灵活、超 级 有效的解决方案。 STC12C5A60S2 具有以下标准功能: 60k 字节 Flash, 1280 字节 RAM, 32 位 I/O 口,看门狗定时器, 2 个数据指针,三个 16 位定时器 /计数器,一个 6 向量 2 级中断结构,全双工 串行口,片内晶振及时钟电路。 另外, STC12C5A60S2 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。 空闲模式下, CPU停止工作,允许 RAM、定时器 /计数器、串口、中断继续工作。 掉电保护方式下, RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 8 位微控制器 8K 字节在系统可编程 Flash. P0 口 : P0 口是一个 8 位漏极开路的双向 I/O 口。 作为输出口,每位能驱动 8 个 TTL 逻辑电平。 对 P0 端口写 “1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时, P0 口也被作为低 8 位地址 /数据复用。 在这种模式下, P0 具有内部上拉电阻。 在 flash 编程时, P0 口也用来接收指令字节;在程序校验时,输出指令字节。 程序校验时,需要外部上拉电阻。 P1 口: P1 口是一个具有内部上拉电阻的 8 位双向 I/O 口, P1 输出缓冲器能驱动 4 个 TTL 逻辑电平。 对 P1 端口写 “1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。 作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流( IIL)。 此外, 和 分别作定时器 /计数器 2 的外部计数输入( )和时器 /计数器 2 的触发输入( ),具体如下所示。 在 flash 编程和校验时, P1 口接收低 8 位地址字节。 P1 口 的 第二功能 T2(定时器 /计数器 T2 的外部计数输入),时钟输出。 T2EX(定时器 /计数器 T2 的捕捉 /重载触发信号和方向控制)。 8 MOSI(在线系统编程用)。 MISO(在线系统编程用)。 SCK(在线系统编程用)。 P2 口: P2 口是一个具有内部上拉电阻的 8 位双向 I/O 口, P2 输出缓冲器能驱动 8 个 TTL 逻辑电平 [2]。 对 P2 端口写 “1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。 作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流( IIL)。 在访问外部程序存储器或用 16 位地址读取外部数据存储器(例如执行MOVX @DPTR)时, P2 口送出高八位地址。 在这种应用中, P2 口使用很强的内部上拉发送 1。 在使用 8 位地址(如 MOVX @RI)访问外部数据存储器时, P2 口输出 P2 锁存器的内容 [3]。 在 flash 编程和校验时, P2 口也 可以 接收高 8 位地址字节和一些控制信号。 P3 口: P3 口是一个具有内部上拉电阻的 8 位 双向 I/O 口, P3 输出缓冲器能驱动 4 个 TTL 逻辑电平。 对 P3 端口写 “1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。 作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流( IIL)。 P3 口亦作为 STC12C5A60S2 特殊功能(第二功能)使用,如下所示。 在 flash 编程和校验时, P3 口也接收一些控制信号。 P3 口的 第二功能 RXD(串行输入口 ) TXD(串行输出口 ) INTO(外中断 0) INT1(外中断 1) TO(定时 /计数器 0) T1(定时 /计数器 1) WR(外部数据存储器写选通 ) RD(外部数据存储器读选通 ) 此外, P3 口还接收一些用于 FLASH 闪存编程和程序校验的控制信号。 RST—— 复位输入。 当振荡器工作时, RST 引脚出现两个机器周期以上高电平将是单片机复位 [4]。 9 ALE/PROG—— 当访问外部程序存储器或数据存储器时, ALE(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节。 一般情况下, ALE 仍以时钟振荡频率的 1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。 要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。 对 FLASH存储器编程期间,该引脚还用于输入编程脉冲( PROG)。 如有必要,可通过对特殊功能寄存器( SFR)区中的 8EH 单元的 D0 位置位,可禁止 ALE 操作。 该位置位后,只有一条 MOVX 和 MOVC 指令才能将 ALE激活。 此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE 禁止位无效 [5]。 PSEN—— 程序储存允许( PSEN)输出是外部程序存储器的读选通信号,当 STC12C5A60S2 由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN 有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次 PSEN 信号。 EA/VPP—— 外部访问允许,欲使 CPU仅访问外部程序存储器(地址为0000HFFFFH), EA 端必须保持低电平(接地)。 需注意的是:如果加密位LB1 被编程,复位时内部会锁存 EA 端状态。 如 EA 端为高电平(接 Vcc 端),CPU则执行内部程序存储器的指令。 FLASH 存储器编程时,该引脚加上 12V的编程允许电源 Vpp,当然这必须是该器件是使用 12V编程电压 Vpp。 本系统采用 SIM300 模块供电,采用 5V给单片机供电。 扩展功能为可以显示时钟 温度上下限报警 以及按键保存当前温度等功能 ,以及发送手机号码的设置,可以按键修改发送温度的时间,同时应用 AT24C04 EEPROM 作为 温度数据的 掉电保护 [6]。 10 第 3 章 系统的 硬件 选择 本系统的构成 温度法热计量 器 系统由温度传感 器 采集每室的温度值然后发送给户终端 ,然后 户 终端的单片机求取户 温度 的 平均 值 , 然后显示到 LCD1602 显示器 上 、 最后利用通信模块 SIM300 利用单片机定时器和串口中断将记录在 AT24C04 中的温度值发送 到供热公司。 本系统的硬件选择 11 温度传感器的选择 方案一:温度采集选择 DS18B20 电路 的性能指标 DS18xx 系列温度传感器是数字式温度传感器,相对于传统温度传感器精度高、稳定性好、电路简单、控制方便 [7]。 DS18B20 有很多特性,现列举以下几点: ( 1) 应用中不需要外部任何元器件即可实现测温电路; ( 2) 测温范围为 55度 — 125度,最大精度可以达到 ; ( 3) 只通过一条数据线即可实现通信。 ( 4) 每个 DS18B20 器件上都有独一无二的序列号,所以一条数据线上可以挂接很多 该传感器。 ( 5) 内部有温度上下限警告功能。 DS18B20 工作时需要接受特定的指令来完成相应的功能,它的指令可分为 ROM 指令和 RAM 指令 [8]。 ROM 指令主要是对其内部的 ROM 进行操作,每一片 DSl8B20 在其 ROM 中都存有其唯一的 48 位序列号,在出厂前已写入片内 ROM 中。 主机在进入操作程序前必须用读 ROM(33H)命令将该 DSl8B20的序列号读出。 程序可以先跳过 ROM,启动所有 DSl8B20 进行温度变换,之后通过匹配 ROM,再逐一地读回每个 DSl8B20 的温度数据; RAM 指令主要是完成对其内 RAM 中 的数据进行操作,如让其开始进行数据采集、读数据等。 DS18B20 数字温度传感器是单总线器件,数据的读写只通过一条数据线进行并且这一条线上可以挂很多该传感器。 这样对器件进行读写指令时就比较麻烦,必须应用特定时序来识别高低平信号,所以指令表中 0、 1 在写给DS18B20 时就得变成代表 0、 1 电平的时序段序列 [9]。 同样,从 DS18B20 读数据时,也是由特定的时序来完成数据读取。 DS18B20 可以初始化数据精度,按芯片手册写入固定指令。 数据位数可设置成 1 12 位,其中七位为温度整数部分, 1 位表示温度正负 ,其余位数为小数。 如 9 位数据时,有 1 位为小数,精度为。 温度以 16 位带符号位扩展的二进制补码形式读出, DS18B20 测温范围为 55 度至 125 度,以 度递增。 温度值与输出数据的关系如表 所示: 12 表 温度℃ 数据输出(二进制) 数据输出(十六进制) +125 00000000 11111010 00FA +25 00000000 00110010 0032 + 00000000 00000001 0001 0 00000000 00000000 0000 11111111 11111111 FFFF 25 11111111 11001110 FFCE 55 11111111 10010010 FF92 DS18B20 需要严格的协议以确保数据的完整性,协议包括几种单线信号类型:复位脉冲、存在脉冲、写 0、 写 读 0 和读 1。 总线这些信号,。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。