1.输出方波图解
我们现在要给单片机IO端口输出4khz的方波。
现在我们算出方波的周期:1/(4*1000)s=0.00025s=0.25ms
高电平时间:(0.25/2)ms=0.125ms 低电平时间:(0.25/2)ms=0.125ms
2.驱动代码
因为我们只写过最低延时1ms的函数,所以这里测试用“for(i=0;i<14;i++);”作为延时0.125ms,本节的单片机IO端口为开发板中的P1.6,无源蜂鸣器的硬件连接因为不像LED那样都接了很多其他器件来初始化,所以本节的代码就显得相当简短,下载进开发板蜂鸣器就一直鸣叫了#include
sbit BEEP = P1^6;
void main()
{
unsigned int i;
while(1)
{
BEEP=1;
for(i=0;i<14;i++);//延时接近0.125ms,给P1.6保持了0.125ms高电平时间
BEEP=0;
for(i=0;i<14;i++);//低电平时间保持了0.125ms, 我们可以尝试把两个for语句里的14改大一点就会发现鸣叫的音调变得低沉一些了
}
}