一.原理图连接
可以通过原理图看到无源蜂鸣器接到了ULN2003驱动芯片上,所以我们只要控制P25输出一定频率的方波信号就能让蜂鸣器发出声音啦
二.示例代码
这里贴出示例代码,效果就是一段悦耳的铃声。
#include <STC89C5xRC.H>
#include "intrins.h"
u16 period=0;
void delay_ms(u16 ms)
{
unsigned char data i, j;
while(ms--){
_nop_();
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
}
}
void Timer0_Init(void) //10us
{
TMOD = 0x02;
TL0 = 0xF7;
TH0 = 0xF7;
TF0 = 0;
ET0 = 1;
EA=1;
TR0 = 1;
}
void main()
{
Timer0_Init();
while(1)
{
if(++period==100) period=0; //声音频率=50000/period HZ
delay_ms(10);
}
}
void Timer0_Isr() interrupt 1
{
static u16 counter=0;
if(++counter==period)
{
counter=0;
P25=!P25; //输出占空比50%方波
}
}