微机原理课程设计报告50977.docx
《微机原理课程设计报告50977.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计报告50977.docx(17页珍藏版)》请在冰点文库上搜索。
![微机原理课程设计报告50977.docx](https://file1.bingdoc.com/fileroot1/2023-5/8/86e03730-0fb4-4a82-b95e-68f0555549c0/86e03730-0fb4-4a82-b95e-68f0555549c01.gif)
微机原理课程设计报告50977
扬州大学
微机原理课程设计报告
题目键控音乐播放器
班级计科
学号
姓名
指导教师李云
成绩
课程设计的目的和意义
微机原理及应用是一门非常重要的课程,且实践性较强。
要求学生熟悉计算机的组成、内部结构、汇编语言程序设计、常用接口电路的使用,并具有一定的系统设计、开发、调试的能力。
课程设计是对学生的一种基本素质训练的较好形式,通过课程设计加强学生的实践能力、动手能力、和学习能力。
学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。
通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。
课程设计的要求
1.明确课设任务,复习与查阅有关资料
2.按要求完成课设内容,课设报告要求文字和图工整、思路清楚、正确。
3.按设计要求画出详细的电路接线图,并注名芯片等器件的名称和管脚。
4.做硬件内容的同学必须将所做的课设内容通过指导教师签字后,方可进行接线和调试。
5.写出完整的程序。
1.
2.设计并实现一个键控音乐播放器,要求如下:
3.①通过计数器8253产生方波信号作为音阶频率发生器,驱动喇叭放音。
4.②由并行接口8255控制扬声器的启停,根据不同按键,播放不同的音乐。
总体设计方案
所有音乐都是由各个不同频率的音阶和其延续时间的长短来实现的。
不同的音乐是由各个音阶按某种排列各自播放一定时间形成的,将各音乐音阶和其延续时间存在数据段中,然后根据不同按键值选择不同的音阶和时间表,再使用计数器产生该音阶频率。
而我们学过的有计数器可以产生各种频率,所以我们主要采用计数器8253产生各音符,用8255并行接口来控制扬声器的开关,达到播放音乐的功能。
把一个周期的波形分成32份,然后每份给8253一个值让他转换成模拟信号,不同的频率可以用8253计数器控制,比如要产生261Hz的频率,使用1MHz的话,周期就为1/261=3.83ms,分成32份,每份间隔时间就是3.83ms/32=0.12ms,换句话说就是送计数器0的初值为1M/261/32=120次。
5.
各个音符的对应频率表:
音符 频率/HZ半周期/us 音符 频率/HZ 半周期/us
低1DO 262 1908 #4FA# 740 0676
#1DO# 277 1805 中5SO 784 0638
低2RE 294 1700 #5SO# 831 0602
#2RE# 311 1608 中6LA 880 0568
低3M 330 1516 #6LA# 932 0536
低4FA 349 1433 中7SI 988 0506
#4FA# 370 1350 高1DO 1046 0478
低5SO 392 1276 #DO# 1109 0451
#5SO# 415 1205 高2RE 1175 0426
低6LA 440 1136 #2RE# 1245 0402
#6LA# 466 1072 高3M 1318 0372
低7SI 494 1012 高4FA 1397 0358
中1DO 523 0956 #4FA# 1480 0338
#1DO# 554 0903 高5SO 1568 0319
中2RE 578 0842 #5S0# 1661 0292
#2RE# 622 0804 高6LA 1760 0284
中3M 659 0759 #6LA# 1865 0268
中4FA 698 0716 高7SI 1976 0253
部分电路设计及功能解说
1、频率发生电路
使用8253产生音符频率。
8253采用方式3,产生方波信号,根据输入计数初值的不同产生不同频率的方波信号来驱动扬声器。
设某音符频率为fHz,而CLK脉冲是1MHz,则计数初值N=1M/f。
8253的控制端口为28BH,控制字为36H。
2、扬声器开关控制电路
使用8255并行接口芯片来控制扬声器的开和关,PC0始终接低电平,PA0和8253的OUT0接在与门上,这样只有PA0=1时扬声器才有可能开通,否则不发声。
关闭扬声器的方法是:
从PC口读入数据再从PA口输出;而开扬声器时只要在输出PA口数据前对数据进行一个取反操作就可以了。
硬件接线图
软件设计流程图
1、总流程图
2.音乐播放子程序流程图
程序段功能汇总
MAIN程序
MAIN程序是总程序,输出说明,等待用户按键并读取键值。
根据不同的按键选择调用播音子程序播放不同的歌曲。
PLAY子程序
PLAY子程序是播音子程序,SI指向音节表中的频率,BP指向音节表中的时间。
从SI的指向的音节表中取一个频率,只要不是-1,即有效就再读取时间,然后计算计数初值送入计数器,产生各种频率。
开启扬声器,根据所取的时间调用若干次延时子程序。
这段时间扬声器就发出该频率的声音,延时结束,就关闭扬声器,调用音节之间的小延时程序。
最后修改SI和BP,指向下一个频率,重复上面的工作。
DELAY子程序和DELAY_OFF子程序
两个都是子程序,采用空操作循环多次的方法,只是第二个延时时间较短,大概为5ms。
试验结果展示:
1.菜单界面展示
2.选择歌曲,播放
3.选择0退出
4.输入错误数字,展示错误选择界面
课程设计总结和体会
通过这次课程设计,我们对各个芯片有了进一步的了解,对各个芯片的功能有了更深刻的认识和体会,平时上课的理论知识只是停留在理论的层面,只有通过了这样的试验才能更好的体会到,做到了理论和实际的相结合,使理论知识真正运用到了实践中去。
在课程设计过程中,同组人员之间相互合作,共同研究使我更加坚信了团体的力量。
在团体的共同协作和努力下,任何的难题都可以被解决!
我们大家在实验的时候都团结合作,遇到问题时候一起探讨,增强了我们的合作精神。
经过这次课程设计,我受益匪浅,我会在今后的学习中更好的提升自己的动手能力和思考能力。
感谢老师给我们这次锻炼的机会,实验过程中碰到了很多的难题和障碍,我认识到平时基础知识的重要性,只有能够熟练的掌握才能在实验过程中得心应手,否则一步错则整个试验都会陷入困境,因而,严谨的态度是试验成功的重要保障!
程序清单
SSEGSEGMENTPARASTACK'stack'
dw4000hdup(0)
SSEGENDS
DSEGSEGMENT
INFO1DB0DH,0AH,'--------------------------',0DH,0AH,'HEREARE6SONGS:
',0DH,0AH,0DH,0AH,'$'
INFO2DB'1.CANON',0DH,0AH,'$'
INFO3DB'2.LOVEBUDGET',0DH,0AH,'$'
INFO4DB'3.BEAUTIFUL',0DH,0AH,'$'
INFO5DB'4.NIGHTOFSHANGHAI',0DH,0AH,'$'
INFO6DB'0.EXIT',0DH,0AH,'$'
INFO9DB'YOUHAVECHOSEN:
$'
INFOADB'THANKYOUFORYOURUSE',0DH,0AH,'$'
INFOBDB'---------------------------',0DH,0AH,'PRESSTHEKEYTOSELECTSONG!
',0DH,0AH,'$'
INFOCDB0DH,0AH,'-------------------',0DH,0AH,'|INVALIDSELECTION|',0DH,0AH,'-------------------',0DH,0AH,'$'
FREG1DW1568,1318,1397,1568,1318,1397,1568,784,880,998,1046,1175,1318,1397,1318,1046,1175,1318,659,698,784,880,784
DW698,784,659,698,784,698,880,784,698,659,578,659,578,659,578,698,784,880,698,880,784,880,998,1046
DW784,880,998,1046,1175,1318,1397,1568,1318,1046,1175,1318,1175,1046,1175,998,1046,1175,1318,1175,1046,998,1046
DW880,998,1046,523,578,659,698,659,578,659,1046,998,1046,880,1046,998,880,784,698,784,698,659,698,784,880,998
DW523,880,1046,998,1046,998,880,998,1046,1175,1046,998,1046,880,998,-1
TIME1DW2,1,1,2,10DUP
(1),2,1,1,2,10DUP
(1),2,1,1,2,10DUP
(1),2,1,1,2,10DUP
(1),2,1,1,2,10DUP
(1),2,1,1,2
DW10DUP
(1),2,1,1,2,10DUP
(1),2,1,1,2,10DUP
(1)
FREG2DW659,880,1046,1046,659,880,1046,998,998,880,784,659,578,578,578,440,578,659,784,659,998,998,784,659,659,880
DW1046,1046,659,880,1046,1318,1318,1175,1046,1175,1318,1318,1175,1046,1175,1175,1046,998,784,659,784,880,880,-1
TIME2DW6DUP
(2),4,4DUP
(2),4,6DUP
(2),4,4DUP
(2),4,6DUP
(2),4,4DUP
(2),4,12DUP
(2),4
FREG3DW330,392,392,330,392,392,440,523,523,330,392,392,440,440,440,659,578,578,392,392,578,523,523
DW330,330,392,392,392,392,262,294,294,294,330,392,392,330,392,392,440,523,523,330,392,392,440,440,440
DW659,578,578,392,392,578,523,523,440,440,494,523,523,523,523,578,578,578,330,392,440,523
DW523,440,440,392,294,392,392,330,330,330,330,294,294,262,294,262,262,440,440,330,392,440,523,523,440
DW440,392,294,392,392,330,330,330,330,294,294,262,440,440,392,392,392,330,392,440,523,523,440,440,392
DW294,294,392,330,330,330,330,294,294,262,294,262,262,440,440,330,392,440,523,523,440,440,392,294,392
DW392,330,330,330,330,294,294,262,294,294,262,262,262,330,392,440,440,440,392,440,392,294,392,330,330,392
DW440,440,-1
TIME3DW2,2,6,2,8,12,2,2,6,2,8,4,2,2,4,2,2,6,2,4,2,2,4,6DUP
(2),4,2,2,8,12,2,2,6,2,8,12,2,2,6,2,8,4,2,2,4,2,2,6
DW2,4,2,2,4,6DUP
(2),4,2,2,8,4,11DUP
(2),6,4,2,2,2,4,2,4,4,2,6,4,11DUP
(2),6,4,2,2,2,4,2,4,2,2,8,4,11DUP
(2)
DW6,4,2,2,2,4,2,4,4,2,6,4,11DUP
(2),6,4,2,2,2,4,2,4,2,2,8,12,10DUP
(2),5DUP(8)
FREG4DW523,659,392,659,659,1318,659,494,523,578,523,494,440,440,392,392,349,349,330,440,392,578,440,392,578
DW659,578,659,494,440,392,330,523,440,659,523,440,578,659,784,659,659,578,523,523,784,659,578,523,494,440
DW392,440,523,523,330,578,494,440,392,330,392,440,494,440,392,392,523,440,392,330,494,523,578,659,578,523,494
DW440,494,523,578,392,578,392,330,440,392,578,440,392,578,659,578,659,494,440,392,330,523,440,659,523,440
DW578,659,784,659,659,578,523,523,-1
TIME4DW4DUP
(2),8,8,4,4DUP
(1),2,2,3,1,2,2,3DUP(4),8,4,4,8,6,2,6,2,4,4,8,4,4,8,4,4,8,4,2,2,4,2,2,8,8,6,2,4,4,4DUP
(2)
DW5DUP(4),2,2,4,2,2,6,2,8,10,4,4,4,2,6,2,3,1,3,1,3,1,2,2,6DUP(4),8,4,4,8,6,2,6,2,4,4,8,4,4,8,4,4,8,2,2,4,2,2,8,8
DSEGENDS
CSEGSEGMENT
assumecs:
CSEG,ds:
DSEG,es:
DSEG,ss:
SSEG
INITPROC
movax,dseg
movds,ax
moves,ax
ret
INITENDP
MAINPROC
callINIT
RE:
MOVDX,28BH
MOVAL,89H
OUTDX,AL
MOVDX,28AH
INAL,DX
MOVDX,288H
OUTDX,AL
LEADX,INFO1
MOVAH,09H
INT21H
LEADX,INFO2
INT21H
LEADX,INFO3
INT21H
LEADX,INFO4
INT21H
LEADX,INFO5
INT21H
LEADX,INFO6
INT21H
LEADX,INFOB
INT21H
MOVAH,01H
INT21H
CMPAL,'1'
JEMUSIC1
CMPAL,'2'
JEMUSIC2
CMPAL,'3'
JEMUSIC3
CMPAL,'4'
JEMUSIC4
CMPAL,'0'
JEEXIT
LEADX,INFOC
MOVAH,09H
INT21H
JMPRE
MUSIC1:
MOVSI,OFFSETFREG1
MOVBP,OFFSETTIME1
CALLPLAY
JMPRE
MUSIC2:
MOVSI,OFFSETFREG2
MOVBP,OFFSETTIME2
CALLPLAY
JMPRE
MUSIC3:
MOVSI,OFFSETFREG3
MOVBP,OFFSETTIME3
CALLPLAY
JMPRE
MUSIC4:
MOVSI,OFFSETFREG4
MOVBP,OFFSETTIME4
CALLPLAY
JMPRE
EXIT:
MOVDX,28BH
MOVAL,89H
OUTDX,AL
MOVDX,28AH
INAL,DX
MOVDX,288H
OUTDX,AL
LEADX,INFOA
MOVAH,09H
INT21H
movax,4c00h
int21h
MAINENDP
PLAYPROC
L1:
MOVBX,DS:
[SI]
CMPBX,-1
JEL0
MOVCX,DS:
[BP]
MOVDL,CL
ADDDL,30H
MOVAH,02H
INT21H
MOVDX,0FH
MOVAX,4240H
DIVBX
MOVBX,AX
MOVDX,283H
MOVAL,36H
OUTDX,AL
MOVDX,280H
MOVAX,BX
OUTDX,AL
MOVAL,AH
OUTDX,AL
MOVDX,28BH
MOVAL,89H
OUTDX,AL
MOVDX,28AH
INAL,DX
NOTAL
MOVDX,288H
OUTDX,AL
ROD:
CALLDELAY
LOOPROD
MOVDX,28BH
MOVAL,89H
OUTDX,AL
MOVDX,28AH
INAL,DX
MOVDX,288H
OUTDX,AL
CALLDELAY_OFF
ADDSI,2
ADDBP,2
JMPL1
L0:
RET
PLAYENDP
DELAYPROC
PUSHAX
PUSHBX
PUSHCX
PUSHDX
MOVBX,09FH
LL1:
MOVCX,0FFFFH
LOP:
LOOPLOP
DECBX
JNZLL1
POPDX
POPCX
POPBX
POPAX
RET
DELAYENDP
DELAY_OFFPROC
PUSHAX
PUSHBX
PUSHCX
PUSHDX
MOVBX,0FH
LL2:
MOVCX,0CFFFH
LOP2:
LOOPLOP2
DECBX
JNZLL2
POPDX
POPCX
POPBX
POPAX
RET
DELAY_OFFENDP
CSEGENDS
ENDMAIN
Welcome!
!
!
欢迎您的下载,
资料仅供参考!