版块
论坛
喜欢
话题
应用
搜索
登录
注册
kobebasket的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=80298
请问对8255的三个IO口操作,可以写进去,在读回来吗?
在端口是输出的状态下,可以把数先写进寄存器,在回读回来吗?
回复
(
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)
回复
winter
:
to rickdu 我觉得8255输出是锁存了的,要不然它怎么能够保持固定的状态呢。 8255端口设置为输出状态时再对相应的端口进行写入操作,它将锁存数据,并将数据数值体现到端口上,但是当它的驱动能力不可以改变端口状态时,它会将实际的电平值返回到端口寄存器上。
(2004-07-16 10:45)
回复
rickdu
:
8255的io端口在设置为输出状态的时候如果用debug命令写入是无效的,它不能将数据锁存。这时写入后读出的肯定是它的实际电平值。
(2004-07-16 09:17)
回复
1
2
下一页 »
kobebasket
加关注
写私信
0
关注
0
粉丝
97
帖子
返回顶部