版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微机原理课程设计课题:电子发声设计实验专业:学号:姓名:、课题名称及设计组成员课题名称电子发声设计实验设计人姓名学号分工程序设计及调试r线路连接及查错报告日期、课题内容及要求课题名:电子发声设计实验1、要求:根据实验提供的音乐频率表和时间表,编写程序控制8254,使其输出连接到扬声器上能发出相应的乐曲。要求至少要完成下列项目的一项(1) 可播放两首不同的乐曲(2) 根据不同的按键播放不同的音乐(3) 可改变音乐的音调(4) 可显示播放乐曲的名称2、所设计的电路实现的功能:设计中完成了实验要求中提出的要求。设计中实现了,用按键进行随时切换两首音乐(友谊地久天长,两只老虎)和对所播放的当前音乐进行
2、两种不同音调(中音和低音)的随时切换的控制操作,其中用总开关K_7进行播放开关的总控制,开关K_0用于音乐播放的选择,开关K_1用于对当前播放音乐的音调进行选择。设计中还实现了对16X16的LED管的控制运用点阵汉字输出歌名。三、方案、系统组成框图和工作原理说明1、设计方案及原理:本设计中音乐播放控制为利用对8255和8254芯片的控制操作得以实现。音乐名的输出为利用总线对16X16点阵地控制来实现。(1)本设计中PC发声系统以8254的计数器0为核心。系统初始化时,计数器0工作在方式3的“方波发声器”方式,同过将音乐频率转换为相应的计数初值,改变计数器0的计数初值就可以使扬声器发出不同的频率
3、的音响。(2)发生系统控制为受8255芯片控制,外界通过改变对8255芯片的PA口的不同输入来实现播放功能上的选择。(3)演奏但音符,为利用一个音符对应一个频率,将与一个频率对应的计数初值写入计数器0,扬声器就发出相应的音调。计数器初值的计算公式为:计数初值=1MHZ+输出频率,其中1MHZ转换为16进制为0F4240H。(4)控制音符的演奏时间,是通过每一个音符规定一个“单位时间”:单位时间XN=音符的演奏时间。其中,N为调试参数,一首歌只有一个调试参数。2、系统组成(电路图):图1.对8254与系统的连接DCXPACPA'D0PA2PA3PA4D7.PA5PA6PA7A0A1825
4、5单WR元RDCSQO-MO-M<)-?一元*一展-4旌-7开关按键单图3.点阵汉字的接线00QL1点阵L8LED显R1工单R8元四、程序功能描述及程序流程(1)程序功能描述:如程序流程图所示。程序下载链接、并运行后,开始通过对外界按键扫描,来检查应进行采取的操作,根据外界不同的输入,完成不同的程序跳转,从而实现相应的播放功能。其中K0、K1为外界电子控制单元。分为0和1,即低电平和高电平。(2)程序流程图:五、程序源代码及注释1.在LED单元中显示歌曲名称ROW1EQU0600H;端口定义ROW2EQU0640HCOL1EQU0680HCOL2EQU06C0HSTACK1SEGMENT
5、STACKDW256DUPSTACK1ENDS;定义为数据段INCLUDEHZDOTht.ASM;数据字段为汉字点阵库,在HZDOTht.ASM;文件中CODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,ROW1MOVAL,00HOUTDX,ALMOVDX,ROW2OUTDX,ALMOVAL,0ffHMOVDX,COL1OUTDX,ALMOVDX,COL2OUTDX,ALBG0:MOVAX,160MOVSI,OFFSETHZDOThtBG1:CALLDISPADDSI,2DECAXJZBG0JMPBG1显示汉字子程序;入口
6、参数:SI=存放汉字起始地址DISP:ML0:ML1:ML2:MOVCX,000FHPUSHAXPUSHCXMOVBL,01HMOVCX,0008HMOVDX,ROW1MOVAL,00HOUTDX,ALMOVAL,SInotalMOVDX,COL1OUTDX,ALINCSIMOVAL,SInotalMOVDX,COL2OUTDX,ALINCSIMOVDX,ROW1MOVAL,BLOUTDX,ALROLBL,1CALLDELAYLOOPML1MOVDX,ROW1MOVAL,00HOUTDX,ALMOVCX,0008HMOVDX,ROW2MOVAL,00HOUTDX,ALMOVAL,SInotal
7、MOVDX,COL1OUTDX,ALINCSIMOVAL,SInotalMOVDX,COL2OUTDX,ALINCSIMOVDX,ROW2;控制0-7行;0-7列;8-15歹U;控制0-7行;控制8-15行;0-7列;8-15歹U;控制8-15行MOVAL,BLOUTDX,ALROLBL,1CALLDELAYLOOPML2MOVDX,ROW2MOVAL,00HOUTDX,ALSUBSI,32POPCXLOOPML0POPAXRETDELAY:PUSHCX;延时子程序MOVCX,0100HDL1:PUSHAXPOPAXLOOPDL1POPCXRETCODEENDSENDSTART此程序中8255
8、芯片和点阵LED单元的连接,用来实现在点阵LED显示单元来显示汉字的功能。通过调用汉字存放单元的地址,在LED单元中可以显示出流动的字体。此程序实现的字体是“友谊天长地久”。2.此程序用来实现程序流程图中所示的功能,即通过开关来控制播放曲目的的切换和音调的改变。IOY3EQU06C0HMY8254_COUNT0MY8254_COUNT1MY8254_COUNT2MY8254_MODEEQUIOY3+00HEQUIOY3+02HEQUIOY3+04HEQUIOY3+06H;8254计数器0端口地址;8254计数器1端口地址;8254计数器2端口地址;8254控制寄存器端口地址IOY0EQU060
9、0HMY8255_AEQUIOY0+00HMY8255_BEQUIOY0+02HMY8255_CEQUIOY0+04HMY8255MODEEQUIOY0+06HSTACK1SEGMENTSTACKDW256DUPSTACK1ENDSFREQ._LISTDW371,495,495,495,624,556,495,556,624表DW495,495,624,742,833,833,833,742,624DW624,495,556,495,556,624,495,416,416,371DW495,833,742,624,624,495,556,495,556,833DW742,624,624,742
10、,833,990,742,624,624,495DW556,495,556,624,495,416,416,371,495,0TIME_LISTDB4,6,2,4,4,6,2,4,4表DB6,2,4,4,12,1,3,6,2DB4,4,6,2,4,4,6,2,4,4DB12,4,6,2,4,4,6,2,4,4DB6,2,4,4,12,4,6,2,4,4DB6,2,4,4,6,2,4,4,12FREQ_LIST1DW330,371,416,330歌频率表DW330,371,416,330DW416,441,495DW495,556,495,441,416,330DW495,556,495,441
11、,416,330DW330,248,330DW330,248,330,0DATASEGMENT;第一首歌频率;第一首歌时间;第二首TIME_LIST1DB4,4,4,4DB4,4,4,4DB4,4,8DB4,4,8DB2,2,2,2,4,4DB2,2,2,2,4,4DB4,4,8DB4,4,8;第二首歌时间表FREQ_LIST2音后;第一首歌频率表变FREQ_LIST3TIME_LIST2;第一首歌时间表变音后DB4,6,2,4,4,6,2,4,4DB6,2,4,4,12,1,3,6,2DB4,4,6,2,4,4,6,2,4,4DB12,4,6,2,4,4,6,2,4,4DB6,2,4,4,1
12、2,4,6,2,4,4DB6,2,4,4,6,2,4,4,12;第二首歌频率表变音后;第二首歌时间表变音后TIME_LIST3DB4,4,4,4DB4,4,4,4DB4,4,8DB4,4,8DB2,2,2,2,4,4DB2,2,2,2,4,4DB4,4,8DB4,4,8DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,MY8255_MODE;初始化8254工作方式MOVAX,90HMOVDX,AX;A口作为输入INPUT:MOVDX,MY8254_MODE;初始化8254工作方式MOVAL,36H;定时器
13、0、方式3OUTDX,ALMOVDX,MY8255_A;检查输入,是否要设中断问题INAL,DXCMPAL,80HJZNEARPTRBEGINCMPAL,81HJZNEARPTRBEGIN1CMPAL,82HJZNEARPTRBEGIN2CMPAL,83HJZNEARPTRBEGIN3JNZINPUTBEGIN:MOVSI,OFFSETFREQ_LIST;装入频率表起始地址MOVDI,OFFSETTIME_LIST;装入时间表起始地址PLAY:MOVDX,MY8255_AINAL,DXCMPAL,80HJNZNEARPTRINPUTMOVDX,0FH输入时钟为1MHz,1M=0F4240HMO
14、VAX,4240HDIVWORDPTRSI;取出频率值计算计数初值,0F4240H/输出频率MOVDX,MY8254_COUNT0OUTDX,AL;装入计数初值MOVAL,AHOUTDX,ALMOVDL,DI;取出演奏相对时间,调用延时子程序CALLDALLYADDSI,2INCDICMPWORDPTRSI,0JENEARPTRINPUTJMPPLAYBEGIN1:MOVSI,OFFSETFREQ_LIST1MOVDI,OFFSETTIME_LIST1PLAY1:MOVDX,MY8255_AINAL,DXCMPAL,81HJNZNEARPTRINPUTMOVDX,0FHMOVAX,4240HD
15、IVWORDPTRSIMOVDX,MY8254_COUNT0OUTDX,ALMOVAL,AHOUTDX,ALMOVDL,DICALLDALLYADDSI,2INCDICMPWORDPTRSI,0JENEARPTRINPUTJMPNEARPTRPLAY1BEGIN2:MOVSI,OFFSETFREQ_LIST2MOVDI,OFFSETTIME_LIST2PLAY2:MOVDX,MY8255_AINAL,DXCMPAL,82HJNZNEARPTRINPUTMOVDX,0FHMOVAX,4240HDIVWORDPTRSIMOVDX,MY8254_COUNT0;判断是否到曲末?;装入频率表起始地址;装
16、入时间表起始地址输入时钟为1MHz,1M=0F4240H;取出频率值计算计数初值,0F4240H/输出频率;装入计数初值;取出演奏相对时间,调用延时子程序;判断是否到曲末?;装入频率表起始地址;装入时间表起始地址输入时钟为1MHz,1M=0F4240H;取出频率值计算计数初值,0F4240H/输出频率OUTDX,AL;装入计数初值MOVAL,AHOUTDX,ALMOVDL,DI;取出演奏相对时间,调用延时子程序CALLDALLYADDSI,2INCDICMPWORDPTRSI,0JENEARPTRINPUTJMPPLAY2BEGIN3:MOVSI,OFFSETFREQ_LIST3MOVDI,O
17、FFSETTIME_LIST3PLAY3:MOVDX,MY8255_AINAL,DXCMPAL,83HJNZNEARPTRINPUTMOVDX,0FHMOVAX,4240HDIVWORDPTRSIMOVDX,MY8254_COUNT0OUTDX,ALMOVAL,AHOUTDX,ALMOVDL,DICALLDALLYADDSI,2INCDICMPWORDPTRSI,0JENEARPTRINPUTJMPPLAY3;判断是否到曲末?;装入频率表起始地址;装入时间表起始地址输入时钟为1MHz,1M=0F4240H;取出频率值计算计数初值,0F4240H/输出频率;装入计数初值;取出演奏相对时间,调用延
18、时子程序;判断是否到曲末?DALLYPROC;延时子程序D0:MOVCX,0010HD1:MOVAX,0F00HD2:DECAXJNZD2LOOPD1DECDLJNZD0RETDALLYENDPDONE:MOVAX,4C00HINT21HCODEENDSENDSTART本程序中,分另1J设定了TIME_LIST1TIME_LIST2TIME_LIST3和FREQ_LIST1FREQ_LIST2FREQ_LIST3,其中TIME_LIST是歌曲时间表,FREQ_LIST是歌曲频率表。当程序下载链接无误后,执行程序;如程序流程图所示;K0,K1为控制开关,当外设输入为00时,电子发声单元播放“友谊
19、天长地久”的低音调;当为01时,播放“两只老虎”的低音调;当10时播放“友谊天长地久”的原调,当11时播放“两只老虎”的原调。在播放每首歌曲时,程序通过一直扫描键盘的输入来判断键盘输入值是否发声变化,如果发声变化,则执行相应的程序,如果没有发生变化则一直播放当前播放的歌曲。六、电路的连接及调试1 .电路连接电路的连接与调试过程中,由于在试验箱中操作,82548255芯片已内置,所以对照着电路图,电路的连接比较容易完成。在完成8255单元的连接时候,由于此处没有给出电路图,同过与小组成员的讨论,给出了电路连接方案,如图2所示。在电路的连接过程中,要注意系统的地址总线与芯片的地址总线相连,单元的A
20、0、A1分别于系统的XA0XA1相连,IOW与WR、IOR与RD、IOY与CS相连。实现第二个程序的时候,由于要用到开关单元按键,因此8255的程序总线PA0-PA7要分别与开关按键单元中的K_0-K_7连接。2 .程序调试在试验的调试过程中,会遇到不能加载的情况,检查后发现是因为试验箱与电脑的连接出现了问题:由于接口的松动,使得在端口测试的过程中总会出现接口通信失败的情况,此时不光要检查连接的接口是否松动,还要在端口中选择合适的端口,来完成试验箱与电脑的连接。还有,调试时会遇到没有按照程序设计的功能来完成的情况,在这种情况下,应该首先检查程序是否有错,如果没有,再检查试验箱中电路连接是否有错
21、误。一般来说,错误都出现在连线上面:或者程序总线插在了地址总线处,或者连线的插口接反了。这种情况都比较容易来处理。七、调试中出现的问题、原因及排除方法调试过程中出现的问题。1、在程序编译、加载、链接无误的情况下,下载程序后,单击运行,则程序会出现从START直接跳到END的情况。遇到这种情况,最大的可能是程序中有问题,但不是明显的问题,并不是错误,但是运行会直接结束。首先就要从程序检查开始,一般这种错误的出现有可能就是长转指令的运用错误,或者在设定时间、判断程序是否执行方面出了问题。通过仔细检查程序和修改后,这类问题就能得到解决。2、调试过程中出现jumpoutoftherange的错误这种情
22、况,是由于程序太长,超出了JMP跳转的能力范围。解决这种问题的方法是增加中间过渡指令,从而缩短每条指令的长度。3、LED显示单元中显示的字体与实际字体相反。这种情况是由于把字的点阵的高低位与试验箱的显示方式弄反了,通过调整字的点阵的高低位的位置,就可以使此问题得到解决。4、在调试过程中还会出现一些原因不明的错误,如乱码,符号等错误。这类错误的出现是由于在复制程序代码时,同时将程序的注释一起复制到了程序中,而有些汉字的编码不能被识别,从而出现了这些错误。解决的办法是将出现错误行的汉字注释删掉。八、收获和体会这次的课程设计,其实也就是考验我们是否能将所学知识与动手结合起来的一次很好的机会。微机原理
23、这门课程我们在上学期学过,学习这门课程的目的就是要将所学的汇编知识运用到实际当中来;在这次的课程设计中,有几个题目我们可以选择,为了更好的重温学习过的知识,我选择了电子发声试验这个课题。整个设计通过了软件和硬件上的调试。我想这对于自己以后的学习和工作都会有很大的帮助。在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。对于电子发声试验,其程序是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对系统的结构很熟悉。因此可以说系统的设计是软件和硬件的结合,二者是密不可分的。通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。通过实习,我才真正领略到“艰苦奋斗”这一词的真
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新教师个人思想工作总结(3篇)
- 第1课时 1~5的认识
- 2026综合岗面试题真题及答案
- 2026年一建市政实务考前核心考点拔高试卷及答案
- 2026年一建民航实务必背考题试卷及答案
- 2026年一建矿业实务考前仿真测评冲刺试卷及答案
- 2026年一建经济考前考点梳理卷试卷及答案
- 2026法治信仰面试题及答案
- 2026高铁导购面试题目及答案
- 2026关于安保方面的面试题及答案
- 乡镇(街道功能区)党政领导干部离任经济事项交接表(开发区和园区适用本表-修订)
- 第一单元 文明的产生和古代亚非文明知识点提纲-2026-2027学年统编版九年级历史上册
- 2025年四川省公开遴选公务员笔试(案例分析)试题及答案
- 闲鱼二手摩托车交易合同
- 民办培训机构消防安全教育课件
- 人工气道患者转运安全
- 2026年重庆干部网络测试题及答案
- 留学生入学教育
- 2025年国家开放大学电大本科《园艺植物育种学》期末试题及答案
- 输变电工程质量监督检查大纲
- 安徽省A10联盟2026届高三下学期2月学情检测(开学考)语文试题(含答案)
评论
0/150
提交评论