关于微机接口的端口地址计算问题

本文详细探讨了8254A计数器的端口地址计算,解释了BCD码的用法,并给出了一道8254A编程题的解答,涉及时钟频率、计数初值计算及LED控制。同时,提供了两个关于8254A定时时间的计算题目及其解答。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

微机接口端口计算问题

关于 8254 A 8254A 8254A的端口地址的问题

详细的计算出下图中8254的四个端口地址为多少?

在这里插入图片描述

答案 : A 0 H , A 2 H , A 4 H , A 6 H A0H, A2H, A4H, A6H A0H,A2H,A4H,A6H

解析: 四个端口地址分别为计数器0, 计数器1, 计数器2, 控制字寄存器的端口地址

而他们的端口地址取决于与CPU相连的地址总线, 根据图所示, 即 A 0 , A 1 , A 2 , A 3 , A 4 , A 5 , A 6 , A 7 , A 8 A0, A1, A2, A3, A4, A5, A6, A7, A8 A0,A1,A2,A3,A4,A5,A6,A7,A8

在这里插入图片描述

据上图所示, 三八译码器所对的A5, A4 ,A3 分别为100

在这里插入图片描述

该图对应着三八译码器的转换值, 其中 Y 4 Y4 Y4就是相当于上图的 D 4 D4 D4, 即 Y 4 Y4 Y4该位有效;所以对应的 C B A CBA CBA分别为100.

在这里插入图片描述

8254 A 8254A 8254A中内部的 A 0 , A 1 A0,A1 A0,A1分别表示选择不同的计数器(或寄存器), 所以外部的 A 1 , A 2 A1,A2 A1,A2分别对应着00, 01, 10, 11

A 7 A7 A7默认高电平有效即为1

综上所述:

计数器0: 00 1010 0000 0 A 0 H 0A0H 0A0H

计数器1: 00 1010 0010 0 A 2 H 0A2H 0A2H

计数器2: 00 1010 0100 0 A 4 H 0A4H 0A4H

控制字寄存器: 00 1010 1100 0 A 6 H 0A6H 0A6H

在这里插入图片描述


BCD码的用法

BCD码表示的是十进制

一个字节 = 8位

组合BCD码(压缩BCD码)

一个字节包含两位BCD码; 每4位为一个BCD码; 每4位以二进制的形式计算所表示的是十进制的位数. 比如二进制:1000; 十进制是8.

e.g. 1001 0011 表示十进制的93

未组合BCD码(非压缩BCD码)

一个字节包含一个BCD码; 前4位都为0, 后4位表示一位BCD码

e.g. 0000 10010000 0011 一起来表示十进制93


8254A/8253A编程题

假设在一个8086系统中,使用8253控制一个LED的点亮或熄灭。四个端口地址分别是 81 H , 83 H , 85 H , 87 H , C L K 81H,83H,85H,87H, CLK 81H,83H,85H,87H,CLK端输入的是时钟频率为 2 M H z 2MHz 2MHz,LED点亮和熄灭均为10s。设计硬件电路和驱动程序。

在这里插入图片描述

解答:

8254 A 8254A 8254A 计数初值 : N = f c l k ÷ f o u t N = f_{clk} \div f_{out} N=fclk÷fout , 其中 f c l k f_{clk} fclk表示的是输入频率, f o u t f_{out} fout为输出频率。

周期与频率之间的转换: f × T = 1 f \times T = 1 f

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值