扩展带来的问题!!!!我同事设计了一电路,74ls245的b口接到89c51的p1,通过p2口的高三位接到138译码器y3选中74ls245,245的a口接到dip开关。部分程序如下:
...
sbit
p27=p2^7;
sbit
p26=p2^6;
sbit
p25=p2^5;
sbit
p35=p3^5;
...
p27
=
0;p26
=
1;p25
=
1;//选中y3,即245的g
a=p1&0x1f;
if
(a==0x0f)
p35=0;//5开关设成01111;
...
若ea接+5v,程序烧到89c51内部,运行正常(p35=0);若ea接地,89c51为空,程序烧到外部at29c256(接法正确),得不到p35=0,而是p35=1。程序都一样,我怀疑p27
=
0;p26
=
1;p25
=
1可能有问题!当执行p26
=
1时,p27改变了,因为p2口要输出高位地址访问外部程序存储器,同样当执行p25
=
1时,p27、p26改变了,因为p2口要输出高位地址访问外部程序存储器。所以没选中245,读不出dip开关数据。若将245b口接到p0口或将其g接到89c51接到其他引脚也可解决,不知分析是否正确,望大家指点!!



