51单片机c语言编写电子琴音乐播放器.doc

此程序是51单片机c语言编写的电子琴+音乐播放器,当用杜邦线将P1^0管脚接地时,单片机就会放出《世上只有妈妈好》,将P1^1管脚接地时单片机就播放《祝你生日快乐》,

两者为高电平时进入电子钢琴模式,利用16个矩阵键盘发出相应的哆、瑞、米、发、索。此文档的乐谱是借鉴别人的,因为本人是音乐白痴!这是我第一次发表,我希望能帮到有需要的人啦........

#include

#define uchar unsigned char

#define uint unsigned int

sbit beep=P2^3; //定义蜂鸣器

sbit music=P1^0; //music为低电平播放世上只有妈妈好(工作模为音乐播放器),music1为低电平时播放祝你生日快乐,music、music1都为高电平时(工作模式为电子钢琴)

sbit music1=P1^1;

uchar timer0h,timer0l,time,key,flag; //flag==0时为电子钢琴模式,flag==1时为音乐播放器

uchar code yuepu[]={ 6,2,3,5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1, 6,2,4,

3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1, 6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2, 5,2,1,

6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1, 2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0 }; //世上只有妈妈好乐谱

uchar code yuepu1[]={5,1,1, 5,1,1, 6,1,2, 5,1,2, 1,2,2, 7,1,4,

5,1,1, 5,1,1, 6,1,2, 5,1,2, 2,2,2, 1,2,4,

5,1,1, 5,1,1, 5,2,2, 3,2,2, 1,2,2, 7,1,2, 6,1,2,

4,2,1, 4,2,1, 3,2,2, 1,2,2, 2,2,2, 1,2,4};//祝你生日快乐乐谱

uchar code TH_0[]={

0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,

0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC,

0xFC,0xFD,0xFD,0xFD,0xFD,0xFE, // 28个音阶高八位频率表 装进定时器高八位

0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,

} ;

uchar code TL_0[]={

0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,

0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, // 28个音阶低八位频率表 装进定时器 低八位

0xEE,0x44, 0x6B,0xB4,0xF4,0x2D,

0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,

};

void delay(uchar t)

