电路:单片机最小系统+一个按键接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);
- }
- }
复制代码
|