版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于51单片机音乐盒程序设计一、 功能设计说明1、电路设计实物图矩阵键盘部分电路图2、运行流程图程序开始播放小苹果歌曲判断任意按键是否按下继续播放小苹果歌曲否是进入电子琴模式判断K16按键是否按下播放完成是否3、电子琴模式按键对应发音设计按键发音按键发音l K1l 低 1l K9l 中 2l K2l 低 2l K10l 中 3l K3l 低 3l K11l 中 4l K4l 低 4l K12l 中 5l K5l 低 5l K13l 中 6按键发音按键发音l K6l 低 6l K14l 中 7l K7l 低 7l K15l 高 1l K8l 中 1l K16l 重新播放小苹果二、 硬件电路说明1
2、、 程序下载电路音乐盒电路图ISP下载接口 本设计采用的单片机为AT89S52单片机,需使用ISP下载器进行下载程序,程序下载电路图如图中ISP1接口.2、 音乐发音电路IO口P10发出不同频率的脉冲,则BUZZER产生各种不同的声音,本设计采用12MHZ晶振,系统频率1MHZ,定时器计数一个1us,其对应关系如下表所示:音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)低 1 DO26263628# 4 FA#74064860# 1 DO#27763731中 5 SO78464898低 2 RE29463853# 5 SO#83164934# 2 RE#31163928中 6 LA
3、88064968低 3 M33064021# 693264994低 4 FA34964103中 7 SI98865030# 4 FA#37064185高 1 DO104665058低 5 SO39264260# 1 DO#110965085# 5 SO#41564331高 2 RE117565110低 6 LA44064400# 2 RE#124565134# 646664463高 3 M131865157低 7 SI49464524高 4 FA139765178中1 DO52364580# 4 FA#148065198# 1 DO#55464633高 5 SO156865217中 2 RE5
4、8764684# 5 SO#166165235# 2 RE#62264732高 6 LA176065252中 3 M65964777# 6186565268中 4 FA69864820高 7 SI196765282计算方法:例如产生262HZ频率(发音DO),周期T=1/262=3816 us,由于定时器中断使IO不停取反,故周期T=3816/2=1908 us定时器初值N=65536-1908=63628TH0=63628/256TL0=65536%256三、 程序代码说明1 、脉冲产生 采用定时器0溢出中断产生脉冲,定时器初始化如下:TMOD = 0x01; /定时器0工作方式1
5、 ,即十六位计数器计数TR0 = 1; /启动定时器ET0 = 1; /定时器0溢出中断使能EA = 1; /总中断使能 定时器0溢出中断产生脉冲,void Timer0() interrupt 1代码如下:TH0 = th0;TL0 = tl0;if(th0=0)BUZZER=1;/判断停顿,有停顿不发音elseBUZZER = BUZZER;/无停顿发音2、音普规则:a、音普由一个字节十六进制数组成b、高4位代表节拍,一拍约400MS,将一拍分成8份c、低4位代表音符,一一对应Note列表d、0x20代表歌曲结束符e、uint code Note=0,64580,64684,64777,6
6、4820,64898,64968,65030,/*中音*/ 63628,63853,64021,64103,64260,64400,64524,/*低音*/ 65058,65110,65157,65178,65217,65252,65282/*高音*/; 该列表为发音所对应的定时器初装值例如编写如下一段音乐列表:0x83,0x81,0x82,0x8d,0x43,0x42,0x41,0x42,0x8d,0x8d,0x40 0x40表示停顿4*50MS/*你是我的小呀小苹果*/3、 音普列表解读while(Xiaopingguotemp!=0x20) /不停判断音乐是否结尾,结尾跳出jiepai=
7、Xiaopingguotemp>>4;/获取节拍,即高4位数yinpu=Xiaopingguotemp&0x0F; /获取音普,即低4位数Timer_Set(yinpu);/根据列表对应发音Delay(jiepai*50); /节拍temp+;P0 = 0x0f;if(P0!=0x0f)goto out;void Timer_Set(uchar num)为定时器0赋值子程序,包含的代码如下:th0=Notenum/256;tl0=Notenum%256;四、 程序代码编写/*项目名 称:音乐盒单片机型号:AT89S52频 率:外部石英晶振 12MHZ设计 时间:2014-0
8、8-06设计 者:小左MCU工作室Q Q: 576689422*/#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit BUZZER=P10;/蜂鸣器输出uchar th0,tl0; /定时器0赋值变量uchar start_; /返回变量uint code Note=0,64580,64684,64777,64820,64898,64968,65030,/*中音*/ 63628,63853,64021,64103,64260,64400,64524,/*低音*/ 65058,65110,
9、65157,65178,65217,65252,65282/*高音*/;/*音普规则:1、音普由一个字节十六进制数组成2、高4位代表节拍,一拍约400MS,将一拍分成8份3、低4位代表音符,一一对应Note列表4、0x20代表歌曲结束符*/uchar code Xiaopingguo=0x83,0x81,0x82,0x6d,0x43,0x42,0x41,0x42,0x8d,0x8d,0x40,/*你是我的小呀小苹果*/0x83,0x81,0x82,0x82,0x45,0x43,0x8e,0x81,0x40,/*怎么爱你都不嫌多*/0x41,0x4e,0x8d,0x4e,0x41,0x82,0x
10、8c,0x46,0x45,0x83,0x83,0x43,0x40,/*红红的小脸温暖我的心窝*/0x42,0x81,0x42,0x43,0x42,0x43,0x42,0x23,0x25,0x85,0x30,0x45,0x10,0x45,0x30,0x45,0x10,0x45,0x30,0x85,0x85,0x85,0x40,/*点亮我生命的火 火火 火火 火*/0x83,0x81,0x82,0x6d,0x43,0x42,0x41,0x42,0x8d,0x8d,0x40,/*你是我的小呀小苹果*/0x83,0x81,0x82,0x82,0x45,0x43,0x8e,0x81,0x40,/*就像天
11、边最美丽的云朵*/0x41,0x4e,0x8d,0x4e,0x41,0x82,0x8c,0x46,0x45,0x83,0x83,0x43,0x40,/*春天又来到了花开满山坡*/0x42,0x81,0x42,0x43,0x82,0x8c,0x8d,0x4d,0x41,0x8d,0x20/*种下希望就会收获*/;/-延时子程序-void Delay(uint xms)uint j;for(;xms>0;xms-)for(j=110;j>0;j-);/-/-定时器变量赋值-void Timer_Set(uchar num)th0=Notenum/256;tl0=Notenum%256;
12、/-/-系统初始化-void Init()BUZZER = 1; /关闭蜂鸣器TMOD = 0x01; /定时器0工作方式1TR0 = 1; /启动定时器ET0 = 1; /定时器0溢出中断使能EA = 1;/总中断使能start_ = 0;/返回变量初始化/-/-按键扫描-void Key_Scan()P0 = 0x0f;if(P0!=0x0f)Delay(5);if(P0!=0x0f)P0=0xfe;if(P0=0xee)Timer_Set(8);/按键1被按下else if(P0=0xde)Timer_Set(12);/按键5被按下else if(P0=0xbe)Timer_Set(2)
13、; /按键9被按下else if(P0=0x7e)Timer_Set(6); /按键13被按下else;P0=0xfd;if(P0=0xed)Timer_Set(9);/按键2被按下else if(P0=0xdd)Timer_Set(13);/按键6被按下else if(P0=0xbd)Timer_Set(3); /按键10被按下else if(P0=0x7d)Timer_Set(7); /按键14被按下else;P0=0xfb;if(P0=0xeb)Timer_Set(10);/按键3被按下else if(P0=0xdb)Timer_Set(14);/按键7被按下else if(P0=0xb
14、b)Timer_Set(4); /按键11被按下else if(P0=0x7b)Timer_Set(15);/按键15被按下else;P0=0xf7;if(P0=0xe7)Timer_Set(11);/按键4被按下else if(P0=0xd7)Timer_Set(1); /按键8被按下else if(P0=0xb7)Timer_Set(5); /按键12被按下else if(P0=0x77)start_=1;/按键16被按下else;elseth0=0;/-/-主程序-void main()uchar temp,yinpu,jiepai;Init();while(1)start:temp=0;while(Xiaopingguotemp!=0x20)jiepai=Xiaopingguotemp>>4;/获取节拍yinpu=Xiaopingguotemp&0x0F; /获取音普Timer_Set(yinpu);Delay(jiepai*50);temp+;P0 = 0x0f;if(P0!=0x0f)goto out;ou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福利院开展足球比赛活动方案
- 电子商务行业跨境电商与物流方案
- 力学计算题考试题库及答案
- 织金社区考试真题及答案
- 学校意识形态工作责任制落实方案
- 2025年临床执业医师《内科学》卷
- 野生动植物保护规范考核试题及答案
- 医疗机构消防安全知识岗前培训试题及答案
- 医疗机构职业病防治法培训试题及答案
- 191公司例会部门会议模板
- 2025年上饶幼儿师范高等专科学校单招职业技能测试题库汇编
- T-CNITA 05103-2018 袋式除尘用水刺非织造滤料
- 部编版小学语文六年级下册必读书阅读训练试题及答案(全册)
- 定额〔2025〕1号文-关于发布2018版电力建设工程概预算定额2024年度价格水平调整的通知
- 《光的本质之争》课件
- 《任务型教学法在初中历史教学中的应用研究》
- 学校食堂员工培训
- 中药灌肠疗法课件
- 西门子S7-1500 PLC技术及应用 课件 第5章 S7-1500 PLC 的通信及其应用
- 2024年员工借调合同书
- 市政绿化养护及市政设施养护服务方案(技术方案)
评论
0/150
提交评论