LED灯的延时亮灭与循环流水

全是c语言程序,都已经用keil编译并下载到开发板里面测试过了= =


1.对单个led灯打开后延时并关闭的循环操作- -(通过位操作点实现)

#include <reg52.h>
sbit LED = P1^1;
Delay()
{
  int i;
  for(i=0;i<10000;i++);

}
main()
{ 


  while(1){
    LED = 0;
	Delay();
    LED = 1;
	Delay();
}

}

2.对于led灯的循环点亮(左边开始)通过总线方式点亮

#include <reg52.h>
delay(unsigned int n)
{
   while(--n);
}
main()
{
    unsigned char i;
	delay(60000);
	P1 = 0xfe;    //P1=1111 1110
	
	while(1)
	{
	    for(i = 0;i < 8;i++)
	{
	     delay(60000);
	     P1 <<= 1;   
		 P1=P1|0x01;
	}
	    P1=0xfe;
	}




}

3.是左右循环(总线方式)

#include <reg52.h>
void delay()
{
	unsigned int a;
	for(a = 0;a<30000;a++);
}
void main()
{
	unsigned int i,j;
	
	while(1)
	{
		P1=j=0xfe;//1111 1110;
		delay();
		for(i = 0;i < 8;i++)
		{
			j = j<<1;
			j = j|0x01;//0000 0001
			P1=j;
			delay();	
		}
		P1=j=0x7f;//0111 1111;
		delay();
		for(i = 0;i < 8;i++)
		{
			j = j>>1;
			j = j|0x80;//1000 0000
			P1=j;
			delay();	
		}
	}
}

都是很基础的东西,还有一个查表的准备等做最后作品花样灯的时候做,虽然led部分很基础,但是没办法只能先走马观花的学习了,希望以后能再回过头来的时候可以轻松点,现在都是依葫芦画瓢阶段,虽然看上去都懂,但是其实对于更深层次的内容了解的还是很有限,我想随着学习的深入,我将会学到更多,到时候再回过头,西瓜芝麻一起抓!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章