|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
//定时器每125uS调用Buz_Output()函数一次,实现无源蜂鸣器4KHZ驱动
2 R* U6 m0 w/ B0 s0 p//功能参数说明:rbeep=0,蜂鸣器不响。rbeep=1,响1声。rbeep=3,响2声。+ c6 o K. p; v
#define BUZ_OUT_TIME 800 /125uS*800=100mS
. J1 P, {: d8 A1 i5 b; Z: q#define BUZ_STOP_TIME 800 /125uS*800=100mS& K( J& {9 f% j" p( P9 R, z
unsigned char rbeep;
5 b4 ]( f2 j( ~# \2 e& {; p% Wunsigned int temp;
3 ^: z6 X* D; e4 C; s# T. X7 J! gvoid Buz_Output(void)
: ?$ T- C6 Q) y{5 M) F! _3 G3 M1 e: {
switch (rbeep)' b( Y+ _( G- K
{
+ U* T; i; d. a+ `9 G case 0:
+ f7 [: t _% X7 @& t BUZ_GPIO = 0;- b- v1 T0 S$ V! x, V
break;7 E5 j1 ~% F2 j* f8 V0 i
//响100mS****************************************************
6 u* h: c( \7 P; W" U$ R) B case 1:6 {: N7 \4 s7 s5 m$ [2 f% F
BUZ_GPIO = ~BUZ_GPIO;1 I0 g; v \- G, J; U
temp ++;
. k6 i2 R2 [. P4 _ if (temp > BUZ_OUT_TIME) //125uS*800=100mS
9 W3 r* T) N1 A$ S: s, i {( K1 O4 r) e2 l! ^; |
temp = 0;# p$ b* n8 M2 w% T# t! p- _: U% D
rbeep = 0;
1 q- E" U0 M2 @ }) ?3 p) s3 d- E8 C
break;
* K, u8 V* l) s* i. B7 S//不响100mS****************************************************
, m) V' e# F( Q r9 b' @4 X case 2:0 q. f: C1 ~) d: I1 g) c. b$ H
BUZ_GPIO = 1;& M! A0 w* g4 {4 V7 D7 m1 @2 j
temp ++;/ D/ z; R0 K0 O) B1 \0 P( `
if (temp > BUZ_STOP_TIME)
T# c4 }8 @9 {& C6 W) t {
: H& I3 O, Z: k% p& _ temp = 0;5 H2 s# y u7 B$ |# H# V
rbeep = 1;
# _ B$ l" A1 w1 |$ t! ` }
- ]! W$ H; E# Z3 O break;
1 t$ j. p6 v/ }5 y- }$ u) d2 c//响100mS**************************************************** ! K6 D& C5 L+ N6 }. _) r2 T O
case 3:* `3 t- U' v7 Y* A; E; M3 b
BUZ_GPIO = ~BUZ_GPIO;- A! T$ E& e0 o5 `
temp ++;
: E s# w) E5 r4 ?$ n4 e) L( _0 }+ R if (temp > BUZ_OUT_TIME)
, n3 T" Q# N6 Z1 q4 p {
" r9 F* {/ q- ^. B! b6 L temp = 0;
7 B0 x; C! u4 t( ]2 s rbeep = 2;
; W, P7 [$ C% s }" X: |' X: h( x1 c
break;
, s1 ~5 @3 i8 X: k9 \9 s default:break;
0 S4 R0 K& Q1 |, a6 p- L9 z1 B; p; V }) z: t! u- Y" ~4 K
}, Y, O6 E% r9 w7 c( }
( f' q4 y# g" z% v t4 B9 V8 A
|
|