输入-输出接口技术.ppt_第1页
输入-输出接口技术.ppt_第2页
输入-输出接口技术.ppt_第3页
输入-输出接口技术.ppt_第4页
输入-输出接口技术.ppt_第5页
已阅读5页,还剩117页未读 继续免费阅读

下载本文档

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

文档简介

第7章输入 输出接口技术 内容安排 一 接口技术概述二 可编程并行接口芯片8255A三 可编程定时器 计数器接口芯片8253A四 串行通信五 串行异步通信接口芯片8250 7 1接口技术概述 定义 输入 输出 I O 接口是CPU和外设信息交换的桥梁 是一个过渡的大规模集成电路 1 输入 输出接口 存在方式 与CPU集成在同一块芯片上 如 MCS 51 MC908GP32 AT89C52等 以单独芯片存在 如 8255 8253 8250 8279等 I O接口与I O端口之间的关系 I O端口 I O口 是指I O接口中带有端口地址的寄存器或缓冲器 I O接口 是指CPU和外设间的I O接口芯片 二者之间关系 CPU通过端口地址对端口中信息进行读写 但不能直接通过接口读写信息 需要借助于接口中的端口地址 一个外设通常需要一个I O接口 但一个I O接口可以有多个I O端口 I O接口的作用 1 隔离主机与外设之间的数据 实现和不同外设的速度匹配 如 打印机 数控机床控制 2 数据类型的转换如 并 串 串 并 模 数转换 A D 3 传输外设控制信号和接收外设的状态信号 4 改变信号的性质和电平 2 外部设备的编址 外设编址实际上是给所有I O接口中的端口编址 以便CPU通过端口地址和外设交换信息 是指外设端口地址和存储单元地址分别编址 互为独立 1 外设端口的单独编址 例7 1 存储器地址范围 00000H FFFFFHI O端口地址范围 0000H FFFFH 注意 区分16位地址总线上地址究竟是送给存储器还是外设端口 依据是I O指令产生的M IO信号 特点 外设端口单独编址不占用存储器地址 需要CPU指令集中有专用的I O指令 需要增加相应的控制线 2 外设端口和存储器统一编址 是把外设端口当作存储器单元对待 也就是让外设端口地址占用部分存储器单元地址 例7 2 存储器地址范围 0000H 1FFFHI O端口地址范围 2000H 3FFFH 3 输入 输出接口的交换信息 特点 不需要专门访问I O端口的指令 大大增强了CPU对外设端口信息的处理能力 外设端口地址安排灵活 数量不受限制 外设端口占用了部分存储器地址 译码电路较复杂 数字量 二进制表示一个数据 如 字节 ASCII码 模拟量 随时间连续变化的物理量如 电压 电流 湿度 压力 流量 开关量 二进制 0 和 1 描述外设的状态如 开关 启停 通断 脉冲信号 上下沿跳变信号 4 输入 输出的控制方式 见6 1节 以位 Bit 为单位进行数据传输 如 通信 网络等 特点 传输距离相对较远 但速率较低芯片 8250A 8251A等 1 串行I O接口 2 并行I O接口 以字节 或字 双字 为单位 做输入 输出如 打印机 A D D A等特点 传输距离近 一般 2m 传输速率快芯片 8255A 8253A 8279等 6 举例 步骤 1 构造总线系统 2 将接口挂在总线上 3 按题意要求设置接口电路 地址分析 思考 1 如果CPU为8086 2 除了上述输入 输出设备 还有2片存储器6116电路如何设计 7 2可编程并行接口芯片8255A 1 8255A内部结构及引脚功能 并行输入 输出端口A B C PA口 PB口 PC口均为8位 双向I O数据口 都可直接与外设连接 但在结构上稍有差异 PA口 PB口 PC口受读写控制部件及A组或B组控制部件控制 A组和B组控制部件 数据总线缓冲器 是一个三态双向8位数据缓冲存储器 是8255A与CPU之间的数据接口 有了数据总线缓冲器 8255A可直接 挂 到系统的数据总线 DB 上功能 CPU控制字 数据 数据总线缓冲器 8255A OUT指令 IN指令 8255A 状态信息 数据 数据总线缓冲器 CPU 读 写控制部件 接收控制信号 并产生8255A内部控制时序 向片内功能部件发出操作命令 RESET复位信号 高电平有效 CPU输入 当RESET有效时 清除8255A中所有控制字寄存器内容 并将各端口置成输入方式 A1 A0端口选择信号线 端口地址输入线 8255A共有4个端口地址A1A0 00 端口AA1A0 10 端口CA1A0 01 端口BA1A0 11 控制字寄存器 注意 PA PB PC三个端口各占用一个端口地址 加上控制字寄存器地址 这些地址连续 其中一个端口地址确定 则其它端口地址也就随之确定如 82H 10000010 PC口 PA口 80H PB口 81H 控制字寄存器 83H 2 8255A工作方式类型及控制字 1 8255A工作方式类型 工作方式0 基本输入 输出方式 无条件传送方式 PA PB PC口均可选择此方式工作方式1 选通输入 输出方式 条件传送方式或中断方式 PA PB口可选择此方式注 此方式一般用于连接需要联络信号的外设 其中PC口为PA PB口提供控制和联络信号工作方式2 选通的双向传送方式 只有PA口可用于此方式 既可做输入 又可做输出 由PC口提供控制和联络信号 2 8255A工作方式选择控制字 8255A内部有一个控制寄存器 占用一个端口地址 专门用来接收CPU送来的控制字工作方式控制字格式 例7 4 设PA口与输出设备连接 工作于有条件传输方式 查询 PB口与输入设备连接 工作于中断方式 PC5 PC4驱动二个发光二极管 设PA口地址为A0H 用138译码器 设计电路 并编写程序 解 步骤 设计电路 确定8255A的工作方式 编写初始化程序 工作方式 初始化程序 MOVAL 0A6HOUT0A3H AL 向8255A送控制字INAL 0A1H PB口输入OUT0A0H AL PA口输出OUT0A2H AL PC5 PC4输出 置位 复位控制字 只对端口C有效当PA口 PB口工作方式1或2时 需要PC口作为控制和联络信号线 工作前或工作过程中对其置位 复位 如 PA口工作于方式1 输入 格式 例7 5 设8255A某端口地址为A5H 请编写一个程序使灯灭 继电器闭合 PC7出的电机停转 解 地址分析A5H 10100101 PB口则 PA口 A4H PC口 A6H 控制字寄存器 A7H 程序 MOVAL 00HOUT0A7H AL 灯灭MOVAL 0BHOUT0A7H AL 继电器闭合MOVAL 0EHOUT0A7H AL 停转 3 8255A的工作方式 1 工作方式0PA口 PB口 PC口均可选择该方式基本输入 输出方式无条件传送 注意 CPU通过对状态 PC口 查询 可以实现I O数据的异步传送 2 工作方式1 选通输入 输出方式 PA PB口可选择此方式 PC口为PA PB口提供控制和联络信号且相应PC端口位置固定 选通输入方式 以PA口为例 工作过程 注意 PA口做方式1输入时 中断允许触发器INTEA的状态是由PC4位操作指令设置 如 MOVAL 09HOUT43H AL 选通输出方式 以PB口为例 工作过程 注意 PB口做方式1输出时 中断允许触发器INTEB的状态是由PC2位操作指令设置 实际应用中 在进入中断服务程序之前应先向外设送出一个无意义数据 目的是使系统进入中断时 真正的输出数据在中断服务程序中 3 工作方式2 选通的双向传送方式 只有PA口可用于此方式 既可做输入 又可做输出 由PC口提供控制和联络信号 4 8255A的状态字及PC口功能 1 8255A的状态字若8255A的工作方式设定为方式1或方式2时 读PC口便可读得相应的状态字 以便了解8255A的工作状态 并供CPU查询 PA口 PB口工作于方式1时 PC口状态 PA口工作于方式2 PB口工作于方式0或1时 PC口状态 2 PC口的功能 可独立使用 方式0 与外设连接可以拆成两部分 分别作为PA口 PB口的联络信号线可以为8255A做中断控制可以做8255A的状态字可以工作于位控输出方式 单独使用某一根I O线 对外设开关量控制 5 8255A的应用 例7 6 某系统要求使用8255的PA口工作于方式1做输入 PB口工作于方式0作输出 PC口高4位做联络信号线后剩余的I O线做输入 低4位输出 设8255端口地址为60 63H 以中断传送方式 解 工作方式控制字 10111000B B8H初始化程序 MOVAL 0B8HOUT63H ALMOVAL 09HOUT63H AL 例7 7 假设利用8255A的PA口方式0与打印机相连 将内存缓冲区BUFF中的字符打印输出来 硬件连接见下图 设8255A的工作频率与CPU的工作频率相当 打印机接口要求在有效时 才能接收数据 而在BUSY有效时 则表示打印机忙 不能接收数据 程序 DATASEGMENTBUFFDB HELLO WORLD 13 10 PORTAEQU60HPORTBEQU61HPORTCEQU62HPORTCNEQU63HDATAENDSCODESEGMENTASSUMECS CODE DS DATASTARTPROCFARMOVAX DATAMOVDS AX LEASI BUFFMOVAL 88H 8255初始化OUTPORTCN AL PC口高4位输入 低4位输出MOVAL 01H PC0置1 STB初始状态 1OUTPORTCN ALWAIT INAL PORTC 查询打印机状态 TESTAL 80H 判BUSY 1 JNZWAIT 若 忙 则等待MOVAL SI 从缓冲区取数CMPAL 判是结束符 否 JZPRINT OVER 若是结束符 退出OUTPORTA AL 输出字符 MOVAL 00H 产生选通信号 STB 0 启动打印机OUTPORTCN ALMOVAL 01H 使STB 1 STB引脚负方波结束OUTPORTCN ALINCSI 修改缓冲区指针JMPWAITPRINT OVER MOVAH 4CH 返回DOSINT21HSTARTENDPCODEENDSENDSTART 注意 PC口的按位置 复位控制字用来产生打印机的控制信号 控制打印机启 停 解 地址分析 初始化程序 INTT MOVDX 0FFFEH 初始化8255AMOVAL 86H 8255A工作方式设定OUTDX ALMOVAL 05 PC2口置位OUTDX ALMOVDX 0FFFDH 8259A工作方式设定MOVAL 13H ICW1设定OUTDX ALMOVDX 0FFFFH ICW2设定MOVAL 40HOUTDX ALMOVAL 03H ICW4设定OUTDX ALMOVAL 0FEH OCW1设定OUTDX AL POUT MOVDX 0FFF8H 从端口A输出8位数据MOVAL HOUTDX ALMOVDX 0FFFCH 启动ADC0809MOVAL 80HOUTDX ALMOVAL 0OUTDX ALWAIT STIJMPWAIT 40H类型中断服务程序 MOVDX 0FFFAHINAL DX IRET 7 3可编程定时 计数器接口芯片8253A 定时用途 定时打铃 石英钟 红绿灯 动态存储器的刷新定时 系统的日历时钟计数用途 生产线 出租车计费 点钞机 软件定时 通过执行延迟子程序 达到定时目的 延迟子程序包含一定的指令 设计者要求对这些指令的执行时间进行严密的计算或者精确的测试 以便确立延迟时间是否符合要求 定时时间较长时 一般采用循环程序优点 不需添加硬件设备 只需编制有关延时程序缺点 增加CPU的开销 时间越长 开销越大 浪费CPU资源 不可编程的硬件定时 单稳态延时电路或计数电路来实现延时或定时 如 555 优点 不增加CPU的开销缺点 器件容易老化 导致定时不准 RC决定脉冲宽度 可编程硬件定时 结合软件定时及不可编程的硬件定时的方法 并将它们作成一个通用的器件 工作原理 计数器 定时器计数或定时达到确定值时 可以自动产生一个输出 特点 计数器 定时器与CPU可同时做不同的工作 计数或定时时 不占用CPU 并且利用计数 定时器产生中断信号 还可以建立多作业环境 提高了CPU的效率 可编程计数器 定时器的功能 计数器 设置计数初值后 计数器被启动 减1计数 当减为0时 输出一个信号 定时器 设置计数初值后 启动减1计数 按定时常数不断的输出为时钟周期整数倍的定时间隔 二者共同点 都基于减1计数二者区别 计数时 减到0之后 输出一个信号结束定时时 不断产生信号 1 8253A芯片内部结构 数据总线缓冲器 8位三态缓冲器 CPU通过数据总线缓冲器向8253写入数据和命令或从数据总线缓冲器向8253读取数据或状态信息功能 向8253写入确定工作方式的命令向8253计数器寄存器装入计数初值读出8253的计数值 读写控制逻辑 8253内部操作的控制部分 接受来自系统总线的信息 产生控制整个芯片的控制信号A1A0 端口选择信号 由CPU输入 选择3个通道和控制端口 RD WR 输入低电平有效RD CPU读取A1A0所选定通道内计数器的当前值WR CPU向8253控制字寄存器或向计数器置计数初值CS 片选信号 低电平有效通常由端口地址的高位地址译码形成 控制字寄存器 用来存放由CPU写入8253A的工作方式选择控制字 定义8253A中各通道的工作方式 通道0 2 三个通道功能完全相同 锁住当前计数值 供CPU查询 计数脉冲 CLKi 计数器减1 0溢出 OUTi输出 时钟脉冲 CLKi 计数器减1 0溢出 OUTi输出 频率没有特殊要求 例7 9 设时钟频率为2KHz 要求定时1s 计算计数器初值解 计数器初值 1 0 5 10 3 2 103 07D0H 注意 任意通道作计数或定时用时 其内部结构完全相同计数时 由计数脉冲决定计数器是否减1 定时时 由定时脉冲决定计数器是否减1计数脉冲周期可不固定 一般来自外部 现场 定时脉冲周期固定 一般来自系统主时钟计数时 计数的次数直接作为计数器的初值 定时时 计数器的初值由定时时间和定时脉冲频率确定无论是计数还是定时 当前计数值由计数值锁存器锁住 供CPU查询 2 8253A工作方式选择控制字 功能 定义8253中各通道的工作方式 格式 例7 10 设8253A通道0工作于方式0 用二进制计数 其初始值为4 8253A端口地址为40H 43H 其初始化程序 MOVAL 10H 控制字 00010000B OUT43H AL 写入控制寄存器MOVAL 4 计数初值 只送低8位OUT40H AL 初值送通道0 例7 11 设8253A通道1工作于方式1 用BCD码计数 其初始值为4000 8253A端口地址为40H 43H 其初始化程序 MOVAL 63H 控制字 01100011B OUT43H AL 写入控制寄存器MOVAL 40H 计数初值 只送高8位OUT41H AL 初值送通道1 例7 12 设8253A通道2工作于方式2 用二进制计数 其初始值为0304H 8253A端口地址为40H 43H 其初始化程序 MOVAL 0B4H 控制字 10110100B OUT43H AL 写入控制寄存器MOVAL 04H 先设置计数初值低字节OUT42H AL 初值低8位送通道2MOVAL 03H 后设置计数初值高字节OUT42H AL 初值高8位送通道2 MOVAL 84H 控制字 10000100B OUT43H AL 写入控制寄存器INAX 42H 读通道2计数器值 8253A的编程步骤 设置8253A的工作方式 由CPU向8253的控制寄存器输出一个控制字 设置8253A计数器初值 初值可以是8位的 也可以是16位 读取计数器当前值 可选 注意 在读计数值时 须先用锁存命令 将当前计数值在输出锁存器中锁定 方可由CPU读取 否则计数器的数值有可能正在改变过程中 可能读取一个不确定的结果当CPU将锁定值用输入指令读走时 锁存器自动失锁 又跟随减法计数器工作 在锁存和读出计数值的过程中 不影响计数进行 3 8253A芯片的工作方式 基本原则 控制字写入8253时 所有的控制逻辑电路立即复位 输出端OUT进入初态计数器初值写入以后 要经过一个时钟周期 计数器才开始工作 下降沿使计数器进行减1计数 计数器容纳的最大初值为 0 时钟脉冲的上升沿采样门控信号 边沿触发器检测门控信号的上升沿 计数器控制逻辑电路在每个时钟脉冲的上升沿采样边沿触发器 检测是否被外部门控脉冲触发过 1 工作方式0 计数结束中断方式 功能 定时 计数注意 门控信号GATE的作用 计数器初值一次有效 2 工作方式1 可编程单脉冲发生器 功能 单脉冲发生器注意 门控信号GATE的作用 计数器初值一次有效 3 工作方式2 速率发生器 功能 速率发生器注意 门控信号GATE的作用 计数器初值 4 工作方式3 方波发生器 注意 门控信号GATE的作用 计数器初值 占空比 n为偶数 1 1n为奇数 n 1 2 n 1 2 5 工作方式4 软件触发方式 注意 门控信号GATE的作用 计数器值通过软件 计数器初值一次有效 与工作方式0的区别 6 工作方式5 硬件触发方式 注意 门控信号GATE的作用 硬件触发信号 计数器初值 与工作方式4的区别 4 8253A芯片的应用 例7 13 某8086系统中包含一个8253芯片 要求完成如下功能 利用通道0完成对外部事件计数功能 计满100次向CPU发出中断请求 利用通道1产生频率为1KHz的方波 利用通道2作标准时钟相应的系统结构图如图所示 编写初始化程序 解 地址分析 通道0 工作方式0 计数值100 64H工作方式选择控制字 00010000B 10H 通道1 工作方式3 输出方波频率 1KHz T 1msCLK1输入时钟脉冲为2 5MHz T 0 4 s计数值 T T 1ms 0 4 s 2500 09C4H工作方式选择控制字 01110110B 76H通道2 工作方式0 定时T 1sCLK2输入时钟脉冲为1KHz T 1ms计数值 T T 1s 1ms 1000工作方式选择控制字 10100001B A1H 初始化程序 STT MOVDX 0FFFFH 定义通道0工作在方式0MOVAL 10HOUTDX ALMOVDX 0FFF9H 给通道0送计数值 只选低8位MOVAL 64HOUTDX ALMOVDX 0FFFFH 定义通道1工作在方式3MOVAL 76HOUTDX ALMOVDX 0FFFBH 给通道1送计数初值MOVAX 09C4H 先送低8位 后送高8位OUTDX ALMOVAL AHOUTDX ALMOVDX 0FFFFH 定义通道2工作在方式0MOVAL 0A1HOUTDX AL MOVDX 0FFFDH 给通道2送计数初值MOVAL 10OUTDX ALMOVDX 0FFFCH 初始化8259AMOVAL 13H ICW1设置OUTDX ALMOVDX 0FFFEH ICW2设置 通道0和通道2MOVAL 50H 的中断类型码分别为50H和52HOUTDX ALMOVAL 03 ICW4设置OUTDX ALMOVAL 0FAH OCW1设置OUTDX ALSTI CPU等中断HH JMPHH 7 4串行通信 串行通信 使数据一位一位的进行传输而实现的通信特点 需要传输线少 成本低 速度慢 适合于远距离传输 1 串行通信的数据传输模式 1 单工通信 单向传输数据 只允许一个方向传输数据 如 有线电视 广播 如 对讲机 3 全双工通信 串行口之间分别有两根独立的传输发送和接收信号 可以同时进行发送和接收一根通信链路 频分复用方式 FDM 两根通信链路 发送 接收各占其一 至少在逻辑上是分开的 2 串行通信方式 数据格式 特点 以一组不定 位数 数据组成每一个数据传送时 前面须加一位 起始位 后面加1 或1 5或2 停止位两组数据之间可有空闲位 1 波特率 BandRate 定义 单位时间传输的信息量 也可以说 每秒传送数据的位数单位 bps 1bps 1位 秒 例7 14 数据传送速率为120字符 秒 每帧包括10个数据位 求波特率解 波特率 10 120 1200位 秒 1200bps 常用的异步通信的波特率 150 300 600 1200 2400 4800 9600 14400 如 实验室中 用COM2 波特率为4800bps 注 异步通信时 字符 字节是一帧一帧的传送 每帧字符必须靠起始位来同步 在异步通信的数据传送中 传输线上允许空字符 校验位 奇校验 字符加上校验位有奇数个1偶校验 字符加上校验位有偶数个1 注意 校验位的产生和检查由串行通信控制器内部自动产生 停止位也是由硬件自动产生的无论是奇校验还是偶校验 当出现偶数个错误时 系统不能检测 2 同步通信 利用同步字 SYN 获得双方的同步信息 格式 特点 以同步字符 SYN 作为传送的开始 从而保证收 发双方同步每位占用的时间都相等字符数据之间无间隔符 当线路空闲或没有字符可发时 发送同步字符 传输速率高 3 串行通信的时钟 冗余校验 传送数据作为被除数 发送器本身产生一固定除数 前者除以后者得到余数 即为该 冗余 字符当数据和冗余字符一起被传送到接收器时 接收器产生和发送器相同的除数 和数据位相除 得到余数进行比较 99 由协议保证 二进制数据系列在串行传送过程中 以数字信号波形的形式出现 无论接收还是发送 都须有时钟信号对传送的数据进行定位 1 发送脉冲和接收脉冲 发送 发送方要靠发送脉冲 移位脉冲 下降沿将数据移出 经TXD引脚 对方接收 接收方要靠接收脉冲 移位脉冲 上升沿将数据接入 经RXD引脚 串口 注意 接收时钟的上升沿对准数据位的中间位置 以保障可靠的接收数据移位脉冲的频率 波特率发送方与接收方实现同步 随着数据的不断传输 将产生一个误差积累 有可能使数据丢失 思考题 异步通信中 如何实现同步的 2 检验脉冲 接收方需对发送方发来的数据位进行检测 以决定 0 还是 1 通常检测脉冲是移位脉冲的16和64倍 常选16 三中取二 目的 抑制干扰 提高信号的传输可靠性 因为采样信号总是在每个接收位的中间位置 不仅可以避开信号两端的边沿失真 也可防止接收时钟频率和发送时钟频率不完全同步引起的接收错误 4 串行通信接口的基本结构 接收移位脉冲寄存器 靠移位脉冲将数据串行传进来接收数据缓冲寄存器 将移位寄存器中的数 缓冲寄存器 实现串 并的转换过程 向CPU申请中断后 等待CPU取走数据接收脉冲发生器 用来产生接收的移位脉冲 RXC 发送数据缓冲寄存器 接收CPU送来的并行数据发送移位寄存器 接收发送缓冲寄存器的数据 完成并 串的转换 在移位脉冲的作用下 将数据移出去可以重新申请发送脉冲发生器 用来产生发送移位脉冲 TXC 状态触发器 PEOECEPE 奇偶校验出错状态 1 奇偶错OE 溢出出错标志接收到的数未被CPU取走 又接收到新数 前一个数就丢失 这种现象称为溢出错 CE 帧格式错标志接收数据没有停止位控制寄存器 读写 中断等控制逻辑发送 接收时钟 工作时钟CLK 经分频后产生RXC TXC 5 调制解调器 MODEM 发送方 在做远距离传输时 需要通过MODEM将数字信号 模拟信号 可以利用电话线传输 称为调制接收方 利用MODEM将模拟信号转换为数字信号 称为解调 局域网不用调制解调器 用网卡即可 7 5串行异步通信接口芯片8250 特点 8250是一种可编程的串行异步通信接口芯片支持异步通信规程芯片内部设置时钟发生电路 并可以通过编程改变传送数据的波特率提供MODEM所需的控制信号和接收来自MODEM的状态信息 易通过MODEM实现远程通信具有数据回送功能 为调试自检提供方便 1 8250内部结构 2 8250寄存器的口地址 COM1 COM2 2F8 2FE 3 8250寄存器 1 发送数据保持寄存器 THR 3F8H 只写 包含要发送的字符 其中第0位是串行发送的第一位数据 2 接收数据寄存器 RBR 3F8H 只读 存放接收的字符 3 线路控制寄存器 LCB 3FBH 只写 规定了异步串行通信的数据格式 格式 设置间断 SOUT发送空号 据此 收方能识别发送设备已中止发送 4 波特率因子寄存器 DLR 3F8H 3F9H 只写 当前线路控制寄存器D7写入1时 接着对口地址3F8H 3F9H可分别写入波特率因子分频数的低字节和高字节波特率 1 8432MHz 波特率因子 16 如 要求发送波特率为1200波特 则波特率因子 3F8H口地址应写入96 60H 3F9H口地址应写入0 注意 波特率因子必须在初始化期间设置 此时线路控制寄存器D7 1 以保证波特率发生器执行规定动作 通常BAUDOUT输出信号用于接收和发送时钟 5 中断允许寄存器 IER 3F9H 只写 允许8250四种类型中断 相应位置1 使中断请求INTRPT输出有效的高电平 注意 将中断允许寄存器最低四位清零 可完全禁止芯片中断系统 中断系统的禁止将封锁中断标识寄存器和中断请求的输出 6 中断标识寄存器 IIR 3FAH 只读 可以用来判断有无中断与哪一类中断请求 8250具有优先级的中断逻辑 接收线路状态中断 最高 接收数据就绪中断 发送保持寄存器空中断 Modem状态中断 最低 7 线路状态寄存器 LSR 3FDH 可读 向CPU提供有关数据传输的状态信息读入时 各数据位等于1有效 作相应的读出与写入操作后将复位 8 MODEM控制寄存器 MCR 3FCH 只写 控制与调制解调器或数传机的接口信号 9 MODEM状态寄存器 MSR 3FEH 只读 反映了调制解调器控制线的当前状态 同时提供了四位控制输入的状态变化信息 各数据等于1为有效 4 8250的工作过程 1 数据发送 数据 CPU THR TSR SOUT 在发送时钟的激励下 按照事先和接收方约定的字符传送格式 加上起始位 奇偶校验位和停止位 再以约定的波特率按照从低到高的顺序一位一位发送 查询该状态位或者利用该状态触发的中断即可实现数据的连续接收 5 8250的初始化 例7 14 设波特率为1200bps 1位停止位 7位数据位 奇校验 其初始化程序 程序 MOVDX 3FBH LCR地址MOVAL 80H 设置波特率OUTDX ALMOVDX 3F8HMOVAL 60HOUTDX ALINCDXMOVAL 0OUTDX AL 3F9H送0 MOVDX 3FBH LCR地址MOVAL 0AH 初始化LCROUTDX ALMOVDX 3FCH 初始化MCRMOVAL 03HOUTDX ALMOVDX 3F9H 初始化IERMOVAL 0 禁止所有中断OUTDX AL 5 8250的应用 例7 15 在IBMPC机中 采用8250实现串行通信 通过查询方式发送数据 发送的数据字节数放在BX中 发送的数据顺序存放在以DATA为首地址的内存区中 采用中断方式接收数据 接收一个字符放在以BUFFER为首地址的内存区中 设波特率为1200bps 1位停止位 7位数据位 奇校验 请编程实现 解 地址分析 程序 发送程序 8250初始化MOVDX 3FBH LCR地址MOVAL 80H 设置波特率OUTDX ALMOVDX 3F8HMOVAL 60HOUTDX ALINCDXMOVAL 0OUTDX AL 3F9H送0 MOVDX 3FBH LCR地址MOVAL 0AH 初始化LCROUTDX ALMOVDX 3FCH 初始化MCRMOVAL 03HOUTDX ALMOVDX 3F9H 初始化IERMOVAL 0 禁止所有中断OUTDX AL SENDPRG MOVDX 3FDHLEASI DATAWAITTHR INAL DXTESTAL 20HJZWAITTHRPUSHDXMOVDX 3F8HLODSBOUTDX AL 发送一个字符POPDXDECBXJNZWAITTHR CPU可以通过读LSR 3

温馨提示

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

评论

0/150

提交评论