S51单片机的_crol_()的用法

Pn=_crol_(Pn,n);Pn端口,n移动的位数,crol左移,c为char的简写

Pn=_cror_(Pn,n);cror右移

目的:实现LED灯左移一位——>LED灯右移一位——>LED灯左移两位——>LED灯右移两位——>结束(中间无延迟)

#include<reg52.h>

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

void delay(uint t);

void main(void)

{

uchar i,j,k,l;

while(1)

{

/*开机全亮*/

P1=0x00;

delay(60000);

P1=0xff;

delay(60000);

/*左移一位*/

P1=0xfe;

for(i=0;i<7;i++)

  {

   delay(30000);

   P1=_crol_(P1,1);

   }         

/*右移一位*/

P1=0x7f;

for(j=0;j<7;j++)

  {

    delay(40000);

    P1=_cror_(P1,1);

  } 

/*左移两位*/

P1=0xfc;

for(k=0;k<3;k++)

  {

   delay(50000);

   P1=_crol_(P1,2);

  }

/*右移两位*/

P1=0x3f;

for(l=0;l<3;l++)

  {

    delay(60000);

   P1=_cror_(P1,2);

  }

}

 

void delay(uint t)

{

while(--t);

}

 

posted @ 2012-06-16 22:48  梦中人...  阅读(5151)  评论(0)    收藏  举报