微机原理8253

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

存器中保存。控制寄存器只能写入,不能读出。
第8章 可编程接口芯片及应用 3) 数据缓冲器 数据缓冲器是三态、双向8位缓冲器。它用于8253和系统 数据总线的连接。CPU通过数据缓冲器将控制命令字和计数值 写入8253计数器,或者从8253计数器中读取当前的计数值。
第8章 可编程接口芯片及应用 4) 读/写逻辑 读/写逻辑的任务是接收来自CPU的控制信号,完成对8253内 部操作的控制。这些控制信号包括读信号RD、写信号WR、片选 信号CS以及用于片内寄存器寻址的地址信号A0和A1。当片选信号
第8章 可编程接口芯片及应用 8.1.1 8253的结构与功能
1. 8253的引脚
8253是24脚双列直插式芯片,用+5V电源供电。芯片内有三
个相互独立的16位定时/计数器。8253的引脚和功能框图如图8.1所
示。
D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 CLK 0 OUT 0 GATE 0 GND 1 2 3 4 5 6 7 8 9 10 11 12 8253 24 23 22 21 20 19 18 17 16 15 14 13 VC C
计数值的,因为在计数过程中,OL的内容是跟随CE内容变化的。
此时由于CE不再计数,故可稳定地读出OL(即CE)的内容。
第8章 可编程接口芯片及应用 ② 在计数的过程中不影响CE的计数而读取计数值:为达此 目的,应先对8253写入一个具有锁存功能的控制字,即D5D4位 应为00,这样就可以将当前的CE内容锁存入OL中,然后再用输 入指令将OL的内容读到CPU中。当CPU读取了计数值后,或对 计数器重新进行初始化编程后,8253会自动解除锁存状态,OL 中的值又随减1计数器CE值变化。
WR RD A 0 A 1 CS
读/写 逻辑
内 部 总 线
8
计数器 1 号
控制字 寄存器
8
8
计数器 2 号
图8.2 8253内部结构框图
第8章 可编程接口芯片及应用 1) 3个独立的16位计数器 每个计数器具有相同的内部结构,其逻辑框图如图8.3所示。
它包括一个8位的控制寄存器、一个16位的计数初值寄存器CR、
有效,即CS=0时,读写逻辑才能工作。该控制逻辑根据读/写命
令及送来的地址信息,决定三个计数器和控制寄存器中的哪一个
工作,并控制内部总线上数据传送的方向。
第8章 可编程接口芯片及应用 8253共占用4个I/O地址。当A1A0=00时,为计数器0中的 CR(计数器0的计数初值写入该寄存器)和OL(计数器0的当前计数 值从该寄存器读出)寄存器的共用地址,至于是将计数初值写入 CR,还是从OL中读出当前计数值,则由控制信号WR和RD决定,
第8章 可编程接口芯片及应用 例8.1 设8253芯片的端口地址为388H38BH。现要求计数器 0工作在方式3,计数初值为2354,十进制计数;计数器1工作在 方式2,计数初值为18H,二进制计数。试根据上述要求编写初 始化程序及读取计数器0当前计数值的程序。
;计数器0的初始化程序
MOV
MOV OUT MOV MOV OUT MOV
第8章 可编程接口芯片及应用
计数器0 控制寄存器 计数初值寄存器(CR) CRH CRL
图 8 3 计 数 器 内 部 结 构 框 图
.
减1计数 器(CE)
CEH
CEL
OLH
OLL
输出锁存寄 存器(OL)
第8章 可编程接口芯片及应用 2) 控制寄存器 控制寄存器用来保存来自CPU的控制字。每个计数器都有 一个控制命令寄存器,用来保存该计数器的控制信息。控制字 将决定计数器的工作方式、计数形式及输出方式,亦决定如何 装入计数初值。8253的3个控制寄存器只占用一个地址号,而靠 控制字的最高两位来确定将控制信息送入哪个计数器的控制寄
第8章 可编程接口芯片及应用
CW WR
N=5
CLK GATE OUT 5 4 3 2 1 0
图8.5 方式0的波形
第8章 可编程接口芯片及应用
CW
WR
N=3
CLK GATE OUT 3 2 2 2 1 0
图8.6 方式0时GATE信号的作用
并给出8253编程实例。 1. 8253的控制字格式 8253的控制字格式如图8.4所示。
第8章 可编程接口芯片及应用
D 7 D D 6 5 D D 4 3 D 2 工作方式 D 1 D 0 数制 0 —二进制计数 1—十进制计数 000 —方式0 001 —方式1 ×10 —方式2 ×11 —方式3 100 —方式4 101 —方式5
第8章 可编程接口芯片及应用
2) 读操作
所谓读操作是指读出某计数器的当前计数值到CPU中。有两 种读取当前计数值的方法: ① 先使计数器停止计数(在GATE端加低电平或关闭CLK脉 冲):根据送入的控制字中的D5D4位的状态,用一条或两条输入 指令读CE的内容。实际上,CPU是通过输出锁存器OL读出当前
计数器选择
读写格式
00 —选择计数器0 01 —选择计数器1 10 —选择计数器2 11 —非法 00 —将减1计数器CE中的数据 锁存到OL中(锁存功能) 01 —对计数器的低8位读或写 10 —对计数器的高8位读或写 11 —计数器16位操作(先低8 位,后高8位读或写)
图8.4 8253控制字格式
WR
D ~D0 7 0 #
WR
CLK 0 GATE 0 OUT 0 8253 CLK 1 1 # GATE 1 OUT 1
RD
CS
A 1 A 0 CLK 2 OUT 2 GATE 2 CLK 1 GATE 1 OUT 1
RD
A 0 A 1
CLK 2 CS 2 # GATE 2 OUT 2
图8.1 8253引脚及功能结构
AL,01010100B
DX,AL DX,389H AL,18H DX,AL ;计数初值送低8位
第8章 可编程接口芯片及应用
;计数器0当前计数值读出程序 MOV MOV OUT DX,38BH AL,00H DX,AL ;送计数器0当前计数值锁存命令
MOV
IN MOV IN MOV
DX,388HBiblioteka Baidu
AL,DX CL,AL AL,DX CH,AL
第8章 可编程接口芯片及应用
8.1 可编程定时器/计数器芯片8253/8254
实现定时的方法有三种:软件定时、不可编程的硬件定时 和可编程的硬件定时。软件定时是通过让机器执行一段没有具 体操作目的的程序来实现的。由于CPU执行每条指令都需要一 个确定的时间,因此,只要选择适当的指令和安排适当的循环 次数就很容易实现软件定时,但软件定时占用CPU资源,降低 了CPU的利用率;不可编程的硬件定时尽管定时电路并不很复 杂,但这种定时电路在硬件连接好以后,定时值和定时范围不 能由程序来控制和改变,使用不灵活;可编程定时器/计数器是 为方便计算机系统的设计和应用而研制的,定时值及其范围可 以很容易地由软件来控制和改变,能够满足各种不同的定时和 计数要求,因此得到了广泛的应用。
DX,38BH
AL,00110111B DX,AL DX,388H AL,54H DX,AL AL,23H
;给计数器0送控制字
;送计数初值的低8位
;送计数初值的高8位
OUT
DX,AL
第8章 可编程接口芯片及应用
;计数器1的初始化程序
MOV DX,38BH ;给计数器1送控制字
MOV
OUT MOV MOV OUT
置0),8位初值可以是高字节,也可以是低字节。在读取计数器
当前的计数值时,计数器并未停止计数,有可能在先后读高低 字节时,计数器的值发生变化,因此有必要先锁存当前的计数 值,然后再分字节读出,先读出低8位数据,后读出高8位数据。
第8章 可编程接口芯片及应用 当D5D4=00时,计数器的当前计数值被锁存在OL中,此时计 数器照常计数,但OL中的值不变,待CPU将OL中的两字节数据 读走后,OL中的内容又随减1计数器CE变化。当D5D4=01,只读 /写低8位,高8位自动置0(写计数初值时);D5D4=10时,只读/写 高8位,低8位自动置0(写计数初值时);D5D4=11时,先读/写低8
作方式。
第8章 可编程接口芯片及应用 1.方式0——计数结束产生中断 这是一种软件启动、不能自动重复的计数方式。 如图8.5所示,写入方式0的控制字(CW)后,其输出端变低。 再写入计数初值N(图中N=5),在写信号WR以后经过CLK的一 个上升沿和一个下降沿,初值进入减1计数器CE。计数器减到0 后,OUT成为高电平。此信号通常接至8259A的IR端作为中断 请求信号。
第8章 可编程接口芯片及应用 D7D6位是控制字的计数器编号。由于8253有3个独立的控制
寄存器,但它们共用一个端口地址(A1A0=11时,见表8.1),因此,
控制字中使用最高两位表明将控制字写入哪个计数器的控制寄 存器中。 D5D4位用来设定计数器的数据读/写方式。在给计数器写入 计数初值时,可以赋16位的初值,也可以只赋8位(另8位被自动
位,再读/写高8位。
D3D2D1位决定了计数器的工作方式。8253共有六种工作方式, 后面将一一介绍。 D0位决定计数器的数制。D0=0,选择二进制计数;D0=1, 选择十进制计数。
第8章 可编程接口芯片及应用
2.8253的读/写操作
1) 写操作 所谓写操作是指CPU对8253写入控制字或写入计数初值。 8253在开始工作之前,CPU要对其进行初始化编程(写入控制字 和计数初值),具体应注意以下两点: ① 对每个计数器,必须先写控制字,后写计数初值。因为后 者的格式是由前者决定的。 ② 写入的计数初值必须符合控制字(D5D4两位)决定的格式。 16位数据应先写低8位,再写高8位。 当给8253中的多个计数器进行初始化编程时,其顺序可以任 意,但对每个计数器进行初始化时必须遵循上述原则。
一个16位的减1计数器CE和一个16位的输出锁存寄存器OL。16位 的计数初值寄存器CR和16位的输出锁存寄存器OL共同占用一个 I/O端口地址,CPU用输出指令向CR预置计数初值,用输入指令 读回OL中的数值,这两个寄存器都没有计数功能,只起锁存作 用。16位的减1计数器CE执行计数操作,其操作方式受控制寄存 器控制,最基本的操作是:接受计数初值寄存器的初值,对CLK 信号进行减1计数,把计数结果送输出锁存寄存器中锁存。
信号。输出信号的波形形式由工作方式决定。
第8章 可编程接口芯片及应用 8.1.2 8253的编程 8253在工作之前,用户首先要为某一计数器(计数器02)写 入控制字以确定其工作方式;写入定时/计数初值;在定时/计数 工作过程中,有时还需要读取某计数器当前的计数值。本节首
先介绍8253的控制字格式,然后对8253的读写操作进行介绍,
第8章 可编程接口芯片及应用
2.8253的内部结构
8253内部结构框图如图8.2所示。它由数据总线缓冲器、读/写 逻辑、控制字寄存器以及3个独立的16位计数器组成。
D ~D0 7 数据总线 缓冲器 8 8 计数器 0 号 CLK 0 GATE 0 OUT 0 CLK 1 GATE 1 OUT 1 CLK 2 GATE 2 OUT 2
这两个信号同时只能有一个有效。当A1A0=01和10时,分别为计
数器1和计数器2的CR和OL的共用地址。当A1A0=11时,是3个计
数器内的3个控制寄存器的共用地址,至于CPU是给哪个计数器
送控制字,则由控制字中的最高两位的编码来决定。
第8章 可编程接口芯片及应用
表8.1 8253端口地址及内部操作
;读出当前计数值的低8位
;读出当前计数值的高8位
第8章 可编程接口芯片及应用 8.1.3 8253的工作方式 8253有六种不同的工作方式。在不同的工作方式下,计数过 程的启动方式不同,OUT端的输出波形不同,自动重复功能、 GATE的控制作用以及更新计数初值对计数过程的影响也不完全 相同。同一芯片中的三个计数器,可以分别编程选择不同的工
第8章 可编程接口芯片及应用 8253计数器在工作之前。用户必须对其进行初始化编程:首 先CPU用输出指令向控制寄存器送控制字,然后再用输出指令向 计数初值寄存器CR预置计数/定时的初值。启动工作后,CR中的 初值就送入减1计数器CE对CLK输入的计数/定时脉冲信号进行减
1计数。当CE中的内容减为0,表示计数/定时到,则OUT端输出
相关文档
最新文档