锁存器怎么使用c语言编程,51单片机C语言里有读引脚和读锁存器之分吗?这个P1 = P1 || 5; 请问这个读的是锁存器还是引脚?...

在51单片机的C语言编程中,P1 = P1 || 5;这条语句实际上是读锁存器并进行逻辑或操作。C语言中无法直接读引脚状态,通常通过读锁存器来间接获取。不同编译器可能有不同的编译结果,因此设计时需要考虑具体编译器。例如,P1 = P1 | 5;在Keil PK51中读锁存器,而a = P0;读的是引脚。
摘要由CSDN通过智能技术生成

51单片机C语言里有读引脚和读锁存器之分吗?这个P1 = P1 || 5; 请问这个读的是锁存器还是引脚?

答案:3  信息版本:手机版

解决时间 2019-01-01 23:25

已解决

2018-12-31 23:23

51单片机C语言里有读引脚和读锁存器之分吗?这个P1 = P1 || 5; 请问这个读的是锁存器还是引脚?

最佳答案

2019-01-01 00:47

“P1 = P1 || 5;”

应该是P1 = P1 | 5;,如果编译成ANL指令的话就是读锁存器。

“据说C的时候编译器自动写1”

谣言。追问ANL是读锁存器,但是我这现在是C语言啊 ,到底是读的是锁存器还是引脚呢??P1 = P1 | 5;这个。或者比如a = P1 | 5;读的是引脚还是锁存器追答要看编译器编译出的是什么玩意儿。C不是汇编,究竟是读引脚还是读锁存器应当以汇编为准。

另外犯了个低级错误:应当是ORL指令。

P1 = P1 | 5在Keil PK51中编译出来是ORL P1,#0x05,是读锁存器,但并不代表所有编译器都是相同的编译结果。因此不能断言说C语言的什么什么就一定是读引脚或读锁存。C语言毕竟只是个中间商。追问光看C语言看不出来嘛?怎么可能呢?那我用C语言处理问题的时候我不知道是读的是引脚或者是锁存器那还怎么设计呢?追答只能以锁定编译器的前提下进行设计。

尤其对于嵌入式而言,正规的C语言程序开头都要声明“编译环境”的。

给你个典型的程序说明吧:

程序名称 Nam

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值