
#include<reg52h>
#include <intrinsh>
void delayms(unsigned char ms) // 延时子程序
{
unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}
main()
{
unsigned char LED;
LED = 0xff;
P0 = LED;
while(1)
{
delayms(1000);
LED = LED<<1; //循环右移1位,点亮下一个LED
if(LED==0x00)
{
LED=0xff;
}
P0 = LED;
}
}
1灭)。编译器keil
C代码如下:
#include<reg51h>
#include<intrinsh> //包含循环左移函数 _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;
}
}
}
}
以上就是关于单片机流水灯程序 16全部的内容,包括:单片机流水灯程序 16、c语言流水灯程序 求具体代码、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)