课程设计简易电子琴设计_第1页
课程设计简易电子琴设计_第2页
课程设计简易电子琴设计_第3页
课程设计简易电子琴设计_第4页
课程设计简易电子琴设计_第5页
已阅读5页,还剩14页未读, 继续免费阅读

下载本文档

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

文档简介

1、设计任务描述1.1 设计题目:简易电子琴设计1.2 设计目的通过本学期对微机原理的学习,掌握的知识还停留在理论的上。但是这是一门实践性较强的课程,让学生在学完该课程之后,进行一次课程设计,使学生将课堂所学的知识和实践有机结合起来,初步掌握计算机应用系统设计的步骤和接口设计的方法,提高分析和解决实际问题的能力。通过设计实践,培养学生查阅专业资料,工具书或参考书,了解有关工业标准,掌握现代设计手段和软件工具,并能以图纸和说明书表达设计思想和结果的能力。通过设计,不但要培养和提高学生解决工程具体问题,动脑动手的技术工作能力,而且还要逐步建立科学正确的设计和科研思想,培养良好的设计习惯,牢固树立实事求

2、是和严肃认真的工作态度。具体要求如下:(1) 可以弹出7个音阶;(2) 弹奏简短音乐;(3) 通过改变键盘输入来改变8254输出频率,实现扬声器发音。1.3 设计要求1、总体内容:设计简易电子琴,能发出至少7种音阶;2、接口设计:根据题目和所用的接口电路芯片设计出完整的接口电路,并在实验系统上完成电路的连接和调试通过;3、程序设计:要求画出程序框图,设计出全部程序并给出程序设计说明和程序注释;4、前期完成的实验有:8255并行接口实验。1.4 简易电子琴电子琴简单功能实现以及利用由8255芯片控制的小键盘(含数码管、键盘阵列)实现控制电子琴。主程序由电子琴和键盘控制的两个程序有机组成,两个程序

3、简单拼凑在一起是不能实现的。经过实际调试和修改,将原电子琴程序改为2个子程序:start(实现播放音阶)和delay(实现播放音阶时延时);将原键盘控制程序改为1个主程序:ccscan(实现键盘扫描)。各个子程序通过寄存器通信,寄存器存有当前输入的键盘码,同时为电子琴和键盘控制两子程序服务。调试后,主程序能实现课程设计要求的功能。设计概要2.1 设计内容本次课程设计的内容为简易电子琴的设计与实现,利用8255将键盘输出值返回CPUCPU!过分析命令8254输出相应频率的方波波形,再经过扬声器发出声音。由于PC计算机的时钟晶振为1.1931816MHz可以利用微机实验箱里面的发生单元发出声音。表

4、2.1各音阶标称频率值:音符1234567重音对应频率(Hz)131147165175196220247低音对应频率(Hz)262294330349392440494中音对应频率(Hz)523587659698784880988高音对应频率(Hz)10641175131813971568176019752.2 设计环境与器材(1) PC计算机一台用于对程序的编译测试等,实现对实验设备进行控制,提供整个程序的运行平台,并且收集和释放硬件信号,实现程序功能。(2)微机原理实验箱一台此设备提供了8255、8259等必要芯片。并且能通过接受计算机传来的信息实现相应的功能。(3)导线若干条用于电路和芯片

5、之间的连接2.3 主要芯片功能2.3.1 8255主要功能8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位、32位等。用+5V单电源供电,能在以下三种方式下工作:方式0-基本输入/出方式、方式1-选通/&入/出方式、方式2-双向选通工作方式。8255的内部结构及引脚如图2.1所示:双向数据忘绯0.D7B1L 控制 部件i也打控制矍建CU(能4位)P 匚 7.PCAIO pr k proio,PB7-PBCC 口高

6、*位)AIJSJ1 PA7.PA03 II O 口 3D1 o r,6 1- 4 O 1 2 3 O 1 JdA.AARI匚5AACCCCC 匚 CCBBBp pp pI ” PPPFPFPFPPP14011393招4275365337E93210S25?SI11301229132819222021P_l4PA5PA6PA7-帝RRESETDOD1-D2D?D4D5D6D7-VCCPB7PB6PB5PB4PEBB门L 8位)图2.1内部结构及引脚如图2.1所示,D0D7为双向数据信号线,用来传送数据和控制字。而为读信号线,与其他信号线一起实现对8255接口的读操作。通

