
51单片机如何用C程序中的_crol_和_cror_实现流水灯来回显示
展开全部
#include<reg51.h>
#include<intrins.h>
#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);
}
}
}
#include<intrins.h>
#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);
}
}
}

2025-08-18 广告
深圳市金创图电子设备有限公司,联系电话:18928465613。金创图是一家集研发、生产、营销、服务为一体的高新技术企业。致力于生产:管装烧录机,编带烧录机,托盘烧录机,通用型烧录机、自动一体化烧录机等;设备产品具有高速率、高刚性、高性能、...
点击进入详情页
本回答由小谢提供
展开全部
用个移位处理就行了 set(void) { 流水灯.c * 描述 : 该程序实现LED的流水灯显示。 该程序用于学习 LED流水本例中是调用的 intrins.h 中的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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++;
}
#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++;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我给你写一个左移的,右移的就自己……
#include<reg52.h>
#include<instrins.h>
#define uchar unsigned char
#define uint unsigned int
void delay(uint z)
{
uint x,y;
for(x=0;x<z;x++)
for(y=0;y<121;y++);
}
void main()
{
uchar num;
num=0xfe;
while(1)
{
P1=num;
delay(1000);
aa=_crol(num,1);
}
}
#include<reg52.h>
#include<instrins.h>
#define uchar unsigned char
#define uint unsigned int
void delay(uint z)
{
uint x,y;
for(x=0;x<z;x++)
for(y=0;y<121;y++);
}
void main()
{
uchar num;
num=0xfe;
while(1)
{
P1=num;
delay(1000);
aa=_crol(num,1);
}
}
追问
左移我也会啊,就是一起用就不知道了。
追答
你的意思是左右移动,是吗?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
支持2楼的,左移右移不是一样的吗,关键是要装载#include<instrins.h>
这个头文件
这个头文件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询