请教各位一个关于51单片机I/O口扩展的问题

来源:百度知道 编辑:UC知道 时间:2024/06/04 04:20:38
我用的资料是北航李广弟编的《单片机基础》,其中关于I/O口扩展部分有下面这么个例子,请教如下:
一个拨盘可以产生一个BCD码(4位二进制数)。现有A、B、C、D四个拨盘,要求把他们产生的BCD码依次输入到通用寄存器R4(B、A),R5(D、C)中去,由以上题目知每个BCD码需要4条输入线,4个BCD码需要16条输入线,即2个8位的口(1#口和2#口),因此用2片74LS244就可以构成其输入口,以P2.7和P2.6分别作为两个口的地址选通线,并且假定其他地址线为“1”,则1#口输入地址为7FFFH,2#口输入地址位0BFFFH。
对于上面资料的解释不是很清楚,我按上面说的做了如下的演绎:
p2.7 p2.6 p2.5 p2.4 p2.3 p2.2 p2.1 p2.0
1 0 1 1 1 1 1 1 很明显这个数是0BF
0 1 1 1 1 1 1 1 而这个数是7F
我不明白的是资料中怎么说两个地址分别是7FFFH和0BFFFH呢,这两个地址后面的“FF”是怎么回事呢?请各位大侠帮忙给解释一下,最好详细点,我是菜鸟!谢谢!!
那要是P1口表示高8位P2口表示低8位呢,就成了0FF7FH和0FFBFH了啊,在题目中就没有说明P2口表示高8位P1口表示低8位啊?

你不是说了吗?有4个拨盘,每个拨盘有4位那么应该就有16位啊,可51单片机是8位的要表示16位需要用到两个口了.你上面不也说需要用的P1口和P2口。你知识忽略了而已。就相当是P2口表示高8位P1口表示低8位,p2.7和P2.6是地址选通线,其余都做"1",不就是你说的“7FFFH”和“BFFFH”了吗?