7、常接系统总线的面信号。丽为写信号线,与其他信号一起实现对8255的写操作,通常接系统总线的而。屋为片选信号线,当它为低电平时,才能选中该8255芯片,也才能对8255进行操作A0、Ai为口地址选择信号线。本次设计使其分别与系统总线的XAi、XA2相连,它们的不同编码可分别寻址3个口和一个控制寄存器,具体规定如下:AiA0选择00A口01B口10C口11控制寄存器RESET复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU!行通讯。RD读信号线,当这个输入引脚

8、为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPUA8255读取信息或数据。WR写入信号,当这个输入引脚为低电平时,允许CPU等数据或控制字写8255。DO-D7:三态双向数据总线,8255与CPUK据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。PAO-PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。PBAPB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。PCO-PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器

9、。端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。这里的8255接口所占地址范围为0640H067FH。当对8255接口进行写操作时,各信号线的状态如下表所示:CSA1A0IORIOW操作00010写A口00110写B口01010写控制寄存器01110写C口8255在应用过程中,将不同的控制字装入芯片中控制寄存器,即可确定8255的工作方式。8255在应用过程中,将不同的控制字装入芯片中控制寄存器,即可确定8255的工作方式。8255的控制字由8位二进制数构成,各位的控制功能如下图:- r)

10、rinI 1!il!11 c QI置位反尬5; I0喻出1喻、旺上达抨0 h AOI b式ICl也。愉出1 VA c向追手 * D3D2D1 0 0 0 0 1 0 0 1 2 0 105 0 114 10 05 1 0 16 1107 111foil-先式式芯学方方(b)匚m37,抖卸字图2.2置位/复位控制字格式2.3.2 8254主要功能8254具有3个独立的16位计数器,6种不同的工作方式。计数寄存器用来寄存计数初值,计数工作单元为16位减1计数器,它的初值便是计数寄存器内容,计数单元对CLK脉冲计数,每出现一个CLK脉冲,计数器减1,当减为零时,通过OUT俞出指示信号表明计数单元已为

11、零。当作为定时器工作时,每当计数单元为零时,计数寄存器内容会自动重新装入计数单元,而且CLK输入是均匀的脉冲序列,于是OUT俞出频率是降低了的(相对于CLK信号频率)脉冲序列。当作为计数器工作时,表明只关心在CLKS出现(代表事件)的脉冲个数,当CLKS出现了规定个数的脉冲时,OUT输出一个脉冲信号。三硬件接线图及流程图3.1硬件接线图系统的连线图主要由四个部分构成。系统总线、8255并口控制器、键盘及数码管显示单元、8254芯片。如下图所示:12图3.1硬件接线图3.2流程图主程序的流程图是对整个程序的逻辑的图象表示。形象的描述了整个系统的工作过程图3.2系统实现流程图四简易电子琴设计源程序

12、及注释;实现段寄存器DS的初始化8255 芯片的控制字,实现工作在方式0, A 端口和C端口输出,B端口输入8254 工作在方式3, A口输入,运用计数器0,二进制方式;扫描INK1;没见按下时循环执行MY8255_AEQU0640HMY8255_BEQU0642HMY8255_CEQU0644HMY8255_MODEEQU0646HMY8254_MODEEQU0686HMY8254_BEQU0680H;进行宏定义DATASEGMENTFREQ_LISTDW441D,495D,556D,589D,661D,742D,833D,882D,262D,294D,330D,373D,402D,450D

13、,494D,-1DDATAENDS;建立数据段CODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,MY8255_MODEMOVAL,82HOUTDX,ALMOVDX,MY8254_MODEMOVAL,36HOUTDX,ALBEGIN:CALLCCSCANJNZINK1JMPBEGIN;确定按下键的位置BEGININK1:CALLCCSCANJNZINK2JMPBEGININK2:MOVCH,0FEHMOVCL,00HCOLUM:MOVAL,CHMOVDX,MY8255_AOUTDX,ALx3MOVDX,MY8255_BIN

14、AL,DXL1:TESTAL,01HJNZL2MOVAL,00HJMPKCODEL2:TESTAL,02HJNZL3;有键按下时跳到INK2;没见按下时循环执行BEGIN;确定按下键在第一列;将CL清零;将8255的B口地址赋给DX;将CPU中的AL值送到8255的B口中,即送到x1、x2、x4中;将8255的C口地址赋给DX;将C口的值送到AL中;检验按下键是否在L1;不是L1则跳到L2;为了后面用来与FREQ_LIST数据段中数对应;强制跳转到KCODEL2L2则跳到L3MOVAL,04HJMPKCODEL3:TESTAL,04HJNZL4MOVAL,08HJMPKCODEL4:TESTA

