电子琴程序的设计.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电子琴程序的设计

PAGE PAGE 5 项目九 电子琴程序的设计 一、设计内容与要求 编写一实现电子琴的程序,并实现若干扩展功能。 基本功能:用8257键盘输入对应的七个音阶,通过实验箱的喇叭发出声音,并通过七段数码管显示输入音阶; 扩展功能: 1.录音:记录所弹奏曲目 2.放录音:任意时刻重放必威体育精装版记录曲目 3.在程序中可预设一曲目,按一键实现播放该曲目。 4.在播放录制曲目或预设曲目时,按8279键盘上任意键可以暂停播放,再按一次从暂停处继续播放。 5.程序运行时有友好的用户介面 二、硬件电路框图 1.设计原理 (1)对于一个特定的D/A转换接口电路,CPU执行一条输出指令将数据送入D/A, 即可在其输出端得到一定的电压输出。给D/A转换器输入按正弦规律变化的数据, 在其输出端即可产生正弦波。对于音乐,每个音阶都有确定的频率。 各音阶标称频率值: (2)产生一个正弦波的数据可取32个(小于亦可),不同频率的区别,可通过调节向D/A转换器输出数据的时间间隔,例如:发1频率为261。1HZ,周期为1/261.1=3.83ms,输出数据的时间间隔为3.83ms/32=0.12ms. 定时时间可以由8253配合8255来实现。按下某键后发音时间的长短可以由发出的正弦波的个数多少来控制。 2. 硬件电路连接 三、软件设计 1.主程序流程图 开始 开始 显示缓存区,初始化 8279初始化 调用发音子程序 调用键盘子程序 键盘码送缓存区 是否9键 是否0键 是否S键 是否R键 录音子程序 放录音子程序 放歌子程序 返回DOS Y N N N Y Y Y N 2. 键盘显示子程序流程图 3.显示子程序流程图 4.部分参考程序 KEYBORD PROC NEAR ;键盘子程序 MOV DX,PORT1 MOV AL,0D1H OUT DX, CLEAR DISPLAY WREP: CALL DISP MOV DX,PORT1 IN AL,DX ;读状态 AND AL,07H ;判断是否有按键 JZ WREP KEYN: MOV DX,PORT0 ;下一次的按键 IN AL,DX ;读数据 MOV BL,AL AND AL,07H AND BL,38H MOV CL,03 SHR BL,CL CMP BL,00H JNZ LINE1 ADD AL,08H JMP QUIT1 LINE1: CMP BL,01H JNZ LINE2 JMP QUIT1 LINE2: ADD AL,10H QUIT1: RET KEYBORD ENDP DISP PROC NEAR ;显示子程序 PUSH SI PUSH CX PUSH DX MOV AX,DATA MOV DS,AX MOV DX,PORT1 MOV AL,90H OUT DX,AL ;写地址为0000的显示缓存区命令,每次写入后地址自动加1指向下一次写入地址 MOV SI,OFFSET SEC1 MOV CX,0001 MOV BX,OFFSET LED DISP1: CLD LODSB MOV AH,AL XLAT ;键盘码转显示码 MOV DX,PORT0 OUT DX,AL ;显示 LOOP DISP1 POP DX POP CX POP SI Q:RET DISP ENDP

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档