蜂鸣器程序单片机蜂鸣器

蜂鸣器程序  时间:2021-06-18  阅读:()

让蜂鸣器发出7个音阶的程序

uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //标准音符频率对应的延时表 uchar code HI_LIST[]={0,226,229,232,233,236,238,240,241,242,244,245,246,247,248}; uchar code LO_LIST[]={0,4,13,10,20,3,8,6,2,23,5,26,1,4,3}; //三段音乐的音符 uchar code Song[][50]= { {1,2,3,1,1,2,3,1,3,4,5,3,4,5,5,6,5,3,5,6,5,3,5,3,2,1,2,1,-1}, {3,3,3,4,5,5,5,5,6,5,3,5,3,2,1,5,6,53,3,2,1,1,-1}, {3,2,1,3,2,1,1,2,3,1,1,2,3,1,3,4,5,3,4,5,5,6,5,3,5,3,2,1,3,2,1,1,-1} }; //三段音乐的节拍 uchar code Len[][50]= { {1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,2,-1}, {1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,2,-1}, {1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,2,1,1,2,2,-1} }; //外部中断0 void EX0_INT() interrupt 0 { TR0=0; //播放结束或者播放中途切换歌曲时停止播放 Song_Index=(Song_Index+1)%3; //跳到下一首的开头 Tone_Index=0; P2=DSY_CODE[Song_Index]; //数码管显示当前音乐段号 }

