單片機程序加仿真,自己寫的,希望有人能用到
所有資料51hei提供下載:
心形流水燈.rar
(137.21 KB, 下載次數: 39)
2017-10-10 21:08 上傳
點擊文件名下載附件
程序加仿真
心形流水燈的功能與花樣如下:
while(1)
{
ai1(); //呼吸燈
ai2(); // 從上到下從兩邊依次亮
ai3(); //從下到上從兩邊有一個滅的循環移動
ai4(); //呼吸
ai5(); //從0口到7循環左移
ai6(); //~~~~~~~~左移
ai7(); //全亮然后從P0和P2口的最高位向最低位依次滅
ai8(); //P2,P3呼吸燈效果從最亮到最暗()很快
ai9(); //從下到上從兩邊隔一個一亮
ai10(); // 逆時針亮一圈
ai11(); //從中間到兩邊依次滅
ai4(); //閃爍
ai12(); //P0,P3逆時針全亮,p1,p2逆時針滅
ai13(); //p0,p3全亮,p1p2循環左移
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
單片機源程序如下:
- #include<reg52.h>
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- void delay(uint tt)
- {
- uint i,j;
- for(i=tt;i>0;i--)
- for(j=110;j>0;j--);
- }
- uchar a,b,aa,bb,c,d=30;
- uchar code table[]={0x7f,0x5f,0x57,0x55};
- uchar code table1[]={0xe7,0xc3,0x81,0x00};
- uchar code table2[]={0x7e,0x3c,0x18,0x00};
- uchar code mie1[]={0x00,0x18,0x3c,0x7e,0xff};
- uchar code mie2[]={0x00,0x81,0xc3,0xe7,0xff};
- void ai1()
- {
- for(a=0;a<4;a++)
- {
- for(c=0;c<d;c++)
- {
- P0=P1=P2=P3=0x00;
- delay(c);
- P0=P1=P2=P3=0xff;
- delay(d-c);
- }
- for(c=d;c>0;c--)
- {
- P0=P1=P2=P3=0x00;
- delay(c);
- P0=P1=P2=P3=0xff;
- delay(d-c);
- }
- }
- }
- void ai2()
- {
- aa=0x7f;
- P0=P1=P2=P3=0xff;
- for(a=0;a<8;a++)
- {
- aa=aa<<1 ;
- P0=P2=aa;
- delay(100);
- }
- aa=0x7f;
- P0=P2=0x00;
- P1=P3=0xff;
- for(a=0;a<8;a++)
- {
- aa=aa<<1 ;
- P1=P3=aa;
- delay(100);
- }
- }
- void ai3()
- {
- aa=0x01;
- P0=P1=P2=P3=0x00;
- for(a=0;a<8;a++)
- {
- aa=_cror_(aa,1);
- P1=P3=aa;
- delay(100);
- }
- aa=0x01;
- P0=P1=P2=P3=0x00;
- for(a=0;a<8;a++)
- {
- aa=_cror_(aa,1);
- P0=P2=aa;
- delay(100);
- }
- }
- void ai4()
- {
- for(a=0;a<4;a++)
- {
- P0=P1=P2=P3=0x55;
- delay(100);
- P0=P1=P2=P3=0xaa;
- delay(100);
- }
- }
- void ai5()
- {
- P0=P1=P2=P3=0xff;
- aa=0x7f;
- bb=0xfe;
- for(a=0;a<8;a++)
- {
- aa=_crol_(aa,1);
- bb=_cror_(bb,a);
- P0=P1=aa;
- P2=P3=bb;
- delay(100);
- }
- }
- void ai6()
- {
- P0=P1=P2=P3=0xff;
- aa=0x7f;
- bb=0xfe;
- for(a=0;a<8;a++)
- {
- aa=aa<<1;
- bb=bb>>1;
- P0=P1=aa;
- P2=P3=bb;
- delay(100);
- }
- }
- void ai7()
- {
- P0=P1=P2=P3=0x00;
- aa=0xfe;
- for(a=0;a<8;a++)
- {
- aa=aa>>1;
- P0=P2=~aa;
- delay(100);
- }
- }
- void ai8()
- {
- P0=P2=0xff;
- P1=P3=0x00;
- for(c=0;c<d;c++)
- {
- P1=P3=0x00;
- delay(d-c);
- P1=P3=0xff;
- delay(c);
- }
- }
- void ai9()
- {
- P0=P1=P2=P3=0xff;
- for(a=0;a<4;a++)
- {
- P1=P3=table[a];
- delay(100);
- }
- for(a=0;a<4;a++)
- {
- P0=P2=table[a];
- delay(100);
- }
- }
- void ai10()
- {
- aa=0x7f;
- for(a=0;a<8;a++)
- {
- aa=aa<<1;
- P0=aa;
- delay(100);
- }
- aa=0x7f;
- for(a=0;a<8;a++)
- {
- aa=aa<<1;
- P1=aa;
- delay(100);
- }
- aa=0xfe;
- for(a=0;a<8;a++)
- {
- aa=aa>>1;
- P3=aa;
- delay(100);
- }
- aa=0xfe;
- for(a=0;a<8;a++)
- {
- aa=aa>>1;
- P2=aa;
- delay(100);
- }
- }
- void ai11()
- {
- P0=P1=P2=P3=0x00;
- aa=0x7f;
- for(a=0;a<8;a++)
- {
- aa=aa<<1;
- P0=P2=~aa;
- delay(100);
- }
- P0=P2=0xff;
- aa=0x7f;
- for(a=0;a<8;a++)
- {
- aa=aa<<1;
- P1=P3=~aa;
- delay(100);
- }
- }
- void ai12()
- {
- P0=P3=0xff;
- P1=P2=0x00;
- aa=0x7f;
- bb=0xfe;
- for(a=0;a<8;a++)
- {
- aa=aa<<1;
- bb=bb>>1;
- P0=aa;
- P1=~aa;
- P2=~bb;
- P3=bb;
- delay(150);
- }
- }
- void ai13()
- {
- P0=P3=0x00;
- P1=P2=0xff;
- aa=0x7f;
- bb=0xfe;
- for(a=0;a<8;a++)
- {
- aa=_crol_(aa,1);
- bb=_cror_(bb,1);
- P1=aa;
- P2=bb;
- delay(130);
- }
- }
- void ai14()
- {
- P0=P3=0x00;
- P1=P2=0xff;
- aa=0x7f;
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
|