找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4298|回复: 5
打印 上一主题 下一主题
收起左侧

蜂鸣器播放6种声音 6个按键播放声音 资料

[复制链接]
跳转到指定楼层
楼主
ID:107170 发表于 2016-3-3 17:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  
蜂鸣器播放6种声音
  
//6个按键播放声音
  
#include <reg51.h>
  #define uchar unsigned char //byte
  #define uint unsigned int //word
  
sbit bu6=P3^7; //定义一个按键,一端接地,一端接端口
  sbit bu5=P3^6; //定义一个按键,一端接地,一端接端口
  sbit bu4=P3^5; //定义一个按键,一端接地,一端接端口
  sbit bu3=P3^4; //定义一个按键,一端接地,一端接端口
  sbit bu2=P3^3; //定义一个按键,一端接地,一端接端口
  sbit bu1=P3^2; //定义一个按键,一端接地,一端接端口
  
sbit led1=P0^0;
  sbit led2=P0^1;
  sbit buzzer=P2^3; //
蜂鸣器
  
void delay(int);
  void pulse_BZ(int,int,int);
  
void main(void)
  {
  while(1)
  { int i;
  bu6=1; //
初始化 按键高电平
  bu5=1; //初始化
  bu4=1; //初始化
  bu3=1; //初始化
  bu2=1; //初始化
  bu1=1; //初始化
  while(1) //当一个按键被按下,为0,跳出循环
  {
  if(!bu6||!bu5||!bu4||!bu3||!bu2||!bu1)
  for(i=0;i<=1000;i++); //防抖动
  if(!bu6||!bu5||!bu4||!bu3||!bu2||!bu1) break;
  }
  if(!bu6) //蜂鸣器发音。如果有歌谱,可以写歌曲函数
  { pulse_BZ(10,10,10); }
  
  if(!bu5) //蜂鸣器发音。如果有歌谱,可以写歌曲函数
  { pulse_BZ(50,50,50); }
  
if(!bu4) //蜂鸣器发音。如果有歌谱,可以写歌曲函数
  { pulse_BZ(100,10,100); }
  
  if(!bu3) //蜂鸣器发音。如果有歌谱,可以写歌曲函数
  { pulse_BZ(100,100,10); }
  
if(!bu2) //蜂鸣器发音。如果有歌谱,可以写歌曲函数
  { pulse_BZ(100,30,70); }
  
if(!bu1) //蜂鸣器发音。如果有歌谱,可以写歌曲函数
  { pulse_BZ(100,70,30); }
  
  }
  }
  

  /******************************************************/
  /* Buzzer
模块 */
  /*声明:sbit buzzer=P2^3; void pulse_BZ(int,int,int);*/
  /******************************************************/
  void pulse_BZ(int count, int TH,int TL)
  {
  int i;
  for(i=0;i<count;i++)
  { buzzer=1;
  delay(TH); //延时TH个0.5ms
  buzzer=0;
  delay(TL); //延时TL个0.5ms
  }
  }
  
/**************************************************/
  /*
延时模块 声明:void  delay(int); */
  /**************************************************/
  void delay(int x) //如 delay(1000),延时1s
  {
  int i,j;
  for(i=0;i<x;i++) //延时x个1ms
  for(j=1;j<=125;j++); //延时约1ms
  


评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:107209 发表于 2016-3-3 21:02 | 只看该作者
988754
回复

使用道具 举报

板凳
ID:106152 发表于 2016-3-4 08:34 | 只看该作者
支持一下,下来学习
回复

使用道具 举报

地板
ID:416900 发表于 2018-10-29 01:10 | 只看该作者
有原理图吗?
回复

使用道具 举报

5#
ID:762052 发表于 2020-5-26 23:05 | 只看该作者
支持一下,下来学习
回复

使用道具 举报

6#
ID:65956 发表于 2020-5-27 08:19 | 只看该作者
这个程序看似完美,但事实是运行起来按键反应受声音播放影响,声音没播放完按键是无反应的,即无法快速切换声音,正确的作法是采用定时器中断,主函数完全作按键判断,这样效率才高,这个程序玩玩可以,但实用性不大
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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