【Proteus仿真】51单片机驱动无源蜂鸣器
- 📌相关篇《51单片机 Proteus仿真有源蜂鸣器始终不响原因及解决方法》
- 🌿Proteus
8.12
平台 - 🌿本实验代码基于VSM Studio,采用SDCC编译器。
- 🎬仿真演示图:
📝示例代码
/* Main.c file generated by New Project wizard
*
* Created: 2023-5-27
* Processor: 80C52
* Compiler: SDCC for 8051
*/
#include <mcs51reg.h>
#define LED P2_1
#define SPK P2_0
#define KEY P2_7
void sounder();
void delayms(unsigned int ms)
{
unsigned int x, y;
for (y = ms; y > 0; y--) {
for (x = 123; x > 0; x--);
}
}
void main(void)
{
while (1)
{
// LED = !LED;
// delayms(500);
if(KEY == 0)
{
SPK = 1;
sounder(); // 发声函数
}
}
}
//----------------------------------------- 发声函数---------------------------
void sounder()
{
unsigned int i, j, k, y; // 声明无符号整型变量i,j,k
for(k = 0; k < 10; k++) // 发声次数循环
{
for(i = 0; i < 400; i++) // 循环200次,1kHz
{
SPK = !SPK;
for(j = 0; j < 50; j++); // 延时
}
//---------------------------------------
for(y = 0; y < 800; y++) // 循环400次,2kHz
{
SPK = !SPK;
for(j = 0; j < 25; j++); // 延时
}
}
}
📚仿真资源
链接: https://pan.baidu.com/s/1Ki7mn9ev4iYyRwalOX5yEw
提取码: n5fm