标题:
基于51单片机的节日彩灯设计 含原理图与源程序
[打印本页]
作者:
5_2306
时间:
2017-8-16 12:54
标题:
基于51单片机的节日彩灯设计 含原理图与源程序
基于51单片机的节日彩灯设计程序以及原理图
Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)
0.png
(11.94 KB, 下载次数: 43)
下载附件
2017-8-16 16:16 上传
0.png
(5.79 KB, 下载次数: 47)
下载附件
2017-8-16 16:17 上传
单片机源程序如下:
#include"reg51.h"
void delay_ms(unsigned int);
void disp0(void);
void disp1(void);
void disp2(void);
void disp3(void);
void disp4(void);
void disp5(void);
void disp6(void);
void disp7(void);
unsigned char code biao0[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x18,0x3C,0x7E,0xDB,0x99,0x18,0x18,0x18,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
unsigned char code biao1[4][8]={
0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,
0x00,0x00,0x3C,0x24,0x24,0x3C,0x00,0x00,
0x00,0x7E,0x42,0x42,0x42,0x42,0x7E,0x00,
0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0xFF};
unsigned char code biao2[7][8]={
0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,
0x00,0x00,0x18,0x24,0x24,0x18,0x00,0x00,
0x00,0x18,0x24,0x42,0x42,0x24,0x18,0x00,
0x18,0x24,0x42,0x81,0x81,0x42,0x24,0x18,
0x24,0x42,0x81,0x00,0x00,0x81,0x42,0x24,
0x42,0x81,0x00,0x00,0x00,0x00,0x81,0x42,
0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x81};
unsigned char code biao3[][8]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,
0x00,0x00,0x18,0x3C,0x3C,0x18,0x00,0x00,
0x00,0x18,0x3C,0x7E,0x7E,0x3C,0x18,0x00,
0x18,0x3C,0x7E,0xFF,0xFF,0x7E,0x3C,0x18};
unsigned char code biao4[10][8]={
0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,
0x42,0xA5,0x42,0x18,0x18,0x42,0xA5,0x42,
0x04,0x0A,0x44,0xBA,0x5D,0x12,0x38,0x10,
0x04,0x4A,0xA4,0x58,0x1A,0x25,0x52,0x20,
0x04,0x4E,0xE4,0x58,0x1A,0x27,0x72,0x20,
0x42,0xA5,0x42,0x18,0x18,0x42,0xA5,0x42,
0x42,0xE7,0x42,0x18,0x18,0x42,0xE7,0x42,
0x20,0x72,0x27,0x1A,0x58,0xE4,0x4E,0x04,
0x10,0x38,0x12,0x5F,0xFA,0x48,0x1C,0x08,
0x08,0x1C,0x48,0xFA,0x5F,0x12,0x38,0x10};
void main(void)
{
while (1)
{
switch (P1)
{
case 0xfe:delay_ms(10);
if (P1==0xfe)
{
for (;;)
{
if (P1==0xfe)
continue;
else break;
}
for (;;)
{
while (P1==0xfe);
if (P1==0xfe) continue;
else break;
}
disp0();
}
break;
case 0xfd:delay_ms(10);
if (P1==0xfd)
{
for (;;)
{
if (P1==0xfd)
continue;
else break;
}
for (;;)
{
while (P1==0xfd);
if (P1==0xfd) continue;
else break;
}
disp1();
}
break;
case 0xfb:delay_ms(10);
if (P1==0xfb)
{
for (;;)
{
if (P1==0xfb)
continue;
else break;
}
for (;;)
{
while (P1==0xfb);
if (P1==0xfb) continue;
else break;
}
disp2();
}
break;
case 0xf7:delay_ms(10);
if (P1==0xf7)
{
for (;;)
{
if (P1==0xf7)
continue;
else break;
}
for (;;)
{
while (P1==0xf7);
if (P1==0xf7) continue;
else break;
}
disp3();
}
break;
case 0xef:delay_ms(10);
if (P1==0xef)
{
for (;;)
{
if (P1==0xef)
continue;
else break;
}
for (;;)
{
while (P1==0xef);
if (P1==0xef) continue;
else break;
}
disp4();
}
break;
case 0xdf:delay_ms(10);
if (P1==0xdf)
{
for (;;)
{
if (P1==0xdf)
continue;
else break;
}
for (;;)
{
while (P1==0xdf);
if (P1==0xdf) continue;
else break;
}
disp5();
}
break;
case 0xbf:delay_ms(10);
if (P1==0xbf)
{
for (;;)
{
if (P1==0xbf)
continue;
else break;
}
for (;;)
{
while (P1==0xbf);
if (P1==0xbf) continue;
else break;
}
disp6();
}
break;
case 0x7f:delay_ms(10);
if (P1==0x7f)
{
for (;;)
{
if (P1==0x7f)
continue;
else break;
}
for (;;)
{
while (P1==0x7f);
if (P1==0x7f) continue;
else break;
}
disp7();
}
break;
default: break;
}
}
}
void disp7(void)
{
char i,temp;
temp=0x01;
for(i=0;i<=3;i++)
{
temp=0x01;
P0=(temp<<(4+i)|temp<<(3-i));
P2=0;
temp=temp<<1;
delay_ms(500);
}
for(i=0;i<=3;i++)
{
temp=0x01;
P0=(temp<<(7-i)|temp<<(0+i));
P2=0;
temp=temp<<1;
delay_ms(500);
}
P2=0xff;
P0=0x00;
}
void disp6(void)
{
char i,temp;
temp=0xfe;
for(i=0;i<=7;i++)
{
P0=~temp;
P2=0x00;
temp=temp<<1;
delay_ms(500);
}
temp=0x80;
for(i=0;i<=7;i++)
{
P0=~temp;
P2=0x00;
temp=temp>>1;
delay_ms(500);
}
P2=0xff;
P0=0x00;
}
void disp5(void)
{
unsigned char i,temp;
temp=0x01;
for(i=0;i<=7;i++)
{
P0=temp;
P2=0x00;
temp=temp<<1;
delay_ms(500);
}
temp=0x80;
for(i=0;i<=7;i++)
{
P0=temp;
P2=0x00;
temp=temp>>1;
delay_ms(500);
}
P2=0xff;
P0=0x00;
}
void disp4(void)
{
unsigned char i=0,j=0,k=0;
for (;;)
{
for (i=0;i<=7;i++)
{
P2=0xff;
P0=biao4[k][i];
P2=~(0x80>>i);
delay_ms(1);
}
if (j++>=70)
{
j=0;
if(k++>=9) k=0;
}
if (P1!=0xff)
{
P2=0xff;
P0=0x00;
break;
}
}
}
void disp3(void)
{
unsigned char i=0,j=0,k=0;
for (;;)
{
for (i=0;i<=7;i++)
{
P2=0xff;
P0=biao3[k][i];
P2=~(0x80>>i);
delay_ms(1);
}
if (j++>=70)
{
j=0;
if(k++>=4) k=0;
}
if (P1!=0xff)
{
P2=0xff;
P0=0x00;
break;
}
}
}
void disp2(void)
{
unsigned char i=0,j=0,k=0;
for (;;)
{
for (i=0;i<=7;i++)
{
P2=0xff;
P0=biao2[k][i];
P2=~(0x80>>i);
delay_ms(1);
}
if (j++>=70)
{
j=0;
if(k++>=6) k=0;
}
if (P1!=0xff)
{
P2=0xff;
P0=0x00;
break;
}
}
}
void disp1(void)
{
unsigned char i=0,j=0,k=0;
for (;;)
{
for (i=0;i<=7;i++)
{
P2=0xff;
P0=biao1[k][i];
P2=~(0x80>>i);
delay_ms(1);
}
if (j++>=70)
{
j=0;
if(k++>=3) k=0;
}
if (P1!=0xff)
{
P2=0xff;
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
节日彩灯设计程序.rar
(155.67 KB, 下载次数: 45)
2017-8-16 12:53 上传
点击文件名下载附件
程序加原理图
下载积分: 黑币 -5
作者:
agereharth
时间:
2019-1-4 15:03
那么好
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1