15、L,08HJNZNEXTMOVAL,0CHFREQ_LIST数据段中数对应。KCODEL23L3则跳到L4FREQ_LIST数据段中数对应。KCODEL4L4则跳到NEXTFREQ_LIST数据段中数对应。KCODE:ADDAL,CLMOVDL,2DMULDLPLAY:MOVSI,OFFSETFREQ_LISTADDSI,AXMOVDX,0FHMOVAX,4240HDIVWORDPTRSIMOVDX,MY8254_BOUTDX,ALMOVAL,AHOUTDX,ALAL与CL的无进位加法;将AL乘以2结果保存到AX中;使SI指向FREQ_LIST的首地址SI加AX实现指针SI的移动0F4240H

16、SI所指的数据8254的A口地址赋给DX4位4位MOV CX,8DNEXT3: CALL DALLYCALL DALLYCALL DALLYCALL DALLYCALL DALLYLOOP NEXT3MOV DX,0FHMOV AX,4240HMOV SI ,30DDIV WORD PTRSIMOV DX,MY8254_BOUT DX,ALMOV AL,AHOUT DX,ALJMP BEGINNEXT: INC CLMOV AL,CHTEST AL,08HJZ KERRROL AL,1DMOV CH,ALJMP COLUMKERR: JMP BEGINCXDALLY;CX不为0重复执行NEXT

17、30F4240HSI=30所指的数据8254的A口地址赋给DX;实现静音,结束一个音符的发音;跳转到BEGIN重复扫描;使CL力口1,为了后面用来与FREQ_LIS蹴据段中数对应;无键按下时跳转到KERR;向左移位;强制跳转到COLUM;跳到BEGIN重新开始扫描J;键盘扫描子程序CCSCAN:MOVAL,00HMOVDX,MY8255_AOUT DX,ALX4MOV DX,MY8255_BIN AL,DXNOT ALAND AL,0FHRET8255 芯片 B 端口输出为 0,既使x1 、 x2、 x3、为0C 端口输入的 y1、y2、 y3 、 y4 送到AL 中;将 AL 取反AL 前

18、4 位清零J; 延时子程序;=DALLY: PUSH CXMOV CX,000FHT1: MOV AX,0009FHT2: DEC AXJNZ T2LOOP T1POP CXRETCODE ENDSEND START;将CX压栈AX 减 1;AX不为0重复T2;CX不为0重复T1;将CX出栈;代码段定义结束;程序结束总结通过这一周的课程设计使我更加深刻的认识到了微机原理的广泛应用,同时也体会到它的多样和多变性,让我对这门课程保持了深深的兴趣!这一周的课程设计颇有收获,最重要的是让我能够更深刻的理解了书本上的知识,而且实际中的运用使得那些知识像活了一样地映入我的脑海。对于8254和8255等芯片

19、我原来只是停留在书本上的认识,并不能在实际中灵活应用。刚开始进行课设的时候,看着那一片芯片实在不知道该怎么下手。后来经过老师的热心指导和同学们的帮助我有了自己的思路,将课设进行了下去。我的思路大概是这样的:调整8254及8255的工作方式,并且进行编程,然后连线。使得减胖的信号能够传到CPU里,通过CPU的计算控制8254芯片,最后8254芯片发出一定频率的方波传到发声装置,从而发出声音。在设计的过程中,每当有一个新想法我就会进行实验,虽然失败的多成功的少,但我还是从中获得了知识。而且再多的失败也打不倒我,因为我知道失败乃成功之母,实践出真知,只有在风雨过后的彩虹才是美丽的!就这样,在多次的实验之后,我做出了自己的作品。尽管还有些差强人意,但它还是我一点一滴做出来的。一周的课程设计终于圆满的结束了,兴奋之余,我觉得这是我收获最多的一个课程设计。因为原来的我真的是一个门外汉,通过老师的悉心讲解和自身的不断努力,反复查阅书籍,终于没有白白浪费这一周的时间,充实了自己。感谢老师的谆谆教诲和悉心的指导,使学生更好的掌握了所学的知识,并为以后的学习打下了坚实的基础。虽然我的课程

温馨提示

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

评论

0/150

提交评论