本人:非科班出生的初学者哈!
最近开始学习单片机,购买的是最小系统板类型,想通过IO口触发蜂鸣器报警。蜂鸣器如下图所示,

具体程序代码如下。
#include <reg52.h>
#include <intrins.h>
#define on 0
#define off 1
sbit fm = P1^0;
void delay(unsigned int xms)
{
unsigned int i,j;
for(i = xms; i > 0; i--)
for(j = 112; j > 0 ; j--);
}
void main()
{
while(1)
{
fm = on;
delay(100);
fm = off ;
delay(100);
}
最开始直接用单片机的P1^0端口连接蜂鸣器的IO口,基本上不能够听到蜂鸣器发声。
1、后来看到有人说需要连接上拉电阻,于是在P1^0端口串联了一个10K欧姆的电阻,是可以发声了,基本可以听见,可是不够大。
2、第二个方案,想通过IO连接一个发光二极管来检测是否端口按照程序输出高低电平。发现程序是可以正常输出高低电平的。
3、第三个方案,将蜂鸣器的输入端口与发光二极管串联,这个时候发光二极管按照预期闪烁,蜂鸣器发声也特别尖锐和高分贝了。这个现象很奇怪,难道是因为发光二极管的原因导致,输入电平的快速变化引起的么?!?!
本人问题:
1、为什么采用发光二极管串联后会发出较高分贝的声音?
2、直接采用10K欧姆的电阻的时候声音会比较小?
|