版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上此程序是51单片机c语言编写的电子琴+音乐播放器,当用杜邦线将P10管脚接地时,单片机就会放出世上只有妈妈好,将P11管脚接地时单片机就播放祝你生日快乐,两者为高电平时进入电子钢琴模式,利用16个矩阵键盘发出相应的哆、瑞、米、发、索。此文档的乐谱是借鉴别人的,因为本人是音乐白痴!这是我第一次发表,我希望能帮到有需要的人啦.#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit beep=P23; /定义蜂鸣器sbit music=P10; /music为低电平播放
2、世上只有妈妈好(工作模式为音乐播放器),music1为低电平时播放祝你生日快乐,music、music1都为高电平时(工作模式为电子钢琴)sbit music1=P11; 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, 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
4、,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,
5、/ 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<t;t1+) /延时半拍函数,控制音乐节奏 for(t2=0;t2<8000;t2+) ; void song() TH0=timer0h; TL0=timer0l; / 唱歌程序 TR0=1; delay(time); /延时,让此音节播放的长短 TR0=0; /关定时器,为下个音
6、节响做准备 void delayms(uint x)uint i,j;/去抖延时for(i=x;i>0;i-)for(j=110;j>0;j-);void keyscan() /检测十六个发出音乐按键函数uchar temp;P3=0xfe;temp=P3;temp=0xf0&temp;if(temp!=0x0f) delayms(10); /检测第一行按键temp=P3;temp=temp&0xf0;if(temp!=0xf0)temp=P3;switch(temp)case 0xee: key=0;break;case 0xde: key=1;break;cas
7、e 0xbe: key=2;break;case 0x7e: key=3;break; TH0=TH_0key; /将按下的键对应发出此频率声音的初值装入 TL0=TL_0key; TR0=1; /打开定时器0 while(temp!=0xf0) /一直按下就一直发声 temp=P3;temp=temp&0xf0;TR0=0; /松手时关闭定时器0,不能发声beep=1; /使蜂鸣器置高关闭,预防在进入中断取反时将它置低打开P3=0xfd;temp=P3;temp=0xf0&temp;if(temp!=0x0f)/检测第二行按键 delayms(10);temp=P3;temp
8、=temp&0xf0;if(temp!=0xf0)temp=P3;switch(temp)case 0xed: key=4;break;case 0xdd: key=5;break;case 0xbd: key=6;break;case 0x7d: key=7;break; TH0=TH_0key; /将按下的键对应发出此频率声音的初值装入 TL0=TL_0key; TR0=1; /打开定时器0 while(temp!=0xf0) /一直按下就一直发声 temp=P3;temp=temp&0xf0;TR0=0; /松手时关闭定时器0,不能发声beep=1; /使蜂鸣器置高关闭,
9、预防在进入中断取反时将它置低打开P3=0xfb;temp=P3;temp=0xf0&temp;if(temp!=0x0f) delayms(10);temp=P3;temp=temp&0xf0;if(temp!=0xf0)temp=P3;switch(temp)case 0xeb: key=8;break;case 0xdb: key=9;break;case 0xbb: key=10;break;case 0x7b: key=11;break; TH0=TH_0key; /将按下的键对应发出此频率声音的初值装入 TL0=TL_0key; TR0=1; /打开定时器0 whil
10、e(temp!=0xf0) /一直按下就一直发声 temp=P3;temp=temp&0xf0;TR0=0; /松手时关闭定时器0,不能发声beep=1;/使蜂鸣器置高关闭,预防在进入中断取反时将它置低打开 P3=0xf7;temp=P3;temp=0xf0&temp;if(temp!=0x0f) delayms(10);temp=P3;temp=temp&0xf0;if(temp!=0xf0)temp=P3;switch(temp)case 0xe7: key=12;break;case 0xd7: key=13;break;case 0xb7: key=14;bre
11、ak;case 0x77: key=15;break; TH0=TH_0key; /将按下的键对应发出此频率声音的初值装入 TL0=TL_0key; TR0=1; /打开定时器0 while(temp!=0xf0) /一直按下就一直发声 temp=P3;temp=temp&0xf0;TR0=0; /松手时关闭定时器0,不能发声beep=1; /使蜂鸣器置高关闭,预防在进入中断取反时将它置低打开 void main() uchar k,i; TMOD=1; EA=1; ET0=1;while(1) if(music&&music1) /当两个都为高电平时没有放音乐,扫描键
12、盘 flag=0;keyscan();if(!music) /当P10管脚为低电平时,播放世上只有妈妈好 flag=1; i=0; while(i<100) /音乐数组长度 ,唱完从头再来 if(music) /在播放音乐时P10为高电平时退出播放此歌曲beep=1; /使蜂鸣器置高关闭,预防在进入中断取反时将它置低打开break; k=yuepui+7*yuepui+1-1; timer0h=TH_0k; / 把对应的音乐频率放进定时器0 timer0l=TL_0k; time=yuepui+2; /音乐节拍 i+=3; song(); if(!music1) /music为低电平时,播放祝你生日快乐 flag=1; i=0; while(i<75) /乐谱的长度 if(music1) beep=1;break; k=yuepu1i+7*yuepu1i+1-1; timer0h=TH_0k; ti
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030欧洲智能机器人操作系统市场竞争态势发展现状投资评估规划分析报告
- 2025-2030欧洲智能建筑控制系统行业市场现状分析发展趋势研究报告
- 2025-2030欧洲教育文化行业市场现详细调研与商业前景发展趋势分析
- 2026安徽淮南市寿县楚通公共交通有限公司就业见习招聘2人备考题库有完整答案详解
- 2026江西职业技术大学高层次人才招聘74人备考题库(4)及一套参考答案详解
- 2025北京朝阳区初一(下)期末英语试题及答案
- 2026河南中原资源循环科技(河南)有限公司招聘17名备考题库及1套完整答案详解
- 2026中国电子科技集团公司第三十三研究所招聘备考题库及完整答案详解1套
- 2025年陕西省动物研究所招聘备考题库及1套参考答案详解
- 2025广西柳州市林业科学研究所招聘编外聘用人员1人备考题库完整参考答案详解
- 2025年及未来5年中国钠基膨润土市场深度评估及行业投资前景咨询报告
- 康复医学科进修汇报
- 患者身份识别管理标准WST840-2025学习解读课件
- 东航客服面试题目及答案
- 医院医疗质量分析会
- 酒吧厨房小吃承包协议书
- 项目系统测试报告模板
- 网约车分公司管理制度
- 社区文艺团队管理制度
- T/CSTE 0431-2023绿色(低碳)产品评价要求隔声型节能铝合金门窗
- 山东省2024年中考物理试题6套附解析答案
评论
0/150
提交评论