这种单独对指定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、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)