串并行通讯与常用接口电路.ppt

上传人:xt****7 文档编号:4259513 上传时间:2020-01-04 格式:PPT 页数:74 大小:792.31KB
返回 下载 相关 举报
串并行通讯与常用接口电路.ppt_第1页
第1页 / 共74页
串并行通讯与常用接口电路.ppt_第2页
第2页 / 共74页
串并行通讯与常用接口电路.ppt_第3页
第3页 / 共74页
点击查看更多>>
资源描述
2020年1月4日星期六 第1页 9 1通信的概念 9 2可编程并行通信接口8255A 9 3可编程串行通信接口8251A 9 4可编程计数器 定时器8253 2020年1月4日星期六 第2页 9 1通信的概念 CPU与外部设备之间常常要进行信息交换 计算机和计算机之间也需要进行信息交换 所有这些信息交换均称为 通信 1 并行通信是指数据的各位同时进行传送的方式 特点是传输速度快 9 1 1通信的一般概念 例如 CPU将数据通过并口送给打印机等都属于并行通信 通信的基本方式分为并行通信和串行通信两种 当距离较远 位数又多时 则导致了通信线路复杂且成本高 2020年1月4日星期六 第3页 2 串行通信是指数据的各位一位一位地进行传送 特点是通信线路简单 只需要一对传输线 节省传输线 优点 数据传输率较低 缺点 主要适用于长距离 低速率的通信中 9 1 2并行通信 并行通信就是把一个字符各位用几条线同时进行传输 和串行通信相比 并行通信的信息实际传输速度快 信息传输率高 远距离成本高 2020年1月4日星期六 第4页 9 1 3串行通信 有三种情况 即单工通信方式 半双工通信方式和全双工通信方式 1 串行通信中的一般概念 单工和双工通信方式 2020年1月4日星期六 第5页 同步方式和异步方式 异步通信 每个字符的前面要有一位起始位 起始位后面紧跟的是字符 数据字 最后是停止位 两个字符间的传输间隔是任意的 标准的异步通信数据格式 2020年1月4日星期六 第6页 波特率的概念 单位时间内传送的二进制数据的位数 以位 秒 b s 表示 也称为数据位率 它是衡量串行通信速率的重要指标 波特率因子的概念 通信时 发送端和接收端都要用时钟来测定每1位对应的时间长度 它们称做发送时钟和接收时钟 这两个时钟的频率应该相等 它可以是信息位传输的16倍 32倍或者64倍 这个倍数称为波特率因子 波特率因子 n 波特率 一般n取1 16 32和64等 对于异步通信 常采用n 16 2020年1月4日星期六 第7页 当n 16时 数据传输监测示意图如下 能完成上述功能的部件为通用异步收发器 UART UniversalAsynchronousReceiverandTransmitter 2020年1月4日星期六 第8页 同步通信同步串行通信是以数据块 字符块 为信息单位传送 而每帧信息包括成百上千个字符 因此传送一旦开始 要求每帧信息内部的每一位都要同步 2 有关串行通信的物理标准 字符格式 通信双方要约好字符的编码形式 奇偶校验形式以及起始位和停止位的规定 2020年1月4日星期六 第9页 波特率 Baudrate 波特率或传输率就是指每秒传输信息的位数 它是衡量数据传送速率的指标 要求发送端和接收端都要以相同的数据传送速率工作 例1 每个字符对应1个起始位 7个信息位 1个校验位 1个停止位 波特率为1200位 秒 波特 则每秒传输的字符数为 1200 10 120个 每一位的传送时间Td就是波特率的倒数 如1200波特率 则 Td 1 1200 0 833ms 2020年1月4日星期六 第10页 答 1 波特率是 7位数据位 1位起始位 1位校验位 1位停止位 240 2400b s2 有效数据位传输位是 7 240 1680b s3 传输效率是 1680 2400 70 例2 异步传输7位ASCII码 如果需要数据传输速率为240字符 秒 用1位奇偶校验位和1位停止位 则 1 波特率应该是多少 2 有效数据位传输位是多少 3 传输效率是多少 常用的标准波特率为 110 300 600 1200 1800 2400 4800 9600 19200 2020年1月4日星期六 第11页 3 远程串行通信 在进行远程串行通信时必须采用模拟载波传输方式 如在采用有形介质 如电话线 进行串行通信时 通信双方必须各接入一个专门设备 调制解调器 将数字信号调制成模拟信号在电话线上传输 并在接收端将模拟信号解调 还原成数字信号 电话线 2020年1月4日星期六 第12页 9 3可编程串行通信接口8251A 串行通信是数据一位一位地顺序传输 串行通信接口通过系统总线与主机连接 接收读 写信号和地址信号 进行数据的传输 9 3 1串行通信接口8251A的功能与工作原理1 8251A的基本功能 两种工作方式 通过编程 可以工作在同步方式 也可以工作在异步方式 同步方式下 波特率为0 64K 异步方式下 波特率为0 19 2K 同步方式下的格式 在同步方式时 每个字符可以用5 6 7或8位来表示 并且内部能自动检测同步字符 从而实现同步 2020年1月4日星期六 第13页 异步方式下的格式 每个字符也可以用5 6 7或8位来表示 用1位作为奇 偶校验 时钟频率为传输波特率的1 16或64倍 1个启动位 1个 1 5个或2个停止位 全双工的工作方式8251A内部提供具有双缓冲器的发送器和接收器提供全双工的工作方式功能 提供出错检测8251A具有奇偶 溢出和帧错误三种校验电路 2020年1月4日星期六 第14页 2 8251A编程结构及工作原理内部结构原理 由接收器 发送器 数据总线缓冲器 调制解调控制电路 读 写控制逻辑电路等模块组成 2020年1月4日星期六 第15页 接收器 接收器由接收缓冲器和接收控制电路两部分组成 接收器从RXD引脚上接收串行数据 并按照相应的格式转换成并行数据后存入接收缓冲器 接收控制电路配合接收缓冲器工作的 它管理有关接收的所有功能 即 在异步方式下 芯片复位后 先检测输入信号中的有效 一旦检测到 就接着寻找有效地低点平来确定起始位 消除假启动干扰 对接到的信息进行奇偶校验 并根据校验结果建立相应的状态位 检测停止位 并按照检测结果 建立状态位 2020年1月4日星期六 第16页 发送器 发送器由发送缓冲器和发送控制电路两部分组成 发送缓冲器把来自CPU的并行数据加上相应的控制信息 然后转换成串行数据从TXD引脚发出去 所以 从功能上编程结构图中有发送移位寄存器 发送控制电路和发送缓冲器配合工作 它控制和管理所有与串行发送有关的功能 在异步方式下 为数据加上起始位 校验位和停止位 在同步方式下 插入同步字符 在数据中插入校验位 2020年1月4日星期六 第17页 数据总线缓冲器是8位双向三态数据缓冲器 8251A通过数据总线缓冲器与系统相连 在CPU执行输入 输出指令期间 由数据总线缓冲器发送和接收数据 控制字 命令字和状态字也通过数据总线缓冲器来传输 数据总线缓冲器 在功能上 数据总线缓冲器相当于数据输入缓冲器 数据输出缓冲器 控制寄存器和状态寄存器 2020年1月4日星期六 第18页 读 写控制电路 用来配合数据总线缓冲器的工作 2020年1月4日星期六 第19页 38251工作原理 工作过程 异步接收a 在没有字符时 RXD线上为高电平b 8251把RXD线上第一次出现的低电平作为起始位 c 当检测到起始位后 8251启动一个内部计数器 以波特率因子为16为例 当计数器计到8个脉冲时 再检测RXD线 若RXD为高 则8251认为RXD线上出现了干扰 假起始 重新开始检测起始位 若RXD仍为低 则8251确认收到一个有效的起始位 2020年1月4日星期六 第20页 d 当8251确认起始位后 进入正常的数据采样 如波特率因子为16 则每隔16个接收时钟脉冲 采样一次RXD线 RXD为高 作为 1 RXD为低 作为 0 并将采样的数据送入 接收移位寄存器 e 当收到规定的一帧信息 8251进行奇偶校验 并根据校验结果 设置校验状态位 如果校验正确 则去掉校验位和停止位 只把有效数据送入 数据输入寄存器 同时设置 状态寄存器 中的输入有效状态位 发出RXRDY信号 f 若有效数据少于8位 8251把 数据输入寄存器 的高位填 0 2020年1月4日星期六 第21页 异步发送a 当程序把8251的控制寄存器TXEN位 允许发送 置1后 若8251收到Modem DCE 发来的CTS Modem允许8251发送 则开始发送 注意 若无Modem 应将8251的CTS端接地 b 发送控制电路根据编程要求 装配信息帧 即 为每个字符加上起始位 校验位和停止位 并把装配后的信息帧送至发送移位寄存器 c 发送移位寄存器在发送时钟TXC的控制下 按波特率因子的要求 把装配好的信息帧一位一位地从TXD端上发出 2020年1月4日星期六 第22页 d 当一帧信息发完后 8251发出TXE信号 表示已完成本帧发送 发送移位寄存器空 e 若TXE有效 且CTS为低 Modem允许发送 TXEN位置1 程序允许发送 则8251发出TXRDY信号 表示8251可以再从CPU获得数据 重新开始发送 CPU可从状态寄存器中查询TXRDY信号 也可把TXRDY信号作为中断请求信号 以便开始下一字符的发送 2020年1月4日星期六 第23页 同步接收a 搜索同步字符8251监测RXD线 每当RXD线出现一个数据位时 就将其送入 接收移位寄存器 然后比较 接收移位寄存器 和 同步字符寄存器 若不等 8251接收下一个数据位 若相等 表示已找到同步字符 实现了同步 8251发出SYNDET信号 SynchronizationDetected 对于双同步 只有连续找到两个同步字符 才发出SYNDET信号 如果在SYNDET上外加一个高电平 外同步 8251立刻脱离对同步字符的搜索 认为已完成同步 注 SYNDET是一个双向线 2020年1月4日星期六 第24页 b 实现同步后 按时钟信号对RXD线采样 并把收到的数据位送入 接收移位寄存器 注意 采样频率即 接收移位寄存器 的移位频率等于接收时钟RXC上的输入频率 在同步方式下 无波特率因子 或者说波特率因子固定为1 异步方式下 采样频率 即 接收移位寄存器 移位频率 即波特率 RXC时钟频率 波特率因子 c 接收到规定的数位时 接收移位寄存器的内容送 数据输入寄存器 并发出RXRDY信号 2020年1月4日星期六 第25页 同步发送a 当程序设置TXEN位 且CTS有效后 8251开始发送 b 发一个或两个同步字符 c 发数据块 数据块的每个字符根据编程要求 是否加上奇偶校验位 d 在8251发送过程中 若CPU来不及提供新的数据给8251 则8251自动插入同步字符 2020年1月4日星期六 第26页 9 3 28251A芯片引脚功能 1 8251A和CPU之间的连接信号可以分为四类 2020年1月4日星期六 第27页 D0 D7 8251A有8根数据线D0 D7 通过它们 8251A与系统的数据总线相连 2020年1月4日星期六 第28页 8251A的读 写控制真值表 2020年1月4日星期六 第29页 4 收发联络信号TxRDY 发送器准备好信号 输出 高电平有效 用来通知CPU 8251A已准备好发送一个字符 TxE 发送器空信号 输出 高电平有效 用来表示此时8251A发送器中并行到串行转换器空 说明一个发送动作已完成 RxRDY 接收器准备好信号 输出 高电平有效 用来表示当前8251A已经从外部设备或调制解调器接收到一个字符 等待CPU来取走 SYNDET 同步检测信号 只用于同步方式 在复位时 SYNDET变为低电平 2020年1月4日星期六 第30页 2 8251A与外部设备之间的连接信号 8251A与外部设备之间的连接信号分为收发联络信号和数据信号两类 2020年1月4日星期六 第31页 数据信号TxD 发送器数据输出信号 当CPU送往8251A的并行数据被转变为串行数据后 通过TxD送往外设 RxD 接收器数据输入信号 用来接收外设送来的串行数据 数据进入8251A后被转变为并行方式 2020年1月4日星期六 第32页 3 时钟 电源和地 CLK 时钟输入 用来产生8251A器件的内部时序 同步方式下 大于接收数据或发送数据的波特率的30倍 异步方式下 则要大于数据波特率的4 5倍 TxC 发送器时钟输入 用来控制发送字符的速度 异步方式下 TxC的频率可以为字符传输波特率的1倍 16倍或者64倍 具体倍数决定于8251A编程时指定的波特率因子 RxC 接收器时钟输入 用来控制接收字符的速度 和TxC一样 在实际使用时 RxC和TxC往往连在一起 由同一个外部时钟来提供 VCC 电源输入 GND 地 2020年1月4日星期六 第33页 8251A和CPU之间的连接 2020年1月4日星期六 第34页 1 方式选择控制字 分同步模式和异步模式 9 3 38251A的控制字和方式字 异步模式 2020年1月4日星期六 第35页 同步模式控制字 8251A方式寄存器的格式 同步模式 2020年1月4日星期六 第36页 在同步模式中 接收和发送的波特率 实际上就是移位寄存器的移位率 分别和RxC引脚 TxC引脚上的输入时钟的频率相等 在异步模式中 要用模式寄存器中的两个最低位来确定波特率因子 此时RxC和TxC的频率 波特率因子和波特率之有如下关系 时钟频率 波特率因子 波特率 如 模式寄存器的最低两位为10B 而要求发送数据的波特率为300 接收数据的波特率为1200 那么 供给TxC的时钟频率应为4800Hz 而供给RxC的时钟频率应为19 2KHz 2020年1月4日星期六 第37页 2 操作命令控制字 控制字 8251A控制寄存器的格式 2020年1月4日星期六 第38页 3 状态寄存器的格式 8251A状态寄存器的格式 2020年1月4日星期六 第39页 例如 若要查询8251A接收器是否准备好 则可用下列程序段完成 MOVDX 0FFF2H 状态口L INAL DX 读状态口ANDAL 02H 查Dl 1 JZL 未准备好 则等待MOVDX OFFF0H 数据口INAl DX 已准备好则输入数据 2020年1月4日星期六 第40页 4 8251A的初始化 2020年1月4日星期六 第41页 对8251A初始化有3个约定 它们是 芯片复位以后 第一次用奇地址端口写入的值作为模式字进入模式寄存器 如果模式字中规定了8251A工作在同步模式 那么 CPU接着向奇地址端口输出一或两个同步字符 同步字符被写入同步字符寄存器 如果有两个同步字符 则会按先后分别写入第一个同步字符寄存器和第二个同步字符寄存器 由CPU用奇地址端口写入的值将作为控制字送到控制寄存器 而用偶地址端口写入的值将作为数据送到数据输出缓冲寄存器 2020年1月4日星期六 第42页 设8251A工作在异步模式 波特率系数为16 7个数据位 字符 偶校验 2个停止位 发送 接收允许 设端口地址为00E2H和00E4H 完成初始化程序 分析 根据题目要求 可以确定模式字为 11111010B 即0FAH 9 3 48251A应用1 异步模式下的初始化程序举例 控制字 00110111B 即37H 初始化程序如下 MOVAL 0FAH 模式字MOVDX 00E2HOUTDX AL 异步方式 MOVAL 37H 控制字OUTDX AL 2020年1月4日星期六 第43页 2 同步模式下初始化程序举例 设端口地址为52H 采用内同步方式 2个同步字符 设同步字符为16H 偶校验 7位数据位 字符 分析 根据题目要求 可以确定模式字为 00111000B 即38H 分析 控制字为 10010111B 即97H 它使8251A对同步字符进行检索 同时使状态寄存器中的3个出错标志复位 此外 使8251A的发送器启动 接收器也启动 控制字还通知8251A CPU当前已经准备好进行数据传输 2020年1月4日星期六 第44页 具体程序段如下 MOVAL 38H 设置模式字 同步模式 用2个同步字符 OUT52H AL 7个数据位 偶校验MOVAL 16HOUT52H AL 送同步字符16HOUT52H ALMOVAL 97H 设置控制字 使发送器和接收器启动OUT52H AL 2020年1月4日星期六 第45页 3 利用状态字进行编程的举例 8251A的控制和状态端口地址为52H 数据输入和输出端口地址为50H 字符输入后 放在BUFFER标号所指的内存缓冲区中 MOVAL 0FAH 设置模式字 异步方式 波特率因子16OUT52H AL 7个数据位 2个停止位 偶校验MOVAL 35H 设置控制字 启动发送器和接收器 OUT52H AL 并清除出错指示位MOVDI 0 变址寄存器初始化MOVCX 80 计数器初始化 共收取80个字符BEGIN INAL 52H 读取状态字 测试RXRDY是否1TESTAL 02HJZBEGIN 为零 表示未收到字符 继续读状态字 测试INAL 50 读取字符 2020年1月4日星期六 第46页 MOVDX OFFSETBUFFERMOV DX DI ALINCDI 修改缓冲区指针INAL 52H 读取状态字TESTAL 38H 测试有无帧校验错 奇 偶校验错和溢出错 JZERROR 如有 则转出错处理程序LOOPBEGIN 如没错 则再收下一个字符JMPEXIT 如输入满足80个字符 则结束ERROR CALLERR OUT 调出错处理EXIT 2020年1月4日星期六 第47页 4 两台微型计算机通过8251A相互通信的举例 2020年1月4日星期六 第48页 分析 设系统采用查询方式控制传输过程 异步传送 发送端初始化程序与发送控制程序如下所示 STT MOVDX CTRL PORT MOVAL 7FHOUTDX AL MOVAL 11H OUTDX ALMOVDI BLOCK1 设置数据区首址MOVCX NUM 设置计数器初值NEXT MOVDX CTRL PORTINAL DXANDAL 01H 查询TxRDY有效否 JZNEXT 无效则等待 将825lA定义为异步方式 8位数据 1位停止位 偶校验 取波特率系数为64 允许发送 2020年1月4日星期六 第49页 MOVDX DATA PORTMOVAL DI 向8251A输出一个字节数据 OUTDX ALINCDI 修改地址指针LOOPNEXT 未传输完 则继续下一个 接收端初始化程序和接收控制程序如下所示 SRR MOVDX CTRL PORTMOVAL 7FHOUTDX AL MOVAL 14H OUTDX ALMOVDI BLOCK1 设置数据区首址MOVCX NUM 设置计数器初值 初始化8251A 异步方式 8位数据 1位停止位 偶校验 波特率系数64 允许接收 2020年1月4日星期六 第50页 COMT MOVDX CTRL PORTINAL DXRORAL 1 查询RxRDY有效否 RORAL 1JNCCOMT 无效则等待RORAL 1 有效时 进一步查询是否有奇偶校验错 JCERR 有错时 转出错处理RORAL 1 溢出JCERRMOVDX DATA PORTINAL DX 无错时 输入一个字节到接收数据块 MOV DI ALINCDI 修改地址指针LOOPCOMT 未传输完 则继续下一个HLTERR CALLERR OUT 2020年1月4日星期六 第51页 9 4计数器 定时器 1 概述定时信号的产生可用软件和硬件两种方法获得 软件方法 用延时子程序 一般是由循环程序并且包含一定量的指令完成的 设计者需要对这些指令的执行时间进行严格计算或精确测试 以便得到精确的延时时间 软件方法节省硬件 但是CPU执行延时子程序期间 不能做其它事 降低了CPU的效率 且不容易提供多作业环境 硬件方法 用计数器 定时器来实现定时 即是一种靠硬件来实现的定时方法 本节主要介绍当前广泛应用的可编程计数器 定时器Intel8253的原理和使用方法 9 4 1计数器 定时器概述 2020年1月4日星期六 第52页 2 计数器 定时器的工作原理 可编程计数器 定时器的功能体现为 一是计数功能 由程序对计数器设置好计数初值 启动后便对外部事件开始减 1 计数 减为 0 时 输出一个信号 二是定时功能 也是由程序设置好定时常数后进行减 1 计数 按定时常数 不断输出为时钟周期整数倍的定时间隔 计数器 定时器有以下用途 在多任务的分时系统中 用来作为中断信号实现程序的切换 可以给外部设备提供精确的定时信号 作为可编程的波特率发生器 实现时间延时 2020年1月4日星期六 第53页 9 4 2可编程计数器 定时器8253 1 8253的结构和工作原理 逻辑结构 Intel8253的逻辑结构即编程结构如图 a 所示 引脚如图 b 所示 8253是24脚封装 2020年1月4日星期六 第54页 8253内部有3个计数器 分别称为计数器0 计数器1和计数器2 它们的结构完全相同 每个计数器通过3个引脚和外部联系 一个时钟输入端CLK 一个门控信号输入端GATE和一个输出端OUT 每个计数器内部有一个8位的控制寄存器 还有一个16位的计数初值寄存器CR 一个计数执行部件和一个输出锁存器 2020年1月4日星期六 第55页 数据总线缓冲器 通过数据总线缓冲器 CPU可以对8253写入初始化命令字 写入计数初值 读取计数值 所以与数据总线缓冲器相连的外部引脚D7 D0接系统数据总线的低8位 计数器0 计数器1和计数器2 三个互相独立的计数器 各自可按不同的方式工作 计数器0 1 2三个计数器 定时器内部每个都由一个16位的可预置值的减法计数器构成 每个计数器操作独立 其内部结构相同 减法计数器由计数器初值寄存器装入初值 计数初值寄存器通过程序设置 输出寄存器用于锁存计数器的内容 8253的工作原理 2020年1月4日星期六 第56页 读 写逻辑电路 读 写逻辑电路从系统总线接收输入信号 经过组合产生对8253的控制信号 控制寄存器 写入控制字 决定计数器的工作方式 8253的引脚功能与3个计数器有关的引脚计数器0 CLK0 计数器0的时钟输入GATE0 计数器0的门脉冲控制输入OUT0 计数器0的输出 2020年1月4日星期六 第57页 2020年1月4日星期六 第58页 2 8253的控制字格式 D0 BCD 设置计数器的计数数制 当BCD 0时 计数器按二进制计数 当BCD 1时 计数器按BCD码计数 D3 D2 D1 M2 M1 M0 工作方式选择 有6种不同工作方式 如表9 7所示 2020年1月4日星期六 第59页 D5 D4 RW1 RW0 读 写指示位 具体如下 00 对计数器进行锁存操作 使当前计数值锁存到锁存器中 以便进行读操作 01 只读 写低8位字节 10 只读 写高8位字节 11 先读 写低8位字节 再读 写高8位字节 D7 D6 SC1 SC0 用来选择计数器 其对应关系为 D7 D6 SC1 SC0 00 选择计数器001 选择计数器110 选择计数器211 无效 2020年1月4日星期六 第60页 原则 对计数器设置初值前 必须先写控制字 以指出计数值是二进制还是十进制 工作方式 对哪个计数器的哪些字节进行操作等规定 初始值设置时 要符合控制字中的格式 否则就会出错 在读计数器值时 必须先用锁存命令 锁住当前计数值 再进行读操作 否则 在读数时 计数器的数值可能处在改变过程中 这样 读出的计数值是一个不确定的数值 3 8253的编程命令 4 8253的工作方式 控制字的D3 D2 D1 M2 M1 M0 工作方式选择 有6种不同工作方式 2020年1月4日星期六 第61页 8253对所有的工作方式 工作时应遵循以下原则 在对8253进行写入控制字时 所以的控制逻辑电路立即复位 输出端OUT进入初始状态 初始值写入后 要经过一个时钟的上升沿和一个下降沿 计数器才开始进行计数 在时钟脉冲CLK的上升沿时 门控信号被采样 时钟脉冲下降沿时 计数器做减一计数 0是计数器的最大初值 对于二进制 0 216对于BCD码 0 104 2020年1月4日星期六 第62页 方式0 计数结束产生中断方式 开始计数 计数结束产生中断 原则 工作特点 计数时GATE 1 若GATE变为低电平停止计数 初值为n时 OUT在n 1个时钟后产生高电平 只计一遍数 不重复 直到写入新的控制字为止 计数过程中 可改变计数初值 写入新初值后 重新开始计数 GATE 0时写入初值 到GATE变1时才开始计数 2020年1月4日星期六 第63页 方式1 单脉冲触发器 可重复触发的单稳态触发器 计数过程中 可改变计数初值 这时当前计数不受影响 回0后OUT为高电平 若再次触发 则按新的初值进行计数 计数过程中 又来一个门控信号 则再下一时钟脉冲后 又重新从初值开始计数 OUT仍维持为低电平 这样使输出脉冲比原来延长了 2020年1月4日星期六 第64页 方式1 单脉冲触发器 可重复触发的单稳态触发器 重复周期 写入初值 开始计数 重复周期 可重复 不用重写初值 输出n 1个高 1个低电平脉冲波形 计数过程中 如果改变计数初值 当前计数不受影响 在下一个输出周期中 将按新的计数值进行计数 这是GATE门一直有效的情况 2020年1月4日星期六 第65页 3 方式2分频器 速率发生器 写入控制字OUT 1 写入常数立即对CLK计数 计数到1 OUT 0 一个CLK周期后 OUT 1 重新计数 通道连续工作不需重置时常 计数过程中 GATE 0 计数暂停 GATE变高后重新计数 计数过程中可改变计数值 新的计数值在下一次有效 2020年1月4日星期六 第66页 方式3 方波发生器 2020年1月4日星期六 第67页 方式4 软件触发选通 写入初值 开始计数 计数结束 其特点是 若计数初值为n 写入初值n 1个时钟周期后 输出一个时钟宽度的负脉冲 GATE 1时 允许计数 GATE 0时 禁止计数 OUT端不受影响 维持当时的电平 2020年1月4日星期六 第68页 方式5 硬件触发选通 计数时间到 写入初值 门控触发 开始计数 再次触发 在计数过程中 使用GATE上升沿 可使计数器获得初值重新开始计数 如果在计数过程中写入新的计数初值 并且在当前周期结束又受到GATE的触发 则在下一个时钟周期 计数器按新初值开始计数 开始计数 2020年1月4日星期六 第69页 8253工作方式小结 8253的输出波形都是在时钟CLK周期的下降沿时产生变化 GATE作为各通道的门控信号 对于各种工作方式 GATE所起的作用不同 作为计数器时 进行减1计数 作为定时器时 减到终值时 又自动装入初值 重新作减1计数 2020年1月4日星期六 第70页 5 应用举例 例9 5 要求8253完成下列功能 用通道0对外部事件计数 计满100向CPU发出中断请求 利用通道1产生频率为1kHz的方波 示波器或其它波形接收设备 外部事件产生源 分析 通道0定义为工作方式0 完成计数功能 实际计数值为100 64H 通道1定义为方式3 计数初值应为2 5MHz 1kHz2500 09C4H 2020年1月4日星期六 第71页 STT MOVDX 336H 8253控制端口MOVAL 10H 定义通道0工作在方式0 只读写OUTDX AL 低8位地址 选择计数器0MOVDX 330H 给8253通道0送初值MOVAL 64HOUTDX ALMOVDX 336H 8253控制端口MOVAL 76H 定义通道1为方式3 选择计数器OUTDX AL 1 先读低8位 再高8位MOVDX 332H 8253通道1端口地址MOVAX 094CH 给通道1送计数初值OUTDX AL 设8253通道0计数器的地址为330H 通道1计数器的地址为332H 通道2计数器的地址为334H 控制端口地址为336H 初始化程序如下 2020年1月4日星期六 第72页 MOVAL AHOUTDX ALMOVDX 420H 8259H偶地址端口MOVAL 13H 对中断控制器8259进行初始化OUTDX ALMOVDX 422H 8259H奇地址端口MOVAL 50H 设置中断类型码OUTDX ALMOVAL 03H 自动中断结束方式OUTDX ALMOVAL 0FAH 对通道0中断开放OUTDX ALSTI 2020年1月4日星期六 第73页 例9 6 采用8253控制一个发光二极管闪亮 要求启动8253后 使发光二极管亮0 5秒后再灭0 5秒 如此重复 时钟脉冲源为2MHz 端口地址为 80H 83H 要求 设计接口电路 编写初始化程序 分析 因为要求亮0 5秒后再灭0 5秒 恰为一个方波 周期为1秒 由1s 1 2MHz 1s 0 5 s 2000000 大于一个通道能提供的最大计数值65536 所以要采用级连方式来完成 通道0工作于方式2 即频率发生器方式 产生一个脉冲波 设脉冲波周期为4ms 250Hz 所以计数值N0 4ms 0 5 s 8000 控制字为 00110100B 通道1工作于方式3 即产生方波 周期为1s 其输入为CLK1接OUT0 所以计数值N1 1s 4ms 250 并使OUT1经过一个反相驱动器去控制发光二极管 2020年1月4日星期六 第74页 编写初始化程序如下 MOVAL 34H 0 分频 器方式 写低8位后写高8位OUT83H ALMOVAX 8000 0OUT80H ALMOVAL AHOUT80H ALMOVAL 76H 1 通道1 方式3 写低8位后写高8位OUT83H ALMOVAL 250 1OUT81H AL
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!