51单片机系统实现简易电子琴操作的电路_第1页
51单片机系统实现简易电子琴操作的电路_第2页
51单片机系统实现简易电子琴操作的电路_第3页
51单片机系统实现简易电子琴操作的电路_第4页
51单片机系统实现简易电子琴操作的电路_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计课程设计名称:单片机课程设计专业年级:电子信息科学与技术学生姓名:学号:指导教师:课程设计时间:专业课程设计任务书学生姓名专业班级学号题目51单片机的简易电子琴设计课题性质工程设计题目来源自拟指导教师同组姓名主要内容设计一个51单片机系统,实现简易电子琴操作的电路。要求:1设计51单片机最小系统;2.设置至少10个按键,能发出doremifasollaSIDO;能播放示范曲;3.能够调节低音、高音和中音。任务要求根据功能要求选择设计方案,并进行论证。画出电路的总体方框图和电路原理图。说明系统工作原理,对系统进行调试。写出课程设计报告。参考文献单片机技术有关教材电路设计手册其他资料审查意见指导教师签字:教研室主任签字:年月日说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页任务及要求设计一个51单片机系统,实现简易电子琴操作的电路。要求:1.设计51单片机最小系统;2.设置至少10个按键,能发出doremifasollasido;能播放示范曲;3.能够调节低音、高音和中音。2.设计方案1.定时/计数器的设计和状态字定义:若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相。就可在P1.0引脚上得到此频率的脉冲。利用AT89C51的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T=1/523=1912μs,因此只要令计数器计时956μs/1μs=956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。计数脉冲值与频率的关系式是:N=fi÷2÷fr,式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。其计数初值T的求法如下:T=65536-N=65536-fi÷2÷fr例如:设K=65536,fi=1MHz,求中音DO(261Hz)。T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr=65536-500000/fr,中音DO的T=65536-500000/523=64580。单片机12MHZ晶振,中音符与计数T0相关的计数值如表所示:音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)低1DO26263628#4FA#74064860#1DO#27763731中5SO78464898低2RE29463835#5SO#83164934#2RE#31163928中6LA88064968低3M33064021#693264994低4FA34964103中7SI98865030#4FA#37064185高1DO104665058低5SO39264260#1DO#110965085#5SO#41564331高2RE117565110低6LA44064400#2RE#124565134#646664463高3M131865157低7SI49464524高4FA139765178中1DO52364580#4FA#148065198#1DO#55464633高5SO156865217中2RE58764684#5SO#166165235#2RE#62264732高6LA176065252中3M65964777#6186565268中4FA69864820高7SI196765283采用查表程序进行查表时,可以为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据:低音0-19之间,中音在20-39之间,高音在40-59之间用单片机播放音乐,或者弹奏电子琴,实际上是按照特定的频率,输出一连串的方波。为了输出合适的方波,首先应该知道音符与频率的关系。2.音名从常见的电子琴的键盘谈起。主要分成低音、中音和高音三个区域,每个区域都有12个琴键。其中的白键,简谱音符标为1、2、3、4、5、6、7,大家一般都读成哆、来、咪、发、嗦、拉、西。按键1345678音符134567I频率值52466069878488098810483.音调数据表单片机发出不同频率的方波,人听起来,就是不同的音调。上表中的频率数值,有些过多,去掉不常用的黑键频率,只是把白键对应的数据存放在单片机中,即可满足绝大部分的应用需求。定义音调数据表的程序如下:DW63628,63835,64021,64103,64260,64400,64524;64580,低音区:1234567DW64580,64671,64777,64820,64898,64968,6503065058中音区:1234567DW65058,65110,65157,65178,65217,65252,6528365312高音区:1234567把这个数据表,放在程序中,需要播音的时候,就从表中取出一个数据送到定时器,当定时器溢出中断的时候,再对输出引脚取反,那么,在扬声器中,即可听到上表中频率的声音。音乐的音拍,一个节拍为单位(C调)曲调值DELAY

曲调值DELAY调4/4125ms

调4/462ms调3/4187ms

调3/494ms调2/4250ms

