在端口是输出的状态下,可以把数先写进寄存器,在回读回来吗?
回复(11) 2004-07-14 11:06 来自版块 - 板卡设计
表情
kobebasket是外部总线, 我用的是方式0,当单片机需要向外部总线输出数据时,8255端口的状态要设置为输出状态,写数据至端口,注意此时仍然可以读数据,但读上来的是寄存器中的值而并非总线上的值,因为端口处于输出状态,相当于和总线隔离;当外部总线需要向单片机输入数据时,8255的状态要设置为输...(2004-07-17 09:12)
chengjunjie不知道你所说的总线是单片机的总线还是另外的总线? 8255只有A口在方式2时,是双向I/O,即总线方式.其他方式下,A/B/C只能做I/O口,要么输入要么输出不能当总线使用,不知你的8255工作在什么方式?(2004-07-17 00:08)
winter总线方式就是将A口设置成双向的,也就是方式2 哦,你那样做也是可以得,你加延时试试吧(2004-07-16 16:10)
kobebasket如何将8255设置成总线方式啊? 我用的是方式0,需要输入的时候,通过改变8255的控制口的方式字来改变端口的状态!(2004-07-16 14:59)
winter你是将8255设置成总线方式了吗?使用8255作为单片机的总线扩展? 这种方式我没有用过。但是应该设置成方式2就可以了吧(2004-07-16 14:49)
kobebasket再顶!(2004-07-16 14:45)
kobebasket我顶!(2004-07-16 14:44)
kobebasket二位,分我已经给了,请注意查收! 我现在得出的结论: 8255的端口在输出的状态下,写入数据至寄存器,端口各位上就是写入数据值,此时可以进行读操作,读回来的是寄存器中的值! 因此我想要想从总线上读数据的话,一定是先要设置端口的状态为输入,然后在读, 我现在的问题是,按照这...(2004-07-16 14:40)
winterto rickdu 我觉得8255输出是锁存了的,要不然它怎么能够保持固定的状态呢。 8255端口设置为输出状态时再对相应的端口进行写入操作,它将锁存数据,并将数据数值体现到端口上,但是当它的驱动能力不可以改变端口状态时,它会将实际的电平值返回到端口寄存器上。(2004-07-16 10:45)
rickdu8255的io端口在设置为输出状态的时候如果用debug命令写入是无效的,它不能将数据锁存。这时写入后读出的肯定是它的实际电平值。(2004-07-16 09:17)

返回顶部