标题: 想请教大佬们,单片机C语言如何用cror和crol 实现跑马灯? [打印本页]

作者: AT89C51666    时间: 2022-4-11 20:37
标题: 想请教大佬们,单片机C语言如何用cror和crol 实现跑马灯?
如题
作者: 1006381187    时间: 2022-4-11 20:54
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
void delayms(uint);
uchar aa;
void main()
{
     aa=0xfe;
     while(1)
     {
            P1=aa;
            delayms(500);
            aa=_crol_(aa, 1);
      }
}
void delayms(uint xms)
{
       uint i , j;
       for (i=xms;i>0;i--)
                 for(j=110;j>0;j--);
}
作者: zhxiufan    时间: 2022-4-11 21:10
所谓cror和crol 其实就相当于汇编语言的RR A和 RL A,也就是循环右移和循环左移指令,做流水灯是最方便的,使用是需要头文件intrins.h,_crol_(Pn,1);或者_cror_(Pn,1);就可以了。
作者: 188610329    时间: 2022-4-11 23:54

#include<reg52.h>
#include<intrins.h>

void main()
{
     unsigned char  i,j;
     P1 = 0xfe;
      while(1)
      {
             P1 = _cror_(P1,1);
            //P1 = _crol_(P1,1);
             i = 200;
             while(--i){while(--j);}
       }
}

作者: yzwzfyz    时间: 2022-4-12 11:07
建议现搞清楚,跑马的道理。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1