51单片机无源蜂鸣器示例代码

一.原理图连接

可以通过原理图看到无源蜂鸣器接到了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%方波
	}
}
  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值