14-花样灯

			/*-----------------------------------------------
			  名称:IO口高低电平控制
			  论坛:www.doflye.net
			  编写:shifang
			  日期:2009.5
			  修改:无
			  内容:花样灯一般有两种方法实现:
			        1、程序循环执行
			        2、查表法
			        这里我们两种都使用一下
			------------------------------------------------*/
			#include     //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

			/*------------------------------------------------
			                  花样表格
			------------------------------------------------*/
			unsigned char code seg[]={0x7f,0xbf,0xdf,0xef,
						0xf7,0xfb,0xfd,0xfe,
						0xff,0xff,0x00,0x00,
						0x55,0x55,0xaa,0xaa
						};//rom允许情况可以无限添加

			void Delay(unsigned int t); //函数声明
			/*------------------------------------------------
			                    主函数
			------------------------------------------------*/
			main()
			{
			 unsigned char i;                //定义一个无符号字符型
							//局部变量 i 取值范围 0~255
			 while(1)
			      {
				  P1=0xFE;                   //第1个LED亮
			      for(i=0;i<8;i++)
				     {
					 Delay(20000);
				     P1 <<=1;
					 }

			      P1=0x7F;                   //第8个LED亮
			      for(i=0;i<8;i++)
				     {
					 Delay(20000);
				     P1 >>=1;
					 }

			      P1=0xFE;                  //第1个LED亮
			      for(i=0;i<8;i++)
				     {
					 Delay(20000);
				     P1 <<=1;
					 P1 |=0x01;
					 }

				  P1=0x7F;                  //第8个LED亮
			      for(i=0;i<8;i++)
				     {
					 Delay(20000);
				     P1 >>=1;
					 P1 |=0x80;
					 }
			      //下面通过查表方法获得花样参数
			      for(i=0;i<16;i++)//查表可以简单的显示各种花样 实用性更强
				     {
					 Delay(20000);
			         P1=seg[i];
					 }
			      }

			}

			/*------------------------------------------------
			 延时函数,含有输入参数 unsigned int t,无返回值
			 unsigned int 是定义无符号整形变量,其值的范围是
			 0~65535
			------------------------------------------------*/
			void Delay(unsigned int t)
			{
			 while(--t);
			}