美文网首页
51单片机之流水灯,循环位移函数

51单片机之流水灯,循环位移函数

作者: David_Rao | 来源:发表于2019-09-26 12:33 被阅读0次

    先介绍循环位移函数

    #include <reg52.h>
    #include <intrins.h>  //还需要引入这个头文件
    
    // 字符型循环左移:_crol_
    //字符型循环右移:_cror_
    void test1()
    {
        unsigned char a;
        unsigned char b;
        unsigned char c;
        unsigned char d;
        unsigned char e;
        a = 0xfe;  //1111 1110
        b = _crol_(a, 1);  //1111 1101 
        c = _crol_(a, 2);  //1111 1011
    
        d = _cror_(a, 1);  //0111 1111
        e = _cror_(a, 2);  //1011 1111
    }
    
    // 注意对比位移运算符
    void test2()
    {
        unsigned char a;
        unsigned char b;
        unsigned char c;
       
        a = 0xfe;  //1111 1110
        b = a << 1;  //1111 1100  右边自动补0 
        c = a >> 1;  //0111 1111   左边自动补0
    }
    

    流水灯代码

    #include <reg52.h>
    #include <intrins.h>  //还需要引入这个头文件
    #define uint unsigned int
    #define uchar unsigned char
    
    void delay(unsigned int z)
    {
        unsigned int x, y;
        for(x = z; x > 0; x--)
            for(y = 114; y >0; y--);
    }
    
    void main()
    {
        //变量初始化
        uchar temp;
        temp = 0xfe;
        P1 = temp;
        delay(100);
        while(1)
        {
            temp = _crol_(temp, 1);
            P1 = temp;
            delay(100);
        }
    }
    

    相关文章

      网友评论

          本文标题:51单片机之流水灯,循环位移函数

          本文链接:https://www.haomeiwen.com/subject/zdpjyctx.html