调2/4125ms三.设计电路图1.晶振部分本次采用12MHZ晶振,机器周期为1us,连接两个30pF的电容,连接到AT89C51的XATL1,XATL2上面,连接电路图如下:2.音频输出本次只是简单的使用一个蜂鸣器连接到AT89C51的p1.0口上3.高。中。低及音乐播放键:检测高中低是否按下,来跳转到音阶键上输出不同频率的音阶音,检测播放是否按下,跳转到示范曲目播放AT89C51AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。1.主要特性:·与MCS-51兼容·4K字节可编程闪烁存储器·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24Hz·三级程序存储器锁定·128*8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路5.音阶键部分6.设计电路总体图样设计流程图1.音阶键识别5、程序如下:KEYBUFEQU30HSTH0EQU31HSTL0EQU32H DELYEQU33H NUMEQU34HORG0000HAJMPMAIN ;跳转到主函数ORG000BHLJMPINT_T0;音乐输出口 ORG0040HMAIN:MOVTMOD,#01H;写出计时器控制字,T0方式计时SETBEA;开中断总开关SETBET0;允许T0中断 MOVNUM,#01H ;;num置1 MOVR1,#00HTEST: ;低音检测ANLTH0,#00H ;高位清零ANLTL0,#00H ;低位清零MOVA,P2 ;P2进入CJNEA,#0FEH,TEST1;检测P2.0口低音键是否按下MOVDPTR,#TABLE1 ;低音键按下,进入低音表地址AJMPWAIT ;跳转到音阶检测TEST1: ;中音检测CJNEA,#0FDH,TEST2;检测P2.0中音键是否按下 MOVDPTR,#TABLE2 ;中音键按下,进入中音表地址 AJMPWAITTEST2: ;高音检测CJNEA,#0FBH,TEST3;检测P2.0口高音键是否按下 MOVDPTR,#TABLE3 ;高音键按下,进入高音表地址 AJMPWAITTEST3: ;音乐播放检测CJNEA,#0F7H,TEST4;检测音乐播放键是否按下若有按下则转至EXITLCALLDELAY10MS ;软件延时消抖MOVA,P2CJNEA,#0F7H,TEST4;检测播放键是否再次按下MOVA,NUM CJNEA,#01H,EXIT ;检测高低中是否再次按下 MOVNUM,#00H MOVDPTR,#TABLE4 ;进入音乐播放表 AJMPWAIT1 ;跳转至音乐播放入口EXIT:CLRTR0 ;计数器停止,音乐播放结束 MOVR1,#00H ;清零 MOVNUM,#01H TEST4: MOVA,NUM CJNEA,#01H,WAIT2 LJMPTEST ;跳转至TEST重新检测WAIT2:LJMPWAIT1 ;跳转至音乐播放入口WAIT:CLRTR0 MOVNUM,#01HSCAN1: MOVP3,#0F0H ;音阶按键检测程序入口 CLRTR0 MOVA,P3; ANLA,#0F0H CJNEA,#0F0H,TEE1 AJMPTEST ;跳转至TEST重新检测TEE1: LCALLDELAY10MS;软件延时消抖 CJNEA,#0F0H,TEE2 AJMPTESTTEE2: MOVA,#0FEHSCAN2: MOVP3,A MOVA,P3 MOVB,A ANLA,#0F0H CJNEA,#0F0H,CARRY MOVA,B RLA CJNEA,#0BFH,SCAN2 LJMPSCAN1CARRY:ANLB,#0FH ;键值处理 ORLA,B CJNEA,#0EEH,KEY1 ;检测音符键1是否按下 MOVKEYBUF,#00H ;赋予键值 LJMPWAI ;调至按键处理程序KEY1: CJNEA,#0EDH,KEY2 ;检测音符键2是否按下 MOVKEYBUF,#02H ;赋予键值 LJMPWAI ;调至按键处理程序KEY2:CJNEA,#0EBH,KEY3 ;检测音符键3是否按下 MOVKEYBUF,#04H ;赋予键值 LJMPWAI ;调至按键处理程序KEY3:CJNEA,#0E7H,KEY4 ;检测音符键4是否按下 MOVKEYBUF,#06H ;赋予键值 LJMPWAI ;调至按键处理程序KEY4: CJNEA,#0DEH,KEY5 ;检测音符键5是否按下 MOVKEYBUF,#08H ;赋予键值 LJMPWAI ;调至按键处理程序KEY5: CJNEA,#0DDH,KEY6 ;检测音符键5是否按下 MOVKEYBUF,#0AH ;赋予键值 LJMPWAI ;调至按键处理程序KEY6:CJNEA,#0DBH,KEY7 ;检测音符键6是否按下 MOVKEYBUF,#0CH ;赋予键值 LJMPWAI ;调至按键处理程序KEY7: CJNEA,#0D7H,SCAN1 MOVKEYBUF,#0EH ;赋予键值 LJMPWAI ;调至按键处理程序WAI: MOVA,KEYBUF ;按键处理程序入口 MOVCA,@A+DPTR MOVSTH0,A INCKEYBUF MOVA,KEYBUF MOVCA,@A+DPTR MOVSTL0,A MOVTH0,STH0 MOVTL0,STL0 SETBTR0 LCALLDELAY100MS LJMPSCAN1WAIT1:CJNER1,#00H,LOOP;播放音乐程序入口LOOP:MOVA,R1 MOVCA,@A+DPTR MOVSTH0,A INCR1MOVA,R1 MOVCA,@A+DPTR CJNEA,#0FEH,NEXT1 MOVR1,#00HLJMPLOOPNEXT1:MOVSTL0,A INCR1 MOVA,R1 MOVCA,@A+DPTR MOVDELY,A MOVTH0,STH0 MOVTL0,STL0 SETBTR0 NEXT2:LJMPDELAY187MS ;节拍延时控制NEXT3: DJNZDELY,NEXT2 INCR1 LJMPTESTNOKEY:LJMPTEST;重新检测DELAY10MS:MOVR6,#10;10ms延时D1:MOVR7,#248 DJNZR7,$ DJNZR6,D1 RET ;子程序返回DELAY100MS:MOVR5,#06EH ;100ms延时DL0:MOVR4,#0CFH DJNZR4,$ DJNZR5,DL0 RET ;子程序返回DELAY187MS:MOVR3,#187 ;187ms延时,用于节拍控制DL1:MOVR2,#248 DJNZR2,$ DJNZR3,DL1 LJMPNEXT3INT_T0:MOVTH0,STH0 ;高8为输入 MOVTL0,STL0 ;低8位输入 CPLP1.0 ;音乐输出口启用 RETI ;中断返回TABLE1:DB0f8h,094h,0f9h,05ch,0fah,01Ah,0FAH,06AH;低音调表值DB0FBH,00H,0FBH,08CH,0FCH,0EH,0FCH,044H;TABLE2:DB0FCH,04AH,0FCH,0AEH,0FDH,008H,0FDH,030H;中音调表值DB0FDH,080H,0FDH,0C6H,0FEH,02H,0FEH,022H; TABLE3:DB0FEH,02AH,0FEH,05CH,0FEH,084H,0FEH,098H;高音调表值DB0FEH,0C0H,0FEH,0E8H,0FFH,006H,0FFH,029H;SONG1:;化蝶.DB-3,04H,-5,03H,-6,01H,1,03H,2,01H,-6,01H,1,01H,-5,02H.DB5,03H,+1,01H,6,01H,5,01H,3,01H,5,01H,2,08H.DB2,02H,2,01H,3,01H,-7,02H,-6,02H,-5,03H,-6,01H,1,02H,2,02H.DB-3,02H,1,02H,-6,01H,-5,01H,-6,01H,1,01H,-5,08H.DB3,03H,5,01H,-7,03H,2,01H,-6,01H,1,01H,5,05H.DB-3,02H,-5,01H,-3,01H,-5,01H,-6,01H,-7,01H,2,01H,-6,06H,-5,01H,-6,01H.DB1,03H,2,01H,5,02H,3,02H,2,02H,3,01H,2,01H,1,02H,-6,01H,-5,01H.DB-3,04H,1,04H,-6,01H,1,01H,-6,01H,-5,01H,-3,01H,-5,01H,-6,01H,1,01H.DB-5,08H,FFH,08H心得体会本次单片机课程设计,本身题目并没有多大难度,但对初学

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论