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);
}

浙公网安备 33010602011771号