基于MCS-51單片機(jī)的點(diǎn)陣屏實(shí)現(xiàn)禮花功能
大家可曾記得禮花綻放那一刻的精彩?小時(shí)候每當(dāng)看禮花綻放時(shí),總希望自己能將那最美的那一霎那永遠(yuǎn)留下。終于,今天我的夢(mèng)想實(shí)現(xiàn)了。通過自己的板板,只要隨手編程幾下就搞定啦!
在給大家展示效果圖之前,我們首先得對(duì)LED點(diǎn)陣屏做一番介紹!8*8 LED點(diǎn)陣等效電路如圖1所示。通過分析,我們不難得知:只要其對(duì)應(yīng)的X、Y軸順向偏壓,即可使LED發(fā)亮。例如:若想使左上角LED點(diǎn)亮,則Y0=1,X0=0,則會(huì)形成壓降點(diǎn)亮左上角的LED。這里的水平方向由P2控制,垂直方向由P0控制。
圖1 8*8 LED點(diǎn)陣等效電路
本次在LED點(diǎn)陣屏上實(shí)現(xiàn)顯示禮花的功能原理接口圖如圖2所示,效果圖如圖3所示。通過該LED點(diǎn)陣還可以顯示靜態(tài)或者動(dòng)態(tài)的圖形、文字等。大家感興趣的可以自己試試?yán)瞺~
圖2 在LED點(diǎn)陣屏上實(shí)現(xiàn)顯示禮花的功能原理接口圖
圖3 禮花顯示效果組圖
圖 禮花動(dòng)態(tài)顯示圖
LED點(diǎn)陣屏上顯示禮花C源代碼
#includereg52.h>
#includeintrins.h>
#define uint unsigned int
#define uchar unsigned char
unsigned char code tabP0[6][8]={{0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00},{0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00},{0x00,0x00,0x10,0x38,0x38,0x10,0x00,0x00},{0x00,0x00,0x38,0x7C,0x7C,0x38,0x00,0x00},{0x00,0x38,0x7C,0x7C,0x7C,0x7C,0x38,0x00},{0x3C,0x7E,0xFF,0xFF,0xFF,0xFF,0x7E,0x3C}};
unsigned char code tabP2[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};
void delay(uint z)
{
uchar x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
int i,j,k;
while(1)
{
for(j=0;j6;j++)
{
for(k=0;k25;k++)
{
for(i=0;i8;i++)
{
P0=0;
P2=tabP2[i];
P0=tabP0[j][i];
delay(2);
}
}
}
}
}
評(píng)論