单片机学习笔记 4. 蜂鸣器滴~滴~滴~

更多单片机学习笔记:
单片机学习笔记 1. 点亮一个LED灯
单片机学习笔记 2. LED灯闪烁
单片机学习笔记 3. LED灯流水灯


目录

0、实现的功能

1、Keil工程

[1-1 蜂鸣器工作原理](#1-1 蜂鸣器工作原理)

[1-2 三极管工作原理](#1-2 三极管工作原理)

[1-3 蜂鸣器原理图](#1-3 蜂鸣器原理图)

2、代码实现


0、实现的功能

使蜂鸣器滴~滴~滴~

1、Keil工程

1-1 蜂鸣器工作原理

蜂鸣器有压电式蜂鸣器(用的少,生日贺卡上用的多)和电磁式蜂鸣器(电饭煲、洗衣机用的多)。基本上是导体上绕线圈,线圈上通电/断电使导体产生磁场,把导体上的磁铁片吸附下来

1-2 三极管工作原理

此处主要做开关应用,用PNP型。对于NPN型,若Ibe>1mA / Ube>0.7V 即可导通CE

1-3 蜂鸣器原理图

102电阻为1000Ω。P23默认高电平,外接上拉电阻到电源,所以此时Ub=Ue=5V,EC截止;给P23低电平时,Ub=0V,管子导通,蜂鸣器工作

不能直接蜂鸣器接P23,因为单片机不是功率器件,适合做控制用,不适合驱动。P23外接上拉电阻到电源,所以电流很微弱,不具备驱动设备的能力。

2、代码实现

把上一节的代码复制进来,加上蜂鸣器P23口的位定义,并在主函数中将其取反 ,再延时100ms,即可实现滴滴滴滴的效果

cpp 复制代码
#include <reg52.h>
#include <intrins.h>

#define uchar unsigned char
#define uint unsigned int
sbit beep = P2^3; 	//蜂鸣器的位定义

uchar temp;

void delay(uint z)
{
	uint x;
	uint y;
	for(x = z; x > 0; x--)
		for(y = 114; y > 0; y--);
}

void main()
{
	temp = 0xfe;
	P1 = temp;
	delay(100);
	while(1)
	{
		temp = _crol_(temp, 1);
		P1 = temp;
		beep = ~beep;	   //按位取反,蜂鸣器发声
		delay(100);			//延时100ms,发声100ms后再不发声,实现滴滴滴滴的效果
	}	
}

如果要实现蜂鸣器一直滴~~~的效果,直接beep = 0;

效果展示:

相关推荐
charlie1145141911 小时前
通用GUI编程技术——Win32 原生编程实战(二十二)——GDI 位图操作:BitBlt、StretchBlt 与图像处理
c++·windows·学习·c·win32
Flittly8 小时前
【SpringAIAlibaba新手村系列】(11)Embedding 向量化与向量数据库
java·笔记·spring·ai·springboot
Linux猿8 小时前
基于单片机的自行车里程表设计|附源码
单片机·嵌入式硬件·嵌入式·课程设计
2501_920627619 小时前
Flutter 框架跨平台鸿蒙开发 - 古文学习应用
学习·flutter·harmonyos
热爱生活的猴子9 小时前
Tokenizer 与 Embedding 核心笔记
笔记·embedding
学嵌入式的小杨同学10 小时前
STM32 进阶封神之路(三十九)FreeRTOS 临界区、挂起 / 删除、钩子函数、调度底层原理|从应用到内核深度解析
c++·stm32·单片机·嵌入式硬件·mcu·硬件架构·pcb
江苏世纪龙科技11 小时前
【世纪龙科技】当智能网联汽车教学遇上“数字孪生”
学习
恒森宇电子有限公司12 小时前
南麟SA8304 单通道 H 桥直流有刷电机驱动芯片 ESOP8封装
单片机·嵌入式硬件
FreakStudio12 小时前
ESP32 实现在线动态安装库和自动依赖安装-使用uPyPI包管理平台
python·单片机·嵌入式·面向对象·电子diy·sourcetrail
杰尼龟36812 小时前
Convince Develop 学习笔记
笔记·学习