電路:單片機最小系統+一個按鍵接p1.0 蜂蜜器接p3.4,最好用無源蜂鳴器聲音好聽一些.下面是單片機源程序:
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit K1=P1^0;
- sbit SPK=P3^4;
- uint i=0;
- uchar code HI_LIST[]={0,226,229,232,233,236,238,240,241,242,244,245,246,247,248,};
- uchar code L0_LIST[]={0,4,13,10,20,3,8,6,2,23,5,26,1,4,3};
- void T0_INT() interrupt 1
- {
- TL0=L0_LIST[i];
- TH0=HI_LIST[i];
- SPK=~SPK;
- }
- void DelayMS(uint ms)
- {
- uchar t;
- while(ms--) for(t=0;t<120;t++);
- }
- void main()
- {
- TMOD=0x00;
- IE=0x82;
- SPK=0;
- while(1)
- {while(K1==1);
- while(K1==0);
- i=5;
- TR0=1;
- DelayMS(250);
- TR0=0;
- DelayMS(50);
- i=5;
- TR0=1;
- DelayMS(250);
- TR0=0;
- DelayMS(50);
- i=6;
- TR0=1;
- DelayMS(500);
- TR0=0;
- DelayMS(50);
- i=5;
- TR0=1;
- DelayMS(500);
- TR0=0;
- DelayMS(50);
- i=8;
- TR0=1;
- DelayMS(500);
- TR0=0;
- DelayMS(50);
- i=7;
- TR0=1;
- DelayMS(1000);
- TR0=0;
- DelayMS(50);
- i=5;
- TR0=1;
- DelayMS(250);
- TR0=0;
- DelayMS(50);
- i=5;
- TR0=1;
- DelayMS(250);
- TR0=0;
- DelayMS(50);
- i=6;
- TR0=1;
- DelayMS(500);
- TR0=0;
- DelayMS(50);
- i=5;
- TR0=1;
- DelayMS(500);
- TR0=0;
- DelayMS(50);
- i=9;
- TR0=1;
- DelayMS(500);
- TR0=0;
- DelayMS(50);
- i=8;
- TR0=1;
- DelayMS(1000);
- TR0=0;
- DelayMS(50);
- i=5;
- TR0=1;
- DelayMS(250);
- TR0=0;
- DelayMS(50);
- i=5;
- TR0=1;
- DelayMS(250);
- TR0=0;
- DelayMS(50);
- i=12;
- TR0=1;
- DelayMS(500);
- TR0=0;
- DelayMS(50);
- i=10;
- TR0=1;
- DelayMS(500);
- TR0=0;
- DelayMS(50);
- i=8;
- TR0=1;
- DelayMS(500);
- TR0=0;
- DelayMS(50);
- i=7;
- TR0=1;
- DelayMS(500);
- TR0=0;
- DelayMS(50);
- i=6;
- TR0=1;
- DelayMS(500);
- TR0=0;
- DelayMS(50);
- i=11;
- TR0=1;
- DelayMS(250);
- TR0=0;
- DelayMS(50);
- i=11;
- TR0=1;
- DelayMS(125);
- TR0=0;
- DelayMS(50);
- i=10;
- TR0=1;
- DelayMS(500);
- TR0=0;
- DelayMS(50);
- i=8;
- TR0=1;
- DelayMS(500);
- TR0=0;
- DelayMS(50);
- i=9;
- TR0=1;
- DelayMS(500);
- TR0=0;
- DelayMS(50);
- i=8;
- TR0=1;
- DelayMS(1000);
- TR0=0;
- DelayMS(50);
- }
- }
復制代碼
|