401 次浏览
从微处理器的角度来看,8253 被设计为一个具有特殊端口芯片 I/O 的芯片。我们不使用它来干扰 I/O 设备。它被用于执行时间应用。8253 具有寻址 A1 和 A0 输入引脚。计数器的宽度为 16 位。如果它们是 8 位宽,则产生的时间延迟将非常小。通过使用相同的端口地址来选择计数器的最低有效字节和最高有效字节。处理器在这里写入控制端口以配置… 阅读更多
2K+ 次浏览
Intel 8253 作为 DIP 封装提供,是一款 24 引脚的可编程 IC。IC 有三个独立工作的计数器,宽度为 16 位。此外,我们还有一个控制端口来确定三个计数器的工作模式。它们的物理和功能引脚图如下所示。图。基于引脚的 8253 图。功能引脚图 Vcc 和 Gn 这些是 8253 使用 +5V 作为电源的电源和接地引脚 D7-0 用于与处理器通信的八个功能引脚 RD* 读取计数器信息,它是低电平有效的引脚 WR* 写入控制信息 CS* 选择芯片… 阅读更多
1K+ 次浏览
8259 从 IR0 到 IR7 的引脚上八个中断设备接收中断请求。然后,它识别来自这些活动的输入的具有最高请求优先级的中断。我们可以将 8259 配置为“固定优先级”模式。在这里,IR0 具有最高优先级,而 IR7 具有最低优先级。如果三个输入 IR2、IR4 和 IR6 处于活动状态,则 IR2 将具有比其他活动请求更高的优先级中断请求。我们可以通过安装… 阅读更多
429 次浏览
在许多情况下,微型计算机系统需要精确的时间延迟。例如,当我们实现一个实时时钟时,时间需要至少每秒更新一次。我们通过在循环中使用一些指令来生成精确的时间延迟。它是完全基于软件的,其中 8085 没有执行任何有益的工作,除了生成时间延迟。时间延迟或时间延迟扫描也可以通过硬件方法生成。例如,555 定时器芯片也可用于生成时间延迟或… 阅读更多
3K+ 次浏览
现在让我们看一个 Intel 8085 微处理器的程序。此程序将计算两个 16 位数的乘积。问题陈述编写 8085 汇编语言程序,将存储在 8000H - 8001H 和 8002H - 8003H 中的两个 16 位数相乘。讨论此程序从内存位置 8000H – 8001H 和 8002H – 8003H 获取 16 位数据。32 位结果存储在位置 8050H– 8053H。在这里,我们测试了两个 16 位数。结果如下 1111H × 1111H = 01234321H 1C24H × 0752H = 00CDFF88H输入第一个输入地址数据......800011800111800211800311......第二个输入 地址数据......80002480011C800252800307......流程图程序地址十六进制代码标签助记符注释F00031, 00, 20LXI SP, 2000H 初始化堆栈指针F0032A, 00, ... 阅读更多
现在让我们看一个 Intel 8085 微处理器的程序。此程序将找到两个 BCD 数的乘积结果。问题陈述编写 8085 汇编语言程序以找到两个 BCD 数的乘积。这些数字存储在位置 8000H 和 8001H。讨论在此程序中,数据从 8000H 和 8001H 获取。结果存储在位置 8050H 和 8051H。我们知道 8085 没有乘法指令,因此我们必须使用重复加法方法。在此过程中,在每次加法后,我们都会调整累加器值以获得十进制等价物。当有进位时,我们… 阅读更多
现在让我们看一个 Intel 8085 微处理器的程序。此程序将找到两个 8 位数的 LCM。问题陈述编写 8085 汇编语言程序以找到存储在位置 8000H 和 8001H 的两个 8 位数的 LCM 讨论在此程序中,我们正在从 8000H 和 8001H 读取数据。通过加载数字,我们将其存储在 C 寄存器中,并清除 B 寄存器。第二个数字加载到累加器中。将 DE 设置为 BC 寄存器的 2 的补码。此 DE 用于从 HL 对中减去 BC。方法如下:假设数字为 25 和 15。… 阅读更多
4K+ 次浏览
现在让我们看一个 Intel 8085 微处理器的程序。此程序将 ASCII 转换为二进制值。问题陈述编写 8085 汇编语言程序以检查位模式是否为回文。讨论在此程序中,我们正在从位置 8000H 获取数字。如果数字不是回文,则程序将返回 00H,否则将返回 FFH。假设输入为 18H,则二进制值为 (0001 1000),这是一个回文。数字 52H(0101 0010) 它不是回文。在此问题中,我们将第一个数字放入累加器中,然后将其左移。当… 阅读更多
10K+ 次浏览
在此程序中,我们将看到如何将二进制数转换为其 BCD 等价物。问题陈述二进制数存储在位置 800H。将数字转换为其 BCD 等价物并将其存储到内存位置 8050H。讨论在这里,我们从内存中获取一个数字,并将其初始化为计数器。现在,在此计数器的每个步骤中,我们都将数字加 1,并调整十进制值。通过此过程,我们找到了二进制数或十六进制数的 BCD 值。我们可以使用 INR 指令在此情况下递增计数器,但此指令… 阅读更多
在此程序中,我们将看到如何将 BCD 数转换为二进制等价物。问题陈述 BCD 数存储在位置 802BH。将数字转换为其二进制等价物并将其存储到内存位置 802CH。讨论在此问题中,我们正在从内存中获取一个 BCD 数并将其转换为其二进制等价物。首先,我们剪切输入的每个 nibble。因此,如果输入为 52 (0101 0010),那么我们可以简单地通过将数字与 0FH 和 F0H 掩盖来剪切它。当高位 nibble 被剪切时,然后将其左移四次以传输… 阅读更多