51单片机用C语言如何读输出锁存器的内容?

[复制链接]
5913|7
 楼主| hexenzhou 发表于 2007-7-19 08:25 | 显示全部楼层 |阅读模式
书上说51单片机的IO口当输入口时可以读输入缓冲器和读输出锁存器的内容,输入缓冲器的读用C语言直接赋给某个变量就可以了,那如何用C读输出锁存器的内容呢?
ayb_ice 发表于 2007-7-19 08:27 | 显示全部楼层

用与或操作...

 楼主| hexenzhou 发表于 2007-7-19 09:09 | 显示全部楼层

像这样吗?

unsigned char tmp=0xFF;

tmp &= P0;

读P0口输出锁存器?
ayb_ice 发表于 2007-7-19 15:27 | 显示全部楼层

查看一下汇编代码...

conwh 发表于 2007-7-19 17:24 | 显示全部楼层

你用汇编怎么读?

lubaodong 发表于 2013-7-9 09:00 | 显示全部楼层
你好,这个能否读端口锁存器的问题困扰我很久,始终没有找到相应的讲解资料。
不知您是否已经搞明白这个问题,能否给讲解一下,非常感谢!
xu615888 发表于 2013-7-9 09:54 | 显示全部楼层
把io的缓存器,读一下就好了
sunhq02 发表于 2013-7-9 10:29 | 显示全部楼层
以P0为例
如果写  c = P0,读的是输入缓冲器
如果写  P0 |= 0x12,读的是输出缓冲器

也就是说,凡是c语言直接读寄存器值的,都是读的输入缓冲器
凡是c语言 读-改-写指令,都是读的输出缓冲器
读-改-写指令包括  |= ,&=之类,需要读输出缓冲器,并且结果直接到寄存器本身的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

339

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部