第9章 定时和计数接口电路

定时/计数的基本概念

所谓定时(计数)就是通过硬件或软件的方法产生一个时间基准,以此来实现对系统的定时或延时控制。要实现定时或延时控制,有三种主要方法:软件定时、纯硬件定时及可编程的硬件定时器/计数器。

可编程定时/计数器 Intel 8253

Intel 8253的内部结构

Intel 8253的内部结构

双箭头:可双向传输
单箭头:如控制字寄存器,只能写入而不能读出

在这里插入图片描述

8253的端口选择

在这里插入图片描述

Intel8253的控制字和编程

下面主要讲常考的前4种方式

方式0——计数结束后输出由低变高

在这里插入图片描述若在计数过程中改变计数初值,则按新的计数值重新开始计数:

在这里插入图片描述

特点
写入计数初值则启动
只计数一次
GATE=1时,才允许计数
如果GATE=0则计数暂停,当GATE=1后接着计数
方式1——可编程序的单拍脉冲

在这里插入图片描述

特点
计数由GATE启动
当计数到0后,不用送计数值,可再次由GATE脉冲启动,输出同样宽度的单拍脉冲。  
方式2——频率发生器(分频器)

在这里插入图片描述

特点
写入计数初值则启动
通过计数值N,可对输入脉冲进行N分频
当GATE=0时,暂停计数;当GATE变高自动恢复计数初值,重新开始计数
方式3 — 方波发生器

在这里插入图片描述

特点
写入计数初值则启动
输出位周期性的方波,周期为N个CLK脉冲的宽度
若计数值为偶数,则输出对称方波。如果计数值为奇数,则前(N+1)/2个CLK脉冲期间输出为高电平,后(N—1)/2个CLK脉冲期间输出为低电平。
当GATE=0时,暂停计数;当GATE变高自动恢复计数初值,重新开始计数
不同方式的区别

输出的波形不同
计数过程中GATE信号对计数操作的影响不同
启发计数器的触发方式不同

8253的应用

初始化8253

两种方式
①对每个计数器分别进行初始化,先写控制字,后写计数值。如果计数值是16位的,则先写低8位再写高8位。
②先写所有计数器的方式字,再写各个计数器的计数值。如果计数值是16位的,则先写低8位再写高8位。

控制字一般为尾地址

例如:假设一个8253在某系统中的端口地址40H—43H,如果要将计数器0设置为设置为工作方式3,计数初值为3060H,采用二进制计数法,则初始化方法如下:

MOV		AL,36H	;设置控制字00110110(计数器0,方式3,写两个字节,二进制计数)
OUT		43H,AL	;写入控制寄存器
MOV		AX,3060H	;设置计数值
OUT		40H,AL		;写低8位至计数器0
MOV		AL,AH
OUT		40H,AL		;写高8位至计数器0

Intel 8254

相比8253,改进了

计数频率高

8254的计数频率可由直流至6MHz,8254-2可高达10MHz。而8253最高只能达到2.6MHz。

有读回命令(写入至控制字寄存器)

可以使三个计数器的计数值一次锁存

课后习题

9.8 在一个定时系统中,8253的端口地址范围是480H~483H,试对8253的三个计数器进行编程。其中,计数器0工作在方式1,计数初值为3680H。

MOV	AL,32H		;设置控制字0011 0010(计数器0,方式1,写两个字节(故读写格式选11),二进制
MOV	DX,483H		;控制字地址
OUT	DX,AL		;写入控制寄存器
MOV	AX,3680H	;设置计数初值
MOV	DX,480H		;计数器地址
OUT	DX,AL		;先写第八位
MOV	AL,AH
OUT	DX,AL		;在写高八位
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值