51单片机中,定义一个变量如何赋值

void main()
{
char date,res;
while(1)
{
res=0x01;
date=0x01;
date=0x08;
res=date&0x01;
// while(1);
}

这么简单的一个程序,为什么当调试的时个,指针是从date=0x08;这句开始执行,前两句赋值语句怎么不运行呢?
}

被编译器优化了,因为你对同一个变量重新赋值了,前面的就没有意义
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-03-14
pic单片机如果带eeprom的话,那你把变量保存在其中,这样断电不会丢,你也可以根据需要修改。
51单片机就有点麻烦了,最简单的就是外面加24c02

c51中位变量能怎么赋值,位变量能比较吗?
P10=1这这样是不可以的,可以P1=0X01;或者P1^0=0;一般P口在开始被定义,如sbit k4=P2^1;,以后用就可以直接if(K4==1){;}

51单片机 io赋值一个字节怎么取值
把i定义在bdata区,再用sbit定义位变量即可。1a=i&0x01就行了,00000001判断第二位就是a=i&0x02,00000010再一下位就是a=i&0x04,00000100再0x08,000010000x10,0x20,0x40,0x80

c51单片机中定义一个可位寻址的变量LED访问口p1囗p1.1引脚的方法是...
c51单片机中定义一个可位寻址的变量LED,这个LED是接在P1.1引脚上吗?又访问这个位变量很简单,直接赋值,如 LED=1; 或 LED=0;与访问P1口不同,访问P1是同时读写8位数。例,写:P1=0x21;读:n=P1;

关于51单片机io口sbit赋值的问题
你的l1是一个位变量,而a是一个8位的字符型,a=0x40,是第七位为1,你执行把a赋值给l1,得到的是把a的最低位给了位变量l1,所以l1是得0。l1的值要么是1,要么是0。

51单片机位操作可不可以定义一位,然后直接赋值?
对, 可以, 只要是单片机内部可 位寻址的都可以 a=0; 等于P0.0=0 a=1; 等于P0.0=1

51单片机一段引脚赋值
只需要对P2.1-P2.6赋值写法如下:x=赋的值;x&=0x7e;P2|=x;

单片机C51语言中,怎么给已知地址赋值?例如地址为0FF20H,想赋值为...
方法1:char data *p; \/\/定义一个指向片内RAM地址的指针 p = 0x30; \/\/片内RAM地址为0x30 p = 0x12; \/\/向0x30内写入立即数0x12 方法2:include <absacc.h> char x;x = DBYTE[0x30]; \/\/将片内RANM地址0x30的内容赋给变量x DBYTE[0x30] = 0x12; \/\/向0x30...

请问:单片机c语言中如何实现将变量A中某1位赋值给B中某1位的操作?
假如将A第三位赋给B第二位 对于C51架构单片机,可使用位寻址:bdata A, B;sbit a3 = A^3; \/\/位变量指向A第三位 sbit b2 = B^2;b2 = a3;对于其他任何类型单片机,可使用位操作宏(同样适用于C51):define get_bit(var, n) (var & (1<<n))define set_bit(var, n) (var |= (1...

51单片机中c=1是什么意思
如果c是自己定义的变量,那么这个就是单纯的赋值语句。如果c是PSW(程序状态字,用于保存指令执行结果的状态信息)中的Cy(进位标志位),那么这句就是表明之前,执行的某些算术运算或者逻辑运算产生了进位或借位了。

51单片机变量 51的单片机变量是怎么个定义法。全局变量,局部变量都放 ...
unsigned char *p;p=0x22;p=50;p 表示指向0x22所在的单元格,就是将50赋值到0x22地址所指向的单元格里。再从另一个角度讲,如果你没于传参或改变实参的情况下,不建议使用这类,即使有,也不是很建议。因为单片机高手是不会用_at_这类关键字进行变量定位的。有什么疑问可以一起探讨。希望我的...

相似回答