/*-----------------------------------------------------------
名稱:花樣燈Ⅱ
作者: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];
}
}
}
注解:查表法通過循環,將已經定義好的樣式顯示出來,
也可定義循環移動閃爍,比較方便直觀。