ImageVerifierCode 换一换
格式:DOC , 页数:13 ,大小:98.04KB ,
资源ID:3943125      下载积分:8 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/3943125.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(基于8086的简易电子琴设计附汇编源程序.doc)为本站上传会员【a199****6536】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于8086的简易电子琴设计附汇编源程序.doc

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章 软件设计43

2、。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所示.图111。2功能介绍本实验设计实现了音区切换、数码管显示当前音区及音符、记录音符与音符持续时间、播放录制的音乐等功能。功能具体说明如下.按键06为音符键,按下后会有对应的音符音调响起,按

3、键弹起后音符终止,此时,按下的音符以及时间将被记录。按键12,13,14可以选择低音,中音,高音区。按下按键15后开始播放录制的音符(不超过16个).另外数码管0显示音符,数码管2显示音区.第2章 硬件设计2.1 硬件资源TDPITE 实验教学系统,其主要系统构成如表21 所示.CPUIntel 386EX存储器系统程序存储器:Flash ROM (128KB)数据存储器:SRAM (128KB)信号源单次脉冲:消抖动脉冲 2 组逻辑电平开关与显示16 组电平开关,16 组电平显示 LED 灯(正逻辑)8259、8237、8254、8255、8251、DAC0832、ADC0809、SRAM

4、、键盘扫描及数接口实验单元码管显示、电子发声、点阵 LED、液晶 LCD(可选)、步进电机(可选)、直流电机、温度控制实验扩展单元2 组 40 线通用集成电路扩展单元、扩展模块总线单元系统电源5V/2A,12V/0.2A表 21 TD-PITE 系统构成系统硬件结构如图 21 所示。图212。2 硬件接线图2。2.18254接线图8254芯片接线如图22所示.图222。2。28255及键盘、数码管接线图8255及键盘、数码管接线方法如图23所示。图23第3章 软件设计3。1 程序框图3。1.1整体框图图313.1.2延时函数图323。1.3键盘扫描图333。1。4数码管显示图343。1.5声音

5、及时间录制图353。1。6选择音区(高、中、低)图3-63.1。7播放音乐图37第4章 实验结果及演示具体演示效果可扫描以下二维码进行观看,二维码如图41所示。图41以下为视频截图。系统初始运行状体如图42所示。图42选择中音区,如图4-3所示。图43按下音符健,如图4-4所示。图44音乐播放,如图4-5所示.图45第5章遇到的问题及改进措施5。1 条件转移指令报错在编写程序时曾多次遇到使用条件转移指令时编译出错的情况.查阅书本后发现条件转移指令只能在代码段的128+127字节内进行跳转.解决办法:使用条件转移指令转移到一个较近程序段,并在这程序段使用无条件转移指令JMP进行转移.5。2无法使

6、用8254作为录音时间计数器在进行设计的过程中,曾多次按照使用8254作为时间计数器的方案进行编程,但经过多次尝试后均以失败告终。解决办法:使用软件延时进行计时,每次延时执行完毕后进行计数,该计数值就是音符的相对持续时间。在播放时只需要调用同样时间长度的延时函数即可。缺点:使用软件延时与计数,占用了CPU计算资源,导致数码管扫描频率降低,亮度变暗。同时对于录音时间的记录不精确,存在一定的误差。附 录程序源码;=; 文件名: Hypo.asm; 功能描述: 按键06为音符键,按下后会有对应的音调响起,; 按键弹起后音符终止。; 按键12,13,14可以选择低音,中音,高音区。; 按下按键15后开

