单片机技术及应用--第十一章 单片机应用系统设计.ppt_第1页
单片机技术及应用--第十一章 单片机应用系统设计.ppt_第2页
单片机技术及应用--第十一章 单片机应用系统设计.ppt_第3页
单片机技术及应用--第十一章 单片机应用系统设计.ppt_第4页
单片机技术及应用--第十一章 单片机应用系统设计.ppt_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

单片机技术及应用 第11章单片机应用系统设计 单片机技术及应用 教学提示本章重 难点在于以单片机为核心的应用系统软 硬件开发过程 即 根据所设计的两个单片机应用系统实例 了解MCS 51单片机系统的应用 根据具体系统的测控要求 设计硬件 元器件选择 原理图设计 根据具体系统的测控要求 设计软件 程序的编写方法 步骤及格式 教学目标 了解单片机应用系统的设计方法 了解单片机如何去开发系统 通过设计两个实例 掌握单片机项目设计中的一些方法和技巧 掌握单片机系统开发的步骤 简单实用的软硬件设计 单片机技术及应用 11 1单片机应用系统的基本结构单片机应用系统是为完成某项任务而研制开发的用户系统 是以单片机为核心 配以外围电路和软件 能实现设定任务 功能的实际应用系统 前面介绍了单片机的基本组成 功能及其扩展电路 掌握了单片机的软件 硬件资源的组织和使用 此外 一个实际的单片机应用系统还涉及很多复杂的内容与问题 如涉及多种类型的接口电路 软件设计 软件与硬件的结合 如何选择最优方案等内容 本章将对单片机应用系统的软硬件设计 开发和调试等方面作介绍 以便用户能初步掌握单片机应用系统的设计 单片机技术及应用 11 1 1单片机应用系统的结构 1 单片机应用系统的硬件结构单片机主要用于工业测控 典型的单片机应用系统应包括单片机系统和被控对象 如图11 1所示 单片机系统包括通常的存储器扩展 显示器键盘接口 被控对象与单片机之间包括测控输入通道和伺服控制输出通道 另外还包括相应的专用功能接口芯片 2 单片机应用系统在单片机应用系统中 单片机是整个系统的核心 对整个系统的信息输入 处理 输出进行控制 与单片机配套的有相应的复位电路 时钟电路以及扩展的存储器和I O接口 使单片机应用系统能够顺利运行 图11 1典型单片机应用系统结构 3 输入通道和输出通道单片机系统输入通道用于检测输入信息 来自被控对象的信息有多种 按物理量的特征可分为模拟量 数字量和开关量3种 对于数字量的采集 输入比较简单 它们可直接作为计数输入 测试输入 I O口输入或中断源输入进行事件计数 定时计数等 实现脉冲的频率 周期 相位及计数测量 对于开关量的采集 一般通过I O口线直接输入 但一般被控对象都是交变电流 交变电压 大电流系统 而单片机属于数字弱电系统 因此在数字量和开关量采集通道中要用隔离器进行隔离 如光耦合器件 对于模拟量的采集相对于数字量来说要复杂一些 被控对象的模拟信号有电信号 如电压 电流 电磁量等 也有非电量信号 如温度 湿度 压力 流量 位移量等 对于非电信号 一般都要通过传感器转换成电信号 然后再通过隔离放大 滤波 采样保持 最后再通过A D转换送给单片机 伺服控制输出通道用于对控制对象进行控制 作用于控制对象的控制信号通常有开关量控制信号和模拟量控制信号两种 开关量控制信号的输出比较简单 只需采用隔离器件进行隔离和电平转换 模拟控制信号输出需要进行A D转换 隔离放大和隔离驱动等 单片机技术与应用实践 11 1 2单片机应用系统设计的基本过程 对于单片机系统的设计 由于控制对象不同 其硬件和软件结构有很大差异 但系统设计的基本内容和主要步骤是相同的 在设计单片机控制系统时 一般需要考虑以下几个方面 1 确定系统设计的任务在进行系统设计之前 首先必须进行设计方案的调研 包括查找资料 进行调查 分析研究 要充分了解委托研制单位提出的技术要求 使用的环境状况及技术水平 明确任务 确定系统的技术指标 包括系统必须具有哪些功能 这是系统设计的依据和出发点 它将贯穿于系统设计的全过程 也是整个研制工作成败 好坏的关键 因此必须认真做好这项工作 2 系统方案设计在系统设计任务和技术指标确定以后 即可进行系统的总体方案设计 一般包括以下两个方面 1 机型及支持芯片的选择机型选择应适合于产品的要求 设计人员可大体了解市场所能提供的构成单片机系统的功能部件 根据要求进行选择 若作为系统生产的产品 则所选的机种必须要保证有稳定 充足的货源 从可能提供的多种机型中选择最易实现技术指标的机型 如字长 指令系统 执行速度 中断功能等 如果要求研制周期短 则应选择熟悉的机种 并尽量利用现有的开发工具 2 综合考虑软 硬件的分工与配合因为单片机系统中的硬件和软件具有一定的互换性 就如有些由硬件实现的功能也可以用软件来完成 反之也一样 因此 在方案设计阶段要认真考虑软 硬件的分工与配合 考虑的原则是 软件能实现的功能尽可能由软件来实现 以简化硬件结构 还可降低成本 但必须注意 这样做势必增加软件设计的工作量 此外 由软件实现的硬件功能 其响应时间要比直接用硬件时间长 而且还占用了CPU的工作时间 另外还要考虑功能接口芯片 因此 在设计系统时必须综合考虑这些因素 单片机技术与应用实践 3 系统详细设计与制作系统详细设计与制作就是将前面的系统方案付诸实施 将硬件框图转化成具体电路 并制作成电路板 画出软件框图或流程图用程序加以实现 4 系统调试与修改当硬件和软件设计好后 就可以进行调试了 硬件电路检查分为两步 静态检查和动态检查 硬件的静态检查主要是电路制作的正确性 因此 一般无需借助于开发器 动态检查是在开发系统上进行的 把开发系统的仿真头连接到产品中 代替系统的单片机 然后向开发产品输入各种诊断程序 检查系统中的各部分工作是否正常 做完上述检查就可进行软硬件连调 先将各模块程序分别调试完毕 然后再进行连接 连成一个完整的系统应用软件 待一切正常后 即可将程序固化到程序存储器中 此时即可脱离开发系统进行脱机运行 并到现场进行调试 考验系统在实际应用环境中是否能正常而可靠地工作 同时再检测其功能是否达到技术指标的要求 如果某些功能还未达到要求 则再对系统进行修改 直至满足要求 上述单片机系统的设计过程用框图表示如图11 2所示 图11 2系统调试流程图 11 2单片机应用系统的硬件设计 11 2 1硬件系统设计原则 一般的单片机应用系统的硬件包括单片机系统和被控对象 设计包含两个部分内容 一是单片机芯片的选择 二是单片机系统扩展 1 单片机芯片的选择单片机芯片即单片机 或微处理器 内部的功能部件 如RAM ROM I O口 定时器 计数器及中断产品等 目前市面上流行的AT89C51是美国ATMEL公司生产的低电压 高性能的CMOS8bit单片机片内带4KB闪烁可编程可擦除只读存储器 FPEROM FalshProgrammableandErasableReadOnlyMemory 和128B的随机存储器 RAM 器件采用ATMEL公司的高密度 非易失存储技术生产 兼容标准MCS 51指令系统 片内置通用8bit中央处理器 CPU 和Flash存储单元 功能强大 AT89C51单片机可适用于许多高性能的场合 可灵活地应用于各种控制领域 2 单片机系统的扩展单片机由于受集成度限制 片内存储器容量较小 一般片内ROM小于4 8KB 片内RAM小于256B 但可在外部进行扩展 如MCS 51系列单片机的片外对可擦除可编程只读存储器 静态随机存储器 SRAM 可分别扩展至64KB 只要不能满足系统的要求时 必须在片外进行扩展 选择相应的芯片 实现系统硬件扩展 二是系统硬件配置 即按系统功能要求配置外围设备 如键盘 显示器 打印机 A D和D A转换器等 也即要设计合适的接口电路 总地来说 硬件设计工作主要是输入 输出接口电路设计和存储器的扩展 一般的单片机系统主要由如图11 3所示的几部分组成 单片机技术与应用实践 图11 3MCS 51系统组成 11 2 2硬件设计 硬件设计主要围绕单片机系统的功能扩展和外围设备配置 包括下面几个部分的设计 1 程序存储器若单片机无片内程序存储器或存储器容量不够时 需在外部扩展程序存储器 外部扩展的存储器通常选用EPROM或E2PROM EPROM集成度高 价格便宜 E2PROM则编程容易 当程序量较小时 使用E2PROM较方便 当程序量较大时 采用EPROM更经济 2 数据存储器大多数单片机都提供了小容量的片内数据存储器 只有当片内数据存储器不够用时才扩展外部数据存储器 存储器的设计原则是 在存储容量满足要求的前提下 尽可能减少存储芯片的数量 建议使用大容量的存储芯片以减少存储器的芯片数目 但应避免盲目地扩大存储器容量 3 I O接口由于外设多种多样 使得单片机与外设之间的接口电路也各不相同 因此 I O接口常常是单片机应用系统中设计最复杂也是最困难的部分之一 I O接口大致可归类为并行接口 串行接口 模拟采集通道 接口 模拟输出通道 接口 等 目前有些单片机已将上述各接口集成在单片机内部 使I O接口的设计大大简化 系统设计时 可以选择含有所需接口的单片机 4 传感器传感器将现场采集的各种物理量 如温度 湿度 压力等 变成电量 经放大器放大后 送入A D转换器将模拟量转换成二进制数字量 送MCS 51系列CPU进行处理 最后将控制信号经D A转换送给受控的执行机构 为监视现场的控制一般还设有键盘及显示器 并通过打印机将控制情况如实记录下来 在有些情况下可以省掉上述组成的某些部分 这要视具体要求来确定 5 译码电路当需要外部扩展电路时 就需要设计译码电路 译码电路要尽可能简单 这就要求存储空间分配合理 译码方式选择得当 考虑到修改方便与保密性强 译码电路除了可以使用常规的门电路 译码器实现外 还可以利用只读存储器与可编程门阵列来实现 6 驱动电路单片机外接电路较多时 必须考虑其驱动能力 因为驱动能力不足会影响产品工作的可靠性 所以当设计的系统对I O端口的负载过重时 必须考虑增加I O端口的负载能力 即加接驱动器 如P0口需要加接双向数据总线驱动器74LS245 P2口接单向驱动器74LS244 7 抗干扰电路对于工作环境恶劣的系统 设计时除在每块板上要有足够的退耦电容外 还要在每个芯片的电源与地之间加接0 1 F的退耦电容 电源线和接地线应该加粗些 并注意它们的走向 布线 最好沿着数据的走向 对某些应用场合 输入 输出端口还要考虑加光耦合器件 以提高系统的可靠性及抗干扰能力 8 电路的匹配单片机系统中选用的器件要尽可能考虑其性能匹配 如选用CMOS芯片的单片机构成系统 则系统中的所有芯片都应该选择低功耗的 以构成低功耗的系统 又如选用的晶振频率较高时 则存储芯片应选用存取速度较高的芯片 11 3单片机应用系统的软件设计 一个应用系统中的软件一般是由系统监控程序和应用程序两部分构成的 其中 应用程序是用来完成诸如测量 计算 显示 打印 输出控制等各种实质性功能的软件 系统监控程序是控制单片机系统按预定操作方式运行的程序 它负责组织调度各应用程序模块 完成系统自检 初始化 处理键盘命令 处理接口命令 处理条件触发和显示等功能 11 3 1软件设计的特点 单片机技术与应用实践 应用系统中的软件是根据系统功能设计的 应可靠地实现系统的各种功能 应用系统种类繁多 应用软件各不相同 但是一个优秀的应用系统的软件应具有以下特点 1 软件结构清晰 简洁 流程合理 2 各功能程序实现模块化 系统化 这样 既便于调试 连接 又便于移植 修改和维护 3 程序存储区 数据存储区规划合理 既能节约存储容量 又能给程序设计与操作带来方便 4 运行状态实现标志化管理 各个功能程序运行状态 运行结果及运行需求都设置状态标志以便查询 程序的转移 运行 控制都可通过状态标志来控制 5 经过调试修改后的程序应进行规范化 除去修改 痕迹 规范化的程序便于交流 借鉴 也为今后的软件模块化 标准化打下基础 6 实现全面软件抗干扰设计 软件抗干扰是计算机应用系统提高可靠性的有力措施 7 为了提高运行的可靠性 在应用软件中设置自诊断程序 在系统运行前先运行自诊断程序 用以检查系统各特征参数是否正常 11 3 2资源分配 合理地分配资源对软件的正确编写起着很重要的作用 一个单片机应用系统的资源主要分为片内资源和片外资源 片内资源是指单片机内部的中央处理器 程序存储器 数据存储器 定时器 计数器 中断 串行口 并行口等 不同的单片机芯片 其内部资源的情况各不相同 在设计时就要充分利用单片机内部资源 当内部资源不够时 就需要有片外扩展 在这些资源分配中 定时器 计数器 中断 串行口等分配比较容易 这里主要介绍程序存储器和数据存储器的分配 1 程序存储器ROM EPROM资源的分配程序存储器ROM EPROM用于存放程序和数据表格 按照MCS 51单片机的复位及中断入口的规定 002FH以前的地址单元作为中断 复位入口地址区 在这些单元中一般都设置了转移指令 如AJMP或LJMP用于转移到相应的中断服务程序或复位启动程序 当程序存储器中存放的功能程序及子程序数量较多时 应尽可能为它们设置入口地址表 一般的常数 表格集中设置在表格区 二次开发 扩展部分尽可能放在高位地址区 2 数据RAM资源分配RAM分为片内RAM和片外RAM 片外RAM的容量比较大 通常用来存放批量大的数据 如采样结果数据 片内RAM容量较少 应尽量重叠使用 比如数据暂存区与显示 打印缓冲区重叠 对于MCS 51单片机来说 片内RAM是指00H 7FH单元 这128个单元的功能并不完全相同 分配时应注意发挥各自的特点 做到物尽其用 RAM存储器按其用途可划分为工作寄存器区 00H 1FH 位寻址区 20H 2FH 和用户区 30H 7FH 3个区域 00H 1FH共32个单元为工作寄存器区 工作寄存器也称通用寄存器 用于临时寄存8位信息 工作寄存器分成4组 每组都有8个寄存器 用R0 R7来表示 程序中每次只用1组 其他各组可以作为一般的数据缓冲区使用 使用哪一组寄存器工作由程序状态字PSW中的PSW 3 RS0 和PSW 4 RS1 两位来选择 通过软件设置RS0和RS1两位的状态 就可任意选一组工作寄存器 系统复位后 默认选中第0组寄存器为当前工作寄存器 20H 2FH单元是位寻址区 这16个单元 共计16 8bit 128bit 的每一位都赋予了一个位地址 位地址范围为00H 7FH 位地址与字节地址编址相同 容易混淆 区分方法 位操作指令中的地址是位地址 字节操作指令中的地址是字节地址 内部RAM中30H 7FH共80个单元为用户区 也称为数据缓冲区 用于存放各种用户数据和中间结果 起到数据缓冲的作用 对用户RAM区的使用没有任何规定或限制 但在一般应用中常把堆栈开辟在此区中 11 3 3单片机应用系统开发工具 一个单片机应用系统经过总体设计 完成硬件开发和软件设计 就进行硬件安装 硬件安装好后 把编制好的程序写入存储器中 调试好后系统就可以运行了 但用户设计的应用系统本身并不具备自开发的能力 不能够写入程序和调试程序 必须借助于单片机开发系统才能完成这些工作 单片机开发系统是能够模拟用户实际的单片机 并且能随时观察运行的中间过程和结果 从而能对现场进行模仿的仿真开发系统 通过它能很方便地对硬件电路进行诊断和调试 得到正确的结果 目前国内使用的通用单片机的仿真开发系统很多 如复旦大学研制的SICE系列 启东计算机厂制造的DJ598系列 中国科大研制的KDV系列 南京伟福实业有限公司生产的伟福E2000以及西安唐都科教仪器公司的TDS51开发及教学实验系统 它们都具有对用户程序进行输入 编辑 汇编和调试的功能 此外 有些还具备在线仿真功能 能够直接将程序固化到E2PROM中 一般都支持汇编语言编程 有的可以通过开发软件 支持C语言编程 例如 前面所叙述的KeilC51软件来编写C语言源程序 编译 连接生成目标文件 可执行文件 仿真 调试 生成代码并下载到应用系统中 11 4单片机应用系统设计项目实践 项目1 单片机自动门锁设计 1 项目目标本项目主要设计一个基于MCS 51系列单片机作为核心并与接触式IC卡SLE4442的读 写技术相结合的系统 系统通过LCD液晶显示模块JM1602C向用户提供友好界面 并通过RS 485总线向上位监测单片机传输门锁打开信息 硬件设计时将自动门锁系统主要分为3个模块 前端输入模块 处理控制模块和执行模块 以单片机作为控制芯片的自动门锁系统 综上所述 将自动门锁系统分为5个部分 控制模块 显示模块 IC卡模块 通信模块和门锁 软件设计时将自动门锁系统主要分为两部分 上位监测单片机和下位IC卡门锁控制单片机 这样就要求自动门锁系统的软件设计分为上位监测单片机程序和下位IC卡控制单片机程序 根据前期进行的需求分析 下位IC卡控制单片机程序要求控制门锁的打开和关闭 并能向用户显示友好提示信息 上位监测单片机程序要求能接收由下位IC卡控制单片机发来的开门信息 并向用户显示门锁状态 2 知识点分析本项目设计要求 熟练掌握以单片机为核心的测控系统的软 硬件设计 特别是显示技术 通信技术 接触式IC卡SLE4442的读写技术等的设计 3 实施过程1 系统的硬件设计 1 系统构成 本项目主要以单片机作为控制芯片并通过研究关于接触式IC卡的设计和使用方法来设计的自动门锁系统 系统的具体设计主要以MCS 51系列单片机为核心 通过LCD液晶显示器模块显示相关数据 并与接触式IC卡SLE4442的读写技术相结合的系统 为保证门锁使用的安全性 系统自动比较IC卡密码和用户输入密码 若输入的密码与系统读出的IC卡密码相同 门锁自动开启 若输入错误的密码 系统提示出错信息 通过以上设计可实现自动门锁的功能 综上所述 将自动门锁系统分为5部分 即控制模块 显示模块 IC卡模块 通信模块和门锁 总体设计模块如图11 4所示 图11 4总体设计模块 2 IC卡模块的设计 IC卡概述 IC卡又称集成电路卡 智能卡 英文名称IntegratedCircuitCard或SmartCard 它是将一个集成电路芯片镶嵌于塑料基片中 封装成卡的形式 其外形与覆盖磁条的磁卡相似 在其左上方嵌有一片或若干片集成电路芯片 接触式IC卡 IC卡芯片具有写入数据和存储数据的能力 IC卡存储器中的内容根据需要可以有条件地供外部读取 或供内部信息处理和判定之用 卡内存储有唯一的发行人和持卡人的识别标志 用以唯一地确定卡的身份 随着超大规模集成电路技术 计算机技术及信息安全技术等的发展 IC卡逐渐形成了各种类别 根据镶嵌的芯片不同 可将IC卡划分为存储卡 逻辑加密卡 CPU卡和超级智能卡 根据卡与外界数据交换的界面不同 可将IC卡划分为接触式IC卡 非接触式IC卡和双界面卡 根据卡与外界进行交换时的数据传输方式不同 可将IC卡划分为串行IC卡 并行IC卡 根据卡的应用领域不同 可将IC卡划分为金融卡和非金融卡 IC卡的应用领域可以说非常广泛 它除了覆盖传统磁卡的全部应用领域外 还扩展了许多磁卡所不能胜任的领域 这在很大程度上归功于IC卡的大容量的数据存储能力与强有力的安全特性 IC卡的应用可分为金融系统应用和非金融系统应用 在某些场合这两种应用又有着紧密的联系 在金融领域中 IC卡可作为信用卡 现金卡 证券卡或电子资金转账卡等 在非金融领域中 有IC卡预收费系统 IC卡自动门锁 IC卡考勤系统 公交一卡通等 SLE4442芯片 SLE4442是西门子公司开发的带有保护功能和可编程密码 PSC 的256B的E2PROM的存储卡SLE4442 SLE4442的主要指标特征 256 8bit的E2PROM组织方式 32bit保护存储器组成方式 二线制通信方式 可按字节寻址 串行接口 触点配置 复位响应符合ISO7816标准 温度范围为0 70 至少10万次擦写 10年数据保存期 其芯片引脚排列与定义如图11 5所示 SLE4442卡存储器主要分为主存储器和保密存储器 图11 5SLE4442引脚排列 主存储器 主存储器容量为256B 每字节为8bit 主存储器可分为保护区和应用区 保护区中没有设置保护状态的字节 其使用与应用完全相同 其中地址单元为00H 1FH 活动32B是保护区 带位保护功能 一旦实行保护后 被保护的单元不可擦除和改写 SLE4442保护区已固化的信息如下 00H 03H复位应答信息 04H 07H芯片生产厂家代码和卡型编码 15H 1AH应用标识 在应用系统中 根据需要 保护区既可用作存放固定信息 如发行单位编号 卡编号 批次号 发行时间 持有人姓名 证件号码等 也可以像应用区一样存放可变信息 保密存储器 SLE4442提供了一个4B的保密存储器 其中0单元的低3位EC是错误计数器 在IC卡初始化后 EC 111 其余3个字节 1 4单元 是密码存放单元 PSC 在上电以后 除了密码以外 整个存储器都是可读的 如果擦除和改写卡中内容 必须校验密码 只有3个字节密码内容完全相同才可进行 这时才可读出密码内容 如果需要的话 还可以改写新的密码 如果输入的数据与密码比较为不正确 则 EC 减1 3次不正确 EC 则为000 这时卡片自锁 不能再改写卡中内容 如3次比较中有一次正确 则 EC 恢复为111 IC卡模块电路设计 IC卡模块接口电路如图11 6所示 其中CLK引脚接单片机P1 5位 RST引脚接单片机P1 3位 I O引脚接单片机P1 7位 Power接 5V电源 发光二极管为电源指示灯 IC卡使用的是SLE4442芯片 单片机通过P1 3位 P1 5位 P1 7位对SLE4442芯片进行读写数据 复位应答等操作 当用户将卡片插入读卡器后 下位单片机控制模块便会通过P1 7位读取卡片中存储密码的单元 3 液晶显示模块的设计 液晶显示模块 日常生活中 液晶显示模块以其微功耗 体积小 显示内容丰富 超薄轻巧 使用方便等诸多优点 在通信 仪器仪表 电子设备 家用电器等低功耗应用系统中得到越来越广泛的应用 使这些电子设备的人机界面变得越来越直观 形象 目前已广泛应用于电子表 计算器 IC卡电话机 液晶电视机 便携式电脑 掌上型电子玩具 复印机 传真机等许多方面 液晶显示模块根据显示内容可以分为字符型液晶 图形液晶 根据显示容量又可以分为单行16字 2行16字 2行20字等 本设计选用的是字符型液晶显示中的1602系列芯片 字符点阵系列模块是一类专门用于显示字母 数字 符号等的点阵型液晶显示模块 分为4位和8位数据传输方式 模块组件内部主要由LCD显示屏 LCDPANEL 控制器 controller 驱动器 driver 和偏压产生电路构成 图11 6IC卡模块电路 该模块有以下优点 位数多 可显示32位 显示内容丰富 可显示所有数字和大 小写字母 程序简单 如果用数码管动态显示 会占用很多时间来刷新显示 而1602芯片自动完成此功能 JM1602C字符型液晶 JM1602C字符型液晶模块 带背光 是目前工控系统中使用最为广泛的液晶屏之一 JM1602C是16字 2行的字符型液晶模块 JM1602C采用标准的16脚接口 其引脚功能如表11 1所示 液晶显示模块电路设计 液晶显示模块是用来显示用户提示信息 并向用户提供友好的人机交互界面 液晶显示模块的电路设计主要采用总线方式连接 如图11 7所示 AT89C51单片机的P2 0位接JM1602C的RS P2 1位接JM1602C的R W P2 7位接JM1602C的E 通过这3位可以控制数据和控制字写入和读出 表11 11602引脚功能说明 图11 7液晶显示电路 4 通信模块的设计 RS 485概述 单片机因其优越的性价比和灵活的功能配置而被广泛应用于测控领域 串行通信是单片机和外部设备进行数据交换的重要渠道 由于其成本低 性能稳定并遵循统一的标准 因而在工程中被广泛应用 而一般常用的串行接口主要有RS 232 RS 485等 RS 232是IBM PC及其兼容机上的串行连接标准 有许多用途 比如连接鼠标 打印机或者MODEM 同时也可以连接工业仪器仪表 用于驱动和连线的改进 实际应用中RS 232的传输长度或者速度常常超过标准值 RS 232只限于设备间点对点的通信 RS 232串口通信最远距离是50英尺 由于RS 232 C接口标准出现较早 难免有不足之处 针对RS 232 C的不足 于是就不断出现了一些新的接口标准 RS 485就是其中之一 它具有以下特点 接口信号电平比RS 232 C降低了 不易损坏接口电路的芯片 并且RS 485电平与TTL电平兼容 可方便与TTL电路的连接 在要求通信距离为几十米到上千米时 广泛采用RS 485串行总线标准 RS 485采用平衡发送和差分接收 因此具有抑制共模干扰的能力 加上总线收发器具有高灵敏度 能检测低至200mV的电压 故传输信号能在千米以外得到恢复 RS 485采用半双工工作方式 任何时候只能有一点处于发送状态 因此 发送电路须由使能信号加以控制 RS 485用于多点互联时非常方便 可以省掉许多信号线 应用RS 485可以联网构成分布式系统 其允许最多并联32台驱动器和32台接收器 MAX485介绍 MAX485接口芯片是Maxim公司生产的一种RS 485芯片 采用单一电源 5V工作 额定电流为300 A 采用半双工通信方式 MAX485将TTL电平转换为RS 485电平 MAX485芯片的结构和引脚都非常简单 内部含有一个驱动器和接收器 RO和DI端分别为接收器的输出和驱动器的输入端 与单片机连接时只需分别与单片机的RXD和TXD相连即可 和DE端分别为接收和发送的使能端 当为逻辑0时 器件处于接收状态 当DE为逻辑1时 器件处于发送状态 因为MAX485工作在半双工状态 所以只需用单片机的一个管脚控制这两个引脚即可 A端和B端分别为接收和发送的差分信号端 当A端的电平高于B端时 代表发送的数据为1 当A端的电平低于B端时 代表发送的数据为0 在与单片机连接时接线非常简单 只需要一个信号控制MAX485的接收和发送即可 同时将A和B端之间加匹配电阻 一般可选100 的电阻 可以串行口取电 可以驱动MAX232与MAX485实现通信 没加负载时电压有5 16V 加负载后降至3V左右 通信模块接口电路设计 通信模块接口电路如图11 8所示 MAX485为半双工通信方式 不能同时发送和接收数据 所以通过控制和DE引脚的状态进行发送数据和接收数据的转换 这里将MAX485的和DE引脚连在一起接到AT89C51单片机的P1 4位 通过P1 4位来控制MAX485发送数据和接收数据的转换 当P1 4为低电平时MAX485处于接收数据状态 而当P1 4为高电平时MAX485则处于发送数据状态 MAX485的R0引脚接到AT89C51单片机的串口接收引脚RXD MAX485的DI引脚接到AT89C51单片机的串口发送引脚TXD 图11 8通信模块接口电路 图11 9自动门锁系统原理 5 系统的原理图 2 系统的软件设计 1 总体软件设计 本设计的自动门锁系统主要分为两部分 上位监测单片机和下位IC卡门锁控制单片机如图11 10所示 这样就要求自动门锁系统的软件设计分为上位监测单片机程序和下位IC卡控制单片机程序 根据前期进行的需求分析 下位IC卡控制单片机程序要求控制门锁的打开和关闭 并能向用户显示友好提示信息 上位监测单片机程序要求能接收由下位IC卡控制单片机发来的开门信息 并向用户显示门锁状态 图11 10自动门锁系统软件组成 2 下位控制单片机主程序设计 自动门锁系统下位IC卡控制单片机程序要求控制门锁的打开和关闭 并能向用户显示友好提示信息 下位控制单片机主程序流程如图11 11所示 下位控制单片机上电后 首先通过AT89C51单片机P1 0位控制门锁关闭 并在液晶显示块上显示 PLEASEINSERT 信息 并由AT89C51单片机P1 1位检测是否有卡插入 当没有卡片插入时 则一直等待卡片插入 如有卡片插入时则进行密码校验 设自动门锁设计设置的卡片密码为1314H 校验密码时 通过调用IC卡读卡子程序来读取存储在内存单元中的IC卡密码数据 当读出的密码数据与设置的密码相符 则打开门锁并显示 WELCOME 信息并将门锁打开信息发送给上位机 如读出的数据与设置的密码不相符 则显示错误信息 在用户使用完成后取出卡片则将门锁关闭 并重新显示 PLEASEINSERT 信息 下位控制单片机程序流程如图11 11所示 图11 11主程序流程 下位控制单片机主程序如下 Main MOVSP 60HMOViclcd 00HD1 SETBP1 0 关闭门锁LCALLRamIntLCALLVerifi PasswordLCALLLCDXS 调用显示子程序显示 PLEASEINSERT D2 JNBP1 1 D2 是否有卡插入 1有 0没有MOViclcd 02H 当有卡插入给iclcd送02HMOVR1 30H 写命令控制字MOVR2 21H 读IC卡中21H单元数据 即读密码LCALLICREAD 调用IC卡读卡子程序CJNEA 13H D3 13H为IC卡的密码前两位LCALLRst Atr 信号复位MOVR1 30H 写命令控制字MOVR2 22H 读IC卡中21H单元数据 即读密码LCALLICREAD 调用读卡子程序CJNEA 14H D3 14H为IC卡的密码后两位MOViclcd 01H 给iclcd单元写入01HCLRP1 0 1 0负责控制门锁开启D3 LCALLLCDXS 显示信息LCALLSJS 发送开门信息D4 JNBP1 1 D1SJMPD4 3 上位监测单片机主程序设计 自动门锁系统上位监测单片机程序要求能接收由下位IC卡控制单片机发来的开门信息 并向用户显示门锁状态 上位检测单片机主要根据下位门锁控制单片机的地址 依次向下位控制单片机发送呼叫指令 当下位单片机有数据发送时 接收呼叫并进行地址判断 当地址不相符时下位单片机则持续等待上位单片机的呼叫指令 如判断地址相同则响应上位单片机的呼叫 并将本机所需发送的数据发送给上位单片机 上位单片机在接收到下位单片机的数据后 根据开始时发送的地址 向用户显示相对应的门锁打开或者关闭信息 上位监测单片机主程序设计流程如图11 12所示 上位监测单片机主程序如下 START MOVR1 30H 将收到的显示数据送入30H单元MOVR3 00H 给R3清0ZCX0 MOVR2 00H 给R2清0ZCX1 MOVA R2 R2表示已扫描到几号门锁CJNEA DOORSL ZCX2 DOORSL里存的所带门锁的数量SJMPZCX0ZCX2 LCALLSFS 调用发送子程序 循环发送门锁号LCALLSJS 调用接收子程序 门锁是否打开INCR2 R2加1扫描下一个门锁MOVA R0 将R0送给ACJNEA 0FFH ZCX3 判断A是否等于FFH 不等则跳转SJMPZCX0ZCX3 LCALLXS 调用显示子程序显示开门信息SJMPZCX1 4 IC卡模块软件设计 所设计的自动门锁系统要求IC卡能正确读取门锁密码并进行校验 而卡片的门锁密码直接存储在主存储区 而访问主存储区无需进行卡片本身密码校验 所以IC卡控制器只需要使用复位应答模式 命令模式 输出数据模式3种模式 但如需要更改IC卡中的密码 则要求首先进行IC卡密码校验 才能更改相应IC卡主存储区的门锁密码 这就需要使用到IC卡的内部处理模式 读卡子程序设计流程如图11 13所示 图11 12上位机程序流程 图11 13IC卡读卡子程序流程 IC卡读卡子程序如下 ICREAD LCALLRst Atr 调用IC卡复位应答子程序MOViccommand R1 写命令控制字MOVicaddress R2 所要读取的地址MOVR7 Pulse 送延时的脉冲数LCALLSend Command 调用命令字写入子程序CLRclk 将时钟信号清零LCALLCardRdByte 调用读IC卡单元程序RET 5 液晶显示模块软件设计 所设计的自动门锁系统要求液晶显示器向用户显示提示信息 当卡片未插入显示 PLEASEINSERT 当卡片插入后 如校验密码正确则显示 WELCOME 反之则显示 ICCARDERROR 根据JM1602C的指令便可以编写液晶显示程序 程序流程如图11 14所示 液晶显示子程序如下 LCDXS LCALLDS1LCALLINT LCD 清屏LCALLDS1MOVA 38H 设置8位操作数 2行显示 5 7点阵 LCALLW LCD CMOVA 0CH 显示开关控制 显示开关LCALLW LCD CMOVA 06H 输入方式设置 AC为自动加1 光标右移一个字符位LCALLW LCD CMOVA 80H 显示位地址第一行 第0位LCALLW LCD CMOVA ICLCD 将ICLCD单元的数据送A 用来判断显示什么信息CJNEA 02H LCD0 判断是不是等于02H 否则跳转MOVDPTR CCTAB2 显示 ICCARDERROR MOVR0 0FH 显示的字符数量SJMPLINE1 LCD0 CJNEA 01H LCD1 判断是不是等于01H 否则跳转MOVDPTR CCTAB1 显示 WELCOME MOVR0 0FH 显示字符的数量SJMPLINE1LCD1 MOVDPTR CCTAB0 将显示数据的地址送DPTRMOVR0 0FH 将显示的数量送R0LINE1 MOVR1 00H 给R1送00HLCD2 MOVA R1 将R1送AMOVCA A DPTR 第一行显示MOVR2 DPL 送入数据MOVR3 DPHLCALLW LCD D 调用液晶写数据子程序INCR1 R1加1MOVDPL R2 将数据送DPTRMOVDPH R3DJNZR0 LCD2 判断是否显示结束MOVR4 0EH 给R4送0EHLCD3 LCALLDS1 调用延时DJNZR4 LCD3 R4不为 0 则转移RET 图11 14液晶显示子程序流程 6 串行通信程序设计 所设计的自动门锁系统使用的接口芯片为RS 485 而RS 485通信是一种半双工通信 发送和接收共用同一物理通道 在任意时刻只允许一台单片机处于发送状态 因此要求应答的单片机必须在侦听到总线上呼叫信号已经发送完毕 并且在没有其他单片机应答信号的情况下才能应答 如果在时序上配合不好 就会发生总线冲突 使整个系统的通信瘫痪 无法正常工作 上位机与下位机之间如何进行数据传输 怎么提高通信的效率和可靠性 以及对通信过程中的故障处理 帧格式的约定 都需要一套详尽的通信协议 RS 485总线只制定了物理层电气标准 对上层通信协议没有规定 这给设计者提供了很大的灵活性 一套完整的通信协议既要求结构简单 功能完备 又要求具有可扩充性与兼容性 并且尽量标准化 本系统的协议就是从这几个方面考虑的 它主要包括以下两个部分 上 下位机间的通信过程 通信均有上位机发起 下位机不主动申请通信 当处于轮询状态时 上位机依据下位机地址 依次向下位机发送呼叫指令 当下位机有数据发送时接收并判断 地址不相符的下位机则持续等待 反之则把本机需发送的数据发送给上位机 上位机接收到数据后 可以作进一步的处理 通信子程序流程如图11 15所示 图11 15通信子程序流程 通信协议 采用比较简单的通信协议 上位单片机需要与下位单片机通信时 首先发送一个字节的信号 也就是以广播的形式发送一个地址数据 下位单片机接收到地址数据与自己的地址相比较 如相同则向上位单片机发送数据 数据以十六进制表示为11H的开始码 当上位单片机接收到11H后 就接收连续的数据并存入内存单元 上位单片机与下位单片机通信结束时 由下位单片机向上位单片机发送一个字节的信号 以十六进制表示为55H 表示结束数据发送 发送数据格式如表11 2所示 表11 2发送数据格式 通信子程序如下 SJS MOVSCON 50H 串口方式1MOVTMOD 20H T1方式1MOVTL1 0FDH 波特率9600bit s的常数MOVTH1 0FDHMOVR0 00H 给R0送00HSETBTR1 开中断SETBET1SETBEASS1 JBCRI SS2 是否完毕SJMPSS1SS2 MOVA SBUF 将SUBF数据送ACJNEA 02H SS1 输入对比接收到门号是否相同MOVR1 0FFH 给R1送FFMOVDPTR SWJXS0 将需要发送的数据地址送DPTR SS3 INCR1 R1加1MOVA R1 将R1送AMOVCA A DPTR 将发送的数据送AMOVR5 A 将A送R5LCALLSFS 调用发送子程序MOVA R1 将R1送ACJNEA 04H SS3 判断是否发送完毕 否则跳转RETSFS MOVSCON 50H 串口方式1MOVTMOD 20H T1方式1MOVTL1 0FDH 波特率9600bit s的常数MOVTH1 0FDHSETBTR1 开中断SETBET1SETBEAWAIT MOVA R5 将R5送AMOVSBUF A 将A送SBUFNOPSF1 JBCTI SF2 是否发送完毕SJMPSF1 跳转到SF1SF2 NOPRET 项目2 红外遥控系统设计 1 项目目标设计一个简易型的红外遥控系统 该红外遥控以MCS 51单片机为核心 利用红外线通信协议对数据进行发送和接收 红外一体化接收管按照红外线通信协议对接收到的数据进行解码接收 并通过数码管对接收到的数据进行显示 红外一体化接收管将接收的红外信号转变为电信号 经过滤波处理并进行相应的解码 最终该系统能很好地实现系统设计的预期效果 1 红外遥控的系统框图通用红外遥控系统由发射和接收两大部分组成 应用编 解码专用集成电路芯片来进行控制操作 如图11 16所示 发射部分包括键盘矩阵 编码调制 LED红外发送器 接收部分包括光 电转换放大器 解调 解码电路 a 红外遥控发射框图 b 红外遥控接收框图 图11 16红外遥控系统框图 1 红外线遥控发射器 红外线遥控发射器由键盘 指令编码器和红外发光二极管LED等部分组成 当按下键盘的不同按键时 通过编码器产生与之相应的特定的二进制脉冲码信号 将此二进制脉冲码信号先调制在38kHz的载波上 经过放大后 激发红外发光二极管LED转变成波长为940nm的红外线传播出去 2 红外线遥控接收器 红外线遥控接收器由红外线接收器 微处理器 接口电路 控制电路 等部分组成 光电二极管将接收的红外线信号转变成为电信号 经检波放大 滤除38kHz的载波信号 恢复原来的指令脉冲 然后送入微处理器进行识别解码 解译出遥控信号的内容 并根据控制功能输出相应的控制信号 送往接口电路 控制电路 做相应的处理 2 基本功能设计 1 按键功能设置 在此设计中 红外遥控发送电路中共定义了7个功能键 数字键1 7分别表示接收电路中的数码管显示7种不同的状态 具体定义如下 按1号键 LED1点亮 并且数码管显示1 按2号键 LED2点亮 并且数码管显示2 按3号键 LED3点亮 并且数码管显示3 按4号键 LED4点亮 并且数码管显示4 按5号键 LED5点亮 并且数码管显示5 按6号键 LED6点亮 并且数码管显示6 按7号键 LED7点亮 并且数码管显示7 还可以根据需要扩展其他的按键及其功能 2 显示状态 在发送电路中 P2 0 P2 7端分别接LCD液晶显示的D0 D7端 用于显示发送的数据 在接收电路中 P0 0 P0 7端分别接LED数码管的A到H 用于显示与发送对应的数 例如 当发送的是按键1的状态时 液晶上会显示数字1 数码管上也会显示数字1 发光二极管LED1点亮 分别在发送电路和接收电路上都用显示器 是为了检查发送的数和接收的数是否一致 以便于当发生错误时 及时发现错误所在 并给予更正 2 知识点分析本项目设计要求 熟练掌握以单片机为核心的测控系统的软 硬件设计 红外遥控的基本原理 键盘操作与显示功能的设计 3 实施过程1 系统的硬件设计 1 系统构成 遥控开关是在通用红外遥控系统的基础上加以改进实现的 其实质就是将红外遥控接收部分采用单片机AT89S51来控制 即当一体化红外接收器接收到红外遥控信号后 将光信号转变成电信号 经放大 解调 滤波后 将原编码信号送入单片机AT89S51中进行信号识别 解码 然后进行相应的处理 达到控制电器的目的 图11 17所示为遥控开关的系统构成框图 上面的系统框图中有继电器 因为在日常所用的遥控设备中都有继电器 这样就可以控制多个设备 而设计的接收系统中没有用到继电器 若在实验室里做实验只要制作出接收部分电路就可以了 没有必要采用继电器 下面简单介绍一下电磁式继电器的工作原理 图11 17遥控开关系统构成框图 电磁式继电器一般是由铁心 线圈 衔铁 触点簧片等组成 只要在线圈两端加上一定的电压 线圈中就会流过一定的电流 从而产生电磁效应 衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁心 从而带动衔铁的动触点与静触点 常开触点 吸合 当线圈断电后 电磁的吸力也随之

温馨提示

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

评论

0/150

提交评论