|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
最近想通过IO口触发蜂鸣器报警。蜂鸣器如下图所示,
2 _9 y' J' h: \7 K+ u+ j
$ a1 l; Y- w1 a5 n7 {2 F; E, F9 O- ?* {# C3 `" Z, V
具体程序代码如下。! K( l& g/ s% S! S
#include <reg52.h>9 l9 c! j7 h0 g0 J
#include <intrins.h>0 O& z* h$ r; U
#define on 0
7 l j. Q* ^( T7 ^1 u! o#define off 12 s9 L% c# R. {4 `" r" T+ r' e7 h5 ~
sbit fm = P1^0;% s' K) o( n8 u3 }7 ~% M
7 X4 t9 J5 w6 n& F2 j: _; Fvoid delay(unsigned int xms)
# ?0 e# w0 I. ?. F; ~0 W' j{( T4 E3 S* ^4 v; M4 _& t. ]7 o
unsigned int i,j;
) V& k) Y; M4 s- ~ for(i = xms; i > 0; i--)+ f$ O: A/ P9 m2 n
for(j = 112; j > 0 ; j--);
0 |) L8 {& ^' g}
5 m1 l- \* k/ _. y& E( Y: W& z- uvoid main(): s# T& U9 \5 s& l( K& Y" B
{
8 e& ?# @8 _* D* C, l, N, a6 V* y- p: P% ~0 `! @
while(1)6 w# {# ], v: o7 c$ {
{ & u% `- H& N! @8 n' ]' y9 W R
fm = on;8 ?! }* O# S$ @, h3 K
delay(100);" `" o. Q! a( [% W: ]; g
fm = off ;
: _# J6 y0 s0 e# Y' b delay(100);
7 v( h, E- r/ c6 S & E" ` s o# A- V y7 G! W
} 9 H: }) v; g/ J1 A |: K2 B
% i8 E; P8 z; J' m1 c
5 i7 c- H5 k: d0 [/ K3 ]最开始直接用单片机的P1^0端口连接蜂鸣器的IO口,基本上不能够听到蜂鸣器发声。0 w: h, u. P; {, T. h5 N
1、后来看到有人说需要连接上拉电阻,于是在P1^0端口串联了一个10K欧姆的电阻,是可以发声了,基本可以听见,可是不够大。( T8 ~/ }, z8 {0 U3 s, M! n
2、第二个方案,想通过IO连接一个发光二极管来检测是否端口按照程序输出高低电平。发现程序是可以正常输出高低电平的。 ?8 I* ~: b# D$ D, i
3、第三个方案,将蜂鸣器的输入端口与发光二极管串联,这个时候发光二极管按照预期闪烁,蜂鸣器发声也特别尖锐和高分贝了。这个现象很奇怪,难道是因为发光二极管的原因导致,输入电平的快速变化引起的么?!?!8 N; B. b9 ^: @& E/ m
3 X% B% J7 ?9 s: o [( Z# Q
; P( k# w& F6 X. g8 ~% a8 I3 v& `& S( q+ i9 H0 n( J& E
本人问题:
! g) y; d& R5 b" i1、为什么采用发光二极管串联后会发出较高分贝的声音?% ~/ t& i- J3 ~+ a7 r+ |! A
2、直接采用10K欧姆的电阻的时候声音会比较小?
" k5 t9 t# ^% D# w |
|