b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

何用通用单片机实现MIDI键盘功能,改装各种电子琴

电脑杂谈  发布时间:2021-02-01 04:03:29  来源:网络整理

MIDI是电子乐器的语言。随着MIDI的诞生,数字电子乐器越来越多,而MIDI的应用也越来越普遍。它在电子乐队表演和电子音乐制作等各个领域中的演奏越来越多。作用越大。随着计算机技术的发展,声卡已成为普通计算机的标准设备,并且可以通过声卡的MIDI接口连接各种MIDI设备。连接到专用于输入的MIDI键盘,再加上相应的软件,计算机可以完成电子琴的功能,甚至制作电子音乐。由于MIDI本身的特性,其形成的音乐易于后期制作,并且在音乐家中越来越受欢迎。作为最有效的输入工具,MIDI键盘变得越来越流行。

某些计算机序列软件支持计算机键盘来模拟按键,并且可以通过计算机键盘将注释输入计算机。一些发烧友使用计算机键盘的控制芯片来修改玩具电子钢琴,并将其连接到称为计算机钢琴的计算机键盘,但是该控制芯片本身并不是为播放音乐而开发的,单音表现还可以,并且按下多个键会发生错误。本文将介绍如何使用通用单片机来实现MIDI键盘功能,以及如何修改各种电子琴与计算机的连接,从而通过MIDI接口实现支持复音的真正电子琴。

一、MIDI信号和声卡的MIDI接口

MIDI是一种异步串行通信协议,传输速率为31.25Kbaud(每秒31250位)。每个字节包括10位,1个起始位,8个数据位和1个停止位,每个音符的打开(或关闭)命令具有3个字节。计算后,小于1mS的速度可以发送音符的切换命令。 MIDI数据流是单向的,没有响应,当设备发送音乐信息时,无论接收设备的状态如何,如果正确验证了接收设备接收到的信息都将执行,并且错误将被忽略。 -这是规则,由音乐本身的特性决定,可以删除音符,但不能弄错节奏,并且实时是第一要务。从物理角度来看,MIDI信号是通过电流传输的,5mA表示逻辑“ 0”,而0mA表示逻辑“ 1”。连接MIDI设备时,必须将输出连接到另一台设备的输入。

midi键盘制作

图1多个MIDI设备的典型连接

计算机声卡的MIDI / GAME接口是15针D型接口,其中与MIDI相关:

1 + 5V + 5VDC

4GND接地

12MIDITXDMIDI输出

15MIDIRXDMIDI输入

midi键盘制作

图2声卡上的MIDI / GAME界面

二、MCU如何产生MIDI信号

本节介绍如何使用目前在中国最主流的51系列”,“音符”和“力度”。命令的第一个字节的最高位是1,通道是0-16,第二个字节是最高位0,音符编号是0-127,第三个字节是最高位0,速度是0-127。

发送注释命令:(参数cc,kk,vv是“命令+通道号”,“注释符号”,“速度”)

voidsend(ucharcc,kk,vv)

{TR1 = 1; //打开计数器//

没有midi键盘可以制作编曲吗_编曲键盘与midi键盘_midi键盘制作

SBUF = cc; //要注册//

while(TI ==0); //等待发送结束//

TI = 0; //清除发送标志//

SBUF = kk;

while(TI ==0);

TI = 0;

SBUF = vv;

while(TI ==0);

TI = 0;

TR1 = 0;

}

MIDI命令摘要

命令代码

(cc)命令解释数据kk的含义并解释数据vv的含义和解释

与8个通道编号的闭合音符相对应的闭合音符的MIDI音符0-127的速度值

按下与通道号9+的开头音符相对应的MIDI音符0-127的键的速度值(速度)

对应于MIDI音符0-127的A +通道编号的触后压力对应于音符的触后压力值

B +通道号控制器号0-77

77-7F是通道模式信息控制器值

C +通道号音色切换,音色号0-127,没有这样的字节数据

D +通道号通道压力此通道所有键盘的触后压力没有此字节数据

E +通道号弯音轮低位数据弯音轮高位数据

F系统常规信息,实时信息和高级信息代码被忽略。

如前所述,MIDI信号是单向数据流。输出设备与接收设备的状态无关,它仅连续发出命令。因此,MIDI键盘用作传输设备,只需要输出即可。对于51单片机,其TXD就足够了。作为MIDI信号输出端口,如果不需要转发其他MIDI设备信号,则实际上不需要RXD。使用51单片机的TXD引脚与声卡的MIDI-IN引脚(引脚15)连接,以生成所需的MIDI信号来驱动声卡。此连接方法不是MIDI协议中规定的标准驱动方法。在MIDI协议中,采用了隔离的传输方法。这两个设备未连接到同一接地。本文介绍的电路必须通过MIDI接口供电。形成公共接地连接。这样,单片机的高电平输出直接用于输出5mA电流,而低电平电流接近0,可以工作,但是由于不是隔离传输,因此传输距离无法实现太长了。

三、控制板电路

电路原理图如图3所示。采用51系列单片机的标准电路。声卡MIDI接口的引脚1、4是电源输出,分别是VCC和GND;引脚15是MIDI-IN,它连接到单片机的串行输出引脚TXD。单片机的P0和P2端口用于扫描键盘,可以提供8x8键盘扫描功能。大多数电子键盘的键数少于64个,因此这种安排就足够了。其余的引脚可用作工作参数预设,以设置键的初始值和占用的MIDI通道号。 MCU采用89c51或其他兼容的MCU,包括89s51、89f51、8751、97c51等。上拉电阻选择为10kΩ。 MIDI接口插头是15针D型连接器。通常,会标出针脚编号,您可以根据这些针脚进行连接。给出的原理图和印刷版图完整,可以直接使用。

