微机原理及接口技术第08章.ppt

上传人:bao****ty 文档编号:132766015 上传时间:2020-05-20 格式:PPT 页数:48 大小:2.04MB
返回 下载 相关 举报
微机原理及接口技术第08章.ppt_第1页
第1页 / 共48页
微机原理及接口技术第08章.ppt_第2页
第2页 / 共48页
微机原理及接口技术第08章.ppt_第3页
第3页 / 共48页
微机原理及接口技术第08章.ppt_第4页
第4页 / 共48页
微机原理及接口技术第08章.ppt_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《微机原理及接口技术第08章.ppt》由会员分享,可在线阅读,更多相关《微机原理及接口技术第08章.ppt(48页珍藏版)》请在金锄头文库上搜索。

1、第8章 第8章教学重点 教学重点8253的引脚和6种工作方式8253的编程8253在控制系统中的应用 定时功能的实现方法 软件延时 利用微处理器执行一个延时程序段实现不可编程的硬件定时 采用分频器 单稳电路或简易定时电路控制定时时间可编程的硬件定时 软件硬件相结合 用可编程定时器芯片构成一个方便灵活的定时电路 定时器和计数器 定时计数控制在微机系统中极为重要定时器由数字电路中的计数电路构成 通过记录高精度晶振脉冲信号的个数 输出准确的时间间隔计数电路如果记录外设提供的具有一定随机性的脉冲信号时 它主要反映脉冲的个数 进而获知外设的某种状态 常又称为计数器 1 8253 8254定时计数器 3个

2、独立的16位计数器通道每个计数器有6种工作方式按二进制 最大计数值可达65535 或十进制 BCD码 计数 最大计数值可达9999 8254是8253的改进型 主要区别在于接入的最高频率 8254最高为10MHz 而8253为2M 8 1 18253 8254的内部结构和引脚 计数器结构示意图 计数初值存于预置寄存器 在计数过程中 减法计数器的值不断递减 因此 当初值为0时 则计数值最大 而预置寄存器中的预置不变 输出锁存器用于写入锁存命令时 锁定当前计数值 计数器的3个引脚 CLK时钟输入信号 在计数过程中 此引脚上每输入一个时钟信号 下降沿 计数器的计数值减1GATE门控输入信号 控制计数

3、器工作 可分成电平控制和上升沿控制两种类型 一般而言 当其为高电平时计数器开始工作 为低电平时计数器暂停计数 OUT计数器输出信号 当一次计数过程结束 计数值减为0 OUT引脚上将产生一个输出信号 2 与处理器接口 D0 D7数据线A0 A1地址线RD 读信号WR 写信号CS 片选信号 8253的工作方式 8253 8254的工作方式 8253有6种工作方式 由方式控制字确定熟悉每种工作方式的特点才能根据实际应用问题 选择正确的工作方式每种工作方式的过程类似 设定工作方式 设定计数初值 硬件启动 个别工作方式需要 计数初值进入减1计数器 每输入一个时钟计数器减1的计数过程 计数过程结束 方式0

4、计数结束中断 设定工作方式 设定计数初值 计数值送入计数器 计数过程 计数结束 在这种方式下 当CPU写入控制字CW后 WR上升沿 OUT立即变低电平 即使没写入初值 当写入初值后计数器开始计数 如下图所示 方式0计数结束中断 续 0方式的特点 计数器只计一遍数 计数是在写入计数值后的CLK的下降沿开始的 计数过程中 当GATE 0时 计数暂停 GATE 1时 接着计数 在计数过程中 若改变初值 计数器将重新开始计数 3 方式1可编程单稳脉冲 设定工作方式 设定计数初值 硬件启动 计数值送入计数器 计数过程 计数结束 工作过程 当CPU写入控制字后 WR上升沿 OUT保持高电平 写入初值后并不

5、开始计数 直到门控脉冲GATE启动后的下一个CLK的下降沿才开始计数 如下图所示 方式1可编程单稳脉冲 1方式特点 若计数初值为N 则单拍脉冲宽度为N个输入脉冲间隔 当计数到0后 可再次由GATE触发启动下一次计数 在计数过程中 可通过GATE脉冲再触发 在再触发脉冲上升沿后的CLK的下降沿 计数器重新开始计数 在计数过程中 若改变初值 计数器不受影响 若再次由GATE触发 则以新的计数值开始计数 即计数值是下次有效 方式2频率发生器 分频器 工作过程 当CPU写入控制字后 WR上升沿 OUT变为高电平 写入初值后立即自动开始计数 在计数过程中OUT一直保持高电平 直到计数器减到l时OUT变为

