66问答网
所有问题
51单片机c语言编程能给位赋值么?
如果要给P3.6写入1,语句是: P3^6=1; 吗?
如果是的话为什么我的编译会报错呢:
SHUZIDIANYABIAO.C(28): error C141: syntax error near '='
举报该问题
推荐答案 2012-02-27
C语言中不能直接给
二进制
某一位赋值
但是可以通过按位操作来实现
如果你的P3是整型或者字符型的变量,可以通过“
按位或
”对某一位赋1,通过“
按位与
”对某一位赋0
P3=P3|0x40;//这样就是在不改变其他位的同时给第6位赋1
0x40转换成二进制位01000000
假如:P3的值为10110010
10110010
| 01000000
结果为 11110010
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://66.wendadaohang.com/zd/pisiUiiv9.html
其他回答
第1个回答 2019-06-05
keil的话可以。打开你的reg51(或reg52等)头文件,你就会看到已经声明的位变量,
格式是:sbit 位变量名=SFR名^位地址值 (P3也是头文件中最开始部分声明的)
头文件中有
sbit WR=P3^6;
所以你直接写 WR=1就行了
第2个回答 2021-03-03
51单片机头文件用#include<ATB9X51.h>可以,里面定义了P_1.0等;例如:P1_0=0;如果用#include<reg51.h>不行。
第3个回答 2012-02-27
是可以的 双击错误信息 到那一行看看上下有没有错
相似回答
单片机
中
c语言编程 能
不
能给
P0的某一位直接
赋值
如P0^0=5
答:
可以的
,必须先定义,再用 sbit led=P1^1;led = 0;单个io是只可以负值1或0
51单片机c语言
sbit的作用是什么
答:
这个叫位定义 就是给P0^0又定义了个名字叫P00。这样在程序中用到P0^0的时候写P00就可以了,这样为的书写方便。如果没有SBIT就成了
赋值
语句。
51
与pic
用c语言
写在定义上之间有什么区别
答:
另外PIC几乎所有寄存器和存储器都
可以位
寻址,比如8位高档PIC和16位PI
C可以
直接
给位赋值
:C1CTRLbits.REQOP=7,就是给C1CTRL这个寄存器的最高三个位赋值二进制数111,其他位不动。在语法上,PICC(PIC
的C语言
编译器,不是中国人保)不允许重入函数。
51单片机
有中断向量表,所以中断函数可以有多个。因为...
51单片机 C语言编程
答:
其次,要给某个端口
赋值
(1或0),还是给端口组(8
位单片机
一个组八个脚)赋值,这就是按位操作还是按字节操作的问题。例如:单片机有PA口,PB口,其中PA口有PA0~PA7八个脚,拉高PA口(PA = 0XFF;),拉高PA0脚(PA &=0X01;或者PA0 = 1; )。当然有些单片机是通过读写IO口输入输出寄存器...
51单片机C51语言
的几个问题。
答:
sbit a = PSW^2;这不是一条简单的
赋值
语句,a也不是什么变量,而是把他和PSW的第二位关联起来,相当于a是它的别名一样,如果a变化的话PSW的第二位会变,PSW的第二位变化时a当然也会变(假设你叫李宇春,现在这条语句就是说把春哥也变成你的名字),其实是一个东西,这么做的原因是,在程序中...
单片机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(即要...
大家正在搜
c语言单片机编程教程
51单片机c语言编程入门
51单片机c语言程序设计教程
51单片机编程语言
单片机c语言编程实例
c语言编单片机程序
单片机c语言编程免费下载pdf
51单片机c语言教程pdf
51单片机c语言常用语句详解
相关问题
单片机中 c语言编程 能不能给P0的某一位直接赋值 如P0^...
在单片机C语言中如何对变量的某一位进行操作或赋值。
请问:单片机c语言中如何实现将变量A中某1位赋值给B中某1位...
51单片机位操作可不可以定义一位,然后直接赋值?
单片机c语言编程怎么给内部的寄存器赋值
单片机c语言编程 数组赋值问题:
51单片机C语言编程,是不是不能用位定义sbit来定义数组呢...
单片机C语言怎么能对P2口的1,2,3,4,5位进行清零或者...