/*-----------------------------------------------------------
名称:花样灯Ⅱ
作者:fei yu
日期:2010-5-15
内容:花样灯的两种实现方法:
Ⅰ:程序循环执行 Ⅱ:查表法
------------------------------------------------------------*/
#include<reg52.h>
#define uchar unsigned char
uchar code seg[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,
0xff,0xff,0x00, 0,0x55,0x55,0xaa,0xaa};
/*---------------------------------------------------------------
花样表格,其中rom允许情况可以无限添加
--------------------------------------------------------------*/
void delay(unsigned int cnt)//简易延时
{
while(--cnt);
}
main()
{
unsigned char i;
while(1)
{
P1=0xFE; //第一个LED亮
for(i=0;i<8;i++)
{
delay(10000);
P1 <<=1;
}
P1=0x7F; //第七个LED灯亮
for(i=0;i<8;i++)
{
delay(10000);
P1 >>=1;
}
P1=0xFE; //第一个LED灯亮
for(i=0;i<8;i++)
{
delay(10000);
P1 <<=1;
P1 |=0x01;
}
P1=0x7F; //第七个LED灯亮
for(i=0;i<8;i++)
{
delay(10000);
P1 >>=1;
P1 |=0x80;
}
/*下面通过查表方法获得花样参数*/
for(i=0;i<16;i++) //查表可以简单的显示各种花样 实用性更强
{
delay(20000);
P1=seg[i];
}
}
}
注解:查表法通过循环,将已经定义好的样式显示出来,
也可定义循环移动闪烁,比较方便直观。