单片机蜂鸣器播放音乐C语言Protues 仿真实验


#include "reg52.h"	//reg52.h在安装目录下D:\Keil_v5\C51\INC\Atmel中


sbit  BEEP=P1^5; 	//蜂鸣器管脚定义


#define FLICKER 500 //定时值



/*变量命名规则:驼峰法(Camel-Case),小驼峰法用于变量和方法,
  uc 小写表示unsigned char ,KEY中K大写,Long中L大写。        */


unsigned char ucKeyLong=0; //按键切换
unsigned int uiTimeStart=0;//定时器初值决定蜂鸣器的音调
unsigned int uiTimeCount=0;//定时器计数器

//循环中的语句是尾和首相连接的,特别是延时要求比较高的程序要特别注意

//右移指令需要注意i=i>>1;不能写成i>>1

//必须在中断服务程序中重装初值TMR0必须重装初值

#define ZERO 0x00 //休止符

//C调低音的音频宏定义do 1  频率HZ
#define DAOL 130
#define REL 146
#define MIL 164
#define FAL 174
#define SOL 196
#define LAL 220
#define XIL 247
//C调中音的音频宏定义do 1  频率523HZ
#define DAO 262
#define RE 294
#define MI 330
#define FA 349
#define SO 392
#define LA 440
#define XI 494

//c调高音的音频宏定义
#define DAOH 523
#define REH 587
#define MIH 659
#define FAH 689
#define SOH 784
#define LAH 880
#define XIH 988
//c调试音
unsigned int TONE[]={DAOL,REL,MIL,FAL,SOL,LAL,XIL,DAO,0xff};
unsigned int DELAY[]={4,4,4,4,4,4,4,4};

//两只老虎
 unsigned int code TWO_TIGER_TONE[]={DAO,RE,MI,DAO,//简谱记号1=C 4/4拍
								   DAO,RE,MI,DAO,
								   MI,FA,SO,
								   MI,FA,SO,
								   SO,LA,SO,FA,MI,DAO,
								   SO,LA,SO,FA,MI,DAO,
								   DAO,SOL,DAO,
								   DAO,SOL,DAO,
									0xff};//以0xff作为音乐的结束标志
									
									
 unsigned int code TWO_TIGER_DELAY[]={8,8,8,8,//节拍时长记号
									8,8,8,8,
									8,8,16,
									8,8,16,
									6,2,6,2,8,8,
									6,2,6,2,8,8,
									8,8,16,
									8,8,16,
									};
//黑蝙蝠中队
 unsigned int code HEI_TONE[]={MI,MI,RE,MI,LA,//简谱记号1=C 4/4拍
			
  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值