51单片机如何用C程序中的_crol_和_cror_实现流水灯来回显示

2025-03-10 01:43:38
推荐回答(5个)
回答1:

#include
#include
#define uchar unsigned char
#define uint unsigned int
//延时
void DelayMS(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}
//主程序
void main()
{
uchar i;
P2=0x01;
while(1)
{
for(i=0;i<7;i++)
{
P2=_crol_(P2,1); //P2 的值向左循环移动
DelayMS(150);
}
for(i=0;i<7;i++)
{
P2=_cror_(P2,1); //P2 的值向右循环移动
DelayMS(150);
}
}
}

回答2:

用个移位处理就行了 set(void) { 流水灯.c * 描述 : 该程序实现LED的流水灯显示。 该程序用于学习 LED流水本例中是调用的 intrins.h 中的

回答3:

#define uchar unsigned char;
#define uint unsigned int;
uchar tt=0;
int LED=0xfe;
void main()
{

TMOD=0x01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
EA=1;
ET0=1;
TR0=1;
P0=0xfe;
while(1)
{

if(tt==20)
{
tt=0;
LED=_crol_(LED,1);
P0=LED;

}

}

}
void timer0() interrupt 1
{
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
tt++;
}

回答4:

我给你写一个左移的,右移的就自己……
#include
#include
#define uchar unsigned char
#define uint unsigned int
void delay(uint z)
{
uint x,y;
for(x=0;x for(y=0;y<121;y++);
}

void main()
{
uchar num;
num=0xfe;
while(1)
{
P1=num;
delay(1000);
aa=_crol(num,1);
}
}

回答5:

支持2楼的,左移右移不是一样的吗,关键是要装载#include
这个头文件