PIC产生声音的方法
扫描二维码
随时随地手机看文章
//PIC产生声音的方法
//★★★★★★★★★PIC产生声音的方法★★★★★★★★★★★\
//单征机型号:PIC16F877A
//功能描述:产生一个频率段,驱动BUZ发声。
//端口定义:RC2,BUZ驱动口。
#include
__CONFIG(0x1832);
//芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡
#define buz RC2 //定义声音控制脚
//========================================================================
//功能描述:延时子程序
//函数名称:void sounddelay0(unsigned char delay_count)
void sounddelay0(unsigned char delay_count)
{
unsigned char i; //定义循环变量
for(i=delay_count;i>0;i--); //根据频率决定延时时间
}
//========================================================================
//功能描述:发声子程序
//函数名称:void sound200ms()
void sound200ms()
{
unsigned char fre_repeat,s_max,s_min,i,j;
//同一频率重复次数,最高频率,最低频率,循环变量i,j
fre_repeat=4; //同一频率循环4次
s_max=0x93; //声音最高频率
s_min=0x47; //声音最低频率
for(i=s_max-s_min;i>0;i--) //输出最高频率与最低频率内的每一个频率的声音
{
for(j=fre_repeat;j>0;j--) //每个声音循环4次
{
buz=1; //输出声音
sounddelay0(s_min+i); //延长一段时间
buz=0; //关闭声音
sounddelay0(s_min+i); //延长一段时间
}
}
}
//========================================================================
//功能描述:主函数
//函数名称:void main()
void main()
{
TRISC=0; //设置C口为输出
sound200ms(); //调用发声函数
}