×
嵌入式 > 技术百科 > 详情

MSP430单片机的位操作

发布时间:2020-06-01 发布时间:
|
  MSP430单片机属于RISC(Reduced Instruction Set Computer)型处理器。与普通的51单片机的复杂指令集相区别。普通51单片机执行一条指令最少需要12个时钟周期,而RISC单片机最少仅需1个时钟周期。RISC处理器带来的最大不同就是不能进行位操作,内存寻址只能到字不能到位。打个比方,一栋楼只有一个邮政编码,快递员送东西只能送到楼,显然比送到户要快,但具体是那户人家的,就得想想办法了。

1、写位操作。

  对某字节使用“=”进行写操作时,所有位的值都将被改变。如果先将字节读出来,再使用“按位”操作符对原字节进行赋值,则可“等效”对单个位进行操作。

  需要特别指出的是,采用“按位”操作并不意味着MSP430单片机具备了位操作能力,按位操作实际是对整个字节都进行了“操作”,只不过对其中7位的值没有影响而已。

例:

1 P1OUT = 0x01; //将P1.0置1,“按位或”,相当于置1
2 P1OUT &=~ 0x02; //将P1.1置0,取反后“按位与”,相当于置0
3 P1OUT ^= 0x04; //将P1.2取反,“按位异或"相当于取反

 

2、读位操作。

  读位操作主要是通过if语句来判断的方法得到的。同样,这种方法同样需要对1个字节的8位都操作。

1 unsigned char Temp=0;
2 if(P1IN&BIT0)    Temp=1;
3 else             Temp=0;  //读取P1.0的状态到变量Temp
4 
5 if((P1IN&BIT1)==0)    P2OUT = BIT0;
6 else                  P2OUT &=~BIT0; //读P1.1,取反,写P2.0

 

 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
三星研发基于risc-v架构的5G毫米波射频芯片