基于单片机的无线水位测量控制系统(软件) 毕业设计.doc_第1页
基于单片机的无线水位测量控制系统(软件) 毕业设计.doc_第2页
基于单片机的无线水位测量控制系统(软件) 毕业设计.doc_第3页
基于单片机的无线水位测量控制系统(软件) 毕业设计.doc_第4页
基于单片机的无线水位测量控制系统(软件) 毕业设计.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

东华理工大学长江学院东华理工大学长江学院 毕毕 业业 设设 计计 论论 文文 题题 目目 基于单片机的无线水位测量控制系统 软件 基于单片机的无线水位测量控制系统 软件 英文题目英文题目 A Water Level Control System Based on a Singlechip and RF Technology software 二二 零零 零零 九九 年年 五五月月 三十一日三十一日 东华理工大学长江学院毕业设计 论文 摘 要 I 摘 要 在工农业生产以及日常生活应用中 常常会需要对容器中的液位进行自动控制 比如自动控制水箱 水池 水槽 锅炉等容器中的蓄水量 生活中抽水马桶的自动 补水控制 自动电热水器 电开水机的自动进水控制等 虽然各种水位控制的技术 要求不同 精度不同 但基本的控制原理都可以归纳为一般的反馈控制方式 它们的 主要区别在于检测液位的方式 反馈形式 以及控制器上的区别 本设计硬件以 AT89C51 单片机为中心 利用 MPX2050 压力传感器采集水位压力 数据 通过无线射频技术发送数据到单片机上 再利用单片机对原始数据进行处理 得到水位深度值 然后对水位数据进行比较 判断是否超出水位设定的范围 并以 无线电形式发送相对应的控制指令 使水位保持在设定好的范围内 硬件设计中采 用 V F 转换技术的应和用无线射频技术以及水位测量系统的设计方法 减少了设计 的复杂性 软件设计过程中 以水位数据的处理 显示和发出指令为主程序 利用 外部脉冲 通过采用软件定时计数 实现 1s 的脉冲采值 计算出水位的深度 最后 通过对是否超过水位预定的范围 进行发送相应的指令代码 达到水位的控制 关键词 测控系统 单片机 软件 显示 中断 东华理工大学长江学院毕业设计 论文 ABSTRACT II ABSTRACT Industrial and agricultural production as well as in daily life applications the containers often need to carry out automatic control of liquid level For example automatic control of water tanks ponds tanks boilers and other containers of water storage capacity life almost on a daily basis to control the automatic flush toilet automatic electric water heater electric hot water machines such as automatic flow control Although the water level in the control of a variety of different technical requirements the accuracy of different but the basic principle of control can be summed up as the general feedback control method as shown below the main difference between them lies in the way of liquid level detection feedback forms and the controller difference AT89C51 single chip hardware to as the center the use of pressure sensor MPX2050 pressure water level data collected by radio frequency technology to send data to a single chip the re use of single chip processing of the raw data the value of water depth and then the water level data compared to determine whether the water level exceeded the limits set and the form of radio control to send the corresponding command so that the water level remained at a good range of settings Hardware design used in V F conversion technology should be and the use of radio frequency technology as well as the water level measurement system design method to reduce the complexity of the design Software design process to the water level data processing display and give directions of the main program the use of an external pulse count from time to time through the use of software to realize the value of 1s pulse taken to calculate the depth of the water level Finally as to whether the scope of more than a predetermined level and make the appropriate transfer instructions to the water level control Key words monitoring and control system single chip software show interrupt 东华理工大学长江学院毕业设计 论文 目 录 i 目 录 绪论 1 1 系统设计方案和工作原理 3 1 1 设计思路 3 1 2 设计框图 3 2 硬件设计过程 4 2 1 水位采集模块 4 2 2 单片机处理模块 6 2 3 水泵控制模块 7 3 设计接口 8 4 系统软件设计 9 4 1 程序设计思路 9 4 2 主程序模块 9 4 2 1 主程序流程图 10 4 2 2 单片机指令概述 10 4 2 3 主程序代码 15 4 3 程序中断模块 16 4 3 1 中断流程图 16 4 3 2 定时计数器概述 18 4 3 3 中断代码 20 4 4 水位数字显示模式 21 4 4 1 水位数字显示流程图 21 4 4 2 显示程序代码 22 4 5 总程序代码 22 结 论 26 致 谢 27 参考文献 28 东华理工大学长江学院毕业设计 论文 绪论 1 绪论 在我们人类生活和工农业生产过程中 往往要对江 湖 河及水库水位的测量 和控制 以防止防止在出现洪涝和干旱时 做好准备 对水库控制 采取泄洪或截 流等措施 最大限度的减少我们生命和财产损失 但是 在通常情况下 往往需要 测量的水库或江河 都处于十分偏僻的地方 没有基本设施 跟我们工作室往往有 很长的一段距离 常常需要架设上百到近千米的输电和控制线路 不仅十分麻烦 而且费用非常大 给测量和控制带来了极大的不方便 采用无线射频技术使我们更 加的方便快速 而且节省了大笔费用 我们可以利用单片机的无线测量控制系统 实现水位的连续测量和控制 非常方便和实用 九五 期间 中国国家科委已经把 遥感 地理信息系统及全球定位系统技 术综合应用研究 列为 九五 国家科技攻关重中之重项目 至此遥感信息技术已 连续四个五年计划被列入国家优先项目 说明了国家对遥感事业的重视 可以预见 该项目的实施 可以有效地将这一高新技术广泛地应用于国民经济建设的各个方面 使其走上产业化发展的道路 1 推动业务性遥感信息综合服务体系的形成 九五 期间遥感科技攻关的重点是在以农业资源为主体的资源与环境动态信 息服务方面 届时将建立一个国家级的宏观信息服务体系 同时使对水旱灾害为主 的遥感监测与评估系统走向业务化运行 a 国家级基本资源与环境遥感动态信息服务体系的建立 我们将针对全国范围内的基本土地资源与生态环境状况 建立空间型信息系统 形成每年动态更新一次的能力 并在此基础上向国家高层次部门提供以国家农业土 地资源 城市化发展及其动态变化为主的数字图件 其中包括 1 25 万全国分及分 重点区域的土地资源及其生态环境背景图件和数据 重点开发地带和大城市周边地 区的 1 10 万图件和相应的数据库 每年一次 1 25 万比例尺的中国东部耕地与城 镇动态变化图件和数据库 较为完整的全国基本土地资源和生态环境背景数据库 对国家资源热点问题 如耕地动态变化 城市化等每年提供一次专题报告等 按计 划 1999 年以前我们将建立网络型国家级信息服务体系 提供相应的资源环境信息 及辅助决策信息 保证系统连续稳定地运行 b 重大自然灾害监测与评估运行系统的完善 以水旱灾害监测与评估为重点的运行性综合监测与评估业务系统将于 1999 年建 成并投入相关业务部门使用 使之具备定期发布全国旱情 随时监测评估洪涝灾害 和重大自然灾害的应急反应能力 该系统具有以下功能 对突发性水灾 在系统进 入状态后 2 天内提供受淹范围 各类土地面积等信息 一周之内提供包括受灾人口 受淹房屋等信息的详细报告 对重点地区 实施每天一报淹没地区及面积的信息服 东华理工大学长江学院毕业设计 论文 系统设计方案和工作原理 2 务 在危机时刻 提供实时灾害现场图像显示和注记 从 1998 年开始 每 10 天报 一次全国的旱情数据 成灾地区对农田干旱状况每 5 天上报一次灾情数据 对重大 森林火灾和地震等自然灾害进行监测并及时提供相关信息 从而最大限度地减轻自 然灾害所造成的损失 在工农业生产以及日常生活应用中 常常会需要对容器中的液位进行自动控制 比如自动控制水箱 水池 水槽 锅炉等容器中的蓄水量 生活中抽水马桶的自动 补水控制 自动电热水器 电开水机的自动进水控制等 虽然各种水位控制的技术 要求不同 精度不同 但基本的控制原理都可以归纳为一般的反馈控制方式 如下 图所示 它们的主要区别在于检测液位的方式 反馈形式 以及控制器上的区别 1 机电控制式水位控制 2 全机械结构的水位控制方式 3 最简单的自动水位控制装置 现今社会 自动化装置无所不在 在控制技术需求的推动下 控制理论本身也 取得了显著的进步 水塔水位的监测和控制 再也不需要人工进行操作 实践证明 自动化操作 具有不可替代的应用价值 2 东华理工大学长江学院毕业设计 论文 系统设计方案和工作原理 3 1 系统设计方案和工作原理 1 1 设计思路 根据设计要求 要实现水位数据采集 并对水位采取控制 一般有以下两种方案 方案一 利用 A D 转换技术 将压力传感器的电压量转换成数字量 然后利用 无线发射到单片机上 进行数据处理 方案二 利用 V F 转换技术 将压力传感器的电压量转换成频率的形式发射出 去 然后单片机接收到数据信号 利用频率计数 将频率算出 再通过单片机处理 间接得到水位值 相对而言 方案二在设备上比较少 既可以提高测量的精度 又可以简化电路 所以采用方案二比较好 1 2 设计框图 本设计由三部分组成 水位数据采集模块 水位数据显示模块 单片机控制处 理模块 水泵控制模块 如图 1 1 所示 2 测量水位发送模块 51 单 片 机 数据 采集 水泵控制 模 块 水位 显示 设置 初始值 图 1 1 总设计框架图 东华理工大学长江学院毕业设计 论文 硬件设计过程 4 2 硬件设计过程 2 1 水位采集模块 在图 1 2 中 压力传感器采用 MPX2050 型带温度补偿和校正功能的压力传感器 它的压力测量范围为 0 50Kpa 满量程输出电压为 40mV 压力传感器输出的电压值 通过水位测量变送电路 转换成 0 500Hz 的频率信号加到 ED5026 编码器的 D0 端 通过编码后由 MS303S 射频发射器发射水位的测量信号 ED5026 是 18 脚 CMOS 大规 模数字编码专用集成电路 有 8 12 位编码地址 工作电压 2 6V 静态电流为 1mA MS303S 是射频发射器 外形结构为 35mm x 12mm x 8mm 的单列电路 有 5 个 引脚 工作电压 9 12V 输出功率为 20mW 发射距离为 200 米左右 如果增加天线 可以增加发射的距离 4 7 在本设计方案中 在水池的底部安装法兰并连接一根细的弯管 在弯管的顶部 安装 MPX2050 压力传感器 在细的弯管中存在空气 当水池中有水时 被压缩的空 气作用到 MX2050 压力传感器上 它的输出端就有电压值输出 再通过 OP07 运算放 大器和 LM331 V F 转换 就可以得到 0 500Hz 频率信号 见图 2 2 所示 水位测量变送电路 水位测量 传感器 编码并发射 图 2 1 数据采集原理图 东华理工大学长江学院毕业设计 论文 硬件设计过程 5 图 2 2 数据变送电路 在图 2 2 中 MPX2050 压力传感器根据水位的高低 输出 0 40mV 的电压 A1 A3 是高性能 OP07 运算放大器 A4 为 LM331 V F 转换器 由运算放大器 A1 构成电压 跟随器 以提高电路的输入阻抗 再由 A2 A3 构成二级反相放大 A2 的放大倍数 为 25 A3 的放大倍数为 5 共放大 125 倍 输出 0 5V 的水位测量电压 0 5V 的电 压输入到 V F 转换电路 LM331 变换成 0 500Hz 的频率信号由 3 脚传送到 ED5026 编 码器 由 MS303S 发射出去 按照图示的参数 LM331 V F 变换器的输出频率为 100Hz V 其中 R6 R7 应采用 高精度的金属膜电阻 C2 C3 采用 CBB22 的电容 F Vi Rs 2 09 R6 C2 R7 Vi LM331 的输入电压 Rs 可以调节输出的频率 WR 100K 调节输出的 满度 LM331 的输出频率信号通过无线传输 添加到 AT89C51 单片机的 T0 计数端 完 成测量值的采样工作 东华理工大学长江学院毕业设计 论文 硬件设计过程 6 2 2 单片机处理模块 单 片 机 ED5026 编码器 MS303S 发射器 ED5027 编码器 MS303R 接收器 水位显示 发射天线 接收天线 图 2 3 单片机处理原理 如图 2 3 所示 89C51 单片机通过操作键盘 输入控制水位的下限 上限的值 和水位的测量时间间隔 并存储在单片机内存中 单片机通过 MS303R 无线接收器 ED5027 解码器得到 0 500Hz 的水位测量信号后 通过单片机内部的程序 计算出水 位的高度 在显示器上显示水位的同时 把测量值与水位的下 上限的数值进行比 较 当水位的测量等于或小于水位的下限水池值时 单片机输出一个 1 电平信号给 ED5026 编码器 通过 MS303S 发射信号去启动水泵工作 让水位上升 当水位的测 量等于或大于水位的上限水池值时 单片机输出一个 1 电平信号给 ED5026 编码器 通过 MS303S 发射信号去停止水泵工作 让水位上升 保证水位控制在一个合适的 高度 8 该系统设计需用单片机的一个中断 一个定时器 一个计数器 这里选用 AT89C51 其包含 2 个 16 位定时 计数器和 5 个中断 当 MCS 51 内部的定时 计数 器选定为定时模式时 计数输入信号是内部时钟脉冲 每个机器周期产生一个脉冲 使计数器加 l 一个机器周期为外部时钟振荡频率的 1 12 采用 12 MHz 的晶体振 东华理工大学长江学院毕业设计 论文 设计接口 7 荡器 机器周期为 1 s 当内部定时 计数器被选定为计数模式时计数脉冲来自外 部输入引脚 P3 4 T0 或 P3 5 T1 输入信号产生由 1 到 O 的负跳变时 计数器加 1 由于一次负跳变要用两个机器周期 所以选用 12MHz 晶体振荡器时 为确保电平 在变化之前被采样一次 外部计数输入信号不能超过 500 kHz 16 位定时 计数器 的最高计数值为 65 535 在这里已满足设计需要 系统设置 AT89C51 的 T0 为定时 器 T1 为计数器 当单片机接收到中断信号时 定时 计数同时开始 定时结束 计数也随之结束 再利用单片机的运算功能将计数值除以定时值 就能得到所测信 号的频率 通过频率与电压 电压与所测压力的线性关系 即可得到相应的压力值 2 3 水泵控制模块 图 2 4 是无线水泵水位控制框图 MS303S 是射频接收器 外形结构为 52mm x 12mm x 8mm 的单列电路 工作电压为 6 12V 工作电流为 4mA 是与 MS303R 配对 的无线发射组件 它接收到控制装置发来的无线电信号后 输入到 ED5027 解码器 ED5027 解码器是 18 脚的 CMOS 器件 与 VD5026 编码器可以配合使用 如果控制端 的地址编码与 ED5027 解码器的编码地址相同 就输出一个高电平 去控制水泵的控 制电路 用于水泵的启动和停止 信号接收器 解码器水泵控制电路 水泵 图 2 4 水泵控制原理 东华理工大学长江学院毕业设计 论文 设计接口 8 3 设计接口 f 2 g 3 e 4 d 5 c 8 DP 7 b 9 a 10 f 2 g 3 e 4 d 5 c 8 DP 7 b 9 a 10 D2 VCC VCC EA VPP 31 XTAL1 19 XTAL2 18 RST 9 P3 7 RD 17 P3 6 WR 16 P3 2 INT0 12 P3 3 INT1 13 P3 4 T0 14 P3 5 T1 15 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 AD0 P0 0 39 AD1 P0 1 38 AD2 P0 2 37 AD3 P0 3 36 AD4 P0 4 35 AD5 P0 5 34 AD6 P0 6 33 AD7 P0 7 32 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 TXD P3 1 11 RXD P3 0 10 GND 20 VCC 40 U AT89C51 A0 A1 A2 A3 A4 A5 A6 A7 VSSD0 D1 D2 D3 入入入入 OSC1 OSC2 入入vt VDD VD5027 5027 A0 A1 A2 A3 A4 A5 A6 A7 VSSA8 A9 A10 A11 TE OSC1 OSC2 入入入入 VDD VD5026 VCC GND VCC 12 Y XTAL GND 1 入入 2 OUT VCC GNG MS303R GND VCC 1 IN 2 入入 VCC GNG MS303S VCC GND GND VCC GND GND VCC p2 0 p2 1 p2 2 p2 3 p2 4 p2 5 p2 6 p2 7 p2 0 p2 1 p2 2 p2 3 p2 4 p2 5 p2 6 p2 7 p1 0 p1 1 p1 2 p1 3 p1 4 p1 5 p1 6 p1 7 p1 0 p1 1 p1 2 p1 3 p1 4 p1 5 p1 6 p1 7 A0 A1 A2 A3 A4 A5 A6 A7 VSSD0 D1 D2 D3 入入入入 OSC1 OSC2 入入vt VDD VD5027 5027 1 入入 2 OUT VCC GNG MS303R GND VCC 1T C1 Q T入入入 220V M VCC GND VCC GND 1 2 3 4 56 7 8 lm331 GNG VCC MPX2050 10V GND 8 5 2 3 4 6 7 A1 8 5 2 3 4 6 7 1 A2 OP07 8 5 2 3 4 6 7 1 A3 OP07 R1 R2 R3 R4 47 100K R7 22K 100K GND GND C1 GND 20K RS GND C3 1 F C3 GND 100K 10 10 A0 A1 A2 A3 A4 A5 A6 A7 VSSA8 A9 A10 A11 TE OSC1 OSC2 入入入入 VDD VD5026 GND 15 1 IN 2 OUT VCC GNG MS303S VCC GND R6 C2 GND 10 VCC VCC VCC VCC GND GND GND VCC GND GND 东华理工大学长江学院毕业设计 论文 系统软件设计 9 4 系统软件设计 软件设计采用模块化设计方法 按系统的功能分为主程序模块 数据采集模块 显示模块 中断模块 4 1 程序设计思路 计算机完成某一具体工作任务 必须按顺序执行一条条指令 这种按工作要求 编排指令序列的过程称为程序设计 通常把用汇编语言编写的程序称为汇编源程序 而把可在计算机上直接运行的 机器语言称之为目标程序 由汇编语言程序 翻译 为机器语言目标程序的过程称 之为 汇编 用汇编语言编写一个程序的过程大致分为 3 步 a 确定计算方法 定出运算步骤和顺序 把运算过程画成框图 b 确定数据 包括工作单元的数量 分配存放单元 c 按所使用计算机的指令系统 把确定的运算顺序 框图 写成汇编语言程序 常用的程序设计方法 1 顺序结构程序 顺序结构程序是一种最简单 最基本的程序 按照程序编写的顺序依次执行 编写这类程序主要应注意正确地选择指令 提高程序的执行效率 2 分支程序 分支结构程序可根据程序要求无条件或有条件地改变程序执行的顺序 选择程 序流向 编写这类结构的程序主要是为了正确使用转换指令 既无条件转移 条件 转移和散转 3 循环结构程序 在程序设计中 常遇到反复执行某一段程序的情况 此时可用循环程序结构 这有助于缩短程序 节省存储空间 子程序设计 在同一个程序中 往往有许多地方都需要执行同样的一项任务 而该任务又并 非规矩情况 不能用循环程序来实现 这时 可以对这项任务独立的进行编写 形 成一个子程序中需要执行该任务时就调用子程序 执行完该任务后 又返回主程序 东华理工大学长江学院毕业设计 论文 系统软件设计 10 4 2 主程序模块 根据设计要求 设置以水位数据的显示 水位数据的判断 发出指令为一个循 环主程序 4 2 1 主程序流程图 确定主程序 可以以显示数据 判断数据为主程序 如图 4 1 所示 4 2 2 单片机指令概述 一个单片机所需执行指令的集合即为单片机的指令系统 单片机使用的机器语 言 汇编语言及高级语言 但不管使用是何种语言 最终还是要 翻译 成为机器 码 单片机才能执行之 现在有很多半导体厂商都推出了自己的单片机 单片机种 类繁多 品种数不胜数 值得注意的是不同的单片机它们的指令系统不一定相同 或不完全相同 但不管是使用机器语言 汇编语言还是高级语言都是使用指令编写 开始 设置初始值 取水位数据 显示数据 最大值 最小值 等待 启动抽水机关闭抽水机 N Y Y 图 4 1 主程序流程图 N 东华理工大学长江学院毕业设计 论文 系统软件设计 11 程序的 所谓机器语言即指令的二进制编码 而汇编语言则是指令的表示符号 在指令 的表达式上也不会直接使用二进制机器码 最常用的是十六进制的形式 但单片机 并不能直接执行汇编语言和高级语言 都必须通过汇编器 翻译 成为二进制机器 码方能执行 但如果直接使用二进制来编写程序 那将十分不便 也很难记忆和识 别 不易编写 难于辨读 极易出错 同时出错了也相当难查找 所以现在基本上 都不会直接使用机器语言来编写单片机的程序 最好的办法就是使用易于阅读和辨 认的指令符号来代替机器码 常称这些符号为助记符 用助记符的形式表示的单片 机指令就是汇编语言 为便于记忆和阅读 助记符号通常都使用易于理解的英文单 词和拼音字母来表示 MCS 51 共有 111 条指令 可分为 5 类 1 数据传送类指令 共 29 条 2 算数运算类指令 共 24 条 3 逻辑运算及移位类指令 共 24 条 4 控制转移类指令 共 17 条 5 布尔变量操作类指令 共 17 条 Rn 当前选中的寄存器区的 8 个工作寄存器 R0 R7 n 0 7 Ri 当前选中的寄存器区中可作为地址寄存器的两个寄存器 R0 和 R1 i 0 1 direct 内部数据存储单元的 8 位地址 包含 0 127 255 内部存储单元地址 和特殊功能寄存地址 data 指令中的 8 位常数 data16 指令中的 16 位常数 addr16 用于 LCALL 和 LJMP 指令中的 16 目的地地址 目的地址的空间为 64kB 程序存储器地址 addr11 用于 ACALL 和 AJMP 指令中的 11 目的地地址 目的地址必须放在与下 条指令第一个字节同一个 2kB 程序存储器空间之中 rel 8 位带符号的偏移字节 用于所有的条件转移和 SJMP 等指令中 偏移字 节对于下条指令的第一个字节开始的 128 127 范围内 间接寄存器寻址或基址寄存器的前缀 为操作的前缀 声明对该位操作书取反 DPTR 数据指针 bit 内部 RAM 和特殊功能寄存器的直接寻址位 A 累加器 B 累加器 B 用于乘法和除法指令中 东华理工大学长江学院毕业设计 论文 系统软件设计 12 C 进位标志位 x 某地址单元中的内容 x 由 X 寻址单元中的内容 MCS 51 的寻址方式 1 直接寻址 2 寄存器寻址 3 寄存器间接寻址 4 立即寻址 5 变址寻址 6 位寻址 7 相对寻址 MCS 51 数据传送指令 数据传送指令共有 29 条 数据传送指令一般的操作是把源操作数传送到目的操 作数 指令执行完成后 源操作数不变 目的操作数等于源操作数 如果要求在进 行数据传送时 目的操作数不丢失 则不能用直接传送指令 而采用交换型的数据 传送指令 数据传送指令不影响标志 C AC 和 OV 但可能会对奇偶标志 P 有影响 1 以累加器 A 为目的操作数类指令 4 条 这 4 条指令的作用是把源操作数指向的内容送到累加器 A 有直接 立即数 寄存器和寄存器间接寻址方式 MOV A data data A 直接单元地址中的内容送到累加器 A MOV A data data A 立即数送到累加器 A 中 MOV A Rn Rn A Rn 中的内容送到累加器 A 中 MOV A Ri Ri A Ri 内容指向的地址单元中的内容送到累加器 A 2 以寄存器 Rn 为目的操作数的指令 3 条 这 3 条指令的功能是把源操作数指定的内容送到所选定的工作寄存器 Rn 中 有 直接 立即和寄存器寻址方式 MOV Rn data data Rn 直接寻址单元中的内容送到寄存器 Rn 中 MOV Rn data data Rn 立即数直接送到寄存器 Rn 中 MOV Rn A A Rn 累加器 A 中的内容送到寄存器 Rn 中 3 以直接地址为目的操作数的指令 5 条 这组指令的功能是把源操作数指定的内容送到由直接地址 data 所选定的片内 RAM 中 有直接 立即 寄存器和寄存器间接 4 种寻址方式 MOV data data data data 直接地址单元中的内容送到直接地址单 元 MOV data data data data 立即数送到直接地址单元 东华理工大学长江学院毕业设计 论文 系统软件设计 13 MOV data A A data 累加器 A 中的内容送到直接地址单元 MOV data Rn Rn data 寄存器 Rn 中的内容送到直接地址单元 MOV data Ri Ri data 寄存器 Ri 中的内容指定的地址单元中数 据送到直接地址单元 4 以间接地址为目的操作数的指令 3 条 这组指令的功能是把源操作数指定的内容送到以 Ri 中的内容为地址的片内 RAM 中 有直接 立即和寄存器 3 种寻址方式 MOV Ri data data Ri 直接地址单元中的内容送到以 Ri 中的 内容为地址的 RAM 单元 MOV Ri data data Ri 立即数送到以 Ri 中的内容为地址的 RAM 单元 MOV Ri A A Ri 累加器 A 中的内容送到以 Ri 中的内容为地址的 RAM 单元 5 查表指令 2 条 这组指令的功能是对存放于程序存储器中的数据表格进行查找传送 使用变址 寻址方式 MOVC A A DPTR A DPTR A 表格地址单元中的内容送到累 加器 A 中 MOVC A A PC PC 1 A A PC A 表格地址单元 中的内容送到累加器 A 中 6 累加器 A 与片外数据存储器 RAM 传送指令 4 条 这 4 条指令的作用是累加器 A 与片外 RAM 间的数据传送 使用寄存器寻址方式 MOVX DPTR A A DPTR 累加器中的内容送到数据指针指向片外 RAM 地址中 MOVX A DPTR DPTR A 数据指针指向片外 RAM 地址中的内容送 到累加器 A 中 MOVX A Ri Ri A 寄存器 Ri 指向片外 RAM 地址中的内容送到 累加器 A 中 MOVX Ri A A Ri 累加器中的内容送到寄存器 Ri 指向片外 RAM 地址中 7 堆栈操作类指令 2 条 这 4 类指令的作用是把直接寻址单元的内容传送到堆栈指针 SP 所指的单元中 以及把 SP 所指单元的内容送到直接寻址单元中 这类指令只有两条 下述的第一条 常称为入栈操作指令 第二条称为出栈操作指令 需要指出的是 单片机开机复位 东华理工大学长江学院毕业设计 论文 系统软件设计 14 后 SP 默认为 07H 但一般都需要重新赋值 设置新的 SP 首址 入栈的第一个 数据必须存放于 SP 1 所指存储单元 故实际的堆栈底为 SP 1 所指的存储单元 PUSH data SP 1 SP data SP 堆栈指针首先加 1 直接寻 址单元中的数据送到堆栈指针 SP 所指的单元中 POP data SP data SP 1 SP 堆栈指针 SP 所指的单元数据 送到直接寻址单元中 堆栈指针 SP 再进行减 1 操作 MCS 51 算术运算指令 算术运算指令共有 24 条 算术运算主要是执行加 减 乘 除法四则运算 另 外 MCS 51 指令系统中有相当一部分是进行加 减 1 操作 BCD 码的运算和调整 我 们都归类为运算指令 虽然 MCS 51 单片机的算术逻辑单元 ALU 仅能对 8 位无符号整 数进行运算 但利用进位标志 C 则可进行多字节无符号整数的运算 同时利用溢 出标志 还可以对带符号数进行补码运算 需要指出的是 除加 减 1 指令外 这 类指令大多数都会对 PSW 程序状态字 有影响 1 加法指令 4 条 2 带进位加法指令 4 条 3 带借位减法指令 4 条 4 乘法指令 1 条 5 除法指令 1 条 6 加 1 指令 5 条 7 减 1 指令 4 条 8 十进制调整指令 1 条 在进行 BCD 码运算时 这条指令总是跟在 ADD 或 ADDC 指令之后 其功能是将执 行加法运算后存于累加器 A 中的结果进行调整和修正 MCS 51 逻辑运算及移位指令 逻辑运算和移位指令共有 25 条 有与 或 异或 求反 左右移位 清 0 等逻辑操 作 有直接 寄存器和寄存器间址等寻址方式 这类指令一般不影响程序状态字 PSW 标志 MCS 51 控制转移指令 控制转移指令用于控制程序的流向 所控制的范围即为程序存储器区间 MCS 51 系 列单片机的控制转移指令相对丰富 有可对 64kB 程序空间地址单元进行访问的长调 用 长转移指令 也有可对 2kB 字节进行访问的绝对调用和绝对转移指令 还有在 一页范围内短相对转移及其它无条件转移指令 这些指令的执行一般都不会对标志 位有影响 1 无条件转移指令 4 条 这组指令执行完后 程序就会无条件转移到指令所指向的地址上去 长转移指令访 东华理工大学长江学院毕业设计 论文 系统软件设计 15 问的程序存储器空间为 16 地址 64kB 绝对转移指令访问的程序存储器空间为 11 位 地址 2kB 空间 2 条件转移指令 8 条 程序可利用这组丰富的指令根据当前的条件进行判断 看是否满足某种特定的 条件 从而控制程序的转向 3 子程序调用指令 1 条 子程序是为了便于程序编写 减少那些需反复执行的程序占用多余的地址空间 而引入的程序分支 从而有了主程序和子程序的概念 需要反复执行的一些程序 我们在编程时一般都把它们编写成子程序 当需要用它们时 就用一个调用命令使 程序按调用的地址去执行 这就需要子程序的调用指令和返回指令 4 空操作指令 1 条 这条指令将累加器中的内容清 0 4 2 3 主程序代码 程序设定 T0 为定时器 基本定时时基为 100 T1 为计数器 设置为 16 位数计数器 运用内部中断 0 可保证 T0 定时满 1 后就读取此时计数器值 以计算 水位值 可以使 T1 T0 均工作于方式 1 并在 P0 口送小数的字型码 在 P2 口送整 数的字型码 实现数值的显示 MAIN MOV TMOD 40H 初始化 MOV TH0 5BH 设置计时值 MOV TL0 20H MOV TH1 00H 设置计数值 MOV TL1 00H MOV R0 10 MOV A 00H 清空累加器 MOV 4000H 05H 存放最大值 5 米 MOV 4001H 01H 存放最小值 1 米 MOV 3000H 00H 清空显示数据 ACALL DATE 调用显示程序 MOV A 3000H 取水位数据 SUBB A 4000H 与最大值比较 JC MIN 当小于最大值 再与最小值比较 SET P1 1 发送高电平控制水泵 东华理工大学长江学院毕业设计 论文 系统软件设计 16 CLR P1 0 开启发射装置 ACALL D1MS 延时 CLR P1 1 停止发射高电平 SET P1 0 关闭发射装置 AJUMP HEAR 等待 1 秒中断 MIN SUB A 4001H 与最小值比较 JC HEAR 大于最小值 等待采集数据 SET P1 1 发送高电平控制水泵 CLR P1 0 开启发射装置 ACALL D1MS 延时 CLR P1 1 停止发射高电平 SET P1 0 关闭发射装置 4 3 程序中断模块 由于该设计是利用 V F 转换技术 是将水位原始值转换为频率信号 因此单片 机在接收信号时 是利用定时 计数原理 将频率值记录到存储空间中去的 所以 中断模式是利用外部 T0 中断 判断是否到了 1s 然后将 1s 的中断数存储到指定空 间去 在该模块设计中要用到 1 个定时器和 1 个计时器 再一个中断服务 4 3 1 中断流程图 设计中断时 可以通过循环 10 次 每次定时 100 秒来实现 1s 的中断 然 后进行数据处理 再进行保存 如图 4 2 所示 东华理工大学长江学院毕业设计 论文 系统软件设计 17 关中断 保护现场 到 1 秒 停止计数 保存数值 将 0 500HZ 转换 对应的 0 50 分米 数值清零 设置计时值 开中断 恢复现场 返回 N Y 图 4 2 中断流程图 东华理工大学长江学院毕业设计 论文 系统软件设计 18 4 3 2 定时计数器概述 实质是计数器 脉冲每一次下降沿 计数寄存器数值将加 1 计数的脉冲如果 来源于单片机内部的晶振 由于其周期极为准确 这时称为定时器 计数的脉冲如果 来源于单片机外部的引脚 由于其周期一般不准确 这时称为计数器 定时 计数器方式寄存器 TMOD 1 M1 和 M0 方式选择位 2 c T 功能选择位 时 设置为定时器工作方式 时 设置为计数器工作 方式 3 GATE 门控位 当 GATE 0 时 软件控制位 TR0 或 TR1 置 1 即可启动定时器 当 GATE 1 时 软件控制位 TR0 或 TR1 须置 1 同时还须 P3 2 或 P3 3 为高电 平方可启动定时器 即允许外中断 启动定时器 定时器 计数器控制寄存器 TCON 1 TCON 7 TF1 定时器 1 溢出标志位 当定时器 1 计满数产生溢出时 由硬 件自动置 TF1 1 在中断允许时 向 CPU 发出定时器 1 的中断请求 进入中断服务 程序后 由硬件自动清 0 在中断屏蔽时 TF1 可作查询测试用 此时只能由软件清 0 2 TCON 6 TR1 定时器 1 运行控制位 由软件置 1 或清 0 来启动或关闭定时 器 1 当 GATE 1 且为高电平时 TR1 置 1 启动定时器 1 当 GATE 0 时 TR1 置 1 即可启动定时器 1 3 TCON 5 TF0 定时器 0 溢出标志位 其功能及操作情况同 TF1 4 TCON 4 TR0 定时器 0 运行控制位 其功能及操作情况同 TR1 5 TCON 3 IE1 外部中断 1 请求标志位 6 TCON 2 IT1 外部中断 1 触发方式选择位 7 TCON 1 IE0 外部中断 0 请求标志位 8 TCON 0 IT0 外部中断 0 触发方式选择位 定时 计数器的工作方式 1 方式 0 方式 0 构成一个 13 位定时 计数器 图 4 3 是定时器 0 在方式 0 时的逻辑电路 结构 定时器 1 的结构和操作与定时器 0 完全相同 振荡器 12 C T 0 C T 1 控制 T0 TR0 GATE 1 1 INT0 中断 TL0 5位 TH0 8位 TF0 东华理工大学长江学院毕业设计 论文 系统软件设计 19 图 4 3 2 方式 1 定时器工作于方式 1 时 由图可知 方式 1 构成一个 16 位定时 计数器 其结构与操作几乎完全与方式 0 相同 惟一差别是二者计数位数不同 3 方式 2 定时 计数器工作于方式 2 时 由图可知 方式 2 中 16 位加法计数器的 TH0 和 TL0 具有不同功能 其中 TL0 是 8 位计数器 TH0 是重置初值的 8 位缓冲器 4 方式 3 定时 计数器工作于方式 3 时 其逻辑结构图如图 4 4 所示 图 4 4 编程和使用 1 计数器初值的计算 把计数器计满为零所需要的计数值设定为 C 计数初值设定为 TC 由此可得到 公式 TC M C 式中 M 为计数器模值 该值和计数器工作方式有关 在方式 0 时 M 为 213 在方式 1 时 M 为 216 在方式 2 和方式 3 时 M 为 28 2 定时器初值的计算 在定时器模式下 计数器由单片机主脉冲经 12 分频后计数 因此 定时器定时 时间 T 的公式 T M TC T 计数 上式也可写成 TC M T T 计数 式中 M 为模 值 和定时器的工作方式有关 T 计数是单片机振荡周期 TCLK 的 12 倍 TC 为定时 器的定时初值 振荡器 12 控制 T0 TR0 GATE 1 1 INT0 中断TF0 TL0 8位 12 1 fosc 中断TF1 TH0 8位 TR1 C T 0 C T 1 12 1 fosc 12 1 fosc 东华理工大学长江学院毕业设计 论文 系统软件设计 20 4 3 3 中断代码 SERVER PUSH A PUSH B 保护现场 CLR TR0 CLR ET0 关中断 DEC R0 JNZ R0 T2 是否到了 1S 否则跳到 T2 CLR TR1 CLR ET1 停止计数 MOV A TH1 将高八位的计数值存放 A 中 MOV B TL1 将低八位的计数值存放 B 中 MOV 5001H B CZ A F0 判断是否大于 256 MOV 5000H 25 F0 MOV B 10 MOV A 5001H DIV AB ADDC A 5000H MOV 3000H A 存储水位数值 MOV TL1 00H MOV TH1 00H 计数值清零 SETB TR1 SETB ET1 启动计数 T2 MOV TH0 5BH 设置计时值 MOV TL0 20H SETB TR0 SETB ET0 开计时中断 POP A POP B RETI 转到显示程序 东华理工大学长江学院毕业设计 论文 系统软件设计 21 4 4 水位数字显示模式 对于单片机来说 不能直接显示带小数的数字 要将带小数的数值处理后 通 过 P0 口向 LED 数码管传送数值显示代码 从而实现数值在数码管上的显示 实现数值的显示 可以利用 LED 数码管的静态显示方法 通过单片机的 P0 口传 输小数数值的代码 实现小数数值在 LED 数码管的显示 通过单片机 P2 口传输整数 数值的编码 实现整数数值在 LED 数码管的显示 4 4 1 水位数字显示流程图 取原始数据 处理原始数据 转换为水位实际 值 保存数值 取小数部分 显示小数值 取整数部分 显示整数值 加上小数点 图 4 5 显示流程图 东华理工大学长江学院毕业设计 论文 系统软件设计 22 4 4 2 显示程序代码 DATE2 MOV A 3000H 取水位数据 MOV B 10 分离整数和小数值 DIV AB 整数放 A 小数放 B ACALL CHAIAO ADD A 80H 加小数点代码 MOV P2 A 显示整数是数值 MOV A B 取小数值 ACALL CHABIAO 调用查表 MOV P0 A 显示小数数值 RET 返回 TABLE DB 3FH 06H 5BH 4FH 66H 0 1 2 3 4 DB 6DH 7DH 07H 7FH 6FH 5 6 7 8 9 CHABIAO PUSH DPH 保护现场 PUSH DPL MOV DPTR TABLE MOVC A A DPTR POP DPL POP DPH 恢复现场 RET 4 5 总程序代码 程序设定 T0 为定时器 基本定时时基为 100 T1 为计数器 运用内部中 断 0 可保证 T0 定时满 1 后就读取此时计数器值 以计算气压值 如使 T1 T0 均 工作于方式 1 并在 P0 口送字型码 同时可用 P2 0 P2 1 做位选线 17 18 主程序 ORG 1000H AJUMP MAIN 转跳到主程序 ORG 00BH 中断地址 AJUMP SERVER 中断调用 MAIN MOV TMOD 40H 初始化 MOV TH0 5BH 设置计时值 东华理工大学长江学院毕业设计 论文 系统软件设计 23 MOV TL0 20H MOV TH1 00H 设置计数值 MOV

温馨提示

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

评论

0/150

提交评论