单片机C语言编程时能否合并多个IO口赋值?

如要想让P1.0、P2.0、P3.0这三个IO口赋一数组值[010],是不是先要声明这三个IO在一起,然后再赋值?或者还有其他方法?(不是那种独立赋值P1.0=0、P2.0=1、P3.0=0)
最好能具体写一段出来

这个不可以呀。。。三个不同端口,,,而且每个端口有8个位。怎么可能一起赋值

同一个端口,不同位还是可以的 如:
P1=0x07 //低三位为1追问

我知道同一端口能赋数组值,不同端口没有其他方法可以合并一起赋值吗

追答

这个又不复杂,总共才三个端口。。。

何必去想其他方法呢,,就算能实现肯定也是更加不方便,否则早就开发出来了

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-05-16
或者用 与/或?追问

能具体说下吗

单片机C语言编程时能否合并多个IO口赋值?
这个不可以呀。。。三个不同端口,,,而且每个端口有8个位。怎么可能一起赋值 同一个端口,不同位还是可以的 如:P1=0x07 \/\/低三位为1

51单片机c语言编程能合并不同的IO口来赋值吗
你有两种方法可以达到这个目的,一种是用定义宏的方式,另外一种就是写一个赋值函数。我个人建议用函数的方法,宏容易出错误。

单片机怎么用c语言设置I\/O口输入或输出
而51单片机的所有IO引脚,在启动后默认都是1。因此,如之前没有对此引脚进行过置0操作的话,可以直接读该引脚。但为了保险起见,也为了使程序通用、可移植,最好在读取之前对此引脚置1。

C语言 单片机IO口赋值
首先要弄清楚IO口的赋值!!使用并行输数据只能八位。所有,Oxfffe要取出高八位和低八位!!因为不存在取单独某位的问题,所有可以使用简单的移位语句 P1=(oxfffe<<8); \/\/左移八位,得P1=oxfe P2=(oxfffe>>8); \/\/右移8位,得P2=oxff 你这个程序的错误在于,P1口使用并行方法输送数据只...

C语言 如何将单片机6个管脚位的值赋给一个字符型变量
可以用这个字符型变量的每一个bit代表一个IO状态,比如:Var=P0_0 | (P0_1<<1) | (P04<<2) | (P0_5<<3) | (P0_6 <<4) | (P0_6<<5);使用时要注意:如果每次要更新不同IO状态,要先清除当前值,然后再赋新值,比如:Var &=~ 0x01; \/\/ 先将P0_1所在的bit位清0;Var |...

想操作单片机的多个IO口,有什么好的方法移植性强,控制性强,且出错率...
用C语言来编单片机的控制程序,移植性已是目前移植性最强的了。出错率高低还是看编程人员的水平,控制性个人觉得还是汇编最具有优势。

单片机c语言如何用sbit定义多个io口
不大清楚你的意思,51里面我常用的方法是这样:【例子1】sbit Key_1 = P1^0;sbit Key_2=P0^3;然后下文直接使用KEY_1和Key_2就行了 如果是需要IO口太多,又是同一组的,就用sfr

单片机C语言怎么能对P2口的1,2,3,4,5位进行清零或者置一,而不影响其他...
这种单独对指定I\/O口赋值而不改变其他位的操作在430单片机用的很多的。比如:你要给P2.1和P2.2赋1,但不想改变其他位,那么你可以这样写:P2=P2 | 0x06(51单片机的写法)P2OUT|=0x06(430单片机的写法)。要给指定端口置0,而不影响其他位。比如要求P2^1=0,其他位不变。P2=P2&0xFD(即要...

单片机中如何将不同端口的8个“io”口用c语言定义为1个端口?
\\x0d\\x0a \\x0d\\x0a用C语言举例子如下:\\x0d\\x0atypedef struct\\x0d\\x0a {\\x0d\\x0a unsigned char Bit0 : 1; \\x0d\\x0a unsigned char Bit1 : 1; \\x0d\\x0a unsigned char Bit2 : 1; \\x0d\\x0a unsigned char Bit3 : 1; \\x0d\\x0a unsigned ch...

单片机如何用c语言来设置I\/O口,使I\/O口进入到输入或输出模式?
单片机的IO口缺省时一般都是双向,既可以是输入又可以是输出,C语言中判断这个口是输入还是输出要看表达式的形式,比如:sbit key=P1^0;if(key==1)...这里是作为输入的,因为是读入,再判断值 key=1;这里是作为输出,因为直接给其赋值。

相似回答