第八章计数定时器8253
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.引脚
3.功能 (1)具有三个独立的16位计数通道;
(2)每个计数通道可按二进制或二-十进制计数;
(3)具有计数和定时功能,基于减1计数工作;
(4)定时器减为0后,可自动装入定时常数初值,并产生输出信 号;
(5)每个计数通道有六种工作方式;
(6)8253实质上是计数器,但计数器的脉冲输入端如果送定时 脉冲就可以做定时器用。作为计数器时减到0之后输出一个信 号,此时计数过程结束;作为定时器时,减到0后输出一个信 号接着自动装入计数初值并开始下一个周期的计时。
二、初始化
在使用8253时都要由CPU对8253写入控制字,以确定8253的 工作方式,这个设置过程称为初始化。
初始化有两个控制命令字:方式选择控制字和计数常数字。
方式选择字写入控制口,计数常数字写入相应通道内。
例1:将计数器通道2初始化为工作方式3,计数初值为533H, 为二进制计数方式,设计数器地址为40H-43H。
十进制计数时范围是0001~10000,其中当计数初值寄存 器为0000H代表十进制数10000。
计数取值范围在二进制计数时是0001H~10000H,其中 10000H代表65536,在计数初值寄存器中的值是0000H。
可以从8253中读出当前计数值,但其读出过程是:先将当 前计数初值写入到输出锁存器,然后再从输出锁存器中读出, 同时,8253还在不停地进行减计数,虽然输出锁存器中的 值不变,但减计数单元却在不断地减计数,因此,从输出锁 存器中读出的值并不一定是真正的当前计数值。
OUT 71H,AL
;计数初值低8位
MOV AL,AH
OUT 71H,AL
;计数初值高8位
例5:读取8253通道中的计数值
• 8253可用控制命令来读取相应通道的计数值,由于计数值是 16位的,而读取的瞬时值,要分两次读取,所以在读取计数 值之前,要用锁存命令,将相应通道的计数值锁存在锁存器 中,然后分两次读入,先读低字节,后读高字节。
CPU用输入输出指令对8253进行读写操作时的所有信息都通过这个缓冲 器传送。
(2) 读/写逻辑
这是8253内部操作的控制电路,它从系统控制总线上接收输入信号,然 后转换成8253内部操作的各种控制信号。
(3)控制字寄存器
当地址信号A1和A0都为1时,访问控制字寄存器。
控制字寄存器从数据总线上接收CPU送来的控制字,并由控制字的D7、 D6两位的编码决定控制字写入哪个通道的控制寄存器中去。
第八章 计数/定时器8253
• 8-1 8253简介 • 8-2 8253应用举例
8-1 8253简介
一、8253结构及引脚功能 二、8253工作方式 三、8253初始化
• 定时/计数器的作用
– 生产线上统计产品的数目----计数器 – 系统的动态存储器刷新----定时器 – 系统时钟计时----定时器 – 扬声器的频率源----定时器
控制字:01110111 77H
MOV AL,77H OUT 43H,AL ;写计数器 1 的控制字 MOV AL,20H OUT 41H,AL ;写计数器 1 的低 8 位初值 MOV AL,40H OUT 41H,AL ;写计数器 1 的高 8 位初值
例3:计数器0,工作在模式2,计数初值和输出锁存器仅使用 低8位,初值为100,计数值为二进制格式,设寄存器地址为 70H-73H。
每个通道(计数器)是16位二进制计数器,每个计数器中有3 个寄存器。
(1)初值寄存器:初始化时写入该计数器的初始值。
(2)减一计数器:初值寄存器写入减一计数器,减1到0为止。
(3)计数值锁存器:在计数器工作的过程中,跟随计数值的 变化,在接收到CPU发来的读计数值命令时,用以锁存计 数值,供CPU读取,读取完毕之后,输出锁存器又跟随减1
计数器变化。
CLK GATE
锁存后读 出当前值
&
装入初值
LSB
MSB
16位当前计数值锁存器
16位减一计数器
16位计数初值寄存器
LSB
MSB
OUT (减1至
0时)
因8253是减计数器,故计数初值越大,则计数减至0所用 时间(即定时时间)就越长,但由于8253是先减1,再判 是否到0,故最长的定时时间是设置计数初值为0,代表 65536。
MOV AL,00010100B ;控制字
OUT 73H,AL
MOV AL,100
;计数初值
OUT 70H,AL
例4:计数器1,工作在模式1,初值为1234,先写入低8位, 再写高8位,计数值为二进制,设寄存器地址为70H-73H。
MOV AL,01110010B ;控制字
OUT 73H,AL
MOV AX,1234 ;1234装入AX转换二进制
• 如何定时
– 软件定时,由CPU执行指令序列所花费的时间来构成 一定的时间间隔,从而达到定时的目的。优点是节省 硬件;缺点是执行程序期间CPU一直被占 用,降低 了CPU效率。 例如:MOV CX , ××××H HERE: LOOP HERE
– 硬件定时,要用额外的硬件—计数/定时器,但可提 高CPU的利用率。ቤተ መጻሕፍቲ ባይዱ
控制字:10110110 B6H
MOV AL,0B6H OUT 43H,AL MOV AX,533H OUT 42H,AL MOV AL,AH OUT 42H,AL
;计数器2,先低后高字节 ;写命令字
;计数初值 ;写计数值低位
;写计数值高位
例2:8253工作为计数器1,方式3,初值为4020D,设计数器 地址为40H-43H。
由寄存在每个通道内的控制寄存器的内容决定该通道的工作方式,选择计 数器是按二进制还是BCD数计数,并确定每个计数器初值的写入顺序。
(4) 计数器0、计数器1、计数器2
这是三个计数器/定时器通道,每一个都由16位的可设置计数初值的减法 计数器构成。
三个通道的操作是完全独立的。每个通道都有两个输入引脚CLK和GATE 以及一个输出引脚OUT。
一、8253结构及引脚功能 1.结构:由四部分组成。
D0~D7 8 数据总线缓冲器
A0 A1
RD 读/写逻辑
WR
CS
控制字寄存器
计数器0 计数器1 计数器2
内部总线
CLK0 GATE0 OUT0
CLK1 GATE1 OUT1
CLK2 GATE2 OUT2
(1) 数据总线缓冲器
这是8253与CPU的数据总线(D7~D0)连接的8位双向三态缓冲器。