汇编与接口技术期末复习笔记——接口部分 定时/计数(2)

2. 定时/计数技术

在这里插入图片描述

2.1 定时和计数的概念及类型

在这里插入图片描述

2.2 外部定时方法及硬件定时器

在这里插入图片描述

2.3 可编程定时/计数器82C54A

在这里插入图片描述

2.3.1 外部特性和内部结构

2.3.1.1 外部特性

在这里插入图片描述

2.3.1.2 内部结构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3.2 8254的命令字

在这里插入图片描述
方式命令
在这里插入图片描述
【例】使用计数器T1工作在4方式,且时间常数为3F8H;设307H是整个8254的命令寄存器的地址,305H是8254中定时器1的数据口地址,则初始化程序段为

    MOV  DX,307H        ;命令口
    MOV  AL,01111000B   ;方式字
    OUT  DX,AL
    MOV  DX,305H        ;T1数据口
    MOV  AL,0F8H        ;低8位计数值             
    OUT  DX,AL
	MOV  AL,03H	   ;高8位计数值
	OUT  DX,AL

锁存命令
在这里插入图片描述
【例】要求在计数器通道1的计数过程中读取当前的计数值,并把读取的计数值装入到AX寄存器中。设4个端口的地址为:304H(通道0),305H(通道1),306H(通道2),307H(命令寄存器)

	MOV DX,307H
	MOV	AL,01000000B		;锁存计数器1
	OUT DX,AL
	MOV DX,305H
	IN AL,DX			;读低字节
	MOV BL,AL
	IN AL,DX			;读高字节
	MOV AH,AL
	MOV AL,BL

读回命令
在这里插入图片描述
D1,D2,D3用于选择3个计数器
1:选中,0:未选中;
D4,D5用于选择读当前状态还是当前计数值
0:要读取,1:不读取

【例】

读取计数器2的当前计数值,读回命令=11011000B
读取计数器2的当前状态,读回命令=11101000B
读取计数器2的当前计数值和状态,读回命令=11001000B
读取全部计数器的当前计数值和状态,读回命令=11001110B

在这里插入图片描述

状态字
状态字中的低6位D0-D5与方式字中的低6位是相同的;
D6表示计数器的输出状态:
1:输出引脚为逻辑1, 0:输出引脚为逻辑0
D7表示是否有空计数值:
1:空计数值,0:计数值有效

2.3.3 8254的工作方式

在这里插入图片描述
六种工作方式的比较
(1)0方式和1方式的输出波形类似,但0方式靠软件启动,1方式靠硬件启动。
(2)2方式(分频器)和3方式(方波发生器),这两种方式共同的特点是具有自动再加载功能(装入能力)。
(3) 4方式和5方式的输出波形类似,但4方式靠软件启动,5方式靠硬件启动。

方式0
在这里插入图片描述
① 设定工作方式
② 设定计数初值
④ 计数初值送入计数器
⑤ 计数过程
⑥ 计数结束

方式1
在这里插入图片描述
① 设定工作方式
② 设定计数初值
③ 硬件启动
④ 计数值送入计数器
⑤ 计数过程
⑥ 计数结束

方式2
在这里插入图片描述
设置为2方式,OUT→1 ,写初值寄存器后,计数器启动,当计数器减到1,OUT→0,输出宽度为一个CLK周期的负脉冲,并自动重新装入初始值,自动启动计数。可以通过GATE=0暂停计数

方式3
在这里插入图片描述
计数值为偶数时,占空比为1:1。计数值为奇数时,
高电平比低电平多一个时钟周期

方式4
在这里插入图片描述
此方式设定后,输出OUT变成高电平;当写完计数初值后,计数器开始计数,计数回零结束,输出宽度为一个时钟脉冲的负脉冲,然后恢复高电平,并一直保持高电平不变

方式5
在这里插入图片描述
当写入计数初值后,计数器不启动计数,要由门控信号的上升沿启动才开始计数。

2.3.4 8254的计数初值及装入

在这里插入图片描述

2.3.5 8254的初始化

在这里插入图片描述
【例】选择2号计数器,工作在3方式,计数初值为533H(2 字节),采用二进制计数

MOV DX,307H ;命令口
MOV AL,10110110B; 方式命令字
OUT DX,AL ;
MOV DX,306; 2号计数器数据口
MOV AX, 533H; 计数初值
OUT DX, AL; 先送低字节到2号计数器
MOV AL,AH; 取高字节送AL
OUT DX,AL ; 后送高字节到2号计数器
  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

zyw2002

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

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

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

打赏作者

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

抵扣说明:

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

余额充值