midi键盘制作

图3单片MIDI控制器电路图

编曲键盘与midi键盘_midi键盘制作_没有midi键盘可以制作编曲吗

midi键盘制作

图4印刷电路板图的控制部分使用89c51或兼容的单片机

四、带有玩具钢琴键盘的改良MIDI键盘

要区分数十个按键的状态,最简单,最经济的方法是使用矩阵扫描键盘。电路原理图如图5所示。

midi键盘制作

图5键盘电路原理图

键盘通过扫描工作,具体过程:

首先,从P0端口发出段选通信号,每次选通段时,将相应的段选择线设置为低电平,读取P2端口,按下的键连接到段选择线,然后相应的端口输入在低电平时,这完成了键盘部分的状态读取过程(8个键),进行了8个周期,并且每次P0端口被扫描和移动一次时,就完成了64个键的状态读取。由于经常会在演奏乐器的同时按下多个键,因此如果不对其进行处理,则多个键可能会短路,这会相互干扰并导致逻辑不清晰。因此,在每个按钮中串联一个二极管以阻止无效的段选择信号(高电平)并使它不起作用,从而可以完全区分每个按钮的状态而不会引起混淆。

乐器键盘的扫描和响应方法也有其自身的特点。扫描键盘值后,将其与先前的键盘状态进行比较。如果它没有变化,它将不会响应。如果有变化,将判断它是否被按下或抬起。 ,发出相应的MIDI命令,并记录新状态。

扫描8X8键盘的步骤如下。该过程中的key_number [i]是一个全局数组,用于存储键的状态,加法是一个全局变量,用于设置与键盘的第一个键相对应的MIDI音符的键值。全局数组和全局变量必须在主程序中定义。该程序调用前面给出的send(cc,kk,vv)函数:

voidscan_key()

{uchari,j,k,r,mmm,xu;

k = 0xfe; // k值是段选择输出的初始值,第一位为0

for(i = 0; i《 8; i ++)》

{P2 = 0xff;

P0 = k; //输出段选择值

k =(k《《1) +1; //段落选择标记向左移动,最后一位补1,为下一个循环做准备

mmm = 0x01; //设置按钮以查询指针的初始值

r = P2; //读入键值

P0 = 0xff; //关闭段选择输出

xu = r ^ key_number [i]; //查询键值是否改变,xu为1的位是改变的键

key_number [i] = r; //新的密钥值存储在数组中

for(j = 0; j《 8; j ++)//进行8个循环以确定已更改的特定密钥

{if((xu&mmm)!=0) //使用指针选择要测试的密钥

{if((r&mmm)!=0) //判断最终情况以确定它是被按下还是被释放

{发送(0x80 + chnal,i * 8 + j + addition,40);} //关闭声音,键值= i * 8 + j + addition

else {发送(0x90 + chnal,i * 8 + j + addition,127);} //开始讲话

}

没有midi键盘可以制作编曲吗_编曲键盘与midi键盘_midi键盘制作

mmm = mmm《》》 1; //将指针移到左侧,判断下一个键

}

}

}

MIDI协议规定总共有128个音符,并且与中央C音符对应的键值为60。对于具有不同键号的键盘,必须将扫描的键值与相应的初始值相加,以便首先,此键正是必需的注释,程序中的变量加法是初始值。

我使用上述控制面板分别用玩具钢琴和低端电子键盘修改了多个MIDI键盘。他们全部都成功并受到好评。现在,我将一一介绍它们:

1.Celeste:老式的电阻电容振荡电子琴。等效电路如图6所示。它使用按钮来选通具有不同电阻值的电阻器,并改变振荡器的频率以产生音符。同时按下将导致电阻器并联连接,并且参数会混淆。其他人则使用串联电阻网络。按下多个键时,只有最靠近振荡电路的电阻有效,而其他电阻则短路,因此它们不能支持复音。一键演奏不能直接更改为扫描键盘,需要进行重大更改。

重新安装时,除去所有的振荡电阻,将钢板电极切成几段,每8个键是一个段,每个段连接到一个段扫描,从左到右对应于的电子键盘的扫描电路的工作逻辑不同。为了充分利用其电路板,可以修改扫描程序,以最少地改变硬件。这就要求有能力全面分析原始键盘电路并了解键盘扫描原理,有编程能力的人必须做到这一点,否则,必须根据图7中的电路修改原始板的电路,并用我自己的程序实现。具备编程能力的读者可以略,kk,vv),音调切换和弯音轮命令也是MIDI中非常常用的命令。其中,有开关和类似物。感兴趣的读者可以使用芯片的其余接口来扩展测量功能,并为MIDI键盘添加更。

本文给出的程序没有MIDI转发功能,因此它只能发出在此键盘上播放的MIDI命令。感兴趣的读者可以制作自己的程序,并添加转发部分以将多个键盘连接在一起。 ,使用不同的MIDI通道共享计算机演奏。单独为该控制器提供5V电源后,它也可以连接到其他MIDI设备,例如带有MIDI输入端口的电子琴或合成器,从而成为双键盘,使其更加有效。

该出版物的CD-ROM提供了单片机的源程序和本文电路的编译后的十六进制代码文件,也可以在以下站点的信息区域免费下载网站。如果有用于对51系列芯片进行编程的设备,则可以自己进行编程。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-352277-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...