方法一,只要保证互斥就可以了,硬件上连接无需如此麻烦,每个发送完毕后置端口为输入状态即可。 方法二,采用线“与”或者线“或”方法,以免同时访问造成硬件损坏,这种方法可通过监听线路来检测是否冲突而加以避让。 上图采用了上述两种方法,稍嫌麻烦,但从图上提供的信息看,是可以实现的。原因是,上图采用的是+5V供电系统,一般单片机类设备对低电平的最大值一般在0.2Vcc-0.4Vcc,高电平量小值一般在0.6Vcc-0.8Vcc,在5V系统中,1V以下的电平会认为是低电平,所以图中虽采用了0.7V压降的IN4148也没引起问题。如果3V系统,则对某些单片机则不会适合,建议采用对于线“与”方式的二极管采用锗管。 另外,我再对二极管双向传输信号做一详细说明, 当信号从二极管正极向负极流动时,表现如下: 初值5V 经IN4148变为4.3V,输出仍为高电平;初值0V,IN4148截止,后端下拉使电平为0V,输出仍为低电平。 当信号从二极管负极向正级流动时,表现如下: 输出 5V 经IN4148截止,后端上拉使输出变为5V,仍为高电平,输出0V,IN4148导通,后端电平为0.7V,输出仍为低电平。 不过,我想问的是,两个单片机想交换数据用的了这么麻烦吗,直接传输不行吗?还有,用双口RAM也可啊,为啥要搞这么个东东,不觉得很麻烦吗? |