- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)