7、始播放之前按下的音符(不超过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 ;8255B端口地址MY8255_C EQU 0604H ;8255C端口地址MY8255

8、_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,935 ;中音频率表FREQ_LIST3 DW 990,1112,1248,1322,14

9、84,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_SI_TIME DW ? ;时间储存表地址储存SAVE_TIME DB 01H ;时间技术

10、储存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,0000HMOV SI,AXADD SI,2LOOP CLEAN_RECMOV SI,OFFS

11、ET 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 DIS;调用显示子程序CALL DIS_FREQ ;调用音区显示子程序CALL CLEA

12、R;清屏CALL CCSCAN;键盘扫描JNZ INK1JMP BEGININK1: CALL DIS CALL DALLY CALL DALLY CALL CLEARCALL CCSCANJNZ INK2;有键按下,转到INK2JMP BEGIN;=蜂鸣器关闭子程序=SILENT:MOV DX,MY8254_MODE ;初始化8254工作方式MOV AL,36H ;定时器0、方式3OUT DX,ALRET;=远程跳转过渡=PLAY2_JUMP: JMP PLAY2CHOOSE_JUMP1: JMP CHOOSE1CHOOSE_JUMP2: JMP CHOOSE2CHOOSE_JUMP3: J

13、MP CHOOSE3;=;确定按下键的位置;=INK2: MOV CH,0FEHMOV CL,00HCOLUM: MOV AL,CH MOV DX,MY8255_A OUT DX,AL MOV DX,MY8255_C IN AL,DXL1: TEST AL,01H ;is L1? JNZ L2 ;如果不是的话跳转到L2 MOV AL,00H ;L1JMP KCODEL2: TEST AL,02H ;is L2? JNZ L3 MOV AL,04H ;L2 JMP KCODEL3: TEST AL,04H ;is L3? JNZ L4 MOV AL,08H ;L3JMP KCODEL4: TES

14、T AL,08H ;is L4? JNZ NEXT MOV AL,0CH ;L4;=;确认按键的值;=KCODE: ADD AL,CLCALL PUTBUFPUSH AX;=;键值存在AX中 ;= CMP AX,12 ;选择音区1 JZ CHOOSE_JUMP1 CMP AX,13 ;选择音区2 JZ CHOOSE_JUMP2 CMP AX,14 ;选择音区3 JZ CHOOSE_JUMP3 CMP AX,15 ;播放录制的音乐 JZ PLAY2_JUMP ;jump to play2 POP AXPUSH AXCALL PLAY ; 播放音符POP AXPUSH AX;=;松手检测;=KON

15、: CALL DIS CALL DIS_FREQCALL CLEARCALL CNT_TIME ;按键没有弹起,执行时间计数POP AXPUSH AXCALL CCSCANJNZ KON ;判断是否弹起,如果没有弹起,继续检测。;按键弹起后:CALL SILENT ;蜂鸣器静音MOV SI,SAVE_SI_TIME MOV AL,SAVE_TIMEMOV SI,AX ;按下的时间进入时间表INC SAVE_SI_TIME;时间表地址+1MOV SAVE_TIME,00H;时间计数清零INC SAVE_SI ;录音表地址+1INC SAVE_SIPOP AXNEXT: INC CLMOV AL,

16、CHTEST AL,08HJZ KERRROL AL,1MOV CH,ALJMP COLUMKERR: JMP BEGINCNT_TIME: ;时间计数CALL DALLY3INC SAVE_TIMERET;=;键盘扫描子程序,有按键按下,返回1;=CCSCAN: MOV AL,00H MOV DX,MY8255_A OUT DX,AL MOV DX,MY8255_C IN AL,DXNOT AL AND AL,0FHRET;=;清屏子程序;=CLEAR: MOV DX,MY8255_B MOV AL,00H OUT DX,ALRET;=;显示子程序;=DIS: PUSH AXMOV SI,3

17、000H;数码管地址MOV DL,0FEH ;数码管位选MOV AL,DLAGAIN: PUSH DX MOV DX,MY8255_A OUT DX,AL ;数码管位选输出 MOV AL,SI MOV BX,OFFSET DTABLEAND AX,00FFHADD BX,AX ;得到数码管段选数据MOV AL,BX MOV DX,MY8255_B OUT DX,AL ;数码管段选输出CALL DALLY POP DX MOV AL,DLMOV DL,ALJMP OUT1OUT1: POP AXRET;= 延时子程序 =DALLY: PUSH CX MOV CX,0006HT1: MOV AX,

18、009FHT2: DEC AXJNZ T2LOOP T1POP CXRET;=;存键盘值到相应位的缓冲中;=PUTBUF: MOV SI,ALCMP DI,3005HJNZ GOBACKGOBACK: RETCHOOSE1:MOV SI,OFFSET FREQ_LIST1 ;装入频率表1起始地址MOV SI_FREQ,SIMOV CHOOSE_FLAG,01HJMP BEGINCHOOSE2:MOV SI,OFFSET FREQ_LIST2 ;装入频率表2起始地址MOV SI_FREQ,SIMOV CHOOSE_FLAG,02HJMP BEGINCHOOSE3:MOV SI,OFFSET FR

19、EQ_LIST3 ;装入频率表3起始地址MOV SI_FREQ,SIMOV CHOOSE_FLAG,03HJMP BEGIN;=;音区数码管显示;=DIS_FREQ: PUSH AXMOV SI,3003HMOV DL,0FBHMOV AL,DLAGAIN1: PUSH DX MOV DX,MY8255_A OUT DX,AL MOV AL,SI MOV BX,OFFSET DTABLEAND AX,00FFHADD BX,CHOOSE_FLAGMOV AL,BX MOV DX,MY8255_B OUT DX,ALCALL DALLY POP DX MOV AL,DLMOV DL,ALJMP

20、OUT2OUT2: POP AXRETPLAY: MOV SI,SI_FREQ ;装入频率表起始地址ADD SI,AXADD SI,AXMOV DX,0FH ;输入时钟为1MHz,1M = 0F4240H MOV AX,4240H DIV WORD PTR SI ;取出频率值计算计数初值,0F4240H / 输出频率 MOV SI,SAVE_SI ;将计数初值存入录音音符段MOV SI,AXMOV DX,MY8254_COUNT0 ;蜂鸣器播放音符OUT DX,AL MOV AL,AHOUT DX,ALRETPLAY2: MOV SI,OFFSET REC_DATA ;装入录音表计数初值起始地

21、址MOV DI,OFFSET REC_TIME ;装入录音时间表起始地址PLAY2_1: MOV AX,SIMOV DX,MY8254_COUNT0OUT DX,AL ;装入计数初值并播放MOV AL,AHOUT DX,ALMOV DL,DI ;取出演奏相对时间,调用延时子程序 CALL DALLY2ADD SI,2INC DICALL SILENT;停止播放0。1秒CALL DALLY3CALL DALLY3CALL DALLY3CALL DALLY3CALL DALLY3CALL DALLY3CALL DALLY3CALL DALLY3CALL DALLY3CALL DALLY3CALL

22、DALLY3CALL DALLY3CMP WORD PTR SI,0 ;判断是否到曲末?JE XXX ;如果来到曲末跳转到开始JMP PLAY2_1;否则继续播放下一个音符XXX: JMP START ;远程跳转过渡DALLY2PROC ;延时子程序2D0:MOV CX,0015HD1:MOV AX,00F0HD2:DEC AXJNZ D2 LOOP D1DEC DLJNZ D0RETDALLY2ENDPDALLY3PROC ;延时子程序3D00:MOV CX,0010HD11:MOV AX,00F0HD22:DEC AXJNZ D22LOOP D11RETDALLY3ENDPCODEENDSEND START11

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服