|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
喇叭发声原理 51单片机例子6 S- k& h* ]. P+ r4 W
5 \6 L7 K) B% W9 x: s
# Y) Z! U- a5 \/ N- z- M" X0 i单片机源程序:- d; r1 F5 p. X6 J- }; V5 L
/*-----------------------------------------------
0 ?( p. a6 N' Y 名称:喇叭8 @7 q: ?) K f6 f3 B
编写:shifang# p8 ?. X/ N/ F
修改:无3 w: x4 x' l7 v% c
内容:通过发出一定频率方波,是喇叭发声
: `4 v% B2 d( I+ j------------------------------------------------*/
' h4 U; x, N* Z4 d/ S& u#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
3 y9 K+ v( h! | k
! F+ a5 E" ^% E' N1 w+ s9 Osbit SPK=P1^2; //定义喇叭端口$ q4 a9 b9 E& a
/*------------------------------------------------) U7 V: x; I- Q
函数声明" Z& K; ?$ |& h! C
------------------------------------------------*/
. D. c) Q) _) p( Uvoid DelayUs2x(unsigned char t);//函数声明
% |9 G+ P3 f x7 S+ M5 C/ n- n/ }. uvoid DelayMs(unsigned char t);! v! a: e5 p0 J/ M- L, M8 Q
/*------------------------------------------------: U8 f! s, F' u q8 ~+ D
主函数
1 a- `9 q, T+ _, c7 a7 C2 {! d------------------------------------------------*/; Z; F7 q6 @4 S$ [- t8 @& m
main()
) j% s6 G8 A! K7 A+ L8 L{. n$ {% u! M ]
while(1)# b/ d) I1 [6 [5 r
{
6 B; d: P G" [! } u" X" p6 h# f- [3 M) \
DelayMs(1); //发出大约500Hz的方波 频率越大声音越尖
/ u% z, Q( W7 u5 D3 m SPK=!SPK;
9 K! Z# A9 _& B4 w) C& E: M' e( [# t5 ^; Y
}
$ s0 |6 e2 |, F2 _& I, W# |. E6 Z9 g! T}
9 G: {: M3 s0 Y$ p' T" ^/*------------------------------------------------
* g2 K7 M& _6 ^8 I d3 `4 t uS延时函数,含有输入参数 unsigned char t,无返回值& ^4 g, N; ? D* E4 A
unsigned char 是定义无符号字符变量,其值的范围是 ? A4 Y J! X
0~255 这里使用晶振12M,精确延时请使用汇编,大致延时( \. c' L% v+ _% C2 V
长度如下 T=tx2+5 uS
: G, b: E7 @, n* l( s; m------------------------------------------------*/5 g2 o! Y2 K! w, w+ N4 T
void DelayUs2x(unsigned char t)
% @: w3 o/ L" w6 s{ 7 {/ j* k* W, S! @7 R
while(--t);' k/ ~/ @ d: M3 _6 f8 y
} y1 n! b3 Y I* z- g" p8 p
/*------------------------------------------------
: [0 w; I# G4 N g! w% p1 `0 T mS延时函数,含有输入参数 unsigned char t,无返回值: {5 f9 B( t7 T3 D+ ^4 e
unsigned char 是定义无符号字符变量,其值的范围是# }4 g5 E) d, l- {) J; m2 ]1 Y
0~255 这里使用晶振12M,精确延时请使用汇编
% w) y9 n& i+ N1 d------------------------------------------------*/) I) Y1 D3 D) I7 C6 b
void DelayMs(unsigned char t)) G: m- s( t( w, Q9 U! o
{
: {5 x# Q. ]% \) U' P- a9 A+ h) U- r' o/ e H- E3 Q6 o1 i( J8 z
$ w* g/ V4 w# d$ r% g! [
…………限于本文篇幅 余下代码请从论坛下载附件…………
" B) g# U1 ~6 w9 v6 C7 |* ~
* I3 e& {, W9 D1 }" K1 D) E5 ~7 C5 J7 N( n C, s* q1 K
|
|