扩展问题我同事设计一电路图,74LS245左边是DIP输入开关,74ls245l连接到P1口,而其片选信号由138的Y3选中,138的ABC分别接P27P26P25,芯片是89C51,外部程序存储器是AT29C256,我想从P1口读出DIP开关状态,部分程序如下:
...
sbit P27=P2^7;
sbit P26=P2^6;
sbit P25=P2^5;
sbit P35=P3^5;
...
P27 = 0;P26 = 1;P25 = 1;//通过138译码器选中74LS245
a=P1&0X1F;//5开关设计成01111;
if (a==0x0F) P35=0;
若用89C51(EA接+5V,程序烧到89C51内),可得到P35=0;若EA接地,89C51为空,把程序烧到外部程序存储器,可无论如何也得不到想要的数据(程序都一样),即P35=1!我怀疑是不是P27 = 0;P26 = 1;P25 = 1有问题,当执行P26 = 1时,P27可能就不为0,因为89C51要输出地址访问外部程序存储器,P27 已改变;同样当执行P25 = 1时,P27可能就不为0,P26可能就不为1,也就没选中245,读不出想要的数据,若将245的输出接到P0口或245的片选接到89C51的其他引脚也可解决,不知道分析是否正确?望大家指点!!!