单片机简单流水灯位运算应用嵌入式
用到位运算符
C51语言能对运算对象按位进行操作,它与汇编语言使用一样方便。位运算是按位对变量进行运算,但并不改变参与运算的变量的值。如果要求按位改变变量的值,则要利用相应的赋值运算。C51中位运算符只能对整数进行操作,不能对浮点数进行操作。C51中的位运算符有:8按位与_ 按位或A 按位异或~按位取反<左移>>右移
【例4=10】设a=0x45=01010100B,b=0x3b=00111011B,则a&b、a|b、a^b、-a、a<<2、b>>2分别为多少?a&b=00010000b=0x10。
alb=011111111B=0x7f。
a/b=01101111 B=0x6f。
a=10101011B=0xab。
a<<2=01010000B=0x50。b>>2=00001110B=0x0e。
代码如下
unsigned char led=0xFF;
void main()
{
led=0xFE;
while(1)
{
P0=led;
led=led<<1||0x01;
for(i=0:i<10000;i++)
if(led==0xFF)
led=0xFE;