8086cpu 可编程接口技术 之定时器/计数器接口(二)

关于定时:
  • 内部定时:计算机本身运行的时间基准,如时钟发生器。
  • 外部定时:CPU与外设之间或外设与外设之间的时序配合。
  • 定时方法:
    • 软件定时。无需硬件,占用CPU,不准确。
    • 不可编程的硬件定时。不占用CPU,不灵活。
    • 可编程的硬件定时。软、硬结合。

一,8253 的结构和功能

image-20211201134458012

引脚图

image-20211201134549293

1,计数器

image-20211201134657249

  • 三个计数器完全相同,各自独立

  • 每个计数器有两个输入信号CLK 和 GATE ,一个输出信号OUT。

  • 计数器内部逻辑图:

    image-20211201134834766

    由图可知每个计数器包含:

    • 控制寄存器(8位)
    • 计数初值寄存器CR(16位)
    • 计数单元CE(16位)
    • 输出寄存器OL (16位)
2,控制字寄存器组

image-20211201135059473

  • 保存CPU送来的控制字。
  • 根据控制字的最高两位来指明当前的控制字属于哪个计数器。
3,数据总线缓冲器

双向三态的 8 位缓冲器,可与数据总线(D0一D7)直接相连。

4,读/写控制逻辑

image-20211201135503294

其中,A1、A0 :8253片内端口寻址线。

图标速览

image-20211201135651146

二,8253 的工作方式与应用

8253有六种工作方式:(由控制字寄存器决定)

  • 方式0——计数结束中断方式
  • 方式1——外触发单稳脉冲方式
  • 方式2——频率发生器方式
  • 方式3——方波发生器方式
  • 方式4——软件触发选通方式
  • 方式5——硬件触发选通方式
1,8253 的控制字格式

image-20211201140047979

  • D5D4 位的理解

    image-20211201140330509

    • ① 计数初值若为12H,只用写计数初值的低8位,则应设置D5D4=01,当把该控制字送给某计数器时,该计数初值寄存器 CR 的高8位置为全0,写入的计数初值 12H 送给低8位,则计数初值为0012H。
    • ② 计数初值若为3400H,只用写计数初值的高8位,则应设置D5D4=10,当把该控制字送给某计数器时,该计数初值寄存器 CR 的低8位置为全0,写入的计数初值34H送给高8位,则计数初值为3400H。
    • ③ 计数初值若为5678H,则应分别写入计数初值的高8位和低8位,则应设置D5D4=11,当把该控制字送给某计数器时,计数初值寄存器CR的高8位和低8位都准备接收数据,写入计数初值时,第一次写入的78H送给CR的低8位,第二次写入的56H送给CR的高8位,则计数初值为5678H。
  • D0 位的理解:

    image-20211201141022837

    • 计数初值若为12H ,D0 设为0,实际计数为多少?(12H)
    • 计数初值若为12H ,D0 设为1,实际计数为多少?(12)
    • 计数初值若为1200 ,D0 设为0,实际计数为多少?(1200)
    • 计数初值若为1200 ,D0 设为1,实际计数为多少?(无效,这里在补充一点BCD码的知识辅助理解:“BCD码(Binary-Coded Decimal‎),用4位二进制数来表示1位十进制数中的0~9这10个数码,是一种二进制的数字编码形式,用二进制编码的十进制代码。)
2,8253 的初始化编程
  • 1,写入计数器的控制字,规定其工作方式。

  • 2,写入计数初值。

    由于CE计数器采用减1计数,故当初值为0000H时,是最大的计数初值。

    3个计数器的初始化编程可以按照任意顺序。但对某一个计数器来说,则必须按照先写控制字、再写计数初值的顺序进行,不得颠倒。

例题辅助理解

例:设0#计数器,工作于方式3,计数初值为2000H,采用BCD计数方式;1#计数器,工作于方式2,计数初值为1234,采用二进制计数方式。设8253的端口地址为80H~83H。试编写其初始化程序。

//分析:先按格式写出各计数器工作方式控制字再进行编程
MOV AL,00100111B	;对0#计数器送工作方式字

OUT 83H,AL
MOV AL,20H	;送计数初值
OUT 80H,AL

MOV AL,01110100B	;对1#计数器送工作方式字
OUT 83H,AL
MOV AX,1234	;送计数初值低8位
OUT 81H,AL	;1234=04D2H
MOV AL,AH	;送计数初值高8位
OUT 81H,AL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阔升

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值