单片机音乐盒课程设计.docx
- 文档编号:9860966
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:37
- 大小:316.47KB
单片机音乐盒课程设计.docx
《单片机音乐盒课程设计.docx》由会员分享,可在线阅读,更多相关《单片机音乐盒课程设计.docx(37页珍藏版)》请在冰点文库上搜索。
单片机音乐盒课程设计
(此文档为word格式,下载后您可任意编辑修改!
)
课程设计报告书
专业:
自动控制系
2013年01月01日
1.设计目的…………………………………………..1
2.设计要求和设计指标1
3.设计内容1
3.1硬件部分1
3.1.1…1
3.2软件部分1
4.本设计改进建议3
5.总结(感想和心得等)3
6.主要参考文献3
附录4
1.设计目的
2.设计要求和设计指标
(1)利用IO口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演乐曲(内存两首乐曲)。
(2)可通过功能键选择乐曲,播放不同音乐。
(3)要产生音频脉冲,只要算出某一音频的周期(1音频),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的IO反相,然后重复计时此半周期时间再对IO口反相,就可在IO脚上得到此频率的脉冲
(4)利用8051的内部定时器使其工作在计数器模式MODE1下,改变记数值TH0及TL0以产生不同频率的方法。
例如频率为523HZ,其周期T=1523=1912微秒,因此只要令计数器定时9561=956在每记数9次时将IO口反相,就可得到中音D0(523HZ)。
记数脉冲值与频率的关系公式如下:
N=Fi2FrN:
记数值
Fi:
内部计时一次为1微秒.故其频率为1MHZ
Fr;要产生的频率
(5):
起记数值的求法如下:
T=65536-N=65536-Fi2Fr
例如:
设K=65536,F==Fi=1MHZ,求低音D0(523HZ),高音的D0(1046HZ)的记数值。
T=65536-N=65536-Fi2Fr=65536-Fr=65536-500000Fr
低音D0的T=65536-=63627
中音D0的T=65536-=64580
低音D0的T=65536-=65059
3.设计内容
3.1硬件部分
本设计中用到89C51单片机,蜂鸣器,独立式按键。
(硬件电路原理图如图1所示)
3.11原理说明
当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。
(1)硬件电路中用K1,K2,K3,K4分别接P0.0,P0.1,P0.2,P0.3作为对应歌曲按键。
(2)用P1.0口接蜂鸣器。
(3)电路为12MHZ晶振频率工作。
音乐盒原理图
3.2.软件部分
本程序可以实现课程设计的基本要求,并可以通过按键播放两首歌曲,程序流程图如下:
4.本设计改进建议
(1)有时会出现程序一点错误也没有,但就是不能正常运行的现象,最后我们发现是因为程序中有的指令书写得不规范导致的,例如有的RET返回指令一定要按正确格式书写或在两行指令间最好不要留空行。
(2)程序中的跳转指令的运用很重要,为保险起见,都用LJMP,我们就遇到过跳转指令用错程序无法正常运行的现象。
当用JNZ指令时,跳转范围比较少,这时要用一个标号中转。
(3)编程时要注意,在程序开始时,要写入各定时器中断的入口地址。
(4)编程过程中要注意加注释或分割线,否则,在程序过长时容易变得很乱,不便于查找或更改。
5.收获与体会
(1)学习单片机的课时不多,对单片机的硬件设计,软件设计掌握的深度不够,但通过此次课程设计,明显的改善了,首先对于硬件电路的工作原理有了进一步的学习,同时有了一个提升;软件方面,在程序的设计,程序的调试方面都有了很大的进步。
(3)通过这次课程设计,我体会到了成功的喜悦,听着自己设计的程序下载到单片机中播放出音乐,心理非常自豪。
这次的课程设计在一定程度上改变了我学习单片机这门课程的态度,从最初的认为学它没有什么实际意义,到如今爱上单片机学习,并希望能将理论运用到实践,设计出更好更完整的系统。
我明白了一个人要想做好一件事,就必须具备自信心,耐心,还要有毅力,要胆大心细,要勇于尝试,要手脑并用,最后才能交出一份令人满意的答卷。
6.主要参考文献
[1]单片机原理及应用清华大学出版社
[3]王为青,程国钢.单片机KeilCx51应用开发技术[M].北京:
人民邮电出版社,2007.02
[4]阎石.数字电子技术基础[M].北京:
高等教育出版社,1998.12,第4版
[5]邓元庆.数字电路与逻辑设计[M].北京:
电子工业出版社,2001
附件1:
元件清单
名称
数量(个)
型号
备注
电阻
1
开关
1
单片机
1
AT89C51
蜂鸣器
1
电源
1
5V
晶振
1
12Hz
附件2:
音乐程序
K1EQUP0.0;定义引脚
K2EQUP0.1
K3EQUP0.2
K4EQUP0.3
SPKEQUP1.0;定义蜂鸣器引脚
ORG0000H
LJMPMAIN
ORG001BH
LJMPT1SER
ORG0030H
MAIN:
JNBK1,G1
JNBK2,G2
JNBK3,G3
JNBK4,G4
LJMPMAIN
G1:
LCALLGQ1
G2:
LCALLGQ2
G3:
LCALLGQ3
G4:
LCALLGQ4
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
GQ1:
MOVSP,#30H
MOVTMOD,#10H;设T1工作方式1
MOVIE,#88H;允许中断
LOOP1:
MOV40H,#00H;简谱码指针清0
LOOP2:
MOVA,40H;简谱码指针放入A
MOVDPTR,#TABLE1
MOVC+DPTR;到表格TABLE1中取简谱码
MOVR1,A;取到的简谱码暂存于R1
JZFINISH;简谱码是00H(结束码),转移
ANLA,#0FH;不是00H,取低4位(节拍码)
MOVR2,A;将节拍码存入R2中
MOVA,R1;将取到的简谱码再放入A
SWAPA;高低4位交换
ANLA,#0FH;取低4位(唱名码)
JNZSING;唱名码不是00H,转移
CLRTR1;唱名码是00H,则不发音
SJMPWY;转移至WY
SING:
DECA;唱名码减1
MOV50H,A;唱名码存入50H
RLA;乘2
MOVDPTR,#TABLE2
MOVC+DPTR;到表格TABLE2取计数值高8位
MOVTH1,A;计数值高8位存入TH1
MOV51H,A;计数值高8位存入51H
MOVA,50H;将取到的唱名码再放入A
RLA;乘2
INCA;唱名码加1
MOVC+DPTR;到表格TABLE2取计数值低8位
MOVTL1,A;计数值低8位存入TL1
MOV52H,A;计数值低8位存入52H
SETBTR1;启动T1
WY:
LCALLDELAY;调用基本单位时间(14拍)
INC40H;简谱码指针加1
SJMPLOOP2;取下一个简谱码
FINISH:
CLRTR1;停止T1
LJMPMAIN;重复播放
T1SER:
PUSHACC;将A的值暂存于堆栈
PUSHPSW;将PSW的值暂存于堆栈
MOVTL1,52H;重置定时器初值
MOVTH1,51H
CPLSPK;将SPK取反
POPPSW;至堆栈取回PSW值
POPACC;至堆栈取回A值
RETI;返回主程序
TABLE1:
DB84H,62H,82H,0B6H,02H;简谱码表
DB94H,0B4H,86H,02H
DB84H,42H,52H,64H,52H,42H
DB58H,04H,04H
DB84H,62H,82H,0B6H,0A2H
DB94H,0B4H,86H,02H
DB84H,52H,62H,76H,32H
DB48H,04H,04H
DB94H,0B4H,0B6H,02H
DB0A4H,92H,0A2H,0B6H,02H
DB92H,0A2H,0B2H,92H,92H,82H,62H,42H
DB58H,04H,04H
DB84H,62H,82H,0B6H,0A2H
DB94H,0B4H,86H,02H
DB84H,52H,62H,76H,32H
DB48H,04H,04H
DB00H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
GQ2:
MOVSP,#30H
MOVTMOD,#10H;设T1工作方式1
MOVIE,#88H;允许中断
LOOP12:
MOV40H,#00H;简谱码指针清0
LOOP22:
MOVA,40H;简谱码指针放入A
MOVDPTR,#TAB2
MOVC+DPTR;到表格TAB2中取简谱码
MOVR1,A;取到的简谱码暂存于R1
JZFINISH2;简谱码是00H(结束码),转移
ANLA,#0FH;不是00H,取低4位(节拍码)
MOVR2,A;将节拍码存入R2中
MOVA,R1;将取到的简谱码再放入A
SWAPA;高低4位交换
ANLA,#0FH;取低4位(唱名码)
JNZSING2;唱名码不是00H,转移
CLRTR1;唱名码是00H,则不发音
SJMPWY2;转移至WY2
SING2:
DECA;唱名码减1
MOV50H,A;唱名码存入50H
RLA;乘2
MOVDPTR,#TABLE2
MOVC+DPTR;到表格TABLE2取计数值高8位
MOVTH1,A;计数值高8位存入TH1
MOV51H,A;计数值高8位存入51H
MOVA,50H;将取到的唱名码再放入A
RLA;乘2
INCA;唱名码加1
MOVC+DPTR;到表格TABLE2取计数值低8位
MOVTL1,A;计数值低8位存入TL1
MOV52H,A;计数值低8位存入52H
SETBTR1;启动T1
WY2:
LCALLDELAY;调用基本单位时间(14拍)
INC40H;简谱码指针加1
SJMPLOOP22;取下一个简谱码
FINISH2:
CLRTR1;停止T1
LJMPMAIN
TAB2:
DB64H,62H,52H,64H,04H;简谱码表
DB62H,82H,62H,52H,64H,04H
DB44H,42H,52H,62H,82H,64H
DB54H,52H,42H,54H,04H
DB66H,81H,61H,92H,86H
DB92H,82H,82H,62H,86H,12H
DB64H,52H,52H,84H,62H,52H
DB54H,52H,42H,54H,04H
DB64H,62H,52H,64H,04H
DB62H,82H,62H,52H,64H,04H
DB44H,42H,52H,62H,82H,64H
DB54H,52H,42H,54H,04H
DB66H,81H,61H,92H,86H
DB92H,82H,82H,62H,84H,04H
DB02H,62H,52H,62H,84H,62H,52H
DB52H,46H,44H,04H
DB42H,52H
DB64H,62H,82H,94H,92H,0D2H
DB0D2H,0C2H,0B2H,92H,84H,04H
DB92H,82H,62H,52H,44H,22H,42H
DB54H,52H,42H,54H,42H,52H
DB64H,62H,82H,94H,92H,0D2H
DB0C2H,0B2H,0B2H,0C2H,0B4H,04H
DB84H,82H,62H,0A2H,0B2H,42H,52H
DB64H,04H,54H,04H
DB44H,04H,04H,04H
DB00H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
GQ3:
MOVSP,#30H
MOVTMOD,#10H;设T1工作方式1
MOVIE,#88H;允许中断
LOOP13:
MOV40H,#00H;简谱码指针清0
LOOP23:
MOVA,40H;简谱码指针放入A
MOVDPTR,#TAB3
MOVC+DPTR;到表格TAB3中取简谱码
MOVR1,A;取到的简谱码暂存于R1
JZFINISH3;简谱码是00H(结束码),转移
ANLA,#0FH;不是00H,取低4位(节拍码)
MOVR2,A;将节拍码存入R2中
MOVA,R1;将取到的简谱码再放入A
SWAPA;高低4位交换
ANLA,#0FH;取低4位(唱名码)
JNZSING3;唱名码不是00H,转移
CLRTR1;唱名码是00H,则不发音
SJMPWY3;转移至WY3
SING3:
DECA;唱名码减1
MOV50H,A;唱名码存入50H
RLA;乘2
MOVDPTR,#TABLE2
MOVC+DPTR;到表格TABLE2取计数值高8位
MOVTH1,A;计数值高8位存入TH1
MOV51H,A;计数值高8位存入51H
MOVA,50H;将取到的唱名码再放入A
RLA;乘2
INCA;唱名码加1
MOVC+DPTR;到表格TABLE2取计数值低8位
MOVTL1,A;计数值低8位存入TL1
MOV52H,A;计数值低8位存入52H
SETBTR1;启动T1
WY3:
LCALLDELAY;调用基本单位时间(14拍)
INC40H;简谱码指针加1
SJMPLOOP23;取下一个简谱码
FINISH3:
CLRTR1;停止T1
LJMPMAIN
TAB3:
DB82H,62H,64H;简谱码表
DB72H,52H,54H
DB42H,52H,62H,72H
DB82H,82H,84H
DB82H,62H,64H
DB72H,52H,54H
DB42H,62H,82H,82H
DB64H,04H
DB52H,52H,52H,52H
DB52H,62H,74H
DB62H,62H,62H,62H
DB62H,72H,84H
DB82H,62H,64H
DB72H,52H,54H
DB42H,62H,82H,82H
DB44H,04H
DB00H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
GQ4:
MOVSP,#30H
MOVTMOD,#10H;设T1工作方式1
MOVIE,#88H;允许中断
LOOP14:
MOV40H,#00H;简谱码指针清0
LOOP24:
MOVA,40H;简谱码指针放入A
MOVDPTR,#TAB4
MOVC+DPTR;到表格TAB4中取简谱码
MOVR1,A;取到的简谱码暂存于R1
JZFINISH4;简谱码是00H(结束码),转移
ANLA,#0FH;不是00H,取低4位(节拍码)
MOVR2,A;将节拍码存入R2中
MOVA,R1;将取到的简谱码再放入A
SWAPA;高低4位交换
ANLA,#0FH;取低4位(唱名码)
JNZSING4;唱名码不是00H,转移
CLRTR1;唱名码是00H,则不发音
SJMPWY4;转移至WY4
SING4:
DECA;唱名码减1
MOV50H,A;唱名码存入50H
RLA;乘2
MOVDPTR,#TABLE2
MOVC+DPTR;到表格TABLE2取计数值高8位
MOVTH1,A;计数值高8位存入TH1
MOV51H,A;计数值高8位存入51H
MOVA,50H;将取到的唱名码再放入A
RLA;乘2
INCA;唱名码加1
MOVC+DPTR;到表格TABLE2取计数值低8位
MOVTL1,A;计数值低8位存入TL1
MOV52H,A;计数值低8位存入52H
SETBTR1;启动T1
WY4:
LCALLDELAY;调用基本单位时间(14拍)
INC40H;简谱码指针加1
SJMPLOOP24;取下一个简谱码
FINISH4:
CLRTR1;停止T1
LJMPMAIN
TAB4:
DB42H,42H,44H,14H;简谱码表
DB62H,62H,64H,44H
DB42H,62H,84H,84H
DB72H,62H,54H,04H
DB52H,62H,74H,74H
DB62H,52H,64H,44H
DB42H,62H,54H,14H
DB32H,52H,44H,04H
DB
DB
DB
DB
DB
DB
DB
DB
DB00H
TABLE2:
DW0FD82H,0FDC8H,0FE06H;唱名码表
DW0FE22H,0FE56H,0FE85H
DW0FE9AH,0FEB2H,0FEE4H
DW0FF03H,0FF11H,0FF2BH
DW0FF42H,0FF4DH,0FF61H
DELAY:
MOVR4,#250;延时187ms的循环次数
LP1:
MOVR5,#0;延时0.935ms的循环次数
DJNZR5,$
DJNZR4,LP1
DJNZR2,DELAY;节拍数未到,转移
RET
END;程序结束
毕业论文通用格式分类号:
无锡职业技术学院
毕业设计(论文)
题目(团队课题要注明“团队”二字)
英文并列题目
所在团队
答辩委员会主任主答辩人
二零15年3月
毕业设计(论文)开题报告
毕业设计(论文)任务书
年月日
设计类建议格式一:
封面
开题报告
任务书
摘要、关键词(含中英文)
第一章序言
1.1XXX
1.2XXX
……
第二章XXX工艺设计
2.1XXX
2.2XXX
……
第三章XXX参数确定及计算
3.1XXX
3.2XXX
……
第四章XXX夹具设计
4.1XXX
4.2XXX
……
第N-1章XXX
N-1.1XXX
N-1.2XXX
……
第N章结论
小结与致谢
参考文献
毕业设计附录目录:
1.机械加工工艺流程图
2.机械加工工艺过程卡
3.机械加工工艺工艺卡
4.机械加工工艺工序卡
5.被加工零件图
6.夹具装配图
7.夹具零件图
8.其他系统图
9.其他原理图
10.零件三维造型图
11.夹具三维造型图
12.设计(作品)实物图
13.设计(作品)实物
14.开题报告
15.专业翻译材料
16.企业证明
17.与企业合作开发的技术服务合同
18.四技服务项目验收表
19.毕业设计(论文)指导记录表
20.毕业答辩评审表
表2毕业设计(论文)评阅教师评价表
表3毕业设计(论文)答辩记录表
表4毕业设计(论文)答辩评价表
表4毕业设计(论文)综合评价表
设计类建议格式二:
封面
开题报告
任务书
摘要、关键词(含中英文)
第一章绪论
1.1XXX课题的背景及意义
1.2XXX国内外研究现状
1.3XXX技术特点
1.4XXX课题研究的内容
……
第二章XXX系统的总体设计
2.1XXX系统整体方案设计思路
2.2XXX
……
第三章XXX系统的硬件设计
3.1XXX系统硬件设计思路
3.2XXX
……
第四章XXX系统的电路设计
4.1XXX系统电路设计思路
4.2XXX
……
第五章XXX系统的软件设计
5.1XXX系统软件设计思路
5.2XXX
……
第六章XXX系统的监控中心设计
6.1XXX系统监控中心设计思路
6.2XXX
……
第N-1章XXX
N-1.1XXX
N-1.2XXX
……
第N章总结与展望
小结并致谢
参考文献
毕业设计附录目录:
1.XXX系统的总体设计图
2.XXX系统的硬件设计图
3.XXX系统的电路设计图
4.XXX系统的软件设计方框图
5.软件光盘
6.其他系统图
7.其他原理图
8.设计(作品)实物图
9.设计(作品)实物
10.开题报告
11.专业翻译材料
12.企业证明
13.与企业合作开发的技术服务合同
14.四技服务项目验收表
15.毕业设计(论文)指导记录表
16.毕业答辩评审表
表2毕业设计(论文)评阅教师评价表
表3毕业设计(论文)答辩记录表
表4毕业设计(论文)答辩评价表
表4毕业设计(论文)综合评价表
论文版面格式:
无锡市机电五金行业市场调查
(三号、宋体、加粗、居中、1.5倍行距)
摘要:
(小五号,黑体)无锡位于长三角地区,近年来机电五金行业发展迅猛。
通过对无锡机电五金市场的调查,从调查目的、调查对象、调查范围、调查方式、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 音乐盒 课程设计