最新2012微机第8章-2.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
最新2012微机第8章-2.ppt

第8章 常用可编程接口芯片 8.2 可编程计数器/定时器8253 计算机中需要定时时钟信号 计算机系统中经常需要用到定时信号 例如:系统日历时钟的计时 AD/DA的时钟 在测控系统中的定时采样与控制定时 蜂鸣器、喇叭的声源 DRAM的刷新定时 …… 定时信号的获取方法 软件方法 硬件方法 (1)软件方法 延时子程序。 当然也可以在程序中直接加入几条空操作指令(或一个循环)来延时。 只要控制延时部分的指令条数,就可以控制延时时间 优点:节省硬件 缺点: 在延时期间,CPU被占据(空耗CPU时间),降低了CPU的效率。 (2) 硬件方法 利用硬件电路产生。 通常用可编程计数器/定时器,在软件的简单控制下就可产生较精确的延时——设置不同的延时时间常数。 优点:不占用CPU时间,提高了CPU的效率 缺点:需要增加硬件 由于所需硬件开销不大,故被广泛使用。 在X86微机系统中,常用的计数器/定时器芯片:8253/8254. 一、 可编程计数器/定时器工作原理 功能体现在两个方面: 一是:作为计数器。 即在设置好计数初值后,便开始减1计数,减到0时,输出一个信号 二是:作为定时器。 即在设置好定时时间常数后,便开始减1计数,并按定时时间常数不断地输出时钟周期整数倍的定时信号。 两者之间的差别: 计数器只输出一个信号,除非重复触发 定时器输出连续信号(减到0后,自动回复时间常数初值并重新开始计数)。 典型用处 在多任务的分时系统中作为中断信号实现程序的切换。 可往I/O设备输出精确的定时信号。 作为一个可编程的波特率发生器。 实现时间延迟。 基本结构原理 原理就是可预置初值的减法计数器。 主要组成包括: (1)初值/预置寄存器——接收并保存CPU送来的初值 (2)计数寄存器——从初值/预置寄存器接收计数初值,减法计数器。 计数脉冲就是时钟输入信号,在门控信号有效时开始计数。 (3)控制寄存器——接收CPU的控制信号,选择不同的工作模式等 (4)状态寄存器——保存计数器的状态 基本原理图如下图 二、 8253 的编程结构与引脚 1. 编程结构 有三个计数器,分别叫做计数器0,计数器1,计数器2 共用一个控制寄存器 每个计数器通过3个引脚和外部联系 ——时钟输入引脚CLK, 门控信号输入引脚GATE 输出引脚OUT 执行部件实际上是1个16位的减法计数器。 它的计数初值就是初值寄存器的值。 CPU通过IO指令访问这些寄存器。 2. 外部引脚 CLK0~CLK2 :时钟输入 GATE0~GATE2 :门控信号 OUT0~OUT2 :输出 A1、A0 :地址信号输入 RD :读控制信号输入 WR :写控制信号输入 CS :片选信号输入 D7~D0 :数据信号 用A1、A0选择片内的寄存器 三、 8253的控制字和状态字 三个计数器共用一个控制寄存器。 1. 控制寄存器和控制字 (4)SC1,SC0 计数器选择 00 选择计数器0 01 选择计数器1 10 选择计数器2 8253非法,8254读回命令 (3)RW1,RW0——读/写指示位。 00 对计数器进行锁存,以便读出 01 只读/写低8位 10 只读/写高8位 11 先读/写低8位,后读/写高8位 (2)M2,M1,M0——模式选择 000 模式0 001 模式1 X10 模式2 X11 模式3 100 模式4 101 模式5 (1)计数初值格式 0--选择二进制 计数值范围:0000H~FFFFH 0000H是最大值,代表65536 1--选择十进制(BCD码) 计数值范围:0000~9999 0000代表最大值10000 四、 编程命令 编程原则: ① 设置初值前必须先写控制字 ② 初值设置要符合控制字中的格式规定 ③ 要读取计数器的当前值(或读取状态字),必须用控制字先锁定,再读取。 编程命令有两类: ①写入命令 ②读出命令 1. 写入命令 有三个 (1)设置控制字命令 设置工作模式等。A1A0=11 (2)设置初始值命令 计数值写入计数器各自的I/O地址 按方式控制字规定的读写格式进行 (3)锁存命令 与读出命令配合,在读出前,要先锁存。 A1A0=11 2. 读出命令 读取计数器当前的值。 要先锁定,然后再读出。 例如要读出通道2的计数值,先向读出控制寄存器写锁定命令 1 0 0 0 0 0 0 0 = 80H 端口地址:70H,72H,74H,76H MOV AL ;对计数器2发锁存命令,锁存当前计数

文档评论(0)

文档资料 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档