c代码如下:
#include<reg51.h>
#include<intrins.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
}
}
}
}
先定义4个按键,sbit k1=P1^0
sbit k2=P1^1
sbit k3=P1^2
sbit k4=P1^3
再定义一个变量计数,分别计1,2,3,4,对应4个按键。
在主循环程序中判断4个按键是否按下,每一个开关按下,变量赋值对应的数。
再根据变量值,执行对应的第1,2,3,4种花样就行了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)