资源目录
压缩包内文档预览:(预览前5页/共103页)
编号:74277653
类型:共享资源
大小:27.04MB
格式:ZIP
上传时间:2020-04-19
上传人:独**
认证信息
个人认证
王**(实名认证)
江苏
IP属地:江苏
20
积分
- 关 键 词:
-
微型计算机技术(第4版)
孙德文
微型
计算机技术
德文
- 资源描述:
-
微型计算机技术(第4版) 孙德文,微型计算机技术(第4版),孙德文,微型,计算机技术,德文
- 内容简介:
-
2020 4 19 上海交通大学 1 面向21世纪课程教材普通高等教育 十一五 国家级规划教材 微型计算机技术Weixin Jisu njiJishu 第4版 孙德文章鸣嬛编著 2020 4 19 上海交通大学 2 第12章可编程定时器 计数器 前言 在微机应用系统中 经常会提出这样的要求 一种是要求有一些外部实时时钟 以实现延时控制或定时 另一种是要求能对外部事件计数的计数器 实现上述要求可采用三种方法 设计数字逻辑电路来实现计数或定时要求 即由硬件电路实现的计数器 定时器 这种电路 若要改变计数 定时的要求 必须改变电路参数 通用性 灵活性差 编制一段程序 用软件来实现计数和定时的要求 这种方法通用性和灵活性都好 但要占用CPU的时间 采用可编程定时器 计数器 其定时与计数功能可由程序灵活地设定 设定后与CPU并行工作 不占用CPU的时间 2020 4 19 上海交通大学 3 2020 4 19 上海交通大学 4 可编程定时器 计数器 12 1可编程定时器 计数器的典型结构和基本工作原理12 2可编程定时器 计数器8253 5 2020 4 19 上海交通大学 5 12 1可编程定时器 计数器的典型结构和基本工作原理 2020 4 19 上海交通大学 6 可编程定时器 计数器的典型结构和基本工作原理 左边的三个寄存器都是CPU可以访问的 而计数器执行单元CPU不能直接访问 1 计数初值寄存器CR用来存放计数初值 可通过程序来设定 2 计数执行单元CE是一个16位减1计数器 它的初值便是计数初值寄存器的内容 它只对CLK脉冲计数 一旦计数器被启动后 每出现一CLK脉冲 计数执行单元中的计数值减1 当减为零时 通过OUT输出指示信号 表明计数执行单元已为零 3 控制寄存器用来控制计数器 定时器的工作方式 2020 4 19 上海交通大学 7 可编程定时器 计数器的典型结构和基本工作原理 当CLK是一个周期性时钟信号时 计数器为定时器功能 当CLK是一个非周期性事件计数信号时 此时呈计数器功能 2020 4 19 上海交通大学 8 可编程定时器 计数器的典型结构和基本工作原理 计数输出锁存器OL通常跟随计数执行单元的内容而变化 当接收到CPU发来的锁存命令时 就锁存当前的计数值而不跟随计数执行单元变化 直到CPU从中读取锁存值后 才恢复到跟随计数执行单元变化的状态 GATE是控制输入端 它有多种控制作用 如允许 禁止计数 启动 停止计数 计数 定时器的几种工作方式 门脉冲控制时钟输入 此时 当门脉冲GATE到来时 时钟CLK有效 进行计数操作 当门脉冲结束时 时钟无效 计数停止 用门脉冲重新启动计数器 用门脉冲停止计数器工作 单次计数 此时仅要求GATE为高电平即可 循环计数 此时 每当计数执行单元为零时 输出端OUT输出一个信号 同时又重新装入计数初值寄存器内容到计数执行单元 重复原来的计数过程 从而在OUT端上可输出周期性的脉冲信号 2020 4 19 上海交通大学 9 2020 4 19 上海交通大学 10 12 2可编程定时器 计数器8253 5 12 2 18253 5的结构和功能12 2 28253 5的工作方式12 2 38253 5的初始化12 2 48253 5的应用举例 2020 4 19 上海交通大学 11 可编程定时器 计数器8253 5 PIT 在微机应用系统中 一种是要求一些外部实时时钟 以实现延时控制或定时 另一种要求能对外部事件计数的计数器 8253 5PIT ProgrammableIntervalTimer 就是一种可编程定时器 计数器芯片 又称为 可编程间隔定时器 2020 4 19 上海交通大学 12 8253 5的引脚排列和内部结构框图 2020 4 19 上海交通大学 13 12 2 18253 5的结构和功能 8253 5具有三个独立的16位计数器 它可用程序设置成多种工作方式 按十进制或二进制计数 最高计数速率可达2 6MHz 2020 4 19 上海交通大学 14 每个计数通道中有三条信号线 计数输入CLK 用于输入定时基准脉冲或计数脉冲 输出信号OUT 以相应的电平指示计数的完成 或输出脉冲波形 选通输入 门控输入 GATE 用于启动或禁止计数器的操作 以使计数器和计测对象同步 2020 4 19 上海交通大学 15 每个计数通道中有四个寄存器 1 计数初值寄存器 初始化时写入该计数器的初始值 2 减法计数寄存器 计数初值由计数初值寄存器送入减法计数寄存器 当计数输入端输入一个计数脉冲时 减法计数寄存器内容减1 当减到零时 输出端输出相应信号表示计数结束 3 计数输出锁存器 通常跟随计数执行单元的内容而变化 当接收到CPU发来的锁存命令时 就锁定当前的计数值而不跟随计数 4 控制寄存器 6位 初始化时 将控制字寄存器 8位 中对应的内容写入该寄存器 2020 4 19 上海交通大学 16 控制字寄存器 控制字寄存器 又称工作方式寄存器 是只写寄存器 它接受写入的控制字 根据最高二位代码 将后六位内容写入对应通道的控制寄存器 三个控制寄存器控制对应通道计数器的工作 8253 5的三个通道计数器是独立的16位减法计数器 读写控制逻辑 8253 5的读写控制逻辑接受系统总线的输入信号 当端接收到低电平时 8253 5根据和端的电平 控制本器件接收CPU的访问 双向三态的数据总线缓冲器根据CPU的指令接收或发送数据 这些数据是 编程8253 5工作方式的控制字 装入各计数器的初始值 读出各计数器的当前值 用作寄存器选择的地址输入信号A1和A0决定CPU访问的对象 在PC中 8253 5内部寄存器选择如表12 1所示 2020 4 19 上海交通大学 17 表12 18253 5内部寄存器地址 2020 4 19 上海交通大学 18 工作方式寄存器 工作方式寄存器 又称控制字寄存器 是只写寄存器 它接受写入的控制字 8253 5内部有三个控制寄存器对应计数器的工作 它决定三个计数器的工作方式 按十进制或二进制计数 并控制CPU访问这些计数器的方法 控制字中的6位作控制 2位用于选择计数器 其内容如下 控制字中各字段的含义如表12 2 12 5所示 2020 4 19 上海交通大学 19 工作方式控制字 2020 4 19 上海交通大学 20 表12 2SC1 SC0 计数器选择 2020 4 19 上海交通大学 21 表12 3RL1 RL0 CPU读 写操作 2020 4 19 上海交通大学 22 表12 4M2M1M0 工作方式选择 2020 4 19 上海交通大学 23 表12 5BCD 计数方式选择 2020 4 19 上海交通大学 24 选通信号GATE的控制 8253 5的三个计数器是独立的16位减法计数器 计数器的工作方式由工作方式寄存器确定 计数器在编程写入计数初值后 在某些方式下计数到0后自动预置 计数器连续工作 CPU访问计数器时 必须先设定工作方式控制字中的RL1RL0位 计数器对CLK计数输入端的输入信号进行递减计数 选通信号GATE控制计数工作的进行 其功能如表12 6所示 2020 4 19 上海交通大学 25 表12 6选通信号GATE的功能 2020 4 19 上海交通大学 26 2020 4 19 上海交通大学 27 12 2 28253 5的工作方式 在任何一种方式下 都必须先向8253写入控制字 控制字还起复位作用 它使OUT端变为工作方式中规定的状态和对计数初值寄存器CR清零 然后再写入计数初值到CR中 其最大值为0000H 2020 4 19 上海交通大学 28 1 方式0 方式0 计数结束中断方式 InterruptonTetminalCount 方式0是典型的事件计数用法 CLK端作为事件计数输入信号 当计数执行单元CE为零时 OUT端变为高电平 它可作为中断请求信号 方式0的时序波形见图 2020 4 19 上海交通大学 29 方式0的特点和应用 1 计数过程由软件启动 2 GATE的作用是开放计数或禁止计数 3 OUT端由低变高表示计数过程结束 方式0 方式0是典型的事件计数用法 CLK端作为事件计数输入信号 当计数执行单元CE为零时 OUT端变为高电平 它可作为中断请求信号 这就是方式0又称为计数结束中断方式名称的来由 1 方式0的工作原理当写入控制字CW后 OUT信号变为低电平 当将计数初值写入计数初值寄存器CR后 利用下一个CLK脉冲的下降沿将CR的内容装入计数执行单元CE中 再从下一个CLK脉冲的下降沿开始 CE执行减1计数过程 在计数期间输出OUT一直保持低电平 直到CE中的剩余计数值为零时才能使OUT变为高电平 并保持到重新写入计数初值或复位时为止 在此方式中 门控信号GATE用作允许或禁止计数的功能 当GATE为高电平时开放计数 当GATE为低电平时禁止计数 2020 4 19 上海交通大学 30 方式0 2 方式0的特点和应用 计数过程由软件启动 每写入一次计数初值 就启动一次计数过程 也就是说可以用写入计数初值的时刻来控制启动计数器的时刻 GATE的作用是开放计数或禁止计数 OUT由低变高表示计数过程结束 若计数初值为N 表示已出现了N 1个CLK脉冲信号 或者说已发生了N 1次事件 方式0主要用于事件计数 OUT信号可作为中断请求信号 2020 4 19 上海交通大学 31 2020 4 19 上海交通大学 32 2 方式1 方式1 硬件可重触发单稳态方式 HardwareRetriggerableOne Shot 计数器相当于一个可编程的单稳态电路 触发输入为GATE信号 由GATE的上升沿触发计数器工作 2020 4 19 上海交通大学 33 方式1的特点和应用 1 计数器的启动只能由门控脉冲的上升沿产生 即只能用硬件启动 2 OUT输出为一个单稳态负脉冲 其脉宽为计数初值个CLK时钟脉冲的周期之和 3 在形成单稳态脉冲过程中 可以重触发 4 在微机实时控制系统中常用作监视时钟 WatchdogTimer 方式1 在方式1中 计数器相当于一个可编程的单稳态电路 触发输入为GATE信号 由GATE的上升沿触发计数器工作 1 方式1的工作原理当写入控制字CW后 OUT变为高电平 并保持该高电平状态 然后写入计数初值到CR 但此时并不装入CE中 只有当GATE端产生一个由低变为高的触发信号之后的下一个CLK时钟脉冲信号的下降沿 才将CR装入CE 同时又把OUT端变为低电平 然后计数器再开始产生单稳态的过程 对时钟脉冲信号CLK作减1计数 OUT端的电平将一直保持到CE中的数值为零时再恢复到高电平 所以 此时OUT端输出的负脉冲宽度就是计数初值个CLK脉冲周期之和 应当指出 方式1是可重触发的 即在形成单稳态脉冲过程中 若在GATE端再一次产生由低变高的触发信号 则又将CR内容装入CE 又从初始状态开始计数过程 显然这将延长OUT端上的输出的负脉冲宽度 这就是硬件可重触发单稳态方式名称的来历 2020 4 19 上海交通大学 34 方式1 2 方式1的特点和应用 计数器的启动只能由门控脉冲的上升沿产生 即只能用硬件启动计数器 不能用软件来启动计数器 OUT输出为一个单稳态负脉冲 其脉宽为计数初值个CLK时钟脉冲的周期之和 在形成单稳态脉冲过程中 可以重触发 使OUT输出的负脉冲加宽 由于计数初值是由程序写入的 所以只要改变计数初值即可产生不同输出宽度的负脉冲 从而可以获取变宽脉冲信号 在微机实时控制系统中常用作监视时钟 WatchdogTimer 尽管在实时微机控制系统中 程序通常是固化在ROM中的 但由于应用现场存在干扰 仍有可能使程序不按规定的流程执行 而出现所谓 飞溢 或 死机 现象 于是使过程失控 一旦发现这种情况 希望能在允许失控的时间内强迫系统重新启动 返回到正常程序的工作状态 利用8253的方式1可实现这种控制 此时当某个程序的执行时间超出原先规定的时间 即相当于方式1的单稳态负脉冲宽度 则由OUT输出的上升沿形成一个正脉冲 作为CPU的复位输入 使系统重新启动 返回到正常运行程序的入口继续过程控制程序的正常运行 2020 4 19 上海交通大学 35 2020 4 19 上海交通大学 36 3 方式2 方式2 速率发生器 RateGenenator 方式2能产生周期性的定时信号 称为速率发生器 又称为N分频方式和周期性定时器方式 方式2的时序波形见图 2020 4 19 上海交通大学 37 方式2的特点和应用 1 CR内容能自动地 重复地装入到CE中 OUT端上就能连续地输出周期性分频信号 2 既可软件启动 又可硬件启动 3 改变计数初值 即可获得不同速率的OUT输出信号 4 负脉冲宽度均为一个CLK脉冲的周期 5 主要应用作为分频器和时基信号 方式2 方式2能产生周期性的定时信号 称为速率发生器 又称为N分频方式和周期性定时器方式 方式2中的CLK输入一般是周期性的脉冲序列信号 1 方式2的工作原理当写入控制字CW后 OUT输出信号变为高电平 若GATE为高电平 当写入计数初值到CR后 在下一个CLK脉冲的下降沿将CR装入CE并启动计数器工作 对CLK时钟脉冲序列作减1计数 直到CE内容减到0001H时 OUT端输出宽度为一个时钟周期的负脉冲 同时又将CR内容自动装入CE 又开始另一轮的计数过程 所以 只要CLK脉冲是周期性的脉冲序列 则OUT端将输出一个CLK脉冲周期的宽度 这就是周期性定时器方式名称的来历 若计数初值为N 启动计数器工作后 将以CLK脉冲频率进行减1计数 直到CE为1时 输出脉宽为一个CLK脉冲周期的负脉冲 此时OUT输出信号的频率为CLK信号频率的1 N 这就是N分频方式名称的来由 2020 4 19 上海交通大学 38 方式2 在方式2中 启动计数器的方法可以由软件启动 也可以由硬件启动 软件启动过程是由装入计数初值的程序实现的 而硬件启动过程则是由外部输入到GATE端的一个上升沿脉冲信号实现的 此时GATE在为低电平时停止计数过程 2 方式2的特点和应用 在方式2的工作过程中 CR内容能自动地 重复地装入到CE中 所以只要CLK是周期性的脉冲序列 在OUT端上就能连续地输出周期性分频信号 方式2的计数器既可软件启动又可硬件启动 对于某个频率CLK脉冲信号的前提下 改变计数初值 即可获得不同速率的OUT输出信号 这就是速率发生器名称的来历 OUT输出的正脉冲宽度为 计数初值 1 个CLK脉冲周期之和 而负脉冲宽度均为一个CLK脉冲的周期 方式2主要应用是作为分频器和时基信号 它可方便地从系统时钟PCLK中获得符合某种频率要求的标准信号 供系统使用 2020 4 19 上海交通大学 39 2020 4 19 上海交通大学 40 4 方式3 方式3 方波方式 SquareWareMode 方式3的操作方式除OUT输出方波之外 和方式2相似 方波的重复周期是计数初值个CLK脉冲周期之和 方式3的时序波形见图 2020 4 19 上海交通大学 41 方式3的特点和应用 1 方式3的计数过程是CE内容减2 2 软件启动和硬件启动两种 3 改变计数初值 OUT端将输出不同频率 4 主要应用作为方波发生器和波特率发生器 方式3 方式3的操作方式除OUT输出方波之外 和方式2相似 当计数初值为偶数时 OUT端将输出对称的方波 当计数初值为奇数时 OUT端将输出近似对称的方波 此时OUT输出信号的低电平持续期比高电平持续期少一个CLK脉冲周期 方波的重复周期是计数初值个CLK脉冲周期之和 2020 4 19 上海交通大学 42 方式3 1 方式3的工作原理当GATE端加高电平时 写入控制字CW和计数初值后 OUT输出为高电平 经过一个CLK时钟脉冲开始减法计数过程 当CR中的初值N为偶数时 减法计数过程变为减2计数 即每来一个CLK脉冲 CE内容减2 则经过N 2个CLK脉冲后 CE就为零 使OUT输出为低电平 同时又将CR内容装入CE 并继续减2计数过程 又经过N 2个CLK脉冲后 CE又为零 使OUT输出又变为高电平 如此重复上述过程 在OUT端上就输出对称方波 当CR中的初值N为奇数时 当OUT输出由低变为高时 CR内容先减1后再装入CE中 然后对CLK脉冲实行减2计数 直到CE为零时输出OUT不立即变低 而在经过一个CLK脉冲后才变为低电平 此时OUT保持高电平的时间为 N 1 2 1个CLK脉冲周期之和 当OUT输出由高变低时 CR内容减1后再装入CE中 然后对CLK脉冲进行减2计数 直到CE为零时立即使OUT输出变为高电平 所以OUT保持低电平的时间就为 N 1 2个CLK脉冲周期之和 重复上述过程 在OUT端输出的波形就近似为方波 2020 4 19 上海交通大学 43 方式3 2 方式3的特点和应用 方式3中的计数过程是CE内容减2 在方式3的工作过程中 CR或CR 1的内容能自动装入CE中 所以只要CLK是周期性脉冲序列 则OUT端将连续输出方波信号 计数器启动过程也有软件启动和硬件启动两种 改变计数初值 OUT端将输出不同频率的方波 从而实现一个方波发生器的输出要求 方式3主要应用是作为方波脉冲发生器和波特率发生器 在串行通信中所需的时钟信号可用8253的方式3来提供 由于它是决定串行通信中数据传送速率之一的波特率的高低 所以方式3又称为波特率发生器 2020 4 19 上海交通大学 44 2020 4 19 上海交通大学 45 5 方式4 方式4 软件触发选通方式 SoftwareTriggeredstrobe 与方式0比较 主要区别是OUT端输出的波形不同 在方式0中是计数器为0时输出一个高电平 但在方式4中是输出一个CLK脉冲周期宽度的负脉冲 其次是计数期间的输出极性相反 方式0是低电平输出 方式4是高电平输出 方式4 这种方式和方式0有些相似 当写入方式控制字CW后 OUT端输出高电平 然后 在写入计数初值后的一个CLK脉冲开始减1计数 直到CE为零时 使OUT输出变为低电平 当持续一个CLK脉冲周期后又恢复到高电平 所以 此方式中 计数过程的启动是由输出指令对CR设置计数初值时被 触发 的 并且只有再次将初值写入CR操作时才会启动另一次计数过程 如果计数初值为N 则必须经过N 1个CLK脉冲周期 从写入计数初值N的 WE信号后沿开始计算 才在OUT端产生一个CLK脉冲周期宽度的选通负脉冲输出 在方式4中 GATE端作为允许计数或禁止计数的控制端 当GATE为高电平时允许计数 当GATE为低电平时禁止计数 如果计数初值为两个字节的数值 则在写入第一字节数据时 计数器不会启动 只有当写入第二字节数据时 才启动计数器工作 也就是说 此时只有在写入第二字节时才起 触发 作用 与方式0比较 主要区别是OUT端输出的波形不同 在方式0中是计数器为0时输出一个高电平 但在方式4中是输出一个CLK脉冲周期宽度的负脉冲 其次是计数期间的输出极性相反 方式0是低电平输出 方式4是高电平输出 2020 4 19 上海交通大学 46 2020 4 19 上海交通大学 47 6 方式5 方式5 硬件触发选通方式 HardwareTriggeredStrobe 方式5和方式1有些相似 CE到零时OUT端产生宽度为1个CLK脉冲周期的负脉冲选通输出信号 方式5 方式5与方式1有些相似 只是此时当CE到零时OUT端产生宽度为1个CLK脉冲周期的负脉冲选通输出信号 当写入控制字CW后 OUT变为高电平 然后写入计数初值到CR后 OUT仍然维持在高电平 仅在GATE由低变高之后的下一个CLK脉冲的下降沿才将CR装入CE 并启动计数器开始对CLK脉冲计数 直到CE为零时 OUT端输出一个宽度为CLK周期的负脉冲 并且又将OUT变为高电平 所以 方式5是由GATE的上升沿触发计数器开始计数操作的 在方式5计数过程中的任何时刻均可写入新的计数初值到CR 但暂不影响正在进行的计数过程 只有当GATE端又出现触发信号后 才将新CR的装入CE并开始新一轮的计数过程 方式5与方式1相比 两者均为硬件触发启动计数器工作方式 但在OUT端输出的负脉冲宽度不一样 方式1的负脉冲宽度为计数初值个CLK脉冲周期之和 而方式5的输出负脉冲宽度仅为一个CLK脉冲周期 6种工作方式的时序波形图如图12 3所示 注意 写入控制字的信号未画出 2020 4 19 上海交通大学 48 2020 4 19 上海交通大学 49 6种工作方式的时序波形图 2020 4 19 上海交通大学 50 12 2 38253 5的初始化 1 写入方式控制字三个通道用的控制字端口地址是相同的 三个控制字写入后却存入通道对应的寄存器中 2 写入计数初始值3 读计数值在动态读计数值时可以有两种方法 1 以普通对计数器端口读的方法取得当前计数值 2 锁存计数器的当前计数值 初始化 1 写入方式控制字使用任一计数器通道 首先要向该通道写入方式控制字 以确定该通道的工作方式 注意 虽然三个通道用的控制字端口地址是相同的 但三个控制字写入后却存入通道对应的控制寄存器中 2 写入计数初始值某个计数器在写入了方式控制字后 任何时候都可以按RL1RL0的规定写入计数初始值 对某一计数器的写入次序是必须严格遵守的 但是在符合次序情况下 允许在中间穿插着对别的计数器的读写操作 当RL1RL0 01时 只写入低8位 则高位自动置0 当RL1RL0 10时 只写入高8位 则低位自动置0 当RL1RL0 11时 写入16位 先写低位 后写高位 写入计数初始值时 还需注意的是 如果在方式控制字中的BCD位为1 即为BCD计数 但在写入指令中还必须写成十六进制数表示的BCD数 例如计数初值为50 采用BCD计数 则指令中的50必须写为50H 下面举一个初始化的例子来说明上述过程 2020 4 19 上海交通大学 51 例12 1写出初始化程序段 例12 1要求计数器0工作于方式3 输出方波的重复频率为2KHz 计数脉冲输入为2 5MHz 采用BCD计数 试写出初始化程序段 计算计数初始值 TC 2 5MHz 2KHz 1250方式控制字为00110111 37H 即计数器0 写16位 方式3 BCD计数 设8253的端口地址为80H 81H 82H 83H 则初值化程序段为 MOVAL 37H 写入方式控制字OUT83H ALMOVAL 50H 写入计数初始值低8位OUT80H ALMOVAL 12H 写入计数初始值高8位OUT80H AL 2020 4 19 上海交通大学 52 3 读计数值 3 读计数值在计数进行过程中 由CPU读出当前的计数值有时是有用的 在动态读计数值时可以有两种办法 1 以普通对计数器端口读的方法取得当前计数值按工作方式控制字中RL1RL0位的规定 可以读出指定字节的计数值 考虑到计数器正在进行计数 可能会使从计数器直接读出的数值不稳定 为此 在这种直接读出方法使用时 可以用GATE无效或阻断时钟输入等方法 使计数器暂停计数 保证CPU读到稳定的数值 由于8253内部逻辑安排 按RL1RL0的规定读完全部规定字节是绝对必要的 如果规定要读两个字节 那么必须在读出两个字节后 计数器才能继续正确地计数 2 锁存计数器的当前计数值用一个方式控制字 其中SL1SL0指定要读的计数器通道号 RL1RL0 00 使这个方式控制字成为一个软件命令 方式字的其余各位内容可以不考虑 这个命令一写入后 就立即把当前计数值锁存到锁存寄存器 而计数器可以继续工作 此后 CPU通过和上面一样的办法读出计数值 即先用方式控制字规定读取的方式 然后再读计数值 但由于这是从锁存寄存器中读取的 所以是一个稳定的值 这种方法唯一的限定也是必须读完规定的字节数 2020 4 19 上海交通大学 53 12 2 48253 5的应用举例 例12 2用8253 5监视一个生产流水线使用8253 5监视一个生产流水线 每通过50个工件 扬声器响5秒钟 频率为2000Hz 1 硬件连接该设备的示意图如图12 4所示 图中工件从光源与光敏电阻之间通过时 在晶体管的发射极上会产生一个脉冲 此脉冲作为8253 5通道0计数器的计数输入CLK0 当通道0计数满50后 由OUT0输出负脉冲 经反相后作为8259A的一个中断请求信号 在中断服务程序中 启动8253 5通道1计数器工作 由OUT1连续输出2000Hz的方波 持续5秒钟后停止输出 2020 4 19 上海交通大学 54 2020 4 19 上海交通大学 55 用8253 5监视一个生产流水线 本例中 通道0计数器工作于方式2 通道1计数器工作于方式3 通道1的门控信号GATE1由8255A的PA0控制 输出方波信号经驱动 滤波后送扬声器 2 控制字设置通道0计数器工作于方式2 采用BCD计数 因计数初值为50 采用RL1RL0 01 读 写计数器的低8位 则工作方式控制字为00010101 通道1计数器工作于方式3 CLK1接2 5MHz时钟 要求产生2000Hz的方波 则计数初值应为2 5 106 2000 1250 采用RL1RL0 11 先读 写低8位 后读 写高8位 BCD计数 则工作方式字为01110111 设通道0的地址为40H 通道1的地址为41H 控制口地址为43H 8255A的口地址为80H 83H 2020 4 19 上海交通大学 56 2020 4 19 上海交通大学 57 用8253 5监视一个生产流水线 工件从光源与光敏电阻之间通过时 在晶体管的发射极上会产生一个脉冲 此脉冲作为8253 5通道0计数器的计数输入CLK0 当通道0计数满50后 由OUT0输出负脉冲 经反相后作为8259A的一个中断请求信号 在中断服务程序中 启动8253 5通道1计数器工作 由OUT1连续输出2000Hz的方波 持续5秒钟后停止输出 2020 4 19 上海交通大学 58 用8253 5监视一个生产流水线 主程序为 MOVAL 15H 通道初始化OUT43H AL MOVAL 50H 计数初值OUT40H ALSTI 开中断LOP HLT 等待中断JMPLOP中断服务程序为 MOVAL 01H 通道1的GATE1置1 启动计数OUT80H AL 2020 4 19 上海交通大学 59 用8253 5监视一个生产流水线 MOVAL 77H 通道1初始化OUT43H ALMOVAL 50H 计数初值OUT41H ALMOVAL 12HOUT41H ALCALLDL5S 延时5秒MOVAL 00H 通道1的GATE1置0 停止计数OUT80H ALIRET 2020 4 19 上海交通大学 60 例12 3 在PC机中的应用 8253 5在IBM PC机中的应用 在IBM PC机的系统板上使用一片8253 5 它构成了系统所需的定时逻辑 此时8253 5中的三个计数器均用作为系统所需的定时信号 每个计数器的CLK引脚的时钟脉冲频率均为1 1931816MHz 它是外设时钟PCLK经二分频后产生的 图12 5就是在IBM PC机中的逻辑图 2020 4 19 上海交通大学 61 2020 4 19 上海交通大学 62 在PC机中的应用 1 工作原理分析 计数器0用来产生实时日时钟信号 工作于方式3 计数初值为0 采用二进制计数方式 输出端OUT0作为中断请求信号IRQ0 计数器1用来产生动态存储器刷新操作的定时控制信号 它工作于方式2 计数初值为18 OUT1端输出一个负脉冲序列 其脉冲周期约为18 1 1931816MHz 15 08 s 2020 4 19 上海交通大学 63 在PC机中的应用 计数器2用于为系统中的扬声器发声时提供一个约为900Hz的方波信号 它也工作于方式3 计数初值为0533H 1331 GATE2接入一个来自系统板上8255A的PB0 作为扬声器发声时间的控制信号 2020 4 19 上海交通大学 64 在PC机中的应用 2 8253的初始化程序段 对计数器0的初始化程序 MOVAL 00110110B 写入计数器0的控制 CW 00110110B表示选择计数器0 双字节写 方式3和二进制计数OUT43H ALMOVAL 0 计数初值为65536 先写入低8位字节到CRL 后写入高8位字节到CRHOUT40H ALOUT40H AL 2020 4 19 上海交通大学 65 在PC机中的应用 对计数器1的初始化程序 MOVAL 01010100B 写入计数器1的控制字 CW 01010100B 表示选择计数器1的控制寄存器 只写入低位字节 方式2和 二进制计数OUT43H ALMOVAL 18 计数初值写入CRL中OUT41H AL 2020 4 19 上海交通大学 66 在PC机中的应用 对计数器2的初始化程序 MOVAL 10110110B 写入计数器2的控制字 CW 10110110B表示选择计数器2 的控制寄存器 双字节写 方式3和二进制计数OUT43H ALMOVAX 0533H 计数初值0533H依次写入CR中OUT42H ALMOVAL AHOUT42H ALINAL 61H 完成对8255APB0 PB1 1的设置 控制扬声器发声 8255APB口的端口地址为061HMOVAH ALORAL 03HOUT61H AL 例12 4三个计数通道组合应用 例12 4三个计数通道组合应用有一8253 5应用电路如图12 6所示 三个计数通道分别设置为 通道0 方式2 计数初值为1000 通道1 方式1 计数初值为500 通道2 方式3 计数初值为2000 外接时钟为2 5MHz 试画出三个通道的CLK GATE及OUT的波形 在开关K打到 5V后 计算OUT脉冲的重复周期和波形的持续时间 并写出初始化程序 2020 4 19 上海交通大学 67 2020 4 19 上海交通大学 68 4 三个计数通道组合应用 例12 43个计数通道组合应用 解题分析 1 从图12 6可见通道0 2的时钟CLK0和CLK2是固定的时钟 即时钟源输出CLK频率为2 5MHz 周期为T 400ns即0 4 s 通道2的工作方式为方式3 计数初值为2000 输出为对称方波 周期T2 2000 T 800 s 通道2的输出经反相器后作为通道1的CLK1 通道1的工作方式为方式1 计数初值为500 输出波形为单个负脉冲 宽度T1 500 T2 500 2000T 400000 s 400ms 通道1的输出经反相器后又作为通道0的门控输入GATE0 通道0的工作方式为方式2 计数初值为1000 输出波形为连续负脉冲 脉冲重复周期T0 1000 T 1000 0 4 s 400 s 通道0的输出负脉冲的持续时间为GATE0保持为高电平的时间即T1 400ms 由此得最终输出OUT为OUT0的反相波形 其重复周期T 400 s 波形持续时间T1 400ms 波形图如图12 7所示 2020 4 19 上海交通大学 69 2020 4 19 上海交通大学 70 3个计数通道组合应用 三个计数通道分别设置为 通道0 方式2 计数初值为1000 通道1 方式1 计数初值为500 通道2 方式3 计数初值为2000 外接时钟为2 5MHz 试画出三个通道的CLK GATE及OUT的波形 在开关K打到 5V后 计算OUT脉冲的重复周期和波形的持续时间 并写出初始化程序 2020 4 19 上海交通大学 71 三个计数通道组合应用 2020 4 19 上海交通大学 72 三个计数通道组合应用 MOVAL 00110101B 计数通道0为方式2OUT83H ALMOVAL 00H 通道0写入计数初值OUT80H ALMOVAL 10HOUT80H ALMOVAL 01110011B 计数通道1为方式1OUT83H ALMOVAL 00H 通道1写入计数初值OUT81H AL 2020 4 19 上海交通大学 73 三个计数通道组合应用 MOVAL 05HOUT81H ALMOVAL 10110111B 计数通道2为方式3OUT83H ALMOVAL 00H 通道3写入计数初值OUT82H ALMOVAL 20HOUT82H AL 2020 4 19 上海交通大学 74 例12 5 8253在实时控制系统中的应用 将8253的两个计数器串联起来 使其中的一个计数器作为定时器 当分频器使用 将其OUT输出信号作为另一个计数器的CLK脉冲信号 而另一计数器只起计数作用 其OUT输出端作为中断请求信号 2020 4 19 上海交通大学 75 用8253组成的采样周期发生器 2020 4 19 上海交通大学 76 在实时控制系统中的应用 MOVDX 233H 写入计数器0的控制字MOVAL 00010100BOUTDX ALMOVAL 230H 计数初值写入CRL 并启动计数器MOVAL 00HOUTDX ALMOVDX 233H 写入计数器1的控制字MOVAL 01110110BOUTDX ALMOVDX 231H 写入计数初值到CR 并启动计数器1 2020 4 19 上海交通大学 77 在实时控制系统中的应用 MOVAL BYTEPTRTIMEOUTDX ALMOVAL BYTEPTRTIME 1OUTDX ALMOVDI 28H 存中断处理程序首地址偏移量到中断向量表MOVAX OFFSETRTIMECLDSTOSWMOVAX SEGRTIME 存中断处理程序首地址的段基值到中断向量表STOSW 2020 4 19 上海交通大学 78 2020 4 19 上海交通大学 79 2020 4 19 上海交通大学 80 2020 4 19 上海交通大学 81 2020 4 19 上海交通大学 82 2020 4 19 上海交通大学 83 2020 4 19 上海交通大学 84 2020 4 19 上海交通大学 85 2020 4 19 上海交通大学 86 2020 4 19 上海交通大学 87 习题12 12 1说明8253 5的方式2与方式3的工作特点 12 2说明8253 5的方式1与方式5的工作特点 12 38253 5在写入计数初值时 二进制计数和十进制计数有无区别 若有 有何区别 12 4定时器8253 5通道0按方式3 方波发生器 工作 时钟CLK0的频率为1MHz 要求输出方波的频率为40kHz 此时写入的计数初值应为多少 输出方波的 1 和 0 各占多少时间 12 5定时器8253 5输入时钟频率为1MHz 并设定为按BCD码计数 若写入的计数初值为0080H 则该通道定时时间是多少 12 6试编程 将8253 5计数器0设置为模式1 计数初值为3000H 计数器1设置为模式2 计数初值为2010H 计数器2设置为模式4 计数初值为4030H 2020 4 19 上海交通大学 88 12 7 12 78253 5的计数通道0连接如习习图12 1 试回答 1 计数通道0工作于何种工作方式 并写出工作方式名称 2 写出计数通道0的计数初值 要列出计算式 2020 4 19 上海交通大学 89 12 8 12 8若用8253 5计数器对设备的转轴的旋转速度进行测试 接口电路如习图12 2所示 从图可知 若与轴相连的转盘上均匀地钻有每圈50个孔 当轴旋转时 通过光电转换 每通过一个小孔 产生一个正脉冲 当轴旋转一圈 就会有50个脉冲通过CLK输入8253计数器进行减法计数 若假设此转轴的转速范围在50 1000r s 并设8253 5的端口地址为84H 87H 1 若在定时时间T内测得已转换过的脉冲个数为n 求转轴的转速 单位为r s 2 若用计数器0对脉冲计数 用计数器1作为定时器 设它的CLK1 频率为200kHz 用定时100ms来计数 写出计数器0 1的工作方式控制字的计数初值 并注释 写出8253 5的初始化程序 2020 4 19 上海交通大学 90 图12 2 2020 4 19 上海交通大学 91 12 9 12 9习图12 3为采用8253 5产生定时中断信号 送8259A的IR2 已知fCLK 1MHz要求每隔1h发出一个中断请求 IR2的中断类型号为0AH 中断服务程序的入口地址为INTER 8253 5的端口地址为180H 183H 试编制8253 5的初始化程序 并把中断服务程序的人口地址送入中断向量表 2020 4 19 上海交通大学 92 12 11 12 12 12 11设8253 5与8086相连 8253 5的时钟频率为2MHz 其口地址为340H 343H 通道0工作于定时方式 要求每20ms向8086发出一中断请求信号 通道1要求输出频率为1000Hz的方波 请编写初始化程
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。