6、低 经过一个CLK后 OUT又变为高 且计数器重新开始工作 如下图所示 方式2频率发生器 分频器 续 特点 不用重新设置计数初值 就能够连续计数 输出固定频率的脉冲 在计数过程中 若GATE 0计数暂停 当GATE恢复为高后的下一个CLK脉冲 计数器恢复初值重新计数 在计数过程中 若改变初值 计数器不受影响 在下次计数时 则以新的计数值开始计数 即计数值是下次有效 方式3方波发生器 工作过程 当CPU写入控制字后 OUT变为高电平 写入初值后立即自动开始计数 在计数过程中OUT保持高 当计数到一半值时OUT变低 直至计数器到0时OUT又变高 重新开始下次计数 如下图所示 方式3方波发生器 续

7、特点 当N为偶数时占空比 1 2 N为奇数时输出的高电平比低电平多一个CLK周期 不用重新设置计数初值 就能够连续计数 输出固定频率的脉冲 在计数过程中 若GATE 0计数暂停 当GATE恢复为高后的下 个CLK脉冲 计数器恢复初值重新计数 在计数过程中 若改变初值 计数器不受影响 在下次计数时 则以新的计数值开始计数 即计数值是下次有效 方式4软件触发选通信号 工作过程当CPU写入控制字后 OUT变为高电平 写入初值后立即计始计数 相当于软件启动 当计数到0时OUT变低 经过一个CLK后OUT又变高 停止计数 在下 次写入初值后才重新计数 如图所示 方式4软件触发选通信号 续 特点 CPU写

8、入初值后开始计数 在计数过程中 若GATE 0禁止计数 当GATE恢复为高后的下 个CLK脉冲 计数器重新开始计数 在计数过程中 若改变初值则按新值重新开始计数 本次有效 方式5硬件触发选通信号 工作过程当CPU写入控制字后 OUT变为高电平 写入初值后计数器并不开始计数 当GATE门控信号的上升沿后才开始计数 硬件启动 计数到0时OUT变低 经过一个CLK后OUT又变高 停止计数 如下图所示 方式5硬件触发选通信号 特点 若设置初值为N 在门控脉冲触发经过N个CLK才输出一个负脉冲 在计数过程中使用GATE脉冲 使计数器重新开始计数 但对输出状态没有影响 在计数过程中 若改变初值 只要没有G

9、ATE脉冲触发不影响计数过程 写入新的初值后 若有GATE脉冲触发 则立即按新值开始计数 各种工作方式的输出波形 8253的编程 8253 8254的编程 8253加电后的工作方式不确定 必须经过初始化编程 才能正常工作因此 8253的编程基本顺序为 写入控制字写入计数初值计数器开始工作计数结束 8253的方式控制字 示例 在对8253的初始化编程中 先向其控制字寄存器写入一个控制字 以规定8253的工作方式 控制字格式如下 00计数器001计数器110计数器2118254命令 00计数器锁存命令01只读写低字节10只读写高字节11先读写低字节后读写高字节 000方式0001方式1010方式2

10、011方式3100方式4101方式5 0二进制1十进制 8253的控制字编程 某个8253的计数器0 1 2端口和控制端口地址依次是40H 43H 设置其中计数器0为方式0 采用二进制计数 先低后高写入计数值moval 30h 方式控制字 30H 00110000Bout43h al 写入控制端口 43H 8254的读回控制字 8254在82534的基础上增加了一条读回控制字 其功能除了可以锁存计数器中的计数值外 还可以锁存其状态信息 控制字格式如下 11标识位 锁存选中的计数器中的计数值0 锁存1 不锁存 分别选择不同的计数器1 选中 特征位 锁存选中的计数器的状态 0 锁存 示例 若读回命

