c语言函数控制流水灯 c语言流水灯代码简单

51单片机 c语言 如何用4个按键控制4个流水灯不用中断一样的实现c语言函数控制流水灯 , 而且可以有多少个按键就可以有多少种流水灯方式 。你使用的键盘函数直接调用流水灯函数就可以 。比如使用独立键盘,if(P1.1==0) light_water(); 然后:
void light_water()
{
num=1;
for(a=0;a8;a)
{
P1.1=num1;
delay(1000); //延时c语言函数控制流水灯;
keyboard();//执行时又不停扫描键盘函数;
}
}
这样就会有一个LED从右往左移动8次;那么当第一次流水未完时 , 又调用第二个流水函数light_water1就能中断当前执行的流水函数又去执行第二个流水灯函数了 。
希望c语言函数控制流水灯我的回答能帮助到你 。
用C语言编写按键控制流水灯的程序1灭) 。编译器keil
c代码如下:
#includereg51.h
#includeintrins.h
//包含循环左移函数
_cro_l头文件
unsigned
char
tmp;
//中间变量
//////////////////////////////////////////////////////////////////////////////////////////////////
//
延时子程序
////////////////////////////////////////////////////////////////////////////////////////////////
void
delay(unsigned
int
cnt)
{
while(--cnt);
}
//////////////////////////////////////////////////////////////////////////////////////////////////
//
主函数
////////////////////////////////////////////////////////////////////////////////////////////////
main()
{
while(1)
//外层循环
{
tmp
=
0xfe;
p1
=
tmp;
while(1)
//内层循环,执行1、3、5、7亮灯循环
{
delay(30000);
//延时以便能观察到灯亮移动 , 自己可以调整时间,由晶振和实参决定
tmp
=
_crol_(tmp,2);
p1
=
tmp;
if(tmp
==
0xbf)
//判断是否已经点亮到第7灯 。是 , 则退出进入2、4、6、8循环
{
break;
}
}
tmp
=
0xfd;
p1
=
tmp;
while(1)
//内层循环 , 执行2、4、6、8亮灯循环
{
delay(30000);
//延时以便能观察到灯亮移动,自己可以调整时间,由晶振和实参决定
tmp
=
_crol_(tmp,2);
p1
=
tmp;
if(tmp
==
0x7f)
//判断是否已经点亮到第8灯 。是,则退出进入1、3、5、7循环
{
break;
}
}
}
}
51单片机c语言定时器控制流水灯#include //51系列单片机定义文件
#define uchar unsigned char //定义无符号字符
#define uint unsigned int //定义无符号整数
void delay(uint); //声明延时函数
void main(void)
{
uint i;
uchar temp;
while(1)
{
【c语言函数控制流水灯 c语言流水灯代码简单】temp=0xFE;
for(i=0;i8;i) //8个流水灯依次全部点亮
{
P1=temp;
delay(500); //调用延时函数
temp=1;
}
}} void delay(uint t) //定义延时函数
{
register uint bt;
for(;t;t--)
for(bt=0;bt255;bt);
}
用C51单片机控制12个LED流水灯的C语言程序怎么写?#include "REG52.H"
//控制引脚定义
sbit LED1 = PX.X; //P0.0-P3.7任意引脚
...............
sbit LED12 = PX.X;
//宏定义灯亮灯灭
#defineLED1_ON( )LED1 =0 //阳极接电源
#defineLED1_OFF( )LED1 =1 //阳极接电源
....... ............. .............
#defineLED12_ON( )LED12 =0 //阳极接电源
#defineLED12_OFF( )LED12 =1 //阳极接电源
void Init_GPIO( )//端口引脚初始化,关闭所有指示灯
{
LED1_OFF( ) c语言函数控制流水灯;
..............
LED12_OFF( ) c语言函数控制流水灯;
}
void Delay_ms( u16 dat ) //延时函数
{
u16 i, j;
for(i = dat; i0; i--)
{
for (j=300; j0; j--);
}
}
int main( ) //主函数
{
Init_GPIO( );//引脚初始化
while(1) //大循环
{
LED1_ON( );//点亮第一个LED
LED2_OFF( );
.............
LED12_OFF( );
Delay_ms(1000);//延时 参数自己可以根据晶振频率自己调节
LED1_OFF( ); //点亮第二个LED
LED2_ON( );
LED3_OFF( );
.............
LED12_OFF( );
Delay_ms(1000);
.............//按照上面修改c语言函数控制流水灯;
LED1_OFF( );//点亮第十二个LED
LED2_OFF );
LED3_OFF( );
.............
LED12_ON( );
Delay_ms(1000);
}
}
单片机C语言编程:控制流水灯T0 工作模式2 计时器中断 , 一次200us , 1s流水灯左移或右移一次 。
k3触发外部中断0 , 级别高于计时器中断,故暂停 。
#include reg52.h
#include intrins.h
#define uint unsigned int
#define uchar unsigned char
sbit k1=P1^0; //左循环按钮
sbit k2=P1^1; //右循环按钮
sbit k4=P1^2; //恢复暂停
sbit k3=P3^2;//暂停
void init();
void showLED();
void delay(uint xms);
uint delayTime;
uint goLeft=1;
uint goRight=0;
uint sFlag=0;
void main()
{
init();
while(1)
{
if(k1==0)
{
delay(10);
if(k1==0)
{
while(k1==0);
goLeft=1;
goRight=0;
}
}
if(k2==0)
{
delay(10);
if(k2==0)
{
while(k2==0);
goLeft=0;
goRight=1;
}
}
}
}
void delay(uint xms)
{
uint i,j;
for(i=xms;i0;i--)
for(j=112;j0;j--);
}
void init()
{
P0=0xfe;
TMOD=0x02; //T0 工作模式2 自动装填8位200us
TH0=0x38;
TL0=0x38;
EA=1;
ET0=1;
TR0=1;
EX0=1;
IT0=1;
}
void showLED()
{
if(goLeft==1)
P0=_crol_(P0,1);
if(goRight==1)
P0=_cror_(P0,1);
}
void moveDelay() interrupt1 //一次中断200us
{
if(delayTime==5000)
{
showLED();
delayTime=0;
}
else
delayTime;
}
void stopLED() interrupt 0
{
while(1)
{
if(k4==0)
{
delay(10);
if(k4==0)
{
while(k4==0);
break;
}
}
}
}
c语言函数控制流水灯的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于c语言流水灯代码简单、c语言函数控制流水灯的信息别忘了在本站进行查找喔 。

    推荐阅读