mian.c
1 w6 G9 F4 s/ B% a9 t4 p
2 Q( R1 m3 f6 v, a- #include "sys.h"
, h/ l* u8 h; w - #include "delay.h" , R$ y7 V! B( G' a- R$ V
- #include "led.h" 9 q( o- P7 A+ @4 T0 Y
- #include "beep.h"- v. V7 ?. n6 h+ ]4 T9 r8 X
- u8 music[]={8 f' V$ v3 J& p% A, c# f' V% v
- 5,10,10,5,5,9,9,16,8,8,8,9,10,5,5,16, //???????,???????
& `* n" q( v# K- I/ l; v - 6,8,8,6,5,10,10,16,9,8,8,6,9,16, //???????,?????8 H v" X+ c/ z6 V+ v
- 5,10,10,5,5,9,9,16,8,8,8,6,5,10,10,16, //???????,???????
( s) u/ ?; J- J8 H - 6,11,11,6,5,10,10,16,9,8,8,6,8,16, //???????,?????) l" ~% T) `/ m! j/ N# f
- 5,12,5,5,12,5,9,16,8,6,8,8,8,10,12,16, //???????,???????!
) |' l# z7 f0 h/ R( i/ U$ n - 8,6,8,8,8,13,12,10,9,8,6,8,8,10,9,16, //??????,?????,?????2 d5 ^" B; [7 V) ~1 C5 F( \$ k% h2 [
- 5,12,5,5,12,5,9,16,8,6,8,8,13,12,16, //???????,??????
. j: ^; f- }. a6 T$ o' T - 8,8,8,13,12,10,9,8,6,8,8,9,8,16, //?????????,??????
' z4 p, x5 Z( ?, F) e, Q - };- m! k* e2 e/ ^) X
- u8 time[] = {
8 Z8 }8 Z' E9 s - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, //???????,???????
9 f8 z# ?7 A- h5 W0 A - 4,4,4,4,4,4,4,4,4,4,4,4,8,4, //???????,?????
" u% M* W- ]# G - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, //???????,???????
& g3 b- \1 H3 J- j4 x! ~- Z; e& b - 4,4,4,4,4,4,4,4,4,4,4,4,8,4, //???????,?????/ d; a9 Z7 U- r' j& H( ^* n8 l
- 4,4,2,2,4,4,4,4,4,4,2,2,4,4,8,4, //???????,???????!
/ T* ^& @7 x1 v4 p, C* N - 4,4,2,2,4,4,4,4,4,4,4,4,4,4,8,4, //??????,?????,?????' w1 O+ }1 B! e& N# X# o9 P
- 4,4,2,2,4,4,4,4,4,4,4,4,4,8,4, //???????,??????0 Z, D9 H7 L9 K
- 4,4,4,4,4,4,4,4,4,4,4,4,8,4, //?????????,??????* d4 ~" u# C: B$ h/ O- @
- };
: c; i4 k. M3 ^7 O - void Sound(u16 frq)$ v# w+ u3 \6 h
- {
' w1 T& Q9 y3 `1 a+ u& k - u32 n;
g$ {- h) r, K& L/ q9 h ~$ v - BEEP = 0;
. s$ l( Y9 N5 R) U - if(frq != 1000) + A! _3 O7 }. r, q+ h
- {( K( x3 \! W; g( X! E: G8 q! i
- n = 500000/((u32)frq);
* Y+ d7 N' a5 F - BEEP = 0;* {5 ~+ m# R* @9 c; _0 e0 V
- delay_us(n);
" H7 s- j }" _ ~; x - BEEP = 1;6 W' U4 b( M) R. [
- delay_us(n);
* ^$ v& m4 N) d" l$ h Z; S7 p - }' x$ h. R! Y% x5 W
- else
% n8 `' E/ N' F1 p- O/ G - {" ^1 n- j) y6 }( M
- delay_us(1000);
- T$ j' F' Q6 ~ - }
/ W5 E) }# K$ v+ j' a$ ?, g9 [ - }
; v% {" q* y; w7 }" V# ~2 s: u - void play(void) h, j- |2 d! S
- {
* p( |* T! c( _! n: M7 C - uc16 tone[] = {247,262,294,330,349,392,440,494,523,587,659,698,784,1000};//?????
' s. |; s+ O% ^' b9 q/ `) I% {- \ - u8 music[]={
: a% c6 |. S7 k" h3 h - 5,5,6,8,7,6,5,6,13,13,//??
4 b |4 t! u' M. J - 5,5,6,8,7,6,5,3,13,13,6 B; Y; g1 D1 i: q. O5 y
- 2,2,3,5,3,5,6,3,2,1,
* R2 J( b J6 q+ k - 6,6,5,6,5,3,6,5,13,13,3 Y" t( d! {+ \$ p
- 5,5,6,8,7,6,5,6,13,13,% [. U, {$ K4 q4 H( i# \
- 5,5,6,8,7,6,5,3,13,13,
! Q# a* \4 ^- x9 E9 f - 2,2,3,5,3,5,6,3,2,1,
" p+ c& N: U/ H' i - 6,6,5,6,5,3,6,1, 6 w1 @. C- [% D, G+ i
- 13,8,9,10,10,9,8,10,9,8,6,2 t4 Y1 I# C, Q7 n1 I
- 13,6,8,9,9,8,6,9,8,6,5,; s$ Z. v) G! b0 |) d7 {
- 13,2,3,5,5,3,5,5,6,8,7,6,; O, t' B, I2 `/ a$ u( n* ?" ?
- 6,10,9,9,8,6,5,6,8; A9 ?9 ^: j* c: u- ^. q0 u! r+ D
- };
# a- `0 |& i: o3 p5 \$ v( l9 k - u8 time[] = { ( Q F z8 _" i1 \
- 2,4,2,2,2,2,2,8,4, 4, //??. u, y+ ?6 Y& I/ G! y+ }: C
- 2,4,2,2,2,2,2,8,4, 4,
* z) K9 n2 k' @4 T/ W0 N/ R( W4 } - 2,4,2,4,2,2,4,2,2,8,
' u, _2 v/ \& r s2 O - 2,4,2,2,2,2,2,8,4 ,4,# X* T- y4 C: Z3 A# H1 ]
- 2,4,2,2,2,2,2,8,4, 4,
, _6 m8 b, m. ~' `; f' x; g+ r - 2,4,2,2,2,2,2,8,4, 4,5 j. X4 M& N( C7 p
- 2,4,2,4,2,2,4,2,2,8,# x* n5 T( v. a7 o& s3 m0 L
- 2,4,2,2,2,2,2,8,
9 V u/ K/ t# O6 C2 X - 4, 2,2,2, 4, 2,2,2, 2,2,8,
5 a- o2 V$ y& `. e' z - 4, 2,2,2,4,2,2,2,2,2,8,
6 e# t* Z1 r4 I/ ^ c' m. r, j - 4, 2,2,2,4,2,2,5,2,6,2,4,* a1 z s% [. B, y4 r
- 2,2 ,2,4,2,4,2,2,123 X; ~0 i# A5 V3 L
- };
# K8 S3 K6 [1 d+ L# a - u32 yanshi;
; P3 B% F, p# a7 [ - u16 i,e;
: p" c( m( I7 @8 `$ d0 L - yanshi = 10;3 \' l& z2 E* I& O1 u b
- for(i=0;i<sizeof(music)/sizeof(music[0]);i++)- o" z& c5 ]- B* k
- {; b7 D; G; ]( y. a: j- S# ?
- for(e=0;e<((u16)time<i>)*tone[music<i>]/yanshi;e++)
" x! G5 H- M$ N' p; {# h - {1 i7 o) J, j7 d! l4 }
- Sound((u32)tone[music<i>]);6 c& W' d4 J5 {8 K! D
- } # j* i2 h Y9 F/ b4 U% O
- }( E, A t: o$ [, r- x& ?' |
- }. n. g5 c' U! C' m
- int main(void)/ J [' ^/ |0 T# K1 }) l- r8 _
- {
% C n& x8 z7 L" h$ j7 z& n. x; u - delay_init();
$ }$ N) ?2 I; r" k' P* D0 N( g$ ]' Z1 K - LED_Init();
3 @3 Z7 I* n: i4 J. y/ X3 U - BEEP_Init();
1 c3 P7 Q2 v7 T% S9 l# R K+ V t - BEEP = 0;
- C4 Y" V( r0 p - play();; Q6 d9 X" {3 h% G; u
- while(1);
1 r% g( o! K# @- D - }</i></i></i>
复制代码 " p% ^0 G0 L' N, K Y( i# |
beep.c7 [4 _4 d& H4 o0 b% ~! V+ r
$ ]; t! I7 s% G2 j8 x4 T/ v6 g- #include "beep.h"# p& F; M: ~3 D, s
- void BEEP_Init(void)0 a/ ?; D& D. I0 _- y% g
- {9 u% w' @3 S! _0 {. h+ s! [
- GPIO_InitTypeDef GPIO_InitStructure;
" k* e! y4 f1 j6 w8 A5 V5 w - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); ) U5 o8 L9 y/ y4 J
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; ; c& I- v( z+ N# p, Z
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; ; j; ]& j) E1 u1 |
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
1 G" o, c3 x6 \ - GPIO_Init(GPIOB, &GPIO_InitStructure);
; D% T# m/ S; ?) D8 S& W8 `: A8 P - GPIO_ResetBits(GPIOB,GPIO_Pin_8);3 x' Q2 @# ~* n7 Q1 ?) h6 S# o/ \
- }
复制代码 , O( b! k" e9 M2 _% [
beep.h
+ I8 j- M1 T: M6 F' s6 c1 G7 b w" |, S9 h4 o2 W, D$ O) B) ~
- #ifndef __BEEP_H# d$ W! {/ G7 C+ a% z) Z& o+ j8 J
- #define __BEEP_H / w& O& z% l, L5 F i8 @
- #include "sys.h"! W L1 c7 C' q0 g; {+ z
- #define BEEP PBout(8)
( w+ k4 O* G& @8 h5 P/ s w, Y - void BEEP_Init(void); 6 X4 S0 r) ^6 _ N
- #endif
复制代码 6 z; `. y+ R. X, X/ [* m5 @
1 h9 x. ?7 T: V% s1 L0 P1 X
' b ~, i) Q: N; G6 t |