51單片機(jī)100例實(shí)例之04例

//項(xiàng)目4:花樣流水燈
//項(xiàng)目再創(chuàng)作者:科技小宅神
//說明:16只LED分兩組按預(yù)設(shè)的多種花樣變換顯示? ?
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
//各式花樣,可自行安排(采用字模提取軟件較為方便,可自行百度或進(jìn)群領(lǐng)取軟件)
uchar code Pattern_P0[]={
0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,//(第1個圖形)
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,//熄滅(長)
0xef,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,//(第2個圖形)
0xff,//熄滅
0xf8,//(第3個圖形)
0xe7,0xc3,0x81,0x00,0xc3,0xe7,//(第4個圖形)
0xff,//熄滅
0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,
0xe3,0xc7,0x8f,0x1f,0x3f,0x7f,0x7f,0x3f,0x1f,0x8f,
0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff,?
0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,??
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,??
0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,??
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,??
0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff?
};?
uchar code Pattern_P2[]= {
??0xff,0xff,0xff,0xff,0xff,0xff,0xff,
? 0xfe,0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0xff,??
? 0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,
? 0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff,??
? 0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,
? 0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f,??
? 0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,
?0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff,
? 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
? 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,??
? 0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,
? 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,??
? 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
? 0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,??
? 0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,
? 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,??
? 0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff?
};
//1毫秒延時子程序
void DelayMS(uint x)
{
? uchar t;
?while(x--)
?{
? ?for(t=120;t>0;t--);
?}
}
//主程序
void main()
{
? uchar i;//定義一個局部變量i
?while(1)//死循環(huán)
?{? ??
? //從數(shù)組中讀取數(shù)據(jù)送到P0和P2顯示
? ?for(i=136;i>0;i--)//自減執(zhí)行136次
? {
? ? P0=Pattern_P0[i];
? ?P2=Pattern_P2[i];
? ?DelayMS(100);//此處可調(diào)整燈點(diǎn)亮的時間即速度
? }?
?}
}