基于8086的简易电子琴设计附汇编源程序.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《基于8086的简易电子琴设计附汇编源程序.doc》由会员分享,可在线阅读,更多相关《基于8086的简易电子琴设计附汇编源程序.doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微机原理与接口技术综合设计实验报告设计课题:基于8086的简易电子琴设计 指导老师:学生姓名:学 号:院 系:专 业:通信工程 基于8086的简易电子琴设计摘 要在学习微机原理与接口设计的基础上,针对课程设计要求,综合运用相关软件、硬件知识,设计一个简易电子琴,使之具有音区切换、数码管显示音区及当前音符、记录音符与音符持续时间、播放录制的音乐等功能。 关键词:8086;电子琴;仿真调试;汇编目 录第1章 总体方案设计11.1 系统整体架构图11.2 功能介绍1第2章 硬件设计22.1 硬件资源22.2 硬件接线图32.2.1 8254接线图32.2.2 8255及键盘、数码管接线图3第3章 软
2、件设计43.1 程序框图43.1.1 整体框图43.1.2 延时函数53.1.3 键盘扫描53.1.4 数码管显示63.1.5 声音及时间录制63.1.6 选择音区(高、中、低)73.1.7 播放音乐7第4章 实验结果及演示8第5章 遇到的问题及改进措施105.1 条件转移指令报错105.2 无法使用8254作为录音时间计数器10附 录11程序源码11第1章 总体方案设计1.1 系统整体架构图系统整体架构图如图1-1所示。图1-11.2 功能介绍本实验设计实现了音区切换、数码管显示当前音区及音符、记录音符与音符持续时间、播放录制的音乐等功能。功能具体说明如下。按键0-6为音符键,按下后会有对应
3、的音符音调响起,按键弹起后音符终止,此时,按下的音符以及时间将被记录。按键12,13,14可以选择低音,中音,高音区。按下按键15后开始播放录制的音符(不超过16个)。另外数码管0显示音符,数码管2显示音区。第2章 硬件设计2.1 硬件资源TD-PITE 实验教学系统,其主要系统构成如表2-1 所示。CPUIntel 386EX存储器系统程序存储器:Flash ROM (128KB)数据存储器:SRAM (128KB)信号源单次脉冲:消抖动脉冲 2 组逻辑电平开关与显示16 组电平开关,16 组电平显示 LED 灯(正逻辑)8259、8237、8254、8255、8251、DAC0832、AD
4、C0809、SRAM 、键盘扫描及数接口实验单元码管显示、电子发声、点阵 LED、液晶 LCD(可选)、步进电机(可选)、直流电机、温度控制实验扩展单元2 组 40 线通用集成电路扩展单元、扩展模块总线单元系统电源5V/2A,12V/0.2A表 2-1 TD-PITE 系统构成系统硬件结构如图 2-1 所示。图2-12.2 硬件接线图2.2.1 8254接线图8254芯片接线如图2-2所示。图2-22.2.2 8255及键盘、数码管接线图8255及键盘、数码管接线方法如图2-3所示。图2-3第3章 软件设计3.1 程序框图3.1.1 整体框图图3-13.1.2 延时函数图3-23.1.3 键盘
5、扫描图3-33.1.4 数码管显示图3-43.1.5 声音及时间录制图3-53.1.6 选择音区(高、中、低)图3-63.1.7 播放音乐图3-7第4章 实验结果及演示具体演示效果可扫描以下二维码进行观看,二维码如图4-1所示。图4-1以下为视频截图。系统初始运行状体如图4-2所示。图4-2选择中音区,如图4-3所示。图4-3按下音符健,如图4-4所示。图4-4音乐播放,如图4-5所示。图4-5第5章 遇到的问题及改进措施5.1 条件转移指令报错在编写程序时曾多次遇到使用条件转移指令时编译出错的情况。查阅书本后发现条件转移指令只能在代码段的-128+127字节内进行跳转。解决办法:使用条件转移
6、指令转移到一个较近程序段,并在这程序段使用无条件转移指令JMP进行转移。5.2 无法使用8254作为录音时间计数器在进行设计的过程中,曾多次按照使用8254作为时间计数器的方案进行编程,但经过多次尝试后均以失败告终。解决办法:使用软件延时进行计时,每次延时执行完毕后进行计数,该计数值就是音符的相对持续时间。在播放时只需要调用同样时间长度的延时函数即可。缺点:使用软件延时与计数,占用了CPU计算资源,导致数码管扫描频率降低,亮度变暗。同时对于录音时间的记录不精确,存在一定的误差。附 录程序源码;=; 文件名: Hypo.asm; 功能描述: 按键0-6为音符键,按下后会有对应的音调响起,; 按键
7、弹起后音符终止。; 按键12,13,14可以选择低音,中音,高音区。; 按下按键15后开始播放之前按下的音符(不超过16个); 数码管0显示音符,数码管2显示音区;=IOY3EQU 06C0HMY8254_COUNT0EQU IOY3+00H ;8254计数器0端口地址MY8254_COUNT1EQU IOY3+02H ;8254计数器1端口地址MY8254_COUNT2EQU IOY3+04H ;8254计数器2端口地址MY8254_MODEEQU IOY3+06H ;8254控制寄存器端口地址MY8255_A EQU 0600H ;8255A端口地址MY8255_B EQU 0602H ;
8、8255B端口地址MY8255_C EQU 0604H ;8255C端口地址MY8255_CONEQU 0606H ;8255控制端口地址SSTACKSEGMENT STACK ;定义堆栈段DW 256 DUP(?)SSTACKENDSDATA SEGMENTDTABLEDB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H;数码管的段选数据DB 7FH,6FH,77H,7CH,39H,5EH,79H,71HFREQ_LIST1 DW 248,278,312,330,371,416,467 ;低音频率表FREQ_LIST2 DW 495,556,624,661,742,833,9
9、35 ;中音频率表FREQ_LIST3 DW 990,1112,1248,1322,1484,1665,1869 ;高音频率表REC_DATA DW 000,000,000,000,000,000,000,000 ;录音储存段 DW 000,000,000,000,000,000,000,000SB DB 00H,00H ;过渡段REC_TIME DB 00H,00H,00H,00H,00H,00H,00H,00H ;时间储存段 DB 00H,00H,00H,00H,00H,00H,00H,00HSAVE_SI DW ? ;录音储存地址储存SI_FREQ DW ? ;频率表地址储存SAVE_S
10、I_TIME DW ? ;时间储存表地址储存SAVE_TIME DB 01H ;时间技术储存CHOOSE_FLAG DW 01H;频率表选择标志位DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA ;初始化数据段、代码段START: MOV AX,DATAMOV DS,AXMOV DX,MY8254_MODE ;初始化8254工作方式MOV AL,36H ;定时器0、方式3OUT DX,ALMOV SI,OFFSET REC_DATA ;装入录音表初始地址MOV SAVE_SI,SIMOV CL,0EHCLEAN_REC: ;录音表清零MOV AX,000
11、0HMOV SI,AXADD SI,2LOOP CLEAN_RECMOV SI,OFFSET REC_TIME ;装入时间表起始地址MOV SAVE_SI_TIME,SIMOV SI,OFFSET FREQ_LIST1 ;装入频率表默认起始地址MOV SI_FREQ,SI MOV SI,3000HMOV AL,00HMOV SI,AL;清显示缓冲MOV SI+1,ALMOV SI+2,ALMOV SI+3,ALMOV SI+4,ALMOV SI+5,ALMOV DI,3005H MOV DX,MY8255_CON;写8255控制字 MOV AL,81HOUT DX,ALBEGIN: CALL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 8086 简易 电子琴 设计 汇编 源程序
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内