已阅读5页,还剩61页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第七章并行I O接口 2 7 1概述I O设备必须通过I O接口与MCU连接 如图所示 一 I O接口的功能1 速度匹配 可以采用同步 异步 中断 DMA等方式2 数据格式转换 并 串转换 CPU内部数据传送是并行的 3 电平转换 电平幅值或正 负逻辑转换 单片机是TTL电平 3 4V表示1 一般说1代表5V 0代表0V 4 缓冲驱动 驱动多个逻辑部件或大功率执行部件 RS232电平为 12V为逻辑负 12为逻辑正 3 1 外设端口单独编址外设和存储器的地址相互独立 例如下图1 存储器地址0000 FFFFH 外设地址00H FFH为区分地址是给哪个设备的 要求CPU提供专用的访问IO设备的指令和引脚线 例Z80访问外设的指令 二 外部设备的编址 按照外设是否占用存储器的地址空间分类 图1外设端口单独编址 特点 外设端口不占用存储器的地址空间需要CPU的指令集有专门访问外设的指令和控制线访问外设的专用指令功能有限 4 2 外设端口和存储器统一编址将外设当成存储器单元看待 即外设端口地址占用存储器的端口地址 优点 CPU访问存储器的指令可以访问外设 增强了对外设的处理能力CPU本身不需增加专门为IO口服务的指令和控制线缺点 外设占用存储器的地址 5 MCS 51为外设端口和存储器统一编址方式 有片内I O端口和扩展I O端口 MCS 51片内有四个IO端口P0 P1 P2 P3 每个端口内部都有8位的数据输出锁存器和输入缓冲器 名称和端口号相同 端口寄存器在SFR中 占用片内数据存储器空间 所以对这四个端口的访问 使用MOV指令就可以了 扩展I O端口使用片外数据存储器地址空间 输出指令 输入指令 片内寻址 MOVP1 AMOVA P1片外寻址 MOVX DPTR AMOVXA DPTRMOVX Ri AMOVXA Ri MCS 51系列的IO编址方式 6 1 同步传送 无条件传送 类似于CPU和存储器之间的传送 认为双方都时刻处于准备好状态已知I O设备准备就绪 可直接进行数据传送 1 外设速度非常快因外设非常快 CPU认为它已经准备好 如 CPU和A D D A的接口 2 外设速度非常慢因外设非常慢 CPU认为它随时准备好 如 CPU读取变压器油开关量 三 I O传送方式 7 2 异步传送 条件传送异步传送又称为查询式传送 先查询I O设备当前状态 若准备就绪 则交换数据 否则循环查询状态 MOVR0 0FFHMOVX R0 A 送第一个数LOOP JBP1 0 LOOPMOVX R0 A 送下个数 工作过程 1 启动打印机 送出第一个要打印的数2 查询P1 0管脚的状态 如果BUSY 1表示正忙 还没打完3 如果打完了送第二个数据 缺点 不断的查询导致CPU工作效率低 8 3 中断传送大多数时间计算机与外设并行工作 计算机不必因等待而浪费资源 当外设准备就绪 向CPU发出中断请求信号 CPU暂停当前程序 执行I O操作 当I O操作结束 CPU仍返回主程序工作 优点 实时性好CPU和外设并行工作 不耽误CPU时间 9 4 直接存储器存取方式传送 DMA用于计算机与高速外设进行大批量数据交换 由DMA控制器接管总线控制权 RAM与外设之间直接数据传输 不需CPU大量介入 MCS 51无法实现 10 2 并行I O接口并行I O接口可以同时发送多位信息 有多条数据线 如P0 P1 P2 P3等 1 串行I O接口逐位发送 接受信息 中断一次 发送 接受一个字节 TXD RXD 四 I O接口类型 11 一 MCS 51内部并行I O端口MCS 51内部并行I O端口结构如图7 4所示 7 2MCS 51内部并行I O端口及其应用 图7 4MCS 51各通道某位的结构 12 P1端口 只作为准双向IO使用 当输出1 内部总线 1 Q为1 Q 0导致场效用管截止 引脚上输出1当输出0 内部总线 0 Q为0 Q 1导致场效用管导通接地 引脚上输出0 三种数据操作方式 输出 读引脚 读锁存器 MOVP1 AORLP1 data 13 P1端口 读引脚 要求先对相关位写1 后读 准双向口 注意 要读P1口引脚上的数据 首先必须写1 否则读出的结果可能不正确 读引脚 读引脚 例如读P1口引脚数据 MOVP1 0FFHMOVA P1 14 P1端口 读端口指读端口锁存器的内容 读 修改 写指令 下列指令使用的是读锁存器 ANLP1 A ORL XRL同理 JBCbit LABELINCP1 DEC同理 MOVP1 dataCLRP1 x SET同理 这类指令需要先将端口锁存器的内容读出 然后修改 然后写回端口锁存器 并从引脚输出 15 P3口 具有特定的第二功能 如果不使用第二功能 它就是普通的 通用准双向IO口 和P1相同 当 通用准双向IO口 使用时 和P1口一样 读引脚需要先写1 16 返回 17 P0口作用 准双向IO口 通常作为通用IO的时候会外接上拉电阻作为数据总线和低8位地址线使用 P2口作用 作为高8位地址作为通用准双向的IO 读引脚的时候同样要先写1在读 注意 如果作为地址数据端口 就不能再用作普通IO口 18 19 二 MCS 51内部并行I O端口应用操作方式 输出数据 读端口数据 读引脚数据1 输出数据方式直接使用以端口为目的的操作指令 例 MOVP0 AORLP1 DATAANLP2 AXRLP3 DATA2 读端口数据方式 读端口锁存器中数据 直接使用以端口为源的操作指令 例 MOVA P0ORLR1 P1ANL20H P2XRL R0 P3 20 3 读引脚方式使欲读端口对应锁存器为1 用数据传送指令读该端口 例如 读P1口低4位 MOVP1 0FHMOVA P1 21 应用 1 直接用于输入 输出例 编制灯光循环闪烁程序 通过P0口连接3个发光二极管 其中一个发光二极管闪烁三次后 转移到下一个发光二极管闪烁三次 如此循环 共阳极的发光管 BEGIN MOVA 0FEHSHIFT ACALLFLASHRLACJNEA 0F7H SHIFTSJMPBEGINFLASH MOVR5 03HFLASH1 MOVP0 AACALLDELAYMOVP0 0FFHACALLDELAYDJNZR5 FLASH1RET DELAY MOVR7 00HL1 MOVR6 00HL2 DJNZR6 L2DJNZR7 L1RETEND Proteus仿真 22 使用C51实现上述程序 includevoidflash charx1 intj k for k 0 k 2 k P0 x1 for j 0 j 30000 j P0 0 xff for j 0 j 30000 j main charflag 1 while 1 while flag 0 x08 flash flag flag flag 1 flag 0 x01 亮灯的标志 哪个灯亮 对应的位置1 23 延时程序 延时时间的计算方法 DELAY MOVR7 00HL1 MOVR6 00HL2 DJNZR6 L2DJNZR7 L1RET 执行周期数 256 2 512周期 粗略的计算延时时间可以用两步计算 256 2 256 1us 0 13s详细的计算方法 256 2 1 2 256 2 1us 131842us 0 13s1 指 MOVR6 00H语句所用的机器周期个数 2 指DJNZR7 L1语句所用的机器周期个数2 指MOVR7 00H RET两个语句所用的机器周期的个数256 指L2 DJNZR6 L2循环的次数256 指DJNZR7 L1循环的次数 24 应用2 8位IO端口改装为非8位端口 目的 通过软件将8位的端口改装成非8位端口 即虚口 以适用不同外设的需要 例7 2请编出把P1 P2口改装成三个5位虚口的程序 设三个虚口分别为X Y Z 输出关系如图 方法1 每次输出1个虚口 其余虚口不变 MOVA XACALLOUTXMOVA YACALLOUTYMOVA ZACALLOUTZ OUTX ANLP1 0E0HORLP1 ARET OUTY MOVB 20HMULABANLP1 1FHORLP1 AANLP2 0FCHMOVA BORLP2 ARET OUTZ部分方法较多 可以用位操作 OUTY的方法 A左移2位orP2 25 方法2 输出前把所有数据准备好 然后一起输出 MOV20H 3 假设YMOV10H 5 假设XMOV30H 8 假设Z MOVA 20HMOVB 20HMULAB 将Y分为A B两部分 MOVA 30HRLARLAORLA B 形成p2口数据MOVP2 A 送出END ADDA 10H 形成P1口数据MOVP1 A 送出P1口数据 26 三 对外部三态门和锁存器接口1 对外部三态门接口 目的 使输入数据得到缓冲图中74LS244为8位三态缓冲器 1G 2G 0时 输出 输入 1G 1 2G 1时输出 高阻RD 0 P2 7 0时芯片被选中请问 单片机执行什么指令可从74LS244输入数据 缺点 输入设备在数据线上数据要保持到被MCU取走 图7 6MCS 51与三态门 MOVDPTR 7FFFHMOVXA DPTR 27 2 对外部锁存器接口STB为低电平时 74LS373锁存输入数据 并给出中断信号 如图7 7 CPU响应INT0上中断后 可以由中断服务程序中的如下指令输入数据 MOVDPTR 7FFFHMOVXA DPTR其中 7FFFH为74LS373的端口地址 STB前沿引起中断 图7 7对外部锁存器接口 28 MCS 51单片机有四个并行I O口 当用MCS 51单片机组成的应用系统需外扩程序存储器和数据存储器时 真正可用的并行口 就只有一个P1口了 8255A是Intel公司生产的通用可编程并行IO接口芯片 可以和CPU相连 为外设提供3个8位的并行IO端口 并允许同步 异步和中断方式传送IO数据 7 3并行IO接口芯片 29 8255A内部结构 30 8255通道选择和基本操作表 31 二 8255A的控制字 控制字两类 方式选择控制字 置位复位控制字都是写到控制字寄存器方式选择控制字D7 1 而置位复位控制字D7 0 32 1 8255A的方式选择控制字 33 例 A端口方式1输入 B端口方式1输出 PC6 PC7作输入 给出方式控制字 BCH 34 2 C端口置 复位控制字 35 例7 3如果8255的控制字寄存器端口地址是FBH 写出令PC3先置1后清零的程序 只需要往控制字寄存器中写入C端口置为复位控制字即可 MOVR0 0FBHMOVA 07HMOVX R0 AMOVA 06HMOVX R0 A 36 三 8255的工作方式和C口状态字 A端口有三种工作方式方式0 方式1 方式2B端口有二种工作方式方式0 方式1C端口无工作方式选择工作于方式0 或作为A B工作于方式1 2时的联络信号注 方式0 基本输入 输出 即无条件输入输出形式方式1 选通输入 输出 查询 单向输入输出方式方式2 双向数据传送 查询 双向输入输出方式 37 单向无条件传送端口A B C端口可单独工作于输入或输出 共有十六 24 种组态使用MOVX指令 可以直接从端口输入输出数据 一 方式0 基本输入 输出方式 38 二 方式1 选通输入输出 功能 A B端口作8位数据输入或输出 C端口的特定位为A B端口服务应用 查询方式 C端口特定位传送状态中断方式 C端口特定位发中断请求 39 A口方式1输入时相应的联络信号 B口方式1输入时相应的联络信号 方式1下输入端口的联络信号 40 方式1下输入端口的联络信号 由外设发出 送给8255A作用是将外设送来的数据锁存到8255A的输入端口 IBF 输入缓冲器满信号 高电平有效 8255A发出 表示外设送来的数据已进入输入端口 当外设送来的数据送入输入端口后 8255A自动发出IBF 由STB信号置位 由读信号RD的上升沿复位 INTR 中断申请信号 高电平或上升沿有效 8255A发出 用来向CPU发出中断申请 41 方式1下输入端口的联络信号 INTE 中断允许控制信号作用是控制是否允许8255A的中断申请信号INTR发出 此信号无引出 通过控制口对C口相应位的置位 复位 设置允许或不允许 A口 对PC4置位 使INTEA 1 允许中断对PC4复位 使INTEA 0 不允许中断B口 对PC2置位 使INTEB 1 允许中断对PC2复位 使INTEB 0 不允许中断在方式1下 作为联络信号的外部引脚PC4 PC2 不受C口按位置位 复位控制字控制 而只在8255A内部对INTE信号起作用 42 A口方式1输出时相应的联络信号 B口方式1输出时相应的联络信号 方式1下输出端口的联络信号 43 由外设发出 送给8255A 作用是通知8255A 输出端口的数据已被外设取走 可以传送下一个数据 INTR 中断申请信号 高电平或上升沿有效 8255A发出 用来向CPU发出中断申请 方式1下输出端口的联络信号 当数据送至8255A输出缓冲器后 8255A自动发出 表示CPU送来的数据已进入8255A输出端口 可用来通知外设把数据取走 由输出WR的上升沿置成低电平 由外设的应答ACK恢复成高电平 44 方式1下输出端口的联络信号 INTE 中断允许控制信号作用是控制是否允许中断申请信号INTR发出此信号无引出 通过控制口对C口相应位的置位 复位设置允许或不允许 A口 对PC6置位 使INTEA 1 允许中断对PC6复位 使INTEA 0 不允许中断B口 对PC2置位 使INTEB 1 允许中断对PC2复位 使INTEB 0 不允许中断在方式1下 作为联络信号的外部引脚PC6 PC2 不受C口按位置位 复位控制字控制 而只在8255A内部对INTE信号起作用 45 方式2输入 输出端口的联络信号 工作在方式2时 C口有5根引脚作为A口的联络信号 是方式1下A口输入 输出联络信号的组合 46 4 C口状态字 8255A工作在方式0时 C口各位作输入输出用 当工作在方式1和方式2时 C口产生与外设的联络信号 此时 读入C口各位的内容可检查或测试外设的状态 使其使用查询方式工作 C口的状态字如下 47 方式1下C口状态字 方式2下C口状态字 48 MCS 51单片机与8255A的接口 例 试设计一个8031单片机与并行接口芯片8255A的接口电路 端口A接一组指示灯 显示的内容由A口输出至指示灯 端口B接一组开关 将开关的内容由B口输入 并将此开关状态通过A口由指示灯显示出来 8255A的A口 B口 C口和控制字的地址分别为7F00H 7F01H 7F02H和7F03H 49 1 需要明确 由地址的7F00 7F01 7F02 7F03得知 CPU的A1 A0肯定是和8255的A1 A0相连的 2 要使用可编程芯片 首先必须要设置控制字 50 参考程序如下 ORG1000HMOVDPTR 7F03HMOVA 82H 10000010方式控制字MOVX DPTR AMOVDPTR 7F01HMOVXA DPTRDECDPTRMOVX DPTR AEND 51 一 MCS 51对LED数码管的接口控制LED显示器用于显示工业控制参数 过程状态 light emittingDiode发光二极管 分为共阴极LED和共阳极LED LED字段引线与数据线连接 每个显示字形对应一个字形码 7 5MCS 51对LED及键盘的接口 52 LED显示分静态显示和动态显示 静态显示 各LED能稳定的同时显示各自字形 动态显示 各LED轮流的一遍一遍显示各自字形 人们由于视觉惰性 看到的是各个LED 53 1 静态显示 54 显示编程过程 1 设置显示缓冲区 存放待显示数据和字符 2 显示译码 程序存储器中建立字形码常数表 查表得出对应数据和字符的字形码 3 输出显示 输出字形码到显示端口 例如 取出要查的表项放入A中MOVDPTR WTAB MOVCA A DPTR 显示代码MOVP1 A WTAB DB3FH 06H 5BH 表格 55 静态显示法编程实例 P1显示十位 P3显示个位 56 57 58 2 动态显示多位LE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跳棋演示软件功能详解
- 2025检验科c反应蛋白在感染性疾病中的应用培训教程
- 消防灭火基础知识
- 检验科社区小科普
- 防疟疾安全教育
- 招聘的程序与方法
- 租借车牌协议书
- 陶瓷合作协议书
- 2025-2026学年安徽省阜阳市五年级道德与法治上册期中考试试卷及答案
- 2025年湘教版八年级道德与法治上册月考考试试题及答案
- 广东省深圳市罗湖区2024-2025学年八年级上学期11月期中考试数学试题(含答案)
- 医疗设备投放协议书
- 阿坝州建设投资有限公司招聘笔试真题2024
- 数据库备份恢复计划
- 招投标审计知识培训课件
- 2025年版会计继续教育试题及答案
- 2025年公共基础知识试题库附参考答案
- 基于16PF的保险业销售人员选拔与绩效预测:理论、实践与展望
- 2025年大数据行业营销策略创新方案可行性分析报告
- 心理健康指导师考试题库及答案
- 2024年成人高等考试《政治》(专升本)试题真题及答案
评论
0/150
提交评论