void main() { P2=0xc0; SPK=0; TMOD=0x00; //T0 方式 0 IE=0x83; IT0=1; IP=0x02; while(1) { while(K1==1); //未按键等待 while(K1==0); //等待释放 TR0=1; //开始播放 Tone_Index=0; //从第0 个音符开始 //播放过程中按下 K1 可提前停止播放(K1=0)。

//若切换音乐段会触发外部中断,导致 TR0=0,播放也会停止 while(Song[Song_Index][Tone_Index]!=-1&&K1==1&&TR0==1) { DelayMS(300*Len[Song_Index][Tone_Index]); //播放延时(节拍) Tone_Index++; //当前音乐段的下一音符索引 } TR0=0; //停止播放 while(K1==0); //若提前停止播放,按键未释放时等待 } }

STC51单片机C语言开启蜂鸣器

^#include<reg52.h> sbit??beep=P0^4; void??main() {? ???beep=0; ???while(1); }试试这个怎2113样,单片机在执行完程序之5261后会回到初始状态,然后4102再重新执行程序,所以蜂鸣器就会反1653复的开和关,听起来声音会小很回多;加个while(1)死循环,让程序一直保持在beep=0的状答态。

求51单片机蜂鸣器程序

#include<reg51.h> sbit buzzer = P1^0?? ;声明区 void delay(int)?? ; void pulse_BZ(int,int,int);声明函数void main(void) { while(1) { pulse_BZ(500,1,1);? 调用发声 delay(1000);??????? 延时1000 X 0.5ms pulse_BZ(500,1,1); delay(1000); pulse_BZ(500,1,1); delay(1000); pulse_BZ(200,1,1); delay(1000); pulse_BZ(200,1,1); delay(1000); } }void delay(int x) { int i,j; for(i=0;i<x;i++) for(j=0;j<60;j++); }void pulse_BZ(int count;int TH;int TL) { int i; for(i=o;i<count;i++)??? //循环count次,时间count x 1ms { buzzer=1;?????????????? //此程序段产生1HZ 信号 delay(TH); buzzer=0; delay(TL); } } 51单片机蜂鸣器 开关C语言程序: sbit P2^0=KEY; sbit P2^1=BEEP; unsigned char KEYNUM=0; void main() { while(1) { if(KEY==0)//开关按下; { KEYNUM++; } if(KEYNUM==1)//第一次按下; { BEEP=1; //蜂鸣器响 } if(KEYNUM==2)/第二次按下; { BEEP=0; //蜂鸣器不响 KEYNUM=0; } } } 51单片机,编写延时程序,控制蜂鸣器发声: 很简单的 #include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit fengmingqi=P0^0; //声明IO口 void delay(uint x)//延时子函数 { uint i,j; for(i=x;i>0;i--) for(j=50;j>0;j--); } void main(void) { while(1) //循环 { fengmingqi=1; //p0.0口高电平,蜂鸣器发声 delay(500); //延时 fengmingqi=0; //p0.0口低电平,蜂鸣器不发声 delay(500); //延时 } }

单片机蜂鸣器

1、单片机与蜂鸣器连接图已附. 2、通常P1、P2、P3口都可以用来作为控制,P0口也可以,但因其内部无上拉电阻,所以外接时,应接一1K的上拉电阻,其他一样。

有源蜂鸣器驱动电路设计,无须外加驱动电路。

3、C语言编程为: #include//头文件 sbit d1=P1^2;//位定义,把P1口的P1.2位设为驱动口,当然其它口也可。

void main()//主函数 { d1=0//单片机默认状态为1,不用初始化了,此处直接赋值0则可驱动 }; 此为最最简单的电路程序设计。

下载后,蜂鸣器一会一直处于鸣叫状态。

你可以加一个延时函数,再把d1口置高,可让它,叫一下关闭。

也可以加个while(1)大循环,让它“滴、滴”不停地叫。

还可以设置一个按键,按一个亮一下。

随程序的变化,现象也会各不同。

柚子互联(34元),湖北十堰高防, 香港 1核1G 5M

柚子互联官网商家介绍柚子互联(www.19vps.cn)本次给大家带来了盛夏促销活动,本次推出的活动是湖北十堰高防产品,这次老板也人狠话不多丢了一个6.5折优惠券而且还是续费同价,稳撸。喜欢的朋友可以看看下面的活动详情介绍,自从站长这么久以来柚子互联从19年开始算是老商家了。六五折优惠码:6kfUGl07活动截止时间:2021年9月30日客服QQ:207781983本次仅推荐部分套餐,更多套餐可进...

Hostodo(年付$34.99), 8TB月流量 3个机房可选

Hostodo 算是比较小众的海外主机商,这次九月份开学季有提供促销活动。不过如果我们有熟悉的朋友应该知道,这个服务商家也是比较时间久的,而且商家推进活动比较稳,每个月都有部分活动。目前有提供机房可选斯波坎、拉斯维加斯和迈阿密。从机房的地理位置和实际的速度,中文业务速度应该不是优化直连的,但是有需要海外业务的话一般有人选择。以前一直也持有他们家的年付12美元的机器,后来用不到就取消未续约。第一、开...

易探云韩国云服务器仅50元/月,510元/年起

韩国云服务器哪个好?韩国云服务器好用吗?韩国是距离我国很近的一个国家,很多站长用户在考虑国外云服务器时,也会将韩国云服务器列入其中。绝大部分用户都是接触的免备案香港和美国居多,在加上服务器确实不错,所以形成了习惯性依赖。但也有不少用户开始寻找其它的海外免备案云服务器,比如韩国云服务器。下面云服务器网(yuntue.com)就推荐最好用的韩国cn2云服务器,韩国CN2云服务器租用推荐。为什么推荐租用...

蜂鸣器程序为你推荐
dell服务器维修dell维修服务ae序列号安装AE,序列号是什么意思?ae序列号ae序列号动态图片格式动态图片是什么格式?上行宽带上行宽带和下行宽带代表什么?微信如何只发文字微信朋友圈如何只发文字,怎么发文字不要图云输入法QQ云输入法怎样进行中英文切换?腾讯合作伙伴大会从微信同程旅行买的机票怎么打印电子发票?短信套餐移动有什么短信包月套餐,怎么开通?particular教程怎样做ae粒子云效果
域名城 美国linux主机 域名备案网站 bandwagonhost 美国主机推荐 南昌服务器托管 河南m值兑换 adroit 如何注册阿里云邮箱 drupal安装 优酷黄金会员账号共享 彩虹云 登陆空间 华为云建站 免费主页空间 asp空间 中国电信宽带测速 石家庄服务器 dbank 瓦工工具 更多