1 / 11
文档名称:

微机原理课程设计-电子琴设计.doc

格式:doc   大小:57KB   页数:11页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

微机原理课程设计-电子琴设计.doc

上传人:镜花水月 2019/11/10 文件大小:57 KB

下载得到文件列表

微机原理课程设计-电子琴设计.doc

相关文档

文档介绍

文档介绍:--------------------------校验:_____________-----------------------日期:_____________微机原理课程设计-电子琴设计前言本实验是利用微机原理试验箱、8255芯片、8254芯片、键盘、扬声器等硬件设备,设计简易电子琴。首先利用了编程程序,编辑了8255芯片控制字,对其进行初始化,使其工作在方式0,即基本输入输出状态,将8255的A端口设置为输出,C端口进行,经CPU运算后,输出到8254芯片的A端口中,由此实现对其的初始化。将8254芯片设置为工作在方式3,即输出对称方波状态。A端口为输入,“OUT”指令可将输出对应一定频率的方波送到扬声器中,由此实现发声。本实验通过频率大小控制发出声音的高低,通过对延时程序的调用控制发出声音的长短。并通过所编程序实现对键盘的重复扫描,重而可以弹奏多个音符的试验目的。关键字:编程、工作方式、运算一、设计题目:简易电子琴设计二、设计内容:实验电路如图16-1,8253的CLK0接1MHZ时钟,GATE0接8255的PA1,OUT0和8255的PA0接到与门的两个输入端,K8跳线连接喇叭,编程使计算机的数字键1、2、3、4、5、6、7作为电子琴按键,按下即发出相应的音阶。三、设计目的:1、通过8253产生不同的频率信号,使PC机成为简易电子琴。2、了解利用8255和8253产生音乐的基本方法。3、通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。为以后学生结合专业从事微机应用设计奠定基础。四、设计要求:。。,实现扬声器发音五、编程提示:1、利用8255的PA0口来施加控制信号给与门,用来控制扬声器的开关状态。再利用设置不同的计数值,使8253产生不同频率的波形,使扬声器产生不同频率的音调,达到类似与音阶的高低音变换。对于音乐,每个音阶都有确定的频率。各音阶标称频率值:音阶 1 2 3 4 5 6 7 1*低频率(单位:Hz) 262 294 330 347 392 440 494 524高频率(单位:Hz) 524 588 660 698 784 880 988 1048六、设计原程序及注解;*******************************;;*电子琴实验*;;*******************************;datasegmentio8255aequ288hio8255bequ28bhio8253aequ280hio8253bequ283htabledw524,588,660,698,784,880,988,1048;高音的;tabledw262,294,330,347,392,440,494,524;低音的msgdb'Press1,2,3,4,5,6,7,8,ESC:',0dh,0ah,'$'dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovdx,offsetmsgmovah,9int21h;显示提示信息sing:movah,7int21h;从键盘接收字符,不回显cmpal,1bhjefinish;若为ESC键,则转finishcmpal,'1'jlsingcmpal,'8'jgsing;若不在'1'-'8'之间转singsubal,31hshlal,1;转为查表偏移量movbl,al;保存偏移到bxmovbh,0movax,4240H;计数初值=1000000/频率,保存到AXmovdx,0FHdivwordptr[table+bx]movbx,axmovdx,io8253b;设置8253计时器0方式3,先读写低字节,再读写高字节moval,00110110Boutdx,almovdx,io8253amovax,bxoutdx,al;写计数初值低字节moval,ahoutdx,al;写计数初值高字节movdx,io8255b;设置8255A口输出moval,10000000Boutdx,almovdx,io8255amoval,03houtdx,al;置PA1PA0=11(开扬声器)calldelay;延时moval,0houtdx,al;置PA1PA0=00(关扬声器)jmpsingfinish:movax,ear;延时子程序pushcxpushaxmovax,15x1:movcx,0ffffhx2:xjnzx2decaxjnzx1popaxpopcxretdelayendpcodee