《计算机硬件课程设计电子琴》由会员分享,可在线阅读,更多相关《计算机硬件课程设计电子琴(49页珍藏版)》请在金锄头文库上搜索。
1、计算机硬件技术基础课程设计计算机硬件技术基础课程设计电子琴小组成员及分工: XXXXXXXX指导老师: 唐丹班 级: 自动化 03 班 重庆大学自动化学院重庆大学计算机硬件技术基础课程设计目录目录目录2 摘要2 1.设计目的与意义.3 1.1 设计目的3 1.2 设计意义3 2.课程设计的任务和思路.4 2.1 设计任务4 2.2 设计思路4 3. 硬件工作原理.7 3.1 8255 工作原理.7 3.2 8254 工作原理.8 3.3 扬声器模块工作原理.9 3.4 三色 LED 数显10 3.5 4X4 非编码键盘11 4. 功能说明.12 4.1 总体功能说明.12 4.1.1 主程序说
2、明.12 4.2 弹奏功能说明.13 4.2.1 音符选择14 4.2.2 音阶选择14 4.2.3 弹奏实现14 4.2.4 流程图14 4.3 回放功能.15 4.4 歌曲播放功能.17 4.5 显示功能.18 5. 组员心得体会.19 心得体会 1:.19 心得体会 2:.21 心得体会 3:.23 心得体会 4:.25 6操作说明书27 6.1 连线要求.27 6.2 使用电子琴弹奏乐曲以及使用各个子功能的方法28 7.整体程序清单.29重庆大学计算机硬件技术基础课程设计摘要摘要通过大三上学期对计算机硬件技术课程的学习,我们初步掌握了一些计算机硬件工作的基本原理、汇编语言程序设计方法,
3、建立了微型计算机系统的整体概念,初步形成微机系统软硬件开发的能力。为了更好的理解和掌握学习到的知识,也为了更深入的了解熟悉可编程定时器 8254 和 8255,我们试图通过编程使 8255 识别输入键值,通过 8254 识别发声,达到通过按键控制扬声器发声频率的目的,从而模拟电子琴的工作原理。由于本电子琴设计简单,方便改装用于其他实用领域,如报警器、门铃、儿童玩具等,具有一定的实用价值。要完成一个简易的电子琴,要求我们利用相关已经学过的芯片连接成一个电子电路,并且通过自己用汇编语言编程,控制设计的电子电路实现电子琴的一些功能,比如通过高中低音键和音调键分别控制发出高低音的 1、2、3、4、5、
4、6、7 音调,比如播放预先存储的歌曲,比如回放上一个弹奏的歌曲等。本文首先介绍了设计目的、意义、任务及思路,接着简单介绍了各个元器件的工作原理,然后以流程图的形式展现了各程序的基本思路,再介绍了一些具体功能是如何实现的,在附录中还附带了完整的程序,最后描述了组员的心得体会。重庆大学计算机硬件技术基础课程设计1.设计目的与意义设计目的与意义1.1 设计目的设计目的计算机硬件技术课程设计是对所学课程内容的全面、系统的总结、巩固和提高的一项课程实践活动。课程设计要求同学们熟悉汇编语言的编程、连接、调试、运行等步骤,以及设计中所设计的相关软硬知识。通过课程设计,一方面提高运用汇编语言变成解决实际问题的
5、能力,另一方面使同学们更深入的了解计算机系统内部的有关知识,为以后的学习和系统开发奠定良好的基础。1.2 设计意义设计意义通过课程设计要进一步锻炼在微型计算机应用方面的实际工作能力。计算机科学是一门应用型学科,学习时必须紧密联系实际,要强调实际问题的能力。通过设计学会面对一个实际问题时如何分析问题、收集资料并且如何将理论知识运用于实际生活中,解决实际问题。重庆大学计算机硬件技术基础课程设计2.课程设计的任务和思路2.1 设计任务设计任务设计一个电子琴,以扬声器作为发声装置,以 4X4 小键盘作为输入装置,模拟电子琴的琴键和功能按键,嗲子清具有低、中、高三个音阶,能弹奏曲目在计算机硬件试验系统基
6、础上,完成扬声器模块的设计,完成基本功能,并在此基础上完善并优化系统功能。(1)按“17”中的任一数字键,则发出对应的中音;(2)若按下“高音键”和“17”中的任一数字键,则发出对应的高音;(3)若按下“低音键”和“17”中的任一数字键,则发出对应的低音;(4)弹奏时要求能够区分节拍、音调、音阶和休止符。2.2 设计思路设计思路电子琴的设计实际上就是要设计一个程序,通过识别按键,控制扬声器模块的振动频率,从而发出不同的音调。扬声器模块是通过并行接口芯片 8255 和定时芯片 8254 来控制发音的,其电路连接方式如下图所示。重庆大学计算机硬件技术基础课程设计图 1 扬声器控制电路扬声器是由 8
7、254 通道 2 产生的方波信号驱动发声的。要想让扬声器发声,除了电源和接地外, ,还需要一个引脚给予振动频率才能正常工作。同时当 8255 的 PC7 置 1, ,使得 8254 的 GATE 为高时。OUT2 引脚上才能产生一定频率的方波信号驱动扬声器,使扬声器发声。因此,可以通过对 8255 的 PC7 的设置来控制扬声器的开通和关断,而其发音频率可以通过改变 8254 通道 2 的计数初值来控制。因此设计程序的任务就是要通过识别按键来设置 8255 的 PC7 输出电平的高低,以及设置 8254 通道 2 计数初值。在实际的课程设计中,因为计数初值的设置、8254 的 CLK 频率的选
8、择等原因,我们给予 8254用于参与计算高低中音的程序频率和实际 OUT2 口输出的驱动频率有点不同,以下两表分别为 OUT2 口输出频率和程序中用于计算的频率:8255A 1 PC8 CLK2 8254GATE2 OUT2 3MHZ 时钟信号MID DW 202,224,250,268,302,334,372HIG DW 402,448,500,536,604,668,744HUANLE DW 250,250,268,302,302,268,250,224DW 202,202,224,250,250,224,224DW 250,250,268,302,302,268,250,224DW 20
9、2,202,224,250,224,202,202,0JIEPAI DW 8 DUP(25)DW 4 DUP(25),50,2 DUP(25) DW 8 DUP(25) DW 4 DUP(25),50,2 DUP(25)HUIFANG DW 1 DUP(50H)JIEPAI2 DW 8 DUP(50H)START:KSCAN1 PROC NEAR;主程序,用于扫描功能,并且调用相关的程序PUSH CX ;从这开始就是初始化的一些东西,包括 8255 的初始化、回放、三色 LED 的初始化MOV DX,CTRLMOV AL,91H重庆大学计算机硬件技术基础课程设计OUT DX,ALMOV CX,
10、20H;回访的初始化LEA SI,HUIFANGCHUZHI:MOV AX,0000HMOV WORD PTRSI,AXINC SIINC SILOOP CHUZHILEA SI,HUIFANGMOV HFBIAOZHI,0000HMOV HFDINGWEI,SIMOV HFQISHI,SIMOV SI,HFQISHI;做出回放地址的起始点MOV AX,HFQISHI;做出回放地址的终止点ADD AX,100HMOV HFZHONGZHI,AXCHUDENG :;三色 led 的初始化MOV DX,20CHMOV EAX,80808080HOUT DX,EAX重庆大学计算机硬件技术基础课程设计
11、MOV DX,200HMOV AL,88HOUT DX,ALMOV DX,204HMOV AL,0C0HOUT DX,ALMOV DX,208HMOV EAX,0F0F0F05HOUT DX,EAXRECEIVE:;形成功能代号,便于下面选择功能MOV DX,PORTCIN AL,DXAND AL,0FHCMP AL,0FHCALL FNDKEY1MOV CL,GONGNENGMOV SHANGGONG,CLCMP GONGNENG,01HJZ RELOP1 CMP GONGNENG,02H重庆大学计算机硬件技术基础课程设计JZ RELOP1 CMP GONGNENG,03HJZ RELOP1
12、 CMP GONGNENG,04HJZ RELOP2 CMP GONGNENG,08H JZ RELOP3RELOP1:CALL GONGDENGCALL TANQINJMP RECEIVERELOP2:CALL GONGDENGCALL GEQUJMP RECEIVERELOP3:CALL GONGDENGCALL HUIFJMP RECEIVE;处理完毕之后,返回继续读取功能选择POP CXRET KSCAN1 ENDP重庆大学计算机硬件技术基础课程设计KSCAN2 PROC NEAR;寻找对应的 1-7 音符的按键是否按下的子程序,把得到的音符 值传给 YINFUMOV CX,02HMO
13、V BL,0FDH;从 Q1 列开始扫描LOP3:MOV AL,BLMOV DX,PORTBOUT DX,ALMOV DX,PORTAIN AL,DXAND AL,0FHCMP AL,0FHJZ LOP4CALL FNDKEY2JMP LOP5LOP4:ROR BL,1LOOP LOP3MOV YINFU,00H ;如果没有音符键按下则置 YINFU 为 00HLOP5: RET KSCAN2 ENDPFNDKEY1 PROC NEAR;形成功能键的键值音CMP AL,00H重庆大学计算机硬件技术基础课程设计JZ FK1LOP3CMP AL,01HJZ FK1LOP1CMP AL,02HJZ
14、FK1LOP2CMP AL,03HJZ FK1LOP3CMP AL,04HJZ FK1LOP4CMP AL,08HJZ FK1LOP5MOV GONGNENG,00HJMP OVERFK1LOP1:MOV GONGNENG,01HJMP OVERFK1LOP2:MOV GONGNENG,02HJMP OVERFK1LOP3:MOV GONGNENG,03HJMP OVERFK1LOP4:MOV GONGNENG,04H重庆大学计算机硬件技术基础课程设计JMP OVERFK1LOP5: MOV GONGNENG,08HJMP OVEROVER: RETFNDKEY1 ENDPFNDKEY2 PR
15、OC NAER;形成音符键的键值SHL BL,4OR AL,BLSHR BL,4MOV YINFU,ALRETFNDKEY2 ENDPSEARCH_FZ PROC NEARCMP YINFU,0EDHJZ JIAN1CMP YINFU,0EBHJZ JIAN2CMP YINFU,0E7HJZ JIAN3CMP YINFU,0DEH重庆大学计算机硬件技术基础课程设计JZ JIAN4CMP YINFU,0DDHJZ JIAN5CMP YINFU,0DBHJZ JIAN6CMP YINFU,0D7HJZ JIAN7JIAN1: MOV YINFU,01H JMP DIANYAJIAN2: MOV Y
16、INFU,02H JMP DIANYAJIAN3: MOV YINFU,03H JMP DIANYAJIAN4: MOV YINFU,04H JMP DIANYAJIAN5: MOV YINFU,05H JMP DIANYAJIAN6: MOV YINFU,06H JMP DIANYA重庆大学计算机硬件技术基础课程设计JIAN7: MOV YINFU,07H JMP DIANYADIANYA:MOV AL,YINFUMOV AH,00HMOV DENGZHI,AXCMP GONGNENG,01HJNZ LOPQLEA SI,HIGJMP CHAOBIAOLOPQ:CMP GONGNENG,02HJNZ LOP12LEA SI,LOWDJMP CHAOBIAOLOP12:LEA SI,MIDCHAOBIAO:CALL YINDENGMOV AL,YINFUMOV AH,00HSHL AX,1SUB AX,2ADD SI,AXMOV DI,WORD P