韩勇:基于DS18B20的多点温、湿度控制系统_第1页
韩勇:基于DS18B20的多点温、湿度控制系统_第2页
韩勇:基于DS18B20的多点温、湿度控制系统_第3页
韩勇:基于DS18B20的多点温、湿度控制系统_第4页
韩勇:基于DS18B20的多点温、湿度控制系统_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

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

文档简介

辽宁工程技术大学毕业设计 论文 1 前言 随着我国工业的迅猛发展 各种大规模的生产线越来越多 各种功能的设备也应运 而生 同时也使得生产现场的环境越来越复杂 而各种设备往往需要很苛刻的环境条件 才能保证生产安全进行 特别是温度和湿度往往需要控制在一定范围内 如果温度或是 湿度超出了设备所能允许的规定范围 就会使设备不能正常工作 造成生产出的产品不 合格 从而造成大量的人力和资源的浪费 国家带来巨大的经济损失 损害全国人民的 共同利益 同时 对于很大部分的生产设备 如果长期工作与不适宜的环境中时 会导 致机器设备的加速老化和磨损 大大减少了机器设备的使用寿命 使得机器设备提早报 废 提高了生产成本 给企业和工厂带来巨大的经济压力 同时也给国家带来了巨大负 担 更严重的是 有些生产设备一旦生产环境的温度或湿度超标 会导致严重的晃动 震动 着火甚至是爆炸 对现场的工作人员造成人身伤害 还有可能是对人生命的威胁 造成无法挽回的永久的伤痛 所以 我们要采取多种方法来对生产现场的温度和湿度进行检测 及时反馈采集到 的信息 并对环境温度和湿度进行干预控制 然而 目前采取的检测装置多数只能进行 检测却不能自动控制 而是需要人工来根据情况将来进行控制 既耗时又费力 不符合 胡锦涛总书记在十六大中提出的建设节约型社会的发展需要 此外 检测的结果的出现 往往需要时间延迟 所以由于突然发生的温度的升高和降低等情况不能及时反馈给管理 人员 这样就不能起到控制作用 对生产设备和生产工人的安全也就无从保证 基于目前的状况 我决定设计一套系统 它能够对温度和湿度进行自动测量和控制 另外增加显示和报警功能 有效地避免在生产过程中出现的环境温度和湿度的超标 消 除生产过程中对设备和人身的安全威胁 还可以节省大量的人力和财力 一切过程全都 有系统自动完成 所以具有很高的实用价值 是一项意义深远的研究项目 韩勇 基于 DS18B20 的多点温 湿度控制系统 2 1 系统设计概述 1 1 单片机发展概况 单片机及其应用已经成为高新科学技术的重要内容和标志之一 它在经济的各个领 域中正发挥者引人注目的作用 单片机与单纯的微处理器不同 单片机是将 CPU ROM RAM I O 定时器系统 串行口 震荡电路等集成于一个芯片之中 使其具备计算机的基本功能 由于单片机原 来是为实时控制应用而设计制造的 因此又称之为微控制器 单片机依 ROM RAM 容 量大小 I O 功能适用于不同的应用场合 目前 单片机已形成多系列 多品种的局面 从 1976 年 Intel 公司推出 MCS 48 单片 机以来 单片机就受到了广大用户的欢迎 由于其应用范围广泛 因此各有关公司都争 相推出各自的单片机 Intel 公司于 1980 年又推出了优于 MCS 48 的 MCS 51 系列 1992 年 推出了性能更高的 16 位单片机 MCS 96 系列 8098 就是 MCS 96 系列中的一种 它 具有性能高 功能全 售价低廉 使用方便等优点 同时片内还具有 4 路 10 位 A D 转换 器 省去了外接 A D 的过程 可使系统简单 这也是本设计选用 8098 单片机的主要原因 1 2用户对系统的要求 本设计要求测量温度范围为 40 100 精度误差要求在 1 以内 相对湿度测量范 围为 5 95 精度误差在 3 以内 1 3选择方案 针对用户的要求 本系统所要实现的是对多点温度和湿度的检测和控制 所以方案 必须要考虑到两个重要环节 一个是 多点 另一个就是 控制 多点 即说明本系统 与一般的温 湿度检测控制系统不同 它不只对一个点或是少数点进行检测 而是很多 点进行检测和控制 这里是 300 个点 显然 如用通常的热点偶和热电阻作为测温元件 它们所需的较多的外部硬件支持会使系统格外的复杂和庞大 会增加制造成本 因此 我选择了美国 DALLAS 半导体公司开发的单总线数字式温度传感器 DS18B20 作为检测元 件 DS18B20 具有结构简单 操作灵活 无须外接 A D 转换电路等优点 它的测温范围 55 125 C 以 0 5 C 递增 温度数字量转换时间 2000ms 符合用户的需要 而 8098 单 片机内部具有 A D 转换电路 这又可使湿度检测电路无需外加 A D 又可使得系统简化 辽宁工程技术大学毕业设计 论文 3 控制 即说明单单对温 湿度进行检测是不够的 检测到结果后还要求系统根据数据对 现场进行控制 必要时还要进行报警 因此 我选择用单片机控制风机的办法对温 湿 度实行控制 同时加入报警电路 1 4硬件系统组成 本系统是基于 DS18B20 的多点温 湿度控制系统 它主要由以下几部分组成 8098 单片机 8255 并行接口电路 温 湿度传感器和变送器 驱动电路 报警和显示电路构 成 其接口部分包括单片机片外扩展的程序存储器一片 27C64 和地址锁存器 74LS373 以及数据存储器一片 6264 系统的组成如图 1 1 所示 8098 湿 度 传 感 器 湿 度 变 送 器 温度传感器 接口电路 数据存储器 程序存储器 驱动设备 色后设备 显示报警 图 1 1 系统组成结构图 Figure 1 1 system composition structure drawing 1 5系统工作原理 在应用程序的作用下 首先对 8255 进行初始化 设定工作方式 0 PA 口 PB 口 PC 口均为输出口 PA 口 PB 口为显示输出 PC 口为报警和相关设备驱动口 测量过程是先 温度后湿度的顺序 首先对温度进行采样 每个温度点采样 5 次 计算平均值作为采样 值送入存储的相应单元进行存储 并对传感器的编号和温度进行显示 然后判断温度是 否超过设定温度 如果温度超标则报警并根据传感器的位置判断启动通风设备还是加热 设备 如果不超标就继续检测下一个点的温度 直到 300 点温度全部测量完成 然后计 算和显示平均温度 然后对 8 个点的湿度进行测量并且显示 也是按照每个点测量 5 次 然后取平均值的方法计算 来减少干扰因素带来的误差 8 个点的湿度测量完成后计算并 显示平均湿度 同样与设定的湿度值比较如果超标就报警 并且起动风机进行通风处理 然后系统返回再进行温度和湿度的巡回测量和显示 韩勇 基于 DS18B20 的多点温 湿度控制系统 4 2 8098 单片机介绍 8098 机是美国 Intel 公司于 1988 年初推出的准 16 位 内部数据总线为 16 位 外部 数据总线为 8 位 单片机微型计算机 它擅长高速控制 既有 16 位单片机强有力的运算 功能 又有 8 位单片机接口简单的优点 8098 单片机是 MCS 96 系列家族中的新成员 与 MCS 96 系列中的其它芯片相比 具有性能高 功能强 价格低 一片 8098 仅几十元 等优点 与 MCS 51 系列单片机相比 8098 单片机片内带有 4 路 10 位 A D 转换器 功能 比 MCS 51 强得多 继 MCS 51 系列单片机之后 在我国单片机应用领域掀起了运用 8098 的热潮 2 1 8098 单片机的硬件结构 下面将对 8098 的芯片组成 主要性能特点和引脚功能进行介绍 2 1 1 8098 的芯片组成 1 8098 单片机组成框图如图 2 1 所示 他主要由一个高性能的 16 位 CPU 寄存器算术 逻辑单元 RALU 232 字节寄存器陈列 以及一些外围子系统构成 在 RALU 控制下的外设子系统可分为以下一些部分 1 高速输入 输出口 HSI HSO 2 带有采样 保持 S H 电路的 4 通道 10 位 A D 转换器 3 中断控制器和等待状态产生逻辑 4 一个同步 异步串行口 5 两个 16 位定时器和一个监视定时器 6 一个可供 D A 转换器使用的脉冲宽度调制 PWM 输出 辽宁工程技术大学毕业设计 论文 5 韩勇 基于 DS18B20 的多点温 湿度控制系统 6 XTAL1 U1 端口 3 P3 端口 4 P4 控制 信号 U13 AB U4 XTAL2 VPD U6 端口 2 P2 口 HSI HSO 从程序计数器 存储器控 制器 MCR 时钟发生器 U14 控制 器 CR 运 算 器 RALU 存储器 RAM 内容之一 寄存器文件 REG FILE 存放寄存器文 件区的地址 存放特殊功能 寄存器的地址 A B 地 址 寄 存 器 U2 特殊功能寄存器 地址译码器 U3 定时器 T1 定时器 T2 监视跟踪定时器 WDT 高速输入 输 出通道 HSI HSO U7 中断控 制单元 U8 串行接口单元 U9D A 转换单元 U10 端口 2 P2 多路转换器 U12 10 位模 数 转换器 采样 保持器 多路 转换器 VREF ANGND DB 端口 0 P0 口 图 2 1 8098 单片机结构框图 Fig 2 1 The block diagram of 8098 MCU s construction 辽宁工程技术大学毕业设计 论文 7 2 1 2 8098 单片机的主要性能 特点 2 8098 的主要性能特点如下 1 16 位中央处理器 CPU 该 CPU 在结构上的最大特点 抛弃了常规的累加器结构 改用寄存器 寄存器机构 即 CPU 直接在由寄存器陈列和 SFR 特殊功能寄存器所构成的 256 字节寄存器空间内进行 操作 这些寄存器具有累加器的特殊功能 它们可使 CPU 对运算前后的数据进行快速交 换 同时又提供了高速数据处理能力和高速输入输出能力 这种结构省去了数据向累加 器移进移出的过程 因而消除了一般累加器结构中存在的 瓶颈 现象 16 位 CPU 支持位 字节和字 16 位 操作 在部分指令中还支持 32 位双字操作 如 22 位除 16 位 2 高效的指令系统 8098 单片机具有丰富的指令系统 不但运算速度快 而且编程效率高 指令系统比 MCS 51 丰富 功能强 运算速度比 MCS 51 快 编程所需指令少 效率高 与 MCS 51 单片机相比 完成同样一个计算任务 8098 单片机的速度要高出 5 6 倍 而指令字节数 还不到 MCS 51 的一半 它可以对不带符号和带符号数进行操作 有 16 位乘法指令 32 位除 16 位除法指令 符号扩展指令 数据规格化指令 有利于浮点计算 等等 许多指令既可用双操作数 也可用三操作数 使用灵活 晶振为 12MHZ 时 实现 16 位加法运算需 16 位 16 位乘法运算或 32 位 16 位除法运 算需要 6 5 s 3 10 位 A D 转换器 四通道带有采样保持器的 10 位 A D 转换器 晶振为 12 MHZ时 完成一次 A D 转换 所需时间只要 22 s 其中采样时间为 1 s 4 PWM 脉宽调制输出 8098 单片机提供一路 PWM 脉宽调制 信号 可用于直接驱动某些电机 PWM 输 出信号经过积分可以获得直流输出 即 PWM 可作为一个 D A 转换器来使用 该 D A 转 换器的分辨率为 8 位 PWM 的脉冲周期为 64 s 12 MHZ时 5 高速输入 输出 8098 单片机具有 MCS 51 单片机所没有的高速输入 输出 HSI HSO 功能 HSI 可 以同时记录 8 个事件 并能检测出四条输入引脚上的状态变化和状态变化的时刻 通过 韩勇 基于 DS18B20 的多点温 湿度控制系统 8 四条输入引脚还能检测多种状态变化 HSO 主要用于实现触发一个或多个事件 如对定 时器复位 启动 A D 转换 触发 4 个软件定时器中断和输出 HSO 0 HSO 5 中的任一触 发信号 高速 意味着这些功能是 自动地 相对与定时器 实现的 无需 CPU 的干预 6 全双工串行口 8098 单片机提供一个与 MCS 51 系列单片机兼容的全双工串行口 串行口有三种异 步工作方式 一种同步工作方式 与 MCS 51 系列单片机不同的是 它设有一个专供串行 口使用的波特率发生器并且还可以利用 HSI HSO 构成异步全双工软件串行口 7 具有多用途的接口 P0 口引脚既可作为 A D 转换器的模拟输入口 也可用作数字输入口 P2 口除可作 I O 口外 还可用作其它复用功能 如 串行口的发送 接受 PWM 输 出 外中断请求输入 8 8 种中断源 8 种中断源对应 8 个中断向量 而有的中断向量又对应着多个中断事件 共对应 20 种中断事件 8098 的中断是向量中断 这一点与 MCS 51 不同 与 MCS 51 相比 8098 还增加了软件优先级设置 9 16 位监视定时器 监视定时器能够有效地监视系统软件运行是否正常 当干扰或其它原因导致系统软 件运行紊乱时 它能使系统自动复位 从复位入口重新执行程序 10 两个 16 位定时器 定时器 T1 在系统中作实时时钟用 系统运行时 不停地循环记数 定时器 T2 对外 部事件记数 11 四个软件定时器 四个软件定时器受高速输出部件控制 一旦到达预定时间 设置相应的软件定时器 标志 并可激活软件定时器中断 12 256 字节的寄存器阵列和特殊功能寄存器 其中 232 字节为内部寄存器阵列 它兼有一般微处理机中累加器 通用寄存器和高 速 RAM 的功能 其余 24 字节为特殊功能寄存器 13 接口简单 8098 为准 16 位单片机其外部数据总线为 8 位 因此对于熟悉 MCS 51 的拥护来说许 辽宁工程技术大学毕业设计 论文 9 多 MCS 51 的外围接口芯片和接口电路无需做任何改动 便可适应用于 8098 系统 2 1 3 引脚功能 2 8098 采用 48 引脚的双列直插式封装 如图 2 2 所示 引脚功能见表 2 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 RXD P2 1 TXD P2 0 HSI0 HSI1 HSI2 HSO4 HSI3 HSO5 HSO0 HSO1 HSO2 HSO3 Vss Vpp PWM P2 5 WR NC READY A15 P4 7 A14 P4 6 A13 P4 5 A12 P4 4 A11 P4 3 A10 P4 2 A9 P4 1 A8 P4 0 RESET EXTINT P2 2 PD V REF V ANGND ACH4 P0 4 ACH5 P0 5 ACH6 P0 6 ACH7 P0 7 Vcc Vss XTAL1 XTAL2 ALE ADV RD AD0 P3 0 AD1 P3 1 AD2 P3 2 AD3 P3 3 AD4 P3 4 AD5 P3 5 AD6 P3 6 AD7 P3 7 EA 8098 图 2 2 8098 引脚定义 Fig 2 1 Feet definition of 8098 表 2 1 8098 引脚功能表 Tablet 2 1 The feet s function of 8098 符号名称及功能 VCC主电源 5V VSS数字地 共有两个 VSS引脚 它们都必须接地 VPDRAM 备用电源 5V 在正常操作期间应加上此电源 在掉点情况下 若在 VCC下降 到低于规定值之前 VPD应保持在规定范围内 使有效 则 8098 片内寄存器阵RESET 列顶部的 16 字节内容将保持不变 在掉电期间 应一直保持低电平 直至 VCCRESET 到规定范围内且震荡器达到稳定时为止 VREF片内 A D 转换器的参考电压 5V 他也是 A D 转换器模拟部分的电源电压 以及读 P0 口操作所需的逻辑电压 ANGNDA D 转换器的参考地 通常应与 VSS同电位 VPPEPROM 型芯片的编程电压 韩勇 基于 DS18B20 的多点温 湿度控制系统 10 XTAL1片内震荡器中反相器的输入 也是片内时钟发生器的输入 通常接外部晶体 XTAL2片内震荡器反相器的输出 通常接外部晶体 RESET 复位信号输入端 EA 存储器选择输入端 EA 1 CPU 寻址存储器 2000H 3FFFH 单元时 访问的是片内 ROM 8398 EA 0 则访问的是片外寄存器 此引脚内部有下拉作用 若外部无驱动 它总保持低电平 ALE ADV 地址锁存允许 ALE 或地址有效输出 ADV 它们有 CCR 寄存器选择 两者都提供 了一个锁存信号 以便把地址从地址 数据总线中分离出来 当选择ADV功能时 在总线 周期结束时 此引脚变高 ADV可作为外部存储器的片选信号 ALE ADV仅在外部存储 器访问期间才有效 RD 对外部存储器的读信号 输出 WR 对外部存储器的写信号 输入 READY准备就绪信号 输入 用来延长对外部存储器的访问周期 以便使芯片能够与慢速或 动态存储器借口 它也可用于总线共享 总线周期最多可延长至 1 s 当不使用外部存 储器时 此信号无效 通过 CCR 寄存器控制插入到总线周期中的等待状态数 REDAY 引脚内部有微弱的上拉作用 当无外部驱动时 此引脚为高电平 HSI高速输入部件的信号输入端 共有 4 个 HIS 输入引脚 HSI 0 HSI 1 HSI 2 HSI 3 其中两个引脚 HSI 2 HSI 3 与 HSO 不见共用 HSO高速输出部件的信号输出端 共有 6 个 HSO 输出引脚 HSO 0 HSO 1 HSO 2 HSO 3 HSO 4 HSO 5 其中两个引脚 HSO 4 HSO 5 与 HSI 部件共用 P0 口4 位高输入阻抗口 这些引脚既可作为数字输入口 还可用作 A D 转换器的模拟输入口 ACH4 ACH7 P2 口4 位多功能口 在 8098 中 它们除了可以用作标准的 I O 口外 还可用作其它特殊功能 P3 口和 P4 口 具有漏极开路输出的 8 位双向口 这些引脚用作多路复用地址 数据总线和地址总线 它 们的引脚内部具有很强的上拉作用 2 2 8098 的 CPU 操作 8098CPU 中的主要元件有 高速寄存器阵列 特殊功能寄存器 SFR 寄存器控制 辽宁工程技术大学毕业设计 论文 11 器和寄存器算术逻辑单元 RALU 它与外部通讯是通过特殊功能寄存器 SFR 或存储器 控制器进行的 8098CPU 的主要特色是其 RALU 未采用其它形式 CPU 中常规的累加器结 构 而是直接在由寄存器阵列和 SFR 所构成的 256 字节寄存器空间内进行操作 这些寄 存器都具有累加器的特殊功能 它们可使 CPU 对运算前后的数据进行迅速操作 同时有 提供了高速的数据处理能力和频繁的输入 输出访问能力 因此不存在使用通常的累加器 结构时所出现的 瓶颈现象 此外 通过 SFR 还可以直接控制 I O A D PWM 串行口 等部件的有效运行 2 2 1 CPU 总线 CPU 内部的一个控制单元和两条总线将寄存器阵列和 RALU 连接起来 图 2 1 中给 出了 CPU 与两条总线的连接情况 这两条总线是 8 位地址总线 A BUS 和 16 位数据 总线 D BUS 数据总线仅在 EALU 与寄存器阵列或 SFR 之间传送数据 地址总线用作 上述数据传送的地址总线或用作寄存器控制器连接的多路复用地址 数据总线 CPU 无论 是对片内 ROM 还是对片外存储器的访问都是通过存储器进行的 2 2 2 寄存器阵列 寄存器阵列共有 232 字节 ROM 单元 这些单元可按字节 字或双字存取 由于上述 寄存器单元中的任何一个都可以为 RALU 所用 就好像 CPU 有 232 个累加器一样 使用 非常灵活方便 需要指出的是 在寄存器阵列中的第一个字是专门留作堆栈指针使用的 因此 当需涉及到堆栈操作时 它不能用来存放数据 访问寄存器阵列和 SFR 的地址由 CPU 硬件控制 他们暂存在两个 8 位地址存储器内 2 2 3 寄存器运算逻辑单元 RALU 8098 的大多数运算都是由 RALU 完成 RALU 的结构如图 2 3 所示 RALU 包括一个 17 位的运算逻辑单元 ALU 程序状态字 PSW 程序计数器 PC 循环计数器 LOOP COUNTER 以及三个暂存器 上述所有寄存器都是 16 位或 7 位 16 位加符号扩展位 此外 有的寄存器还能脱离 ALU 而单独进行一些简单的操 作 然而 程序的转移必须有 ALU 控制 两个暂存器本身设有移位逻辑 可用于需要进 行逻辑移位的一些操作中 低字寄存器 LOWER WORD REGISTER 仅在双字型数据移 位时才使用 而高字寄存器 UPPER WORD REGISTER 则每逢执行移位或作为指令暂 存器时就要使用 当执行循环移位操作时 由 5 位循环计数器完成循环记数 韩勇 基于 DS18B20 的多点温 湿度控制系统 12 168 8 16 16 16 16 16 数据总 线 DB 8 程序计数器 PC Vpp 增量器 INR 暂时寄存器 TR1 暂时寄存器 TR2 暂时寄存器 TR3 A 算术逻辑单 元 ALU 17 位 常数寄存器 COR 0 1 2 循环计数器 LCR 程序状态字 寄存器 PSW延时 DYD 地址总 线 AB 图 2 3 RALU 的结构图 Fig 2 3 The structure of RALU 2 2 4 内部时钟 8098 工作时所需的时钟可通过其 XTAL1 输入引脚由外部输入 也可以采用芯片内部 的震荡器 8098 的工作频率为 6 12 MHZ 8098 片内的震荡电路是一个单级非门电路 他与石英晶体配合使用 可组成一个稳 定的晶体震荡器 如图 2 4 所示 图中的外接电容起 C1 C2 通常取为 30pF 左右 辽宁工程技术大学毕业设计 论文 13 C2C1 XTAL2XTAL1 内部电路3 分频时钟 图 2 4 8098 晶体震荡器框图 Fig 2 1 The block diagram of 8098 s crystal oscillator 来自晶体震荡器或外部震荡电路的信号经过三分频电路 便产生了三个不同相位的 内部时钟 如图 2 5 所示 三个震荡周期构成一个状态周期 T 当 fosc 12MHZ时 Tosc 83ns T 250ns 图中 A B C 相的占空比均为 33 8098 的内部操作都与上述 三者之一同步 C 相 B 相 CLOCKOUT A 相 1 个状态周期 XTAL1 图 2 5 8098 内部定时器波形图 Fig 2 5 The wave s type of 8098 s inside timer 2 3 8098 的存储器空间 8098 可寻址的外部存储器空间为 64K 字节 它采用程序存储器与数据存储器和二为 一的普林斯顿结构 不像用哈佛结构的 MCS 48 和 MCS 51 系列那样有程序存储器空间和 韩勇 基于 DS18B20 的多点温 湿度控制系统 14 数据存储器空间之分 在 64 字节的存储器空间中 地址 0000H 00FFH 和 1FFFH 2080H 的存储器单元具有特殊用途 而其它的存储器空间既可用于存放程序或数 据 也可用作 I O外设映射空间 8098 的存储器空间分布如图 2 6 所示 0FFH 0F0H 0EFH 1AH 19H 18H 17H 16H 15H 14H 13H 12H 11H 10H 0FH 0EH 0DH 0CH 0BH 0AH 09H 08H 07H 06H 05H 04H 03H 02H 01H 00H 读操作时 写操作时 图 2 6 8098 存储空间 Fig 2 6 The storage space of 8098 掉电保护 RAM 内部寄存器阵列 RAM 255 240 239 26 FFFFH 4000H 3FFH 2080H 2030 H207FH 2020H 202FH 201CH 201FH 201AH 201BH 2019H 2018H 2012H 2017H 2011H 2000H 1FFFH 1FFEH 1FFDH 0100H 00FFH 0000H 片外存储器 I O 片内 ROM EPROM 或片外存储器 保留 密码 保留 自身跳转 27FEH 保留 芯片配置字节 保留 中断向量 PORT4 PORT3 片外存储器 I O 片内 RAM 寄存 器阵列 堆栈指针 特殊功能寄存器 堆栈指针 IOS1 IOS0 保留 SP STAT IOPORT1 保留 IOPORT0 TIMER2 HI TIMER2 LO TIMER1 HI TIMER1 LO INT PENDING INT MASK SBUF rx HSI STATUS HSI TIME HI HSI TIME LO AD RESULT HI AD RESULT LO R0 HI R0 LO 栈指针 2PWM CONIROL IOC1 IOC0 保留 SP CON IOPORT2 保留 BAUD RATE 保留 WATCHDOG INT PENDING INT MASK SBUF tx HSO COMMAND HSO TIME HI HSO TIME LO HSI MODE AD COMMAND R0 HI R0 LO 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 辽宁工程技术大学毕业设计 论文 15 2 3 1 寄存器阵列 00H 0FFH 存储器单元包括寄存器阵列和特殊功能寄存器 SFR 在这部分内部 RAM 空间中 不能执行指令码 如果试图执行 00H 0FFH 存储器单元的程序 只有将 指令码存放在上述地址空间所覆盖的外部存储器中 通常外存的这一区域是为 Intel 开发 系统所保留的 RALU 能对 256 个内部寄存器单元中的任何一个进行操作 其中 00H 17H 这 24 个 单元用作特殊功能寄存器 SFR 18H 和 19H 这两个单元则作为堆栈地址指针 如果不 涉及到堆栈操作 则这两个单元也可作标准的 RAM 使用 堆栈指针可由用户程序在初始 化时设置 他可指向 64K 存储器空间中的任何单元 除了上述 26 个单元以外 剩下的 230 个单元作为用户的通用寄存器使用 2 3 2 特殊功能寄存器 SFR 8098 内部的各个功能部件均通用特殊功能寄存器 SFR 进行控制 大多数 SFR 具 有两种功能 读操作时为一种用途 写操作时为另一种用途 表 2 2 给出了所有 SFR 的 名称和作用 对图中标有 保留 字样的寄存器用于未来器件的扩充和测试 用户不可对其 进行读出和写入操作 对特殊功能寄存器 SFR 的操作应注意以下几点 a TIMER1 TIMER2 和 HSI TIME 寄存器只能按字读出 对它们不能按字节读或写 b HSO TIME 寄存器只能按字写入 对它不能按字节写或读 c 所有其它特殊功能寄存器 SFR 只能按字节访问 d 乘法和除法指令中的源操作数读不能是可写的 SFR e 对于变址或间接寻址指令 所有特殊功能寄存器 SFR 都不能作变址或间接寻 址寄存器使用 f R0 是按字或字节读写的寄存器 但写 R0 并不会改变它的值 1 掉电 8098 片内 ROM 空间顶部的 16 字节 RAM 0F0H 0FFH 有 VPD引脚供电 如果用 户希望在掉电后保存上述 16 个单元的内容 那么掉电后 VPD引脚必须接备份电源 并且 电压必须保持在规定的范围以内 8098 进入掉电状态时 RESET引脚电平降低 2 个状态 周期后 芯片进入复位状态 以防止掉电时出现写 RAM 的操作 此时电源由 VCC 供给 韩勇 基于 DS18B20 的多点温 湿度控制系统 16 改为由 VPD供给 只要 VPD引脚上接有规定值的电源 上述 16 字节 RAM 中的内容就可 以保持 表 2 2 所有 SFR 的名称和作用 Tablet 2 2 The names and functions of all SFR 名称作用 R0零寄存器 它的读出值总是零 在零寄存器寻址操作时 作零基址 计算用作常 数 AD RESULTA D 变换结果寄存器 高位 低位 用以存放 A D 转换结束时的高位和低位转换 结果 它只能按字读出 AD COMMANDA D 命令寄存器 用于控制 A D 转换器的工作 HSI MODEHSI 方式寄存器 用来设置高速输入部件的工作方式 HSI TIMEHSI 时间寄存器 存放高速输入部件的时间值 它只能按字读出 HSO TIMEHSO 时间寄存器 存放高速输出部件的时间或记数值 以执行 HSO 命令寄存器中 的命令 它只能按字写入 HSO COMMANDHSO 命令寄存器 它决定在 HSO 时间寄存器中的时间值所确定的时刻将发生什么 事件 HSI STATUSHSI 状态寄存器 它指出 HSI 引脚的状态 即在 HSI 时间寄存器所记载的时刻 哪些引脚产生了事件 以及 HSI 引脚当前的状态 SBUF tx 串行口发送缓冲器 用于存放欲发送的字节 信息 SBUF rx 串行口接收缓冲器 存放刚从串行口接收的字节 信息 INT MASK中断屏蔽寄存器 INT PENDING中断登记寄存器 指示各中断源是否已产生了中断信号 WATCHDOG监督定时器寄存器 此寄存器被启动后 至少每隔 64K 状态周期 软件便要使它 复位一次 若因故障未及时使它复位 则自动产生系统复位信号 从而使之脱离 故障状态 TIMER1定时器 1 只能按字读出 TIMER2定时器 2 只能按字读出 IOPORT0P0 口寄存器 指示 P0 口各引脚上的电平 只能读 不能写 BAUD RATE波特率寄存器 用于存放串行口波特率 辽宁工程技术大学毕业设计 论文 17 IOPORT1P1 口寄存器 用于对 P1 都的读 写 IOPORT2P2 口寄存器 用于对 P2 都的读 写 SP STAT串行口状态寄存器 用于指示串行口工作状态 SP CON串行口控制寄存器 用于设置串行口工作状态 IOS0I O 状态寄存器 0 用于存放 HSO 的状态信息 IOS1I O 状态寄存器 1 用于存放定时器以及 HSI 的状态信息 IOC0I O 控制寄存器 0 用于控制 HSI 引脚的复用功能以及定时器的复位源和时钟源 IOC1I O 控制寄存器 1 用于控制 P2 口引脚的复用功能以及定时器和 HSI 的中断 PWM CONTROL脉宽调制控制寄存器 用于设置 PWM 脉冲的持续时间 8098 脱离掉电状态时 VCC升至正常值 此时RESET仍保持低电平 当片内的震荡 器起振时 8098 必须保持稳定供电 2 个状态周期以后 震荡器稳定工作 RESET引脚 恢复高电平 10 个状态周期后 8098 开始执行存放在 2080 单元的指令码 图 2 7 为掉电 时序图 10 个 XTAL1 周期 电源掉电 VCC VPD 5 0 5V RESET XTAL1 时钟可无 图 2 7 8098 掉电时序图 Fig 2 7 The chart of time order when 8098 lose electricity 2 保留的存储器空间 表 2 3 列出了一些特殊存储器单元地址表 标有 保留 字样的存储器单元被 Intel 公 司保留 用于测试或产品中 这些单元必须被置为 0FFH 以确保现有芯片与新产品兼容 对于 8098 复位将使其从 2080 单元中开始取指令 选择此地址的目的是为了使系统 将来能与 8K 字节的 RAM 和寄存器阵列相连接 3 内部 ROM 韩勇 基于 DS18B20 的多点温 湿度控制系统 18 8098 片内含有 8K 字节的 ROM 地址范围为 2080H 3FFFH 芯片规定中断向量 芯片配置寄存器 CCR 和保密字等均在 2000H 202FH 范围内 表 2 3 特殊存储器单元地址表 Tablet 2 3 The address table of special storage units 地 址内 容 0000H 0017H特殊功能寄存器 SFR 0018H 0019H堆栈指针 SP 1FFEH 1FFFHP3 口和 P4 口 2000H 2011H中断向量 2012H 2017H保留 2018H芯片配置字节 2019H保留 201AH 201BH 跳转到自测试 操作码 27H FEH 201CH 201FH保留 2020H 202FH保留代码 2030H 207FH保留 2080H复位地址单元 只有当EA引脚接高电平并且地址在 2000H 3FFF 之间才能从片内的 ROM 中读取指 令和数据 在其它情况下 8098 均从外部存储器或内部 RAM 中读取指令和数据 4 存储器控制器 RALU 除了与片内 RAM 交换信息外 在与其它存储器打交道时 都需通过存储器控 制器 通过地址总线和几条控制线与 RALU 相连 由于地址总线是 8 位的 因此为了避 免频繁地从 RALU 取出指令单元的地址 加快取指令速度 控制器中设有一个辅助程序 计数器 PC 当顺序执行指令时 每次取指令后 辅助 PC 值自动增加 只有执行跳转 指令或子程序调用指令时 才把 RALU 中主 PC 的内容通过地址总线加载到辅助 PC 中去 除此之外 存储器控制器中还有一个 4 字节的寄存器阵列 以加快执行过程 除在 外总线周期期间强行插入等待状态外 此 4 字节寄存器阵列对 RALU 和拥护来说都是随 时可用的 辽宁工程技术大学毕业设计 论文 19 5 系统总线 8098 有多种运行方式 最常用的是标准总线方式 它使用 16 位多路复用地址和 8 位 数据总线 此外 配合总线口进行总线存取操作的还有若干条控制信号 在标准方式下 CPU 通过与 8 位数据总线复用的 16 位地址总线 AD0 AD7 及 A8 A15 来对外部存储器 或 I O 进行寻址 为了将总线上的地址和数据信号分离 8098 提供了地址锁存允许信号 ALE 利用其下降沿给一个锁存器 例如 74LS373 送一个信号 用以锁存来自 AD0 AD7 的低 8 位地址 为了避免在说明存储器系统时出现混乱 我们将 A0 A15 命 名为地址信号 D0 D7 命名为数据信号 2 4 I O 口 为了与 MCS 96 其它产品相一致 8098 也定义了 5 个 I O 口 但 P1 口实际上是没有 的因此 8098 只有 32 跟 I O 线 其中有些是双向 I O 线 有些具有复用功能 而另一些则 只能用作输入口或输出口 上述的 32 根 I O 线也包括高速输入 输出 HSI HSO 线 8098 的输入口通过一个输入缓冲器与内部总线相连 输出口是通过输出缓冲器与内 部寄存器相连的 该寄存器用来存放需输出的状态 双向口由一个内部寄存一个输入缓 冲器和一个输出缓冲器构成 2 4 1 P0 口 8098 的 P0 口仅有 4 根引线 P0 4 P0 7 它们只能用于输入端 且具有复用功能 CPU 既可以读取 P0 口输入的数字信号 也可以通过把相应的控制位写入 A D 命令寄存器 来选择 P0 口中的一个引脚作为 A D 转换器的输入通道 P0 口同时输入模拟信号和数字 信号也是允许的 2 4 2 P2 口 P2 口是一个多功能口 其中 4 条引脚 P2 0 P2 2 以及 P2 5 与其它功能共用 如表 2 4 所示 表 2 4 P2 口的功能 Tablet 2 4 The functions of P2 interface 引脚功能复用功能控制位 P2 0输出TXD 串行口发送 IOC1 5 P2 1输入RXD 串行口接收 不受影响 P2 2输入EXTINT 外中断 IOC1 1 P2 5输出PWM 脉宽调制 IOC1 0 韩勇 基于 DS18B20 的多点温 湿度控制系统 20 2 4 3 P3 和 P4 口 P3 和 P4 口具有两种功能 它们既可以用作具有漏极开路输出的双向口 也可以作为 系统总线 如果用作系统总线 则 P3 口对应于系统总线的低 8 位 AD0 AD7 P4 口对 应于系统总线的高 8 位 AD8 AD15 EA引脚接低电平时 P3 和 P4 口的引脚总是作为 系统总线使用 而EA接高低电平时 只有访问外部存储器 它们才能作系统总线使用 8098 的 P3 和 P4 口只能用作系统总线 当 8098 的 P3 和 P4 口作为输出口使用时 必须先对其输出口的寄存器写入 1 并接 上拉电阻 这些口吸收电流的能力约为 0 4mA 因而对口的总上拉电流不应超过此值 若没有其它电流产生上拉作用 接一个 15k 上拉电阻是可行的 2 4 4 I O 口控制和状态寄存器 8098 有 2 个 I O 控制寄存器 IOC0 和 IOC1 以及 2 个状态寄存器 IOS0 和 IOS1 其 中 IOC0 用于控制定时器 2 以及 HSI 引脚 IOC1 则控制有些引脚的复用功中断源以及 2 个 HSO 引脚 IOS0 用以存放所有 HSO 线以及 CAM 的当前状态 IOS1 则包括了定时器 以及 HSI HSO 的状态位 需要注意的是 当输入引脚在两种信号源之间切换时 有可能在这些引脚产生信号 跳变的现象 这可能使某些对跳变很敏感的输入线 如 HSI 线 中断线 定时器 2 控制 线等 产生误触发信号 对这些情况 在系统设计时应加以避免 2 5 A D 转换器 8098 单片机内部集成了一个 10 位 A D 转换器部件和一个 PWM 输出部件 一般说 来 大多数测量 控制系统都需要 A D 和 D A 转换器 但要在同一芯片上集成 A D 和 D A 两个转换器是很困难的 为此 Intel 公司为 8098 内部集成了一个 PWM 部件 PWM 部件外接滤波器可以实现 D A 的转换功能 同时 很多由单片机控制的执行部件 例如 许多电机 可控硅以及开关电源直接需要 PWM 的信号作为其控制信号 8098 单片机集成 A D 和 D A 两个转换器是其一大特色 它可以减少应用系统芯片 的数目 硬件电路设计简单 这也是为什么越来越多的人愿意使用 8098 单片机的原因之 一 本设计用到了 A D 转换器 所以在这里对 A D 转换器加以介绍 2 5 1 A D 转换器的结构 8098 单片机的 A D 转换器的结构如图 2 15 所示 除了一个逐次比较式的 A D 转换 辽宁工程技术大学毕业设计 论文 21 器外 还有一个 4 通道的模拟多路转换开关 一个采样 保持器 GO 启动 转换 通道 ANGND HSO 命令 F 忙 模 拟 输 入 VREF AD COMMAND AD RESULT LO AD RESULT HI 4 选 1 模拟 多路 开关 采样 保持 EA 逐步 逼近 A D 转换器 控制逻辑 7 6 5 4 3 2 1 0 7 6 3 2 1 0 3 2 1 0 结 果 图 2 15 A D 转换器的结构 Fig 2 15 The structure of A D transformer 8098 单片机可以选择 4 路中任意一路模拟通道 对输入模拟信号进行采样和保持 并将其转换成数字信号 每次 A D 转换器只能在所选择的单一通道上进行 在采用 12MHZ晶振时 A D 转换器完成一次转换的时间是 22 s 其中 1 s 为采样时间 也即完 成一次 A D 转换需要 88 个状态周期 其中采样需要 4 个状态周期 8098A D 转换器采用逐次比较方式来完成模拟 数字信号的转换 结果为 10 位二进制 码输出 输出结果是单调式的 切不丢失码 A D 转换器的模拟输入电压 VIN必须在 1V VREF 通常 VREF 5V 之间 当输入电 压为 VIN 0 5V 时 A D 转换器输出数字量 D 为 韩勇 基于 DS18B20 的多点温 湿度控制系统 22 D 1023 IN REF V ANGND V ANGND 上式中 VREF为基准电压 ANGND 为模拟地电平 2 5 2 A D 基准源 A D 转换器的基准源是否稳定对其精度有较大的影响 因此 应将 8098 的 ANGND 引脚接到无干扰的地线上 并尽量靠近电源 在 VREF和 ANGND 的引脚之间应加接旁路 电容 此外 8098 的 ANGND 引脚还应该与 VSS 引脚相连 VREF可在 4 5 5V 之间选择 但必须能提供 5mA 的电流 图 2 15 给出了 8098 电源的连接要求 一般情况下 可以将 VREF 引脚直接与 VCC引脚相连 此外 若不使用芯片的 A D 转换器 必须将 VREF与 VCC相连 ANGND 与 VSS相连 此时 P0 口可用作普通的数字输入口 0 1 F 0 01 F 地 数字地 8098 VREF VCC ANGND VSS 1 F 模拟地 图 2 15 8098 电源去耦 Fig 2 15 Eliminate the coupling of 8098 s power source 2 5 3 A D 转换器的控制 1 A D 命令寄存器 AD COMMAND A D 命令寄存器位于 0002H 单元 用以选择转换器的通道道号和启动方式 AD COMMAND 寄存器具有双缓冲结构 故由第一个命令启动的 A D 转换正在进行时 第二 个命令照样可以写入到该寄存器中 但此命令必须是由 HSO 触发启动的 应当注意 当 某次转换正在进行时 若又启动了另一个新的转换 将会使正在进行的转换撤消掉 A D 结果寄存器的内容也会别消除掉 因此 在新的转换开始之前 应将原来的转换结果 存放在 A D 结果转换器中 读走 还应注意 每完成一个转换都需要写一次命令寄存器 每写一次 A D 转换器只能选 择一个通道进行 A D 转换 辽宁工程技术大学毕业设计 论文 23 2 A D 结果寄存器 AD RESULT A D 结果寄存器是一个 16 位寄存器 位于 0002H 和 0003H 单元 它不能按字读取 必须按 2 个字节分别读取 AD RESULT 寄存器除了存放转换结果外 还包含有通道号以 及 A D 转换器的状态信息 当 A D 转换器被启动后 需要 88 个状态周期才能得到转化结果 在这期间内 可以 让 CPU 进行其它工作 也可以用软件延时等待 注意 必须在 88 个状态周期后读取的结 果才是正确的 判断 A D 转换是否结束通常可用以下方法 若用通道 7 进行 A D 转换 可以利用其中断功能 在转换结束时通道会自动发出中 断请求 其中断向量为 2002H 这种情况需要编制中断服务程序 用以读取转换结果并进 行相应的处理 若用其它通道进行 A D 转换 可采用下述两种办法 一是在速度要求不高的场合 可在启动 A D 转换器后等待 88 个状态周期后再读取转换结果 其次 当速度要求较高时 可在接近 88 个状态周期时开始测试 02H 单元中的 S 位 以判断 A D 转换是否完成 若 S 1 则继续 若 0 便读取转换结果并进行相应的处理 3 A D 转换器的启动 8098A D 转换器的启动可通过执行 HSO

温馨提示

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

评论

0/150

提交评论