如图1所示,若IO0输出为低电平,则需要E1接高电平,E2接低电平,E3接低电平,CBA的输入为000。其中,A7A6A5通过三输入与非门4023与E2连接,因此A7A6A5为111,A4A3A2与CBA连接,因此A4A3A2为000,A1A0不参与译码,因此IO0的地址范围为11100000B~11100011B,即0E0H~0E3H。 为了便于观察,在图1中译码器的8个输出端上连接了逻辑探针,当逻辑探针显示“0”时,表示相应引脚为低电平,当显示“1”时,表示为高电平。 图1 验证IO0的地址范围在0E0H~0E3H的源代码(A1.ASM)如下: IO0 EQU 11100000B CODE SEGMENT ASSUME CS:CODE START: OUT IO0,AL JMP $ CODE ENDS END START 问题:其余各个输出端的地址范围分别为多少?
时间: 2024-03-11 21:45:36 浏览: 189
单片机IO口无法输出高低电平原因分析
根据题目中的译码器连接方式,可以得到以下地址范围对应的CBA输入:
- 输出1:CBA输入为000,对应地址范围为 11100000B~11100011B,即0E0H~0E3H,与IO0的地址范围重叠。
- 输出2:CBA输入为001,对应地址范围为 11100100B~11100111B,即0E4H~0E7H。
- 输出3:CBA输入为010,对应地址范围为 11101000B~11101011B,即0E8H~0EBH。
- 输出4:CBA输入为011,对应地址范围为 11101100B~11101111B,即0ECH~0EFH。
- 输出5:CBA输入为100,对应地址范围为 11110000B~11110011B,即0F0H~0F3H。
- 输出6:CBA输入为101,对应地址范围为 11110100B~11110111B,即0F4H~0F7H。
- 输出7:CBA输入为110,对应地址范围为 11111000B~11111011B,即0F8H~0FBH。
- 输出8:CBA输入为111,对应地址范围为 11111100B~11111111B,即0FCH~0FFH。
因此,其余各个输出端的地址范围分别为:
- 输出2:0E4H~0E7H
- 输出3:0E8H~0EBH
- 输出4:0ECH~0EFH
- 输出5:0F0H~0F3H
- 输出6:0F4H~0F7H
- 输出7:0F8H~0FBH
- 输出8:0FCH~0FFH
阅读全文