//救护车发声原理:给出两个频率,通过频率的交替变化,模拟救护车发声。
#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;
}

  

posted on 2011-11-18 19:48    阅读(300)  评论(0编辑  收藏  举报