单片机C语言怎么能对P2口的1,2,3,4,5位进行清零或者置一,而不影响其他位的数字

单片机C语言怎么能对P2口的1,2,3,4,5位进行清零或者置一,而不影响其他位的数字,第1张

这种单独对指定I/O口赋值而不改变其他位的 *** 作在430单片机用的很多的。

比如:你要给P21和P22赋1,但不想改变其他位,那么你可以这样写:P2=P2 | 0x06(51单片机的写法)P2OUT|=0x06(430单片机的写法)。

要给指定端口置0,而不影响其他位。比如要求P2^1=0,其他位不变。P2=P2&0xFD(即要置0 的那一位与0,其他位与1)这样就能保证不影响其他位了。

外部数据存储器的读写,用指令MOVX来实现,汇编语言来编制的话,是很容易理解的。下面给出汇编代码,供参考:

SETD:

    MOV DPTR,#7000H

    MOV R2,#30

LOOP:

    MOVX A,#0ffh

    MOVX @DPTR,A

    INC DPTR

    DJNZ R2,LOOP

    RET

如果用C语言的话,程序代码如下:

unsigned char str

unsigned char i;

str=0x7000;

for(i=0;i<30;i++)

{

str=0xff;

str++;

}

以上就是关于单片机C语言怎么能对P2口的1,2,3,4,5位进行清零或者置一,而不影响其他位的数字全部的内容,包括:单片机C语言怎么能对P2口的1,2,3,4,5位进行清零或者置一,而不影响其他位的数字、单片机程序将外部数据存储器从7000H开始的连续的30个单元置为1、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9755183.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存