⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.c

📁 超级流水灯源程序
💻 C
字号:

# include <reg51.h>
# define led P1       
# define Ton 40        //基准脉宽0.04ms 
# define true 1

code unsigned char stop[3] _at_ 0x3B;   //Mon51用,绝对地址引用
unsigned char LEDflag = 0;    //全局变量,最大255,保存T0中断次数
static unsigned char ledon[8] = {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; 

void timer_init()    //定时器初始化
{
 	TMOD = 0x02;    //T0 方式2,8位自动载入
 	TH0 =  256 - Ton;   //T0初始值
	TL0 =  256 - Ton;   //重载值
 	TR0 = true;     //启动T0
 	ET0 = true;     //开T0,T1中断 
 	EA = true;     //全局中断允许
}

void time0_int() interrupt 1 using 3  //T0中断函数,中断1,使用工作组3 
{
 	LEDflag++;      //修改LEDflag
}


led_show4()
{
 	unsigned char i = 0,j = 0;  // i初始化
 	for(j = 0;j<=7;j++)
	{
 		i = 0;       // i初始化 
 		while(i!=255)     // 由暗变亮
 	   {
    		if(LEDflag == 0)  // 点亮
  			{
  				led = ledon[j];
  			}
  			if(LEDflag == i)  // 熄灭
  			{
 				 led = 0xff;
 			 }
 			 if(LEDflag == 255)    //修改变量
 			 {
  				 i++;      
 			 }
 		} 
	}
 
	for(j=7;j>=0;j--)
	{ 
 		i = 0;       // i初始化    
		 while(i!=255)     // 由亮变暗
 		{
 			 if(LEDflag == 0)  // 熄灭
 			 {
  				led = 0xff;
 			 }
  		 	 if(LEDflag == i)  // 点亮
  			{
 				 led = ledon[j];
 			 }
 			 if(LEDflag == 255)  //修改变量
 			 {
  				 i++;
 			 }
 		}   
 	}  
}
 
void main()
{ 
	 timer_init();
  	 while(1)
 	{
  
 		 led_show4();
 
 	}
}
  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -