⑴ 单片机 汇编语言 怎样给某一位赋值 比如给P3.2赋1 问题二:有位寄存器吗能够存放位累加器C中的值
位蚂含赋值:setb P3.2
MOV C,bit 将直接地址的某位值存入进位C。
MOV bit,C 将激物卖进位C的值存入直明逗接地址的某位。
⑵ 请高手帮忙!用C51对单片机存储单元中的一位进行赋值,例如:给20H中的一位赋值,把P1.0口的值赋给20H.0
C51有一些地址支持位寻址,可以直接脊裤型进行位操作,不同51MCU的地址段纯前不一樱猜样,你查一下相应的datasheet.
⑶ 单片机变量赋值问题
不知道 是不是你的输入芦侍弊法没陪族变过来 我按照你的程谈运序编译没有出错
第二个问题 是不可以P1^1=1的 ,可以P1=0xff.
⑷ 将单片P3.7至p3.2和p1.7,p1.6八个口整合一个变量,直接改变变量值,就能同时赋值八个口
如果是51系列的单片机,因为涉及到的是不同的端口地址,汇编语言所提供的指令系统,只能分别访问不同的端口地址。所以单靠软件无法实现此需求。
如果必须要一次腔激性如圆正同时改变8个I/O位,最简单的方法是将8个I/O位安排在同一个端口上。
若是必须同时改变分布在不渣悔同端口上的I/O位,则可以通过在电路设计时,加上一级锁存器的方案来实现。即先分别设置好I/O位的状态,然后控制锁存器的选通信号,将这些位状态一次同时打入到锁存器的输出端。但是如果采用的是购置的成品电路,改动起来可能会比较麻烦。
⑸ ST单片机C语言有什么指令定义端口的某一位做变量
先用SBIT 设置然后衫清直接让那个变量=1或或培前=0就可以中察,例如下面的做法
sbit s1=P2^3;
然后在程序里直接操作s1=1 或s1=0
⑹ 单片机中有一个整型变量,如何给它赋值。
嘿嘿 俺来帮你解答
1 先在片内RAM中定义一个字变量(装整型数据 16位数) 再传送数据(先传送低8位 再传送高8位)
2 参考程序:
IN16 DATA 40H ;在片内RAM中定义一个整型变量 40H单元为低旅宴8位 41H单元为高做数8位
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV IN16,#12H ;将数据1234H传送拆胡银给整型变量
MOV IN16+1,#34H
呵呵 满意就给 满意回答吧
⑺ 单片机怎么将两个数组指定位置的值互换
这就是两个数互换,用一个临时变量转存一下差宏就行了,例如,数组野庆粗xa[i] 和xb[j] 互换,用temp做临颂镇时变量,
temp=xa[i];
xa[i]=xb[j];
xb[j]=temp;
⑻ 51单片机c语言编程能给位赋值么
C语言中不能直接给二进制某一位赋值
但是可以通过按位操作来实现
如果你的P3是整型或者字符型的变量,可以通过“按位或”对某一位赋1,通过“按位与”对某一位赋0
P3=P3|0x40;//这样就是在不改变其他位的同时给第6位赋1
0x40转换成二进制位01000000
假如:P3的值为10110010
10110010
| 01000000
结果为 11110010
⑼ 请问:单片机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<<n))
#define clr_bit(var, n) (var &= ~(1<<n))
使用方法
if(get_bit(A, 3))set_bit(B, 2);
else clr_bit(B, 2);
这是速度最快的方法。移位操作在编译的时候已经被优化了。
⑽ 怎么从单片机外部改变单片机中程序的变量
直接修改程序中的变量,危谨兆险性很清樱大呢,要是改错了字节让指令变成非法的,那程序就乱祥正租套了。最好是把那些变量分离出来单独放在一个地方,比如24C02存储器,这样修改方便。