/***********************************方法一************************** 
* 描述 : 本实验,让8个LED不停显示依照规律轮流显示。 
 首先,8个LED分别两次间隔显示。然后高4位显示和低4位显示。 
 最后间隔全亮、全灭两次。 
 
***********************************************************************/ 
#include 
#define uchar unsigned char 
#define uint unsigned int 
 
/******************************************************************** 
* 名称 : Delay() 
* 功能 : 延时,延时时间为 10ms * del 
* 输入 : del 
* 输出 : 无 
***********************************************************************/ 
void Delay(uint del) 
{ 
 uint i,j; 
 for(i=0; i<del; i++) 
 for(j=0; j<1827; j++) 
 ; 
} 
 
/******************************************************************** 
* 名称 : Main() 
* 功能 : 实现灯的闪烁 
* 输入 : 无 
* 输出 : 无 
***********************************************************************/ 
void Main(void) 
{ 
 while(1) 
 { 
 /*下面四行用于控制LED每隔一个亮*/ 
 P0 = 0xaa; 
 Delay(50); 
 P0 = 0x55; 
 Delay(50); 
 
 /*下面四行用于控制LED每隔一个亮*/ 
 P0 = 0xcc; 
 Delay(50); 
 P0 = 0x33; 
 Delay(50); 
 
 /*下面四行用于控制LED 高四位 或者 低四位亮*/ 
 P0 = 0x0f; 
 Delay(50); 
 P0 = 0xf0; 
 Delay(50); 
 
 /*下面八行用于控制LED的两次全亮 全灭*/ 
 P0 = 0x00; 
 Delay(25); 
 P0 = 0xff; 
 Delay(25); 
 P0 = 0x00; 
 Delay(25); 
 P0 = 0xff; 
 Delay(25); 
 
 Delay(200); //延时两秒 
 } 
}
/*****************************方法二********************************** 
* 描述 : 本实验,让8个LED不停显示依照规律轮流显示。 
 首先,8个LED分别两次间隔显示。然后高4位显示和低4位显示。 
 最后间隔全亮、全灭两次。 
 采用查表方式进行操作,代码更短。 
 
***********************************************************************/ 
#include 
#define uchar unsigned char 
#define uint unsigned int 
 
uchar code table[10]={0xaa,0x55,0xcc,0x33,0x0f,0xf0,0x00,0xff,0x00,0xff}; 
/******************************************************************** 
* 名称 : Delay() 
* 功能 : 延时,延时时间为 10ms * del 
* 输入 : del 
* 输出 : 无 
***********************************************************************/ 
void Delay(uint del) 
{ 
 uint i,j; 
 for(i=0; i<del; i++) 
 for(j=0; j<1827; j++) 
 ; 
} 
 
/******************************************************************** 
* 名称 : Main() 
* 功能 : 实现灯的闪烁 
* 输入 : 无 
* 输出 : 无 
***********************************************************************/ 
void Main(void) 
{ 
 uchar i; 
 while(1) 
 { 
 for(i=0;i<10;i++) 
 { 
 P0 = table[i]; 
 Delay(30); //延时0.3秒 
 } 
 } 
}
/*********************************方法三****************************** 
* 描述 : 该程序用于学习 LED流水灯 的控制方法。 
 8个LED会进行流水灯的演示 
 
***********************************************************************/ 
#include 
#define uchar unsigned char 
#define uint unsigned int 
 
/******************************************************************** 
* 名称 : Delay() 
* 功能 : 延时,延时时间为 10ms * del 
* 输入 : del 
* 输出 : 无 
***********************************************************************/ 
void Delay(uint del) 
{ 
 uint i,j; 
 for(i=0; i<del; i++) 
 for(j=0; j<1827; j++) 
 ; 
} 
 
/******************************************************************** 
* 名称 : Main() 
* 功能 : 实现灯的闪烁 
* 输入 : 无 
* 输出 : 无 
***********************************************************************/ 
void Main(void) 
{ 
 uchar i, temp; 
 while(1) 
 { 
 temp = 0xfe; 
 for(i=0; i<8; i++) 
 { 
 P0 = temp; //把值赋给P1口 
 Delay(10); //延时(10毫秒 * j)秒 
 temp = temp << 1; //值右移一位 
 temp = temp | 0x01; 
 } 
 } 
}