找回密码
 注册
关于网站域名变更的通知
查看: 400|回复: 2
打印 上一主题 下一主题

喇叭发声原理 51单片机例子

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-11-28 09:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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 }" K
1 D) E5 ~7 C5 J7 N( n  C, s* q1 K
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-22 06:48 , Processed in 0.125000 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表