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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
喇叭发声原理 51单片机例子* d* ]0 V1 X1 P, M' q
( `8 ]1 u5 n2 t1 V6 B

5 k0 \, l9 y+ ]1 p9 B( r单片机源程序:1 V: I$ b6 T$ k0 v" `
/*-----------------------------------------------/ h' K- A; ^( ~4 D$ ]7 ^5 P" B& N8 n
  名称:喇叭8 l6 [" }7 c' J/ W2 S. z
  编写:shifang8 X0 M( r+ [# a3 F) \/ u
  修改:无
6 o0 V5 u/ N/ R) n$ o  内容:通过发出一定频率方波,是喇叭发声$ G+ w+ p' V8 V! P3 U0 a+ H
------------------------------------------------*/
1 T: |6 F) F. t1 r3 o: }#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
8 L, f+ K' R1 _( n% `
/ L  J/ o5 V3 }sbit SPK=P1^2;    //定义喇叭端口
2 B8 b! a7 K4 Y0 d, Y- S/*------------------------------------------------
: P. a9 p/ H) R. G' Y1 w! z                  函数声明/ z! H, [% Q) y/ s% n+ [4 ~- N  j
------------------------------------------------*/7 S8 j7 W% L' g* P% _. ?) y) A
void DelayUs2x(unsigned char t);//函数声明
7 r" c3 d- M# {% Z- G- tvoid DelayMs(unsigned char t);" _* c' K( O' k1 t" ?6 D* I$ n* m
/*------------------------------------------------
4 R$ k  x- x8 h; ~3 k! i) F, z. l                    主函数
: Q9 u: U' E6 r4 w------------------------------------------------*/
' _3 [! @* Q7 [- ?5 cmain()
4 ]; q- e6 \+ s5 l0 V{
7 z2 Z: ?5 s8 O* K7 W1 t9 r while(1)0 Q" m* p  R' }5 [3 _* a/ w) @* ~
      {
4 e; q( L2 E8 C# P, i6 W: t( e( w
" J& d7 \$ R, L: F      DelayMs(1); //发出大约500Hz的方波 频率越大声音越尖& E- I6 P. I! {4 h
          SPK=!SPK;) b  T6 s8 Z; K4 T3 t/ H

' @: |# {0 _2 v9 a/ c* l: j, [4 R' Y          }; c; e9 n. F6 w8 s3 G8 k/ a
}
1 N- F2 \9 q! m) ~( l/*------------------------------------------------, L* H# D1 k+ C! e
uS延时函数,含有输入参数 unsigned char t,无返回值1 R- w: L' W( H4 n; C% E: h
unsigned char 是定义无符号字符变量,其值的范围是
, n0 ~9 j& B8 ^" w 0~255 这里使用晶振12M,精确延时请使用汇编,大致延时
5 j" E( W4 J. |/ @ 长度如下 T=tx2+5 uS $ z: ?2 {0 M/ Y. M
------------------------------------------------*/
+ P3 k( N4 L: t1 B, @2 ?void DelayUs2x(unsigned char t)
( Q& o7 b  U( H7 M& l{   4 }9 ]( U0 q& C  u- U
while(--t);
5 m& k( G5 e% ^% I. m}
; x- u, N; v: K5 ]0 v# t9 S/*------------------------------------------------
9 T& N" Y6 g+ l: [ mS延时函数,含有输入参数 unsigned char t,无返回值
; a' ~* |2 q+ p! g4 i  q5 f$ } unsigned char 是定义无符号字符变量,其值的范围是5 p: Q1 i, Q1 B3 l
0~255 这里使用晶振12M,精确延时请使用汇编) E) U6 ^7 w# {6 \
------------------------------------------------*/4 P7 s2 _( L; R5 G$ e
void DelayMs(unsigned char t)0 {  L1 c0 ~' M0 ^
{( Q, h# W7 n) W# D' j9 K0 [3 n
" }1 w) @0 x+ [0 x0 e- M% S
' v) @9 ?6 z' b$ {8 g
…………限于本文篇幅 余下代码请从论坛下载附件…………
4 Z" |4 J' {/ u) A
游客,如果您要查看本帖隐藏内容请回复

5 o9 ^+ c1 H! h% N3 [
; v7 G. c5 x, i; D. U! a
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-6 19:38 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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