温度遥测遥控系统的设计和实现.doc_第1页
温度遥测遥控系统的设计和实现.doc_第2页
温度遥测遥控系统的设计和实现.doc_第3页
温度遥测遥控系统的设计和实现.doc_第4页
温度遥测遥控系统的设计和实现.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

温度遥测遥控系统的设计与实现 0 QUST 毕业论文毕业论文 温度遥测遥控系统的设计和实现 QUST 青岛科技大学本科毕业设计 论文 1 温度遥测遥控系统的设计和实现 摘 要 文章介绍了一种基于 AT89S52 单片机的水温遥控遥测系统的设计 设计采 用 AT89S52 单片机为控制内核 重点介绍了单片机工作方式和外围接口电路 包括温度采集模块所实现的数模转换 控制器 AT89S52 之间数据通过无线传送 模块串行所实现的通信功能 温度显示模块所实现的数码管的动态显示功能 系统分为上下位机 通过无线收发装置实现对水温遥测遥控 关键词 AT89S52 单片机 ADC0809 数模转换 单片机的串行通信 数码管 动态显示 温度遥测遥控系统的设计与实现 2 目录 1 引言引言 1 2 温度遥测遥控系统整体设计方案温度遥测遥控系统整体设计方案 3 3 系统硬件设计系统硬件设计 5 3 1 PROTLE 99SE 和温度测量系统电路图的制作 5 3 2 芯片的介绍和使用 6 3 2 1 AT89S52及其在系统中的使用 6 3 2 2 ADC0809介绍和在温度测量模块的使用 8 3 2 3 74HC573及其在接口电路中的使用 10 3 2 4 74LS74双D触发器及其在温度测量模块的使用 10 3 2 5 74LS02或非门 11 3 2 6 双位数码管在显示模块的使用 11 3 3 各芯片在系统电路图中的作用和联系 12 3 4 无线模块 SRWF 1 V6 1 及其在上下位机无线通信作用 12 3 5 硬件的焊接和调试 13 3 6 温度传感器和温度转换算法 14 4 系统软件控制设置系统软件控制设置 15 4 1 AT89S52 控制寄存器及其在系统中的设置 15 4 1 1 中断控制器 16 4 1 2 定时计数器控制寄存器和初值的计算 18 4 1 3 上下位机串行通信的控制和波特率 19 4 2 温度测量模块和显示模块的程序控制 22 4 2 1 ADC0809的工作原理 22 4 2 2 数码管的显示 23 4 3 编译和烧录软件 23 5 总结总结 25 青岛科技大学本科毕业设计 论文 3 1 引言 温度遥测与遥控系统是一种远端测控单元装置 测控终端集 A D 功能和 I O 功能为一体 负责对工业设备 环境 流体的温度监测和控制 特别适合 那些环境恶劣 测量人员不容易接近的场合 近年来在工农业生产中应用广泛 目前的应用领域可分为远程遥测遥控和非远程遥测遥控 他们的主要差别在于 远程遥测遥控主要是通过 GPRS 网络实现更大的地域跨度 但是相对来说本文所 研究的非远程遥测与遥控系统则更适合于车间等小空间 300 米以内 的操作 此系统的的特点是成本小 系统相对简单 容易维护 具体可应用在家庭洗浴 系统 工业热能系统等 根据短距离遥控遥测系统的特点 本文提出了对近距水温遥控遥测的设计 方案 并最后实现了对模拟的 0 100oC 的温度的无线近距离测量和控制 主要工 作包括温度的数模转换 温度在数码管上的动态显示和控制器之间通过无线模 块进行的串行通信 温度遥测遥控系统的设计与实现 4 2 温度遥测遥控系统整体设计方案 本次设计 可分为上位机和下位机两大部分 分别实现温度数据的采集和 温度的控制功能 以下为系统大体原理框图 图 2 1 上位机 下位机 图 2 1 系统原理框图 Fig 2 1 The system configuration block diagram 注释 热水注入器 冷水注入器 温度感应器 A D 转换模块 无线收发模块 1 数码管显示器 无线收发模块 2 温度手控器 数码管显示器 上位端阐述 1 冷 热水注入器 负责接受控制器所发出的指令并调水的温度 具体 为 01 指令为加冷水 10 指令为加热水 其他指令无效 2 温度感应器 负责采集温度并将之转换为模拟的电信号 它与 A D 转 换模块 组成温度测量模块负责将采集到的模拟电信号转换为 8 位数字信号 并将其送到控制器 1 由于测量范围是 0 100 所以误差控制在 1 是没有 问题的 3 控制器 1 负责 1 每 2S 接受一次数字信号并将其送到无线模块并发送 出去并送至数码管 显示 2 负责将无线收发模块 接受到的控制信号控制冷 热水注入器 4 无线收发模块 负责每 1 秒发送一次温度 并随时 在发送温度数据 的时间之外 准备着接受下位端的控制数据 下位端阐述 青岛科技大学本科毕业设计 论文 5 1 无线收发模块 每 1S 接受一次温度数据并将其送至控制器 2 并随时 在接受温度数据的时间之后一秒的时间里 将控制器 2 所采集的控制信号发 送 2 控制器 1 负责 1 每 1S 接受一次数字信号送至数码管 显示 2 采集温 度手控器 的状态并送至无线模块发送出去 3 温度手控器 我们可以根据数码管所显示的数据发送指令 01 指令为 加热 10 指令为降温 其他指令无效 4 温度显示模块以双位数码管 和 原理为双位数码管的动态显示原理 温度遥测遥控系统的设计与实现 6 3 系统硬件设计 本章重点讲述了温度遥测遥控系统的硬件的设计和实现 主要包括温度测 量模块 温度显示模块和控制模块所包括的芯片以及各种芯片的结构功能 工 作原理以及在设计中的使用方法 并且在开头一节讲述了硬件电路设计软件 PROTEL 99SE 的使用 3 13 1 PROTLEPROTLE 99SE99SE 和温度测量系统电路图的制作和温度测量系统电路图的制作 1 电路原理设计部分 Advanced Schematic 99 电路原理图设计部分包 括电路图编辑器 简称 SCH 编辑器 电路图零件库编辑器 简称 Schlib 编辑 器 和各种文本编辑器 本系统的主要功能是 绘制 修改和编辑电路原理图 更新和修改电路图零件库 查看和编辑有关电路图和零件库的各种报表 图 3 1 温度 AD 转换电路板原理图 Fig 3 1Temperature AD transform circuit principle diagram 青岛科技大学本科毕业设计 论文 7 2 印刷电路板设计系统 Advanced PCB 99 印刷电路板设计系统包 括印刷电路板编辑器 简称 PCB 编辑器 零件封装编辑器 简称 PCBLib 编 辑器 和电路板组件管理器 本系统的主要功能是 绘制 修改和编辑电路板 更新和修改零件封装 管理电路板组件 3 自动布线系统 Advanced Route 99 本系统包含一个基于形状 Shape based 的无栅格自动布线器 用于印刷电路板的自动布线 以实现 PCB 设计的自动化 图 3 2 温度的采集和 AD 转换电路板图 Fig 3 2 Temperature AD transform circuit diagram 3 23 2 芯片的介绍和使用芯片的介绍和使用 在本节中介绍了温度测量模块 显示模块 通信模块所用到的芯片的功能 结构 并具体阐述了各芯片在系统中的设置和使用 3 2 13 2 1 AT89S52AT89S52 及其在系统中的使用及其在系统中的使用 AT89S52 是一种低功耗 高性能 CMOS8 位微控制器 具有 8K 在系统 温度遥测遥控系统的设计与实现 8 可编程 Flash 存储器 与工业 80C51 产品指令和引脚完全兼容 片上 Flash 允许 程序存储器在系统可编程 亦适于 常规编程器 在单芯片上 拥有灵巧的 8 位 CPU 和在系统可编程 Flash 使得 AT89S52 为众多嵌入式控制应用系统提供 高灵活 超有效的解决方案 管脚解释 P0 口 P0 口是一个 8 位漏极开 路的双向 I O 口 作为输出口 每位能 驱动 8 个 TTL 逻 辑电平 对 P0 端口 写 1 时 引脚用作高阻抗输入 当 访问外部程序和数据存储器时 P0 口 也被作为低 8 位地址 数据复用 在这 种模式下 P0 不具有内部上拉电阻 在 flash 编程时 P0 口也用来接收指令 字节 在程序校验时 输出指令字节 程序校验 时 需要外部上拉电阻 P1 口 P1 口是一个具有内部上拉 电阻的 8 位双向 I O 口 p1 输出缓冲 器能驱动 4 个 TTL 逻辑电平 对 P1 端口写 1 时 内部上拉电阻把端口拉 高 图 3 3 89s52 单片机管脚图 此时可以作为输入口使用 作为输入使 Fig 3 3 Pin map for89s52 用时 被外部拉低的引脚由于内部电阻 此时可以作为输入口使用 作为输入使用时 被外部拉低的引脚由于内部电阻 的原因 将输出电流 IIL 此外 P1 0 和 P1 1 分别作定时器 计数器 2 的外部 计数输入 P1 0 T2 和定时器 计数器 2 的触发输入 P1 1 T2EX P2 口 P2 口是一个具有内部上拉电阻的 8 位双向 I O 口 在访问外部程 序存储器或用 16 位地址读取外部数据存储器 例如执行 MOVX DPTR A 时 P2 口送出高八位地址 在这种应用中 P2 口使用很强的内部上拉发送 1 在使 用 8 位地址 如 MOVX RI 访问外部数据存储器时 P2 口输出 P2 锁存器的 内容 在 flash 编程和校验时 P2 口也接收高 8 位地址字节和一些控制信号 P3 口 P3 口是一个具有内部上拉电阻的 8 位双向 I O 口 p3 输出缓冲器 能驱动 4 个 TTL 逻辑电平 对 P3 端口写 1 时 内部上拉电阻把端口拉高 此 时可以作为输入口使用 作为输入使用时 被外部拉低的引脚由于内部电阻的 青岛科技大学本科毕业设计 论文 9 原因 将输出电流 IIL P3 口亦作为 AT89S52 特殊功能 第二功能 使用 如下表所示 在 flash 编程和校验时 P3 口也接收一些控制信号 端口引脚第二功能 P3 0RXD 串行输入口 P3 1TXD 串行输出口 P3 2INTO 外中断 0 P3 3INT1 外中断 1 P3 4TO 定时 计数器 0 P3 5T1 定时 计数器 1 P3 6WR 外部数据存储器写选通 P3 7RD 外部数据存储器读选通 RST 复位输入 当振荡器工作时 RST 引脚出现两个机器周期以上高电 平将是单片机复位 ALE PROG 当访问外部程序存储器或数据存储器时 ALE 地址锁存允 许 输出脉冲用于锁存地址的低 8 位字节 一般情况下 ALE 仍以时钟振荡频 率的 1 6 输出固定的脉冲信号 即机器周期 该位置位后 只有一条 MOVX 和 MOVC 指令才能将 ALE 激活 此外 该引脚会被微弱拉高 单片机执行外部 程序时 应设置 ALE 禁止位无效 PSEN 程序储存允许 PSEN 输出是外部程序存储器的读选通信号 当 AT89S52 由外部程序存储器取指令 或数据 时 每个机器周期两次 PSEN 有 效 即输出两个脉冲 在此期间 当访问外部数据存储器 将跳过两次 PSEN 信号 EA VPP 外部访问允许 欲使 CPU 仅访问外部程序存储器 地址为 0000H FFFFH EA 端必须保持低电平 接地 需注意的是 如果加密位 LB1 被编程 复位时内部会锁存 EA 端状态 如 EA 端为高电平 接 Vcc 端 CPU 则执行内部程序存储器的指令 FLASH 存储器编程时 该引脚加上 12V 的编 程允许电源 Vpp 当然这必须是该器件是使用 12V 编程电压 Vpp XTAL1 振荡器反相放大器和内部时钟发生电路的输入端 XTAL2 振荡器反相放大器的输出端 3 2 23 2 2 ADC0809ADC0809 介绍和在温度测量模块的使用介绍和在温度测量模块的使用 1 主要特性 1 8 路输入通道 8 位 A D 转换器 即分辨率为 8 位 2 具有转换起停控制端 温度遥测遥控系统的设计与实现 10 3 转换时间为 100 s 时钟为 640kHz 时 130 s 时钟为 500kHz 时 4 单个 5V 电源供电 5 模拟输入电压范围 0 5V 不需零点和满刻度校准 6 工作温度范围为 40 85 摄氏度 7 低功耗 约 15mW 图 3 4 ADC0809 管脚图 Fig 3 4 Pin map for ADC0809 2 内部结构 ADC0809 是 CMOS 单片型逐次逼近式 A D 转换器 内部结构如图 13 22 所示 它由 8 路模拟开关 地址锁存与译码器 比较器 8 位开关树型 A D 转 换器 逐次逼近寄存器 逻辑控制和定时电路组成 3 引脚功能说明 IN0 IN7 8 路模拟量输入端 D0 D7 8 位数字量输出端 ADDA ADDB ADDC 3 位地址输入线 用于选通 8 路模拟输入中的一 路 ALE 地址锁存允许信号 输入 高电平有效 START A D 转换启动脉冲输入端 输入一个正脉冲 至少 100ns 宽 使 启动 脉冲上升沿使 0809 复位 下降沿启动 A D 转换 EOC A D 转换结束信号 输出 当 A D 转换结束时 此端输出一个高 电平 转换期间一直为低电平 OE 数据输出允许信号 输入 高电平有效 当 A D 转换结束时 此端 输入一个高电平 才能打开输出三态门 输出数字量 青岛科技大学本科毕业设计 论文 11 CLK 时钟脉冲输入端 要求时钟频率不高于 640KHZ REF REF 基准电压 Vcc 电源 单一 5V GND 地 ADC0809 的工作过程 3 2 33 2 3 74HC57374HC573 及其在接口电路中的使用及其在接口电路中的使用 在单片机最小系统中 74HC573 是基本的芯片之 一 在使用时根据需要 OE 接地 LE 悬空 它和 74LS373 等芯片一样可以根据芯片特性完成以下功 能 1 数据锁存 当输入的数据消失时 在芯片的输出端 数据仍然 保持 这个概念在并行数据扩展中经常使用到 2 数据缓冲加强驱动能力 74LS244 74LS245 74LS373 74LS573 都具备数据 图 3 5 74LS573 管脚 图 缓冲的能力 Fig 3 5 Pin map for 74LS573 OE output enable 输出使能 LE latch enable 数据锁存使能 latch 是锁存的意思 在本设计中 主要使用为数据所存 以作为 ADC0809 模拟通道选择 在使 用时根据需要 OE 接地 LE 悬空 3 2 43 2 4 74LS7474LS74 双双 D D 触发器及其在温度测量模块的使用触发器及其在温度测量模块的使用 在 74LS74 芯片中有两个 D 触发器 故称双 D 触发器 表表 3 1 74ls74 功能表功能表 Table3 1Table3 1 74ls74menu key74ls74menu key 输 入输 出 SDRDCPDQn 1Qn 1 01 10 10 01 00 温度遥测遥控系统的设计与实现 12 11 110 11 001 11 QnQn 阐述 在本次设计中 D 触发器做 分频器 二分频 在使用过程中 将 Q1 非和 D1 相连 然后在 CLK1 处输入 ALE 单片机机器周期信号 1MHZ 在 Q1 处即可输出供 ADC0809 使用的 clk 信号 5KHZ 图 3 6 74LS74 内部结构图 Fig 3 6 74LS573 inter construction 3 2 53 2 5 74LS0274LS02 或非门或非门 74LS51 广泛使用于逻辑电路中 它能实现基本的或非功能 图 3 7 74LS02 管脚图 Fig 3 7 Pin map for 74LS02 在本次设计中 使用 74LS02 配合单片机的读写管脚和 ADC0809 的 OE 管脚 来实现对 ADC 的启动和转换完成后实现中断 3 2 63 2 6 双位数码管在显示模块的使用双位数码管在显示模块的使用 数码管是一种半导体发光器件 其基本单元是发光二极管 数码管按段数 分为七段数码管和八段数码管 八段数码管比七段数码管多一个发光二极管单 元 多一个小数点显示 按能显示多少个 8 可分为 1 位 2 位 4 位等等数 码管 本次设计使用的数码管是共阳极双位数码管 采用动态显示方式 具体见 3 2 2 青岛科技大学本科毕业设计 论文 13 经过测量 数码管的管教显示解释如下 COM1 COM2 控制显示的位 01 为显示个位 10 为显示十位 a b c d e f g dp 管脚和控制的 LED 灯如图 3 8 所示 dp 图 3 8 双位数码管管脚图 Fig 3 8 Pin map for double digital tube 3 33 3 各芯片在系统电路图中的作用和联系各芯片在系统电路图中的作用和联系 整块板子以 ADC0809 为核心 其中 D 触发器做分频器为 ADC0809 提供 时钟信号 或非门主要作用是结合 P2 7 口翻译单片机发出的读写信号 翻译为 ADC0809 的启动 AD 转换的信号 AD 转换完成之后由单片机 P0 脚读入 在单 片机内转化为可以在数码管显示的十位 个位 其中 P2 1 P2 0 口完成动态显 示的片选工作 3 43 4 无线模块无线模块 SRWF 1SRWF 1 V6 1V6 1 及其在上下位机无线通信作用及其在上下位机无线通信作用 本设计所用的无线模块为桑 瑞公司开发的无线模块 SRWF 1 V6 1 此型号模块具有很强的抗干 扰能力 全透明传输 体积小 功耗 低传输距离远的特点 并且体积小 图 3 9 无线模块 SRWF 1 引脚少便于初学者做无线设计的开 Fig 3 9 Wireless module SRWF 1 发 表表 3 2 插槽管脚介绍插槽管脚介绍 TableTable 3 23 2 PinsPins IntroductionIntroduction 序号接口说明连接终端接口备注 1GND 电源模拟地 2电源 DC 3 6V 5 0V 温度遥测遥控系统的设计与实现 14 3RXD TTL 串行数据接收端TTL TXD 4TXD TTL 串行数据发射端TTL RXD 5SGND 信号地模拟地可与电源地相连 6A TX A RX RS 485 的 A RS 232 的 TX 7B RX B TX RS 485 的 B RS 232 的 RX 8SLP休眠控制 输入 TTL 休眠信 号 低有效 t 15ms 9RESET复位 输出 TTL 唤醒信 号 负脉冲唤醒 t 1ms 在无线模块提供的两对 TX RX 引脚中 RXD TTL 串行数据接收端 TXD TTL 串行数据发射端 这一对为 TTL 电平协议 适合交叉连接单片机的 串行通信的 RX TX 而 A TX B RX 这对为 RS 485 RS 232 远程抄表常用 的电平协议 在模块的下方 A B C D E 为选择通信的信道所用 不同的信道根据 调制的频率不同区分 具体的频率信息如下 ABC 的状态 表表 3 3 SRWF 1 信道频率信道频率 TableTable 3 33 3 SRWF 1SRWF 1 ChannelChannel FrequencyFrequency 000 信道001010011100101110111 433 3030MHZ432 6876432 0732431 4588430 8444430 2300429 6156429 0012 本次设计使用 000 信道 3 53 5 硬件的焊接和调试硬件的焊接和调试 由于前年的电子电工技术实习使我掌握了焊接的基本技巧 表述如下 先 给元件焊接部分和线路板渡锡 把元件插入电路板 一手握烙铁一手拿锡丝 用电烙铁加热被焊处 加锡适量 待锡融化为水并充分融入电路板表面 离开 电烙铁 等待锡点冷却 经调查 在市场上印电路板的费用大概是 300 400 人民币左右 所以请 陈琦老师帮忙 印刷 这对硬件的焊接技术的要求更高 底座的焊接 在电路板有三个底座 ADC0809 的用的是 28 脚的双排直插式的 74LS74 和 74LS51 为 14 脚的双排直插式的 在焊接时 要先把底座插到电路板上再进 行焊接 底座各脚的焊点要小 以免各脚之间导通 还不能形成虚焊 虚焊会 导致电路不通 底座要焊接牢固 不能和电路板距离太远 以免导致虚焊 底 座还要放在公共线的两边 因为那两条线是电源线和地线 焊接好后要对照电 路仔细检查 再用万用表检测 看焊接是否良好 青岛科技大学本科毕业设计 论文 15 插针的焊接 由于插孔太小 我使用了螺丝钻孔扩大插孔 使得插针顺利插入 在焊接 时考虑到某些管脚的不在适用范围内 可放弃不焊 3 63 6 温度传感器和温度转换算法温度传感器和温度转换算法 LM35 总体简介 LM35 是由 NA 所生产的温度传感器 其输出电压与摄氏温标呈线性关系 转换公式如式 0 时输出为 0V 每升高 1 输出电压增加 10mV LM35 有 多种不同封装型式 外观如图所示 在常温下 LM35 不需要额外的校准处理 即可达到 1 4 的准确率 电源供应模式有单电源与正负双电源两种其引脚 如图所示 正负双电源的供电模式可提供负温度的量测 两种接法的静止电流 温度关系如图所示 在静止温度中自热效应低 0 08 单电源模式在 25 下静止电流约 50 A 工作电压较宽 可在 4 20V 的供电电压范围内正常工 作非常省电 温度传感器中电压和温度的线性关系 Vout LM35 T 10mv 0C T0C 如公式所示 在一百摄氏度时 Vout LM35 1V 在温度采集电路中 ADC0809 芯片的参考电压是 5V 所以我们首先要通过功放电路将 LM35 的输出 电压放大 5 倍 ADC0809 在输入电压为 5V 的情况下转换结果是 1111 1111B 我们再将之转化为 99oC 即 99 约等于 256 4 10 此过程将在软件中实现 图 3 10 LM35 管脚图 Fig 3 10 Pin map for LM35 温度遥测遥控系统的设计与实现 16 4 系统软件控制设置 本章阐述了第 3 章所讲到的控制器控制部分控制原理以及根据芯片的工作 原理为芯片提供工作时序的软件设计 在本章的最后讲述了在本次设计中所使 用语言编译软件和程序烧录软件的使用 4 14 1 AT89S52AT89S52 控制寄存器及其在系统中的设置控制寄存器及其在系统中的设置 寄存器是单片机控制及设置的核心 在 AT89S52 单片机中 有以下寄存 器分别控制单片机及其外围电路完成各种不同的功能 1 B 寄存器 符号为 B 在单片机中的地址是 F0H 在本次设计中 B 寄存器主要 完成显示模数转换的结果 模数转化的结果为 2 位 16 进制数字 必须按照要求 实现 10 进制显示 用单片汇编语言中的除法指令 DIV AB 这就用到 B 寄存器 存放被除数 10 和除完之后的个位 2 累加器 ACC 地址为 E0H 不必赘述 3 程序状态字 PSW 地址为 D0H 表表 4 1 PSW 数据位数据位 TableTable 4 14 1 TheThe BitsBits ofof PSWPSW D7 D6 D5 D4 D3 D2 D1 D0 CYAC F0 RS1 RS0 OV P CY 进位标志 有进 借位 CY 1 无进 借位 CY 0 在本次设计 中 CY 的主要用途是执行 RLC A RRC A 指令时使得 ACC 中需要的 BIT 移出使用 AC 辅助进 借位 高半字节与低半字节间的进 借位 F0 用户标志位 RS1 RS0 工作寄存器组选择位 控制使用哪一组的 R0 R7 默认为 00 即第一组 0V 溢出标志位 P 奇偶校验位 它用来表示 ALU 运算结果中二进制数位 1 的个数的奇 偶性 若为奇数 则 P 1 否则为 0 在串行通信时使用较为频繁 本次 设计没有应用该项功能 4 中断优先级控制寄存器 IP 地址为 B8H 默认优先级从高到低为 INT0 外部中断 T0 定时中断 INT1 外部中断 T1 定时器中断 T2 青岛科技大学本科毕业设计 论文 17 中断 T2 定时器中断 AT89S52 特有中断 串行接口中断 5 中断允许控制寄存器 IE 地址为 A8H 以上两个中断寄存器将会在 4 1 1 中 断控制器和中断向量中详细的描述 6 串行口锁存器 SBUF 地址为 99H 7 串行口控制寄存器 SCON 地址为 98H 以上两个寄存器配合完成数据的串 行发送接受详细内容在 3 1 2 8 TH1 8DH 定时器 计数器 1 高 8 位 TH0 8CH 定时器 计数器 1 低 8 位 TL1 8BH 定时器 计数器 0 高 8 位 TL0 8AH 定时器 计数器 0 低 8 位 TMOD 89H 定时器 计数器方式控制寄存器 TCON 88H 定时器 计数器控制寄存器 以上定时器寄存器将会在 4 1 2 定时计数器控制寄存器和初值的计算中详细 的介绍 9 DPTR 十六位数据地址指针包括 DPH 83H 数据地址指针 高 8 位 DPL 82H 数据地址指针 低 8 位 在设计中使用数据地址指针完成查表显示功能 10 SP 81H 堆栈指针 4 1 14 1 1 中断控制器中断控制器 在单片机工作中 当 CPU 正在处理某项事务的时候 如果外界或内部发 生了紧急事件 要求 CPU 暂停正在处理的工作转而去处理这个紧急事件 待处 理完以后再回到原来被中断的地方 继续执行原来被中断了的程序 这样的过 程称为中断 中断能够极大地提高 CPU 的工作效率 在本次设计中通过对优先 级的定义全局的使用了各种中断 中断的优先级和开关是通过寄存器 IP 和 IE 中断优先级控制寄存器中断优先级控制寄存器 IPIP 当几个中断源同时向 CPU 发出中断请求时 CPU 应优先响应最需紧急处 理的中断请求 为此 需要规定各个中断源的优先级 使 CPU 在多个中断源同 时发出中断请求时能找到优先级最高的中断源 响应它的中断请求 在优先级 高的中断请求处理完了以后 再响应优先级低的中断请求 在单片机中 IP 寄存器负责控制中断源的优先级 IP 置位时的数据决定了 单片机的默认中断优先顺序 如下 中断源中断源 入口地址入口地址 温度遥测遥控系统的设计与实现 18 外部中断 0 0003H 定时器 0 溢出 000BH 外部中断 1 0013H 定时器 1 溢出 001BH 串行口中断 0023H 通常 在中断入口地址处安排一条跳转指令 以跳转到用户的服务程序入 口 中断服务程序的最后一条指令必须是中断返回指令 RETI 我们可以通过了解中断的优先顺序来分配中断处理进程使得单片机工作的 更为迅速 有序 中断的允许和禁止 在 51 系列单片机中 中断的允许和禁止是由中断允许寄存器 IE 控制的 IE 中各位允许标志如表 中断允许寄存器中断允许寄存器 IE 表表 4 2 IE 数据位数据位 Table 4 2 The Bits of IE D7D6D5D4D3D2D1D0 EAXXESET1EX1ET0EX0 1 EA 总中断允许开关 它是个总开关 凡是要设置中端都得先通过它 EA 1 开放所有的中断 EA 0 则所有中断都被禁止 2 ES 串行口中断控制位 ES 1 允许中断 ES 0 禁止中断 3 ET1 定时 计数器 1 中断控制位 ET1 1 允许中断 ET1 0 禁止中断 4 EX1 外中断 1 中断控制位 EX1 1 允许中断 EX1 0 禁止中断 5 ET0 定时器 0 中断控制位 ET0 1 允许中断 ET0 0 禁止中断 6 EX0 外中断 0 中断控制位 EX0 1 允许中断 EX0 0 禁止中断 IE 寄存器的各位都可以根据要求 置位或者清零 从而是该中断源处于允 许或者禁止状态 在上位机中 我们使用到了 INT0 中断 T0 中断和串行通信中断 它们的 任务如下 INT0 中断作为 A D 转换中断查询方式的中断入口 来通知 A D 转换已经 完成 在中断子程序中做出相应的反应 T0 中断作为数码管动态显示的计时器和一秒发送一次温度信息的计时器 所以我们设置 IE 为 95H MOV IE 10010011B 在下位机中同样使用了 T0 中断作为数码管动态显示的计时器和串行通信 中断 和一秒发送一次控制信息的计时器 青岛科技大学本科毕业设计 论文 19 所以我们设置 IE 为 92H MOV IE 10000010B 4 1 24 1 2 定时计数器控制寄存器和初值的计算定时计数器控制寄存器和初值的计算 89S52 单片机内部设有三个 16 位的可编程定时器 计数器 T0 T1 T2 T2 在本次设计中不使用 在定时器 计数器中除了有两个 16 位的计数器之外 还 有两个特殊功能寄存器 控制寄存器 TCON 和方式寄存器 TMOD 16 位的定 时 计数器分别由两个 8 位专用寄存器组成 即 T0 由 TH0 和 TL0 构成 T1 由 TH1 和 TL1 构成 每个寄存器均可单独访问 这些寄存器是用于存放定时或 计数初值的 TMOD 主要是用于选定定时器的工作方式 TCON 主要是用于控 制定时器的启动停止 此外 TCON 还可以保存 T0 T1 的溢出和中断标志 当 定时器工作在计数方式时 外部事件通过引脚 T0 P3 4 和 T1 P3 5 输入 方式寄存器方式寄存器 TMOD 表表 4 3 TMOD 数据位数据位 Table 4 3 The Bits of TMOD D7D6D5D4D3D2D1D0 GATE1C T1M1M0GATE0C TM1M0 GATE 门控制位 GATE 和软件控制位 TR 外部引脚信号 INT 的状态 共同控制定时器 计数器的打开或关闭 C T 定时器 计数器选择位 C T 1 为计数器方式 C T 0 为定 时器方式 本次设计使用的定时计数器的定时功能 M1M0 工作方式选择位 定时器 计数器的 4 种工作方式由 M1M0 设定 表表 4 4 定时计数器的工作方式定时计数器的工作方式 Table 4 4 Working Ways of Counter Timer 编码工作方式描述 00工作方式 013 位计数器 01工作方式 116 为计数器 10工作方式 2自动再装入 8 位计数器 11工作方式 3定时器 0 分成两个 8 位计数器 定时器 1 停止计数 在本次设计中 T0 使用的是工作方式 1 作为外部定时器使用 T1 使用的是 工作方式 2 作为波特率发生器使 所以在阐述初值计算的时候其他的工作方式 就不多赘述 控制寄存器控制寄存器 TCON 表表 4 5 TCON 数据位数据位 Table 4 5 The Bits of TCON 温度遥测遥控系统的设计与实现 20 D7D6D5D4D3D2D1D0 TF1TR1TF0TR0IE1IT1IE0IT0 TF1 定时器 1 溢出标志位 当字时器 1 计满溢出时 由硬件使 TF1 置 1 并且申请中断 进入中断服务程序后 由硬件自动清 0 在查询方式下用软 件清 0 TR1 定时器 1 运行控制位 由软件清 0 关闭定时器 1 当 GATE 1 且 INT1 为高电平时 TR1 置 1 启动定时器 1 当 GATE 0 TR1 置 1 启动 定时器 1 TF0 定时器 0 溢出标志 其功能及操作情况同 TF1 TR0 定时器 0 运行控制位 其功能及操作情况同 TR1 IE1 外部中断 1 请求标志 IT1 外部中断 1 触发方式选择位 IE0 外部中断 0 请求标志 IT0 外部中断 0 触发方式选择位 在本次设计中使用到的只有 TR1 和 TR0 两个标志 来控制定时器的开关 3 初值的计算 在定时器模式下 计数器的计数脉冲来自于晶振脉冲的 12 分频信号 即 对机器周期进行计数 本设计选择 12M 晶振 则定时器的计数频率为 1MHZ 假设定时时间为 T 机器周期为 T1 即 12 晶振频率 X 为定时器初值 则 X 2 n T T1 方式 0 n 13 方式 1 时 n 16 方式 2 和方式 3 n 8 在设计中定时器 T0 为工作方式 1 定时 50ms 用作数码管的动态显示周期 所以我们设的初值为 2 16 50000 15535 换算成 16 进制约为 4C00H MOV TL0 00H MOV TH0 4CH 至于 T1 计时器作为波特率的计算在 4 2 2 中阐述 4 1 34 1 3 上下位机串行通信的控制和波特率上下位机串行通信的控制和波特率 计算机的数据传送有并行数据传送和串行数据传送两种方式 串行数据传送的特点是数据传送按位顺序进行 最少只需一根传输线即可 完成 成本低但速度慢 计算机与外界的数据传送大多数是串行的 其传送的 距离可以从几米到几千公里 串行通信又可分为 异步串行通信和同步串行通 信 现在主要讲述本次设计所用到的异步串行通信 青岛科技大学本科毕业设计 论文 21 在异步串行通信中 数据或者字符是一帧一帧传输的 帧的格式是 一帧 由四个部分组成 起始位 数据 奇偶校验位和停止位 图 4 1 串行通信数据结构 Fig4 1 Serial communication data structure 起始位为 0 数据位由 5 8 位数据组成 低位在前 然后是奇偶校验位 可省略 然后是停止位 可以是一位也可以是两位 串行控制寄存器串行控制寄存器 SCON 表表 4 6 SCON 数据位数据位 Table 4 6 The Bits of SCON 1 SM0 SM1 串行口工作方式选择位 表表 4 7 串行工作方式串行工作方式 Table 4 7 Ways of Serial Work SM0SM1工作方式功能描述波特率 000同步移位寄存器方式 用于 I O 扩展 fosc 12 01110 位 UART 8 位数据位 可变 由定时器控制 10211 位 UART 9 位数据位 fosc 32 或 fosc 64 11311 位 UART 9 位数据位 可变 由定时器控制 3 REN 允许接收位 REN 位用于对串行数据的接收进行控制 REN 0 禁止接收 REN 1 允 许接收 该位由软件置位或复位 4 TB8 发送数据位 8 在方式 2 和方式 3 时 TB8 的内容是要发送的第 9 位数据 其值由用户通 过软件设置 在双机通信时 TB8 一般作为奇偶校验位使用 在多机通信中 常以 TB8 位的状态表示主机发送的是地址帧还是数据帧 且一般约定 TB8 0 为数据 帧 TB8 1 为地址帧 5 RB8 接收数据位 8 D7D6D5D4D3D2D1D0 SM0SM1SM2RENTB8RB8TIRI 起 始 位 数 据 位 0 数 据 位 1 数 据 位 奇 偶 位 n 1 起 始 位 停 止 位 停 止 位 帧 位时间 Mark Space 温度遥测遥控系统的设计与实现 22 在方式 2 或方式 3 时 RB8 存放接收到的第 9 位数据 代表着接收数据的 某种特征 与 TB8 的功能类似 故应根据其状态对接收数据进行操作 6 TI 发送中断标志 当方式 0 时 发送完第 8 位数据后 该位由硬件置位 在其它方式下 于 发送停止位之前 由硬件置位 因此 TI 1 表示帧发送结束 其状态既可供 软件查询使用 也可请求中断 TI 位由软件清 0 7 RI 接收中断标志 当方式 0 时 接收完第 8 位数据后 该位由硬件置位 在其它方式下 当 接收到停止位时 该位由硬件置位 因此 RI 1 表示帧接收结束 其状态既 可供软件查询使用 也可以请求中断 RI 位由软件清 0 根据本次设计的需要我们把 SCON 设置为 MOV SCON 01010000B 即 允许接受 定时器 1 作为波特率发生器 数据位为 8 位 同时以询问的方式来 查询是否发送成功 并打开接收中断 中断允许寄存器中断允许寄存器 IE 表表 4 8 IE 数据位数据位 Table 4 8 The Bits of IE D7D6D5D4D3D2D1D0 EAXXESET1EX1ET0EX0 其中 ES 为串行中断允许位 当 ES 0 时 禁止串行中断 当 ES 1 时 允许串行中断 电源控制寄存器电源控制寄存器 PCON 在 C51 单片机中 该寄存器中除最高位之外 其它位都没有定义 最高位 SMOD 是串行口波特率的倍增位 当 SMOD 1 时 串行口波特率加倍 系统 复位时 SMOD 0 波特率的计算波特率的计算 本次设计使用工作方式 1 将详细描述工作方式 1 下的波特率设置和发送 接收 如图 4 2 为工作方式 1 下的数据结构和波特率的计算 图 4 2 工作方式 1 串行通信数据结构 D0 D1 D2 D3 D4 D5 D6 D7 写入SBUF 停止位 TXD TI 中断标志 起始 青岛科技大学本科毕业设计 论文 23 Fig 4 2 Serial communication data structure of work way 1 波特率的计算 溢出率为溢出周期的倒数 所以 波特率 32 2SMOD 25612 f X OSC 当我们需要 2400bitps 的波特率的时候 初值 X 为 X 256 11 0592 10 6 0 1 384 2400 244 F4H 11 0592MHZ 为晶振周期精确值 所以我们装 TH1 TL1 F4H 4 24 2 温度测量模块和显示模块的程序控制温度测量模块和显示模块的程序控制 温度测量模块所实现的功能包括 ADC0809 芯片启动和数码管的动态显示 4 2 14 2 1 ADC0809ADC0809 的工作原理的工作原理 ADC0809 的工作过程的工作过程 首先输入 3 位地址 并使 ALE 1 将地址存入地址锁存器中 此地址经译 码选通 8 路模拟输入之一到比较器 START 上升沿将逐次逼近寄存器复位 下 降沿启动 A D 转换 之后 EOC 输出信号变低 指示转换正在进行 直到 A D 转换完成 EOC 变为高电平 指示 A D 转换结束 结果数据已存入锁存器 这 个信号可用作中断申请 当 OE 输入高电平时 输出三态门打开 转换结果的 数字量输出到数据总线上 转换数据的传送 A D 转换后得到的数据应及时传送 给单片机进行处理 数据传送的关键问题是如何确认 A D 转换的完成 因为只 有确认完成后 才能进行传送 为此可采用下述三种方式 1 定时传送方式 对于一种 A D 转换其来说 转换时间作为一项技术 指标是已知的和固定的 例如 ADC0809 转换时间为 128 s 相当于 6MHz 的 MCS 51 单片机共 64 个机器周期 可据此设计一个延时子程序 A D 转换启动 后即调用此子程序 延迟时间一到 转换肯定已经完成了 接着就可进行数据 传送 2 查询方式 A D 转换芯片由表明转换完成的状态信号 例如 ADC0809 的 EOC 端 因此可以用查询方式 测试 EOC 的状态 即可确认转换 是否完成 并接着进行数据传送 3 中断方式 把表明转换完成的状态信号 EOC 作为中断请求信 号 以中断方式进行数据传送 本次设计使用此种方式 并且设定中断入口为 INT0 温度遥测遥控系统的设计与实现 24 不管使用上述哪种方式 只要一旦确定转换完成 即可通过指令进行数据 传送 首先送出口地址并以信号有效时 OE 信号即有效 把转换数据送上数据 总线 供单片机接受 在本次设计使用中断方式来提高单片机的工作效率 4 2 24 2 2 数码管的显示数码管的显示 数码管要正常显示 就要用驱动电路来驱动数码管的各个段码 从而显示 出我们要的数字 因此根据数码管的驱动方式的不同 可以分为静态式和动态 式两类 在本设计中使用的是数码管的动态显示驱动方式 动态显示驱动 数码管动态显示接口是单片机中应用最为广泛的一种显示 方式之一 动态驱动是将所有数码管的 8 个显示笔划 a b c d e f g dp 的同名端 连在一起 另外为每个数码管的公共极 COM 增加位选通控制电路 位选通由 各自独立的 I O 线控制 当单片机输出字形码时 所有数码管都接收到相同的 字形码 但究竟是那个数码管会显示出字形 取决于单片机对位选通 COM 端 电路的控制 所以我们只要将需要显示的数码管的选通控制打开 该位就显示 出字形 没有选通的数码管就不会亮 通过分时轮流控制各个数码管的的 COM 端 就使各个数码管轮流受控显示 这就是动态驱动 在轮流显示过程中 每 位数码管的点亮时间为 25ms 由于人的视觉暂留现象及发光二极管的余辉效应 尽管实际上各位数码管并非同时点亮 但只要扫描的速度足够快 给人的印象 就是一组稳定的显示数据 不会有闪烁感 动态显示的效果和静态显示是一样 的 能够节省大量的 I O 端口 而且功耗更低 在本次设计中 上下位机全部用定时器 T0 作为计时器 周期为 50ms 并 在 T0 中断子程序中嵌入 25ms 的延时子程序 即个位和十位各显示 25ms 4 34 3 编译和烧录软件编译和烧

温馨提示

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

评论

0/150

提交评论