//救护车发声原理:给出两个频率,通过频率的交替变化,模拟救护车发声。 #include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit beef=P1^0; uchar a; void init(); void Delay(uchar t); void DelayMS(uchar t); void main() { uint i; init(); while(1) { a=0;//给出一个喇叭发声频率 for(i=0;i<600;i++)//延时 { DelayMS(1); } a=100;//给出另一个喇叭发声频率 for(i=0;i<600;i++)//延时 { DelayMS(1); } } } void init()//初始化定时器0 { TMOD=0x01; EA=1; ET0=1; TR0=1; } void Delay(uchar t) { while(--t); } void DelayMS(uchar t) //延时 { while(t--) { Delay(245); Delay(245); } } void timer0() interrupt 1 //定时器0中断 { TH0=0Xfe;//高八位赋值 TL0=a; beef=!beef; }