基于单片机的生日快乐歌
2013-06-04 15:19
127 查看
连线:P1.6接蜂鸣器
#include<reg51.h> #define uchar unsigned char #define uint unsigned int sbit BEEP=P3^7; //生日快乐歌的音符频率表,不同频率由不同的延时来决定 uchar code SONG_TONE[]= {212,212,190,212,159,169,212,212,190,212,142,159,212,212,106,126,159,169,190,119,119,126,159,142,159,0}; //生日快乐歌节拍表,节拍决定每个音符的演奏长短 uchar code SONG_LONG[]= {9,3,12,12,12,24,9,3,12,12,12,24, 9,3,12,12,12,12,12,9,3,12,12,12,24,0}; //延时 void DelayMS(uint x) { uchar t; while(x--) for(t=0;t<120;t++); } //播放函数 void PlayMusic() { uint i=0,j,k; while(SONG_LONG[i]!=0||SONG_TONE[i]!=0) { //播放各个音符,SONG_LONG为拍子长度 for(j=0;j<SONG_LONG[i]*20;j++) { BEEP=~BEEP; //SONG_TONE延时表决定了每个音符的频率 for(k=0;k<SONG_TONE[i]/3;k++); } DelayMS(10); i++; } } void main() { BEEP=0; while(1) { PlayMusic(); //播放生日快乐 DelayMS(500); //播放完后暂停一段时间 } }
相关文章推荐
- 基于proteus的51单片机仿真实例九、51单片机的最小工作系统
- 基于proteus的51单片机仿真实例十八、用单片机端口演示数据的加法和减法运算 4000 结果
- 基于proteus的51单片机仿真实例三十五、C语言的continue语句
- 基于单片机的贪吃蛇游戏
- 基于proteus的51单片机仿真实例四十、C语言的文件调用
- 基于ATmgea8单片机设计的加热控制系统(转)
- 基于MC9S12DGl28单片机的智能寻迹车设计
- 基于proteus的51单片机仿真实例五十五、外部中断1演示实例
- 自己搞的基于单片机的VC++虚拟示波器和频率计功能分析(优缺点一起)(原创)
- 基于STC15F2K08S2单片机和JDY-10蓝牙模块的串行通信
- 基于单片机的红外发射C语言程序单片机
- 基于proteus的51单片机仿真实例六十九、串口转并口器件74HC164应用实例
- 基于opencv的图像分析,PID算法,串口发送,单片机接收,输出脉冲继而控制步进电机转动
- 基于proteus的51单片机仿真实例七十五、串入并出芯片74HC595应用实例
- 基于单片机和CPLD的高精度数据采集系统设计
- IAR开发环境使用串口printf输出(基于STM8L15x系列单片机)
- 通过软件程序消除单片机由外界干扰产生的异常复位的影响(基于STM8S105单片机)
- 本科毕设-基于C8051单片机的身份识别系统设计
- 基于Atmel128A单片机的MP31.0设计