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);
}
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-26
用个移位处理就行了 set(void) { 流水灯.c * 描述 : 该程序实现LED的流水灯显示。 该程序用于学习 LED流水本例中是调用的 intrins.h 中的本回答被网友采纳
第2个回答  2011-05-20
#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++;
}
第3个回答  推荐于2017-05-18
我给你写一个左移的,右移的就自己……
#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);
}
}追问

左移我也会啊,就是一起用就不知道了。

追答

你的意思是左右移动,是吗?

本回答被网友采纳
第4个回答  2011-05-13
支持2楼的,左移右移不是一样的吗,关键是要装载#include<instrins.h>
这个头文件

51单片机如何用C程序中的_crol_和_cror_实现流水灯来回显示
P2=_cror_(P2,1); \/\/P2 的值向右循环移动 DelayMS(150);} } }

51单片机C程序实验LED灯:[2]左到右的流水灯
说明:本例有两种程序写法 第一种是入门级别比较基础的写法 先是依旧延时子程序,然后主程序利用直接赋值,与“”循环 第二种是稍微高级一些的写法,调用了其他头文件 主要是利用了一个intrins.h文件下的右循环语句”P0=_cror_(P0,1); “另也有左循环_crol_(),括号里面是要循环移位的值。【第一...

51单片机流水灯用C语言编写的设计程序???
include<reg52.h> include<intrins.h> define uchar unsigned char define uint unsigned int void delay(uint z);main(){ uchar aa;while(1){ aa=0xfe;P1=aa;delay(100);while(1){ aa=_crol_(aa,1);P1=aa;delay(100);} } } void delay(uint z){ uint x,y;for(x=z;x>0;x-...

单片机C语言如何实现8个LED流水灯来回流动?
1、可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。2、具体实现方法可以参考如下程序:

单片机c语言中_cror_ 这个函数是怎么用的??
1、首先要写入单片机的头函数,定义单片机P1口的8个管脚,让他们分别代表流水灯的8个led。2、写一个大约一小时的延时函数,为了清楚的看到流水灯的、效果。3、下面是流水灯的主函数,流水灯一个点亮后一个熄灭反复循环点亮熄灭。4、这样流水灯就可以反复循环了。把程序下到仿真软件或者是开发板,进行...

51单片机16路流水灯怎么用C语言写,并求每个步骤的讲解
再把第一个灯点亮,再关掉第一个灯,再点亮第二个灯。。。把它放在do循环里就OK了,熟练了后,加个for循环简化一下程序,设几个变量就行了。 1 已赞过 已踩过< 你对这个回答的评价是? 评论 分享 微信扫一扫 网络繁忙请稍后重试 新浪微博 QQ空间 举报 收起 xie0500150326 来自电脑网络类芝麻团 2011-10...

如何用单片机简单制作一个流水灯
工具:STC系列51单片机、串口转换器(USB转TTL 或232转TTL)材料:实验板一块(可以买现成的,也可以买面包板自己搭建),电阻、LED灯 若干,5V电源等。以下程序可以直接用Keil C 直接编译执行。\/\/可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。\/\/具体实现方法可以参考如下程序...

很简的51单片机C语言流水灯程序
1、51单片机C语言实现循环8个流水灯左移三次,后右移三次。例程:include<reg51.h> \/\/51单片机头文件#include <intrins.h> \/\/包含有左右循环移位子函数的库#define uint unsigned int \/\/宏定义#define uchar unsigned char \/\/宏定义sbit beep=P2^3;void delay(uint z) \/\/延时函数,z...

求C51单片机 按键切换三种样式流水灯代码
case 1:led=_cror_(led,1);P0=led;break; case 2:led=~led;P0=led;break; default:break; } }}main(){TMOD=0x01;TH0=(65536-50000)\/256;TL0=(65536-50000)%256;TR0=1;ET0=1;EA=1;led=0xfe;key=0;while(1) { if(K==0)...

单片机C语言编程点亮LED灯
可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。 具体实现方法可以参考如下程序: #include #include #define uint unsigned int#define uchar unsigned charvoid delay(uint a);void main(){ P1=0xfe; while(1) { \/\/ 向左循环点亮LED for(i=0; i<7; i++) { P1=...

相似回答