基于于唐都实验箱的多功能电子琴


一、实验目的


设计一个具有录音功能的简易电子琴。

二、实验内容及要求

设计一个具有录音功能的简易电子琴:
1、16个矩阵键盘作为输入设备,扬声器作为输出设备。实现用键盘演奏乐曲;
2、可以切换音调(A~G),也可以切换音区(高音区、中音区和低音区);
3、用数码管分别显示音调、音区和音符;
4、记录按键值及按键按下和弹起的时间存入内存(程序的数据段预留200个字节可以存放40个按键的按键值及按键按下和弹起的时间)中;
5、从内存中读出按键按下的时间、弹起的时间、音调、音区和按键值,播放记录的乐曲。

三、实验原理

1,实验仪器:1,:唐都微机实验箱;2,8255芯片;3,8254芯片;4:扬声器模块;5:键盘扫描模块;6:数码管显示模块

2:,不同按键按下,将对应频率的方波送给扬声器,即可发声

3:键盘扫描
8255的 B口控制数码管的段显示,A口控制键盘列扫描及数码管的位驱动,C口控制键盘的行扫描。A,B,C 口均采用方式0,A,B口输出,C口低四位输入。
行列扫描,一开始让X1-4口输出高电平,Y1-4输出低电平,若这4行按键里,有按键按下了,那么那一行按键对应的端口的电平就会被拉低,我们就可以知道按键的行坐标。然后再获取按键列坐标,让X1-4输出低电平,Y1-4输出高电平,若这4列按键里,有按键按下了,那么那一列按键对应的端口的电平就会被拉低。
4:8254+发声器
要使扬声器发出不同的音阶,就得输入不同频率的信号。通过给计数器 8253送入不同的初值,可以从输出端得到不同频率的波形, 驱动扬声器发出不同的音阶。音阶声音的持续时间可以通过软件延时程序实现。
将8253的输出端OUT0连接音频模块上,GATE1给高电平,运用8253通道二工作在方式3的状态下控制其计数器对应寄存器中的数值,然后将输出端口OUT2产生的方波通过扬声器转换成为声音。

计数初值= 输入时钟÷ 输出频率

音符与频率对照表

在这里插入图片描述

四、实验电路图

8255接线图
在这里插入图片描述
8254接线图
在这里插入图片描述
键盘与数码管电路图:
在这里插入图片描述

在这里插入图片描述

五、实验流程图

在这里插入图片描述

六、实验程序

;============================================
; wjtest_changekey2_3.asm
;使9 10 11 13 14 15不发声  ,按键9 播放友谊地久天长 按键10 显示学号
;测试
;============================================

;端口定义
IOY0			EQU 0600H
MY8255_A     EQU   IOY0+00H*2     ;8255的A口地址
MY8255_B     EQU   IOY0+01H*2     ;8255的B口地址
MY8255_C     EQU   IOY0+02H*2     ;8255的C口地址
MY8255_CON   EQU   IOY0+03H*2     ;8255的控制寄存器地址

IOY1 			EQU 0640H
MY8254_COUNT0	EQU IOY1+00H*2   		;8254计数器0端口地址
MY8254_COUNT1	EQU IOY1+01H*2   		;8254计数器1端口地址
MY8254_COUNT2	EQU IOY1+02H*2   		;8254计数器2端口地址
MY8254_MODE		EQU IOY1+03H*2   		;8254控制寄存器端口地址
SI_YINQU     	EQU 3006H				;用于装载音区
SI_YINDIAO   	EQU 3007H				;用于装载音符
SSTACK	SEGMENT STACK ;定义堆栈段
		DW 256 DUP(?)
SSTACK	ENDS

DATA	SEGMENT
BASS	DW 221,248,278,294,330,371,416   ;A low
		DW 248,278,312,330,371,416,467   ;B
		DW 131,147,165,175,196,221,248   ;C
		DW 147,165,185,196,221,248,278   ;D
		DW 165,185,208,221,248,278,312   ;E
		DW 175,196,221,234,262,294,330	 ;F
		DW 196,221,248,262,294,330,371   ;G
		
		DW 441,495,556,589,661,742,833   ;A middle
		DW 495,556,624,661,742,833,935	 ;B
		DW 262,294,330,350,393,441,495   ;C
		DW 294,330,371,393,441,495,556	 ;D
		DW 330,371,416,441,495,556,624   ;E 
		DW 350,393,441,467,525,589,661   ;F
		DW 393,441,495,525,589,661,742   ;G
		
		DW 882,990,1112,1178,1322,1484,1665   ;A high
		DW 990,1112,1248,1322,1484,1665,1869  ;B 
		DW 525,589,661,700,786
  • 11
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值