51單片機主控的32位心形流水燈仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (19.78 KB, 下載次數: 89)
下載附件
2018-8-19 23:49 上傳
0.png (52.65 KB, 下載次數: 57)
下載附件
2018-8-19 23:49 上傳
單片機源程序如下:
- #include<reg51.h>
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- void delay(uchar shu);
- void sszzgdl();
- void sszzgxm();
- void lmtsdl();
- void lmtsxm();
- void bgdlxh();
- void lgbgdlxh();
- uchar code shuzhu1[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};
- uchar code shuzhu2[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
- uchar code shuzhu3[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};
- uchar code shuzhu4[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
- void main()
- {
- while(1)
- {
- sszzgdl();
- sszzgxm();
- sszzgdl();
- sszzgxm();
- lmtsdl();
- lmtsxm();
- lmtsdl();
- lmtsxm();
- bgdlxh();
- lgbgdlxh();
- }
- }
- ///////延時函數///////
- void delay(uchar shu)
- {
- uchar i,j;
- for(i=0;i<shu;i++)
- for(j=0;j<120;j++);
- }
- ///////順時針逐個點亮/////////
- void sszzgdl()
- {
- uchar i;
- for(i=0;i<8;i++)
- {
- P2=shuzhu1[i];
- delay(500);
- }
- for(i=0;i<8;i++)
- {
- P3=shuzhu1[i];
- delay(500);
- }
- for(i=0;i<8;i++)
- {
- P1=shuzhu1[i];
- delay(500);
- }
- for(i=0;i<8;i++)
- {
- P0=shuzhu2[i];
- delay(500);
- }
- }
- ///////順時針逐個熄滅/////////
- void sszzgxm()
- {
- uchar i;
- for(i=0;i<8;i++)
- {
- P2=shuzhu3[i];
- delay(500);
- }
- for(i=0;i<8;i++)
- {
- P3=shuzhu3[i];
- delay(500);
- }
- for(i=0;i<8;i++)
- {
- P1=shuzhu3[i];
- delay(500);
- }
- for(i=0;i<8;i++)
- {
- P0=shuzhu4[i];
- delay(500);
- }
- }
- ///////倆面同時點亮/////////
- void lmtsdl()
- {
- uchar i;
- for(i=0;i<8;i++)
- {
- P2=shuzhu1[i];
- P0=shuzhu1[i];
- delay(500);
- }
- for(i=0;i<8;i++)
- {
- P3=shuzhu1[i];
- P1=shuzhu2[i];
- delay(500);
- }
- }
- ///////倆面同時熄滅/////////
- void lmtsxm()
- {
- uchar i;
- for(i=0;i<8;i++)
- {
- P2=shuzhu3[i];
- P0=shuzhu3[i];
- delay(500);
- }
- for(i=0;i<8;i++)
- {
- P3=shuzhu3[i];
- P1=shuzhu4[i];
- delay(500);
- }
- }
- ///////8個點亮循環/////////
- void bgdlxh()
- {
- uchar i;
- for(i=0;i<8;i++)
- {
- P2=shuzhu1[i];
- delay(500);
- }
- for(i=0;i<8;i++)
- {
- P2=shuzhu3[i];
- P3=shuzhu1[i];
- delay(500);
- }
- for(i=0;i<8;i++)
- {
- P3=shuzhu3[i];
- P1=shuzhu1[i];
- delay(500);
- }
- for(i=0;i<8;i++)
- {
- P1=shuzhu3[i];
- P0=shuzhu2[i];
- delay(500);
- }
- for(i=0;i<8;i++)
- {
- P0=shuzhu4[i];
- P2=shuzhu1[i];
- delay(500);
- }
- for(i=0;i<8;i++)
- {
- P2=shuzhu3[i];
- P3=shuzhu1[i];
- delay(500);
- }
- for(i=0;i<8;i++)
- {
- P3=shuzhu3[i];
- P1=shuzhu1[i];
- delay(500);
- }
- for(i=0;i<8;i++)
- {
- P1=shuzhu3[i];
- P0=shuzhu2[i];
- delay(500);
- }
- for(i=0;i<8;i++)
- {
- P0=shuzhu4[i];
- delay(500);
- }
- sszzgdl();
- sszzgxm();
- }
- ///////倆個8個點亮循環/////////
- void lgbgdlxh()
- {
- uchar i;
- for(i=0;i<8;i++)
- {
- P2=shuzhu1[i];
- P1=shuzhu1[i];
- delay(500);
- }
- for(i=0;i<8;i++)
- {
- P2=shuzhu3[i];
- P1=shuzhu3[i];
- P3=shuzhu1[i];
- P0=shuzhu2[i];
- delay(500);
- }
- for(i=0;i<8;i++)
- {
- P3=shuzhu1[i];
- P0=shuzhu4[i];
- P2=shuzhu1[i];
- P1=shuzhu1[i];
- delay(500);
- }
- for(i=0;i<8;i++)
- {
- P2=shuzhu3[i];
- P1=shuzhu3[i];
- P3=shuzhu1[i];
- P0=shuzhu2[i];
- delay(500);
- }
- for(i=0;i<8;i++)
- {
- P3=shuzhu3[i];
- P0=shuzhu4[i];
- delay(500);
- }
- }
復制代碼
Proteus仿真只能用7.5版本:
01 單片機32位流水燈設計.rar
(48.95 KB, 下載次數: 243)
2018-8-19 17:45 上傳
點擊文件名下載附件
流javascript:;水燈 下載積分: 黑幣 -5
|