{

uchar t1;

unsigned long t2;

for(t1=0;t1

{

for(t2=0;t2<8000;t2++)

{ ; }

}

}

void song()

{

TH0=timer0h;

TL0=timer0l; // 唱歌程序

TR0=1;

delay(time); //延时,让此音节播放的长短

TR0=0; //关定时器,为下个音节响做准备

}

void

单片机c语言编写音乐播放器,51单片机c语言编写电子琴+音乐播放器.doc.doc相关推荐

  1. 八路抢答器c语言程序,八路抢答器-51单片机(附Proteus仿真、C代码、原理图及PCB、论文和元器件清单)...

    获取全套设计资源,请见后文说明- 设计要求 1)抢答器同时供8名选手或2个代表队比赛,分别用8个按钮S0-S7表示: 2)设置一个系统清除和抢答控制开关S,该开关由主持人控制: 3)抢答器具有锁存与显 ...

  2. 用c语言编写热敏电阻温度计,基于51单片机的热敏电阻温度计的设计.doc

    摘 要 随着科学技术的不断进步与发展,热敏电阻温度计已开始逐渐替代传统的玻璃水银体温计.温度控制系统在国内各行各业的应用虽然已经十分广泛,传统的温度控制方式,主要缺点是温度波动范围大,不能满足高精度, ...

  3. 单片机c语言计数器测速,基于51单片机的光电编码器测速.doc

    课程设计报告 课程名称: 微机原理课程设计 题 目: 基于51单片机的光电编码器测速 摘要 光电编码器是高精度位置控制系统常用的一种位移检测传感器.在位置控制系统中,由于电机既可能正转,也可能反转,所 ...

  4. 单片机c语言100例 的案例,51单片机C语言100个实例 [推荐下载】

    51单片机c语言100例 ,墙裂推荐下载 附上目录 ************************************************************函数的使用和熟悉****** ...

  5. 51单片机c语言编程的头文件,51单片机编程的头文件reg51.h详解

    我们在用c语言编程时往往第一行就是头文件,51单片机为reg51.h或reg52.h,51单片机相对来说比较简单,头文件里面内容不多,像飞思卡尔.ARM系列的单片机头文件往往内容就非常多,尽管如此,对 ...

  6. 单片机c语言数码管显示5,51单片机数码管显示实验报告(5页)-原创力文档

    51单片机数码管显示实验 实验内容: 编写程序让8只数码管初始显示0,每隔大约1s加1显示(可以用延时函数实现),到数码管显示9后,再从0开始显示,如此循环反复. C语言程序 #include #de ...

  7. 单片机c51语言实训总结,大学生51单片机实训心得体会

    <大学生51单片机实训心得体会>由会员分享,可在线阅读,更多相关<大学生51单片机实训心得体会(1页珍藏版)>请在人人文库网上搜索. 1.大学生51单片机实训心得体会实践是检验 ...

  8. 简易电子钟c语言程序,(最新整理)基于51单片机的电子钟C语言程序

    <(最新整理)基于51单片机的电子钟C语言程序>由会员分享,可在线阅读,更多相关<(最新整理)基于51单片机的电子钟C语言程序(9页珍藏版)>请在人人文库网上搜索. 1.完整) ...

  9. 59s计时器C语言程序步骤详解,51单片机00-59秒计时器 0-59s Timer

    51单片机00-59秒计时器 0-59s Timer 1.  实验任务 如下图所示,在AT89S51单片机的P0和P2端口分别接有两个共阴数码管,P0口驱动显示秒时间的十位,而P2口驱动显示秒时间的个 ...

  10. 单片机 c语言百位加上小数点,51单片机水温控制LCD显示加VB上位机温度曲线绘制...

    现功能,1L水由1KW电炉加热,要求水温在一定范围内人工设定,并能随着环境温度改变自动调节,以维持设定的温度不变. 矩阵键盘输入设定温度,LCD1602显示温度值,VB上位机绘制温度曲线 /***** ...

最新文章

  1. Linux系统开发之路-中
  2. jetbrains 旗下所有工具 pycharm clion goland 配置导出及导入
  3. html和css有序列表,HTMLCSS基础学习笔记14—有序列表及列表嵌套
  4. 【学习笔记】 Javascript定时器
  5. mysql怎么通过frm和ibd文件还原数据
  6. Nest入门教程 - 初识Providers
  7. python模拟登录获取Cookie
  8. [Ext JS]treelist实现tooltip
  9. 条件表达式计算个人所得税c语言,个税的计算C语言实现,结果为什么是负的?...
  10. 位运算的简单应用,计算无符号的数中二进制位中值为 1 的个数
  11. IOS6屏幕旋转详解(自动旋转、手动旋转、兼容IOS6之前系统)
  12. 利用Python制作一个“电子记事本”
  13. 页面JS实现按钮点击增加输入框
  14. C#中的换行符、回车
  15. Java服务端支付功能模块--(一)支付宝支付
  16. APIO 2017 考拉的游戏 题解
  17. 青春如电,许多未了心愿
  18. 如何提升小目标的检测效果
  19. 如何在vscode、remix中结合hardhat编译部署合约
  20. 【开发教程10】疯壳·开源蓝牙心率防水运动手环-蓝牙 BLE 收发

热门文章

  1. 在HBuilder里为什么输入汉字是繁体字,而我的输入法设置的是简体
  2. 使用Dreamweaver进行一个简单的图文混排1/HTML
  3. 不会还有人不知道module、bundle和chunk的区别吧?
  4. Altium Designer如何批量修改SCH名称,数值,封装
  5. hadoop文件存储位置_hadoop – HDFS存储数据的位置
  6. SumatraPDF 高级设置
  7. 箭头函数写法_JavaScript|箭头函数的用法
  8. 解决IDEA启动失败 Improperly specified VM option...问题
  9. 按照网络规模来分,服务器分为哪几类?
  10. frm mysql触发器_使用mysqlfrm恢复frm表结构的方法