11、令为11011000B 表示锁存计数器2的当前计数值若读回命令为11100100B 表示锁存计数器1的当前状态若读回命令为11011100B 表示锁存计数器1和计数器2的当前计数值若读回命令为11001100B 表示锁存计数器1和计数器2的当前计数值及状态值 38254的状态字 写入上面的读回控制字后 即可对各计数端口进行读操作 则可读到相应的状态字 各位意义如下 1 空计数 即还未装入计数值0 有效计数 00计数器锁存命令01只读写低字节10只读写高字节11先读写低字节后读写高字节 000方式0001方式1010方式2011方式3100方式4101方式5 0二进制1十进制 Out引脚的电平状

12、态 4写入计数值 8253确定工作方式后 接着应向所选择的计数器中写入相应的计数值 则8253开始在输入频率CLK的作用下 自动进行减1计数 一般减至0时计数停止 此时在out引脚输出一个变化的电平 因此 计数初值N的计算公式为N fin fout即初值N 输入频率 输出频率 4写入计数值 选择二进制时计数值范围 0000H FFFFH0000H是最大值 代表65536选择十进制 BCD码 计数值范围 0000 99990000代表最大值10000计数值写入计数器各自的端口地址 写时注意写入的顺序 如只写高8位 只写低8位 或按先低后高的顺序写入 示例 8253的计数初值编程 某个8253的计

13、数器0 1 2端口和控制端口地址依次是40H 43H 设置计数器0采用二进制计数 写入计数初值 1024 400H Moval 00110010BOut43h al 写入方式控制字movax 1024 计数初值 1024 400H 写入计数器0地址 40Hout40h al 写入低字节计数初值moval ahout40h al 写入高字节计数初值 5读取计数值 8253任一通道的计数值 CPU可用输入指令读取 CPU读到的是执行输入指令瞬间计数器的当前值 但8253的计数器是16位的 所以要分两次读至CPU 因此 若不锁存的话 则在前后两次执行输入指令的过程中 计数值可能已经变化了 要锁存当前

14、计数值有两种方法 利用GATE信号使计数过程暂停 向8253写入一个方式控制字 令8253通道的锁存器锁存 之后 再从计数器I O地址中读取锁存的计数值 读取计数值 要注意读写格式和计数数制 8253的应用 11 38253在IBMPC系列机上的应用 8259 1 定时中断 moval 36h 计数器0为方式3 二进制计数 先低后高写入计数值out43h al 写入方式控制字moval 0 计数值为0out40h al 写入低字节计数值out40h al 写入高字节计数值计数器0 方式3 计数值 65536 输出方波频率 1 19318MHz 65536 18 206Hz 不断产生OUT0端接

15、8259A的IRQ0 每秒产生18 206次中断请求 或说每隔55ms 54 925493ms 申请一次中断DOS系统利用计数器0的这个特点 通过08号中断服务程序实现了日时钟计时功能 2 定时刷新 需要重复不断提出内存刷新请求门控总为高 选择方式2或32ms内刷新128次 即15 6 s刷新一次计数初值为18moval 54h 计数器1为方式2 采用二进制计数 只写低8位计数值out43h al 写入方式控制字moval 18 计数初值为18out41h al 写入计数值 设某工业控制系统中通过8253的2 通道输出500Hz的连续方波作为系统时钟信号 已知8253的输入CLK 1MHz C

16、S 320 323H 设计8253的控制程序 8253应用举例 分析 1 因为要产生连续的方波信号 因此选择8253的工作方式3 2 因为输出的方波频率为500Hz 所以写入的初值为1000000 500 2000 这里之所以这样除 是因为 在方式3中 我们输入的初值N 相当于是对输入频率的N分频 3 2000 256 因此必须写入16位计数值 写入顺序为先写低8位 后写高8位 1 以8253作为系统时钟 main unsignedintn 2000 outportb 0 x323 0 xB6 0 xB6 10110110b outportb 0 x322 n 256 n 256 outportb 0 x322 n 256 程序如下 设8253的输入CLK1 1000Hz CS 10 13H 要求OUT1输出为高电平和低电平均为20ms方波 设计8253的控制程序 分析 1 因为要产生连续的方波信号 因此选择8253的工作方式3 2 因为输出的方波频率为1000 20 20 25Hz 所以写入的初值为1000 25 40 3 40 256 因此写入时选择一个字节写入 2 8253作分频

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号