简易电子琴的三和弦设计
1.设计一个以单片机为核心,可演奏3和弦的、音程为三组(Ģ—Ề)的电子琴。
30.2
硬件方案
任务分析频率输出有两种方案可选,一是通过定时器中断控制端口的置位复位,形成给定频率的方波输出;二是用定时器8253,通过设定不同的计数初值在其输出端形成给定频率的方波输出。由于按键较多,键盘选用矩阵式键盘,支持两键同时按下的识别。另外,由于要求有三和弦输出,所以,设置三个输出端,先将三个频率叠加,之后送给功放输出。注意,方波中含有高频成分,须将高频滤掉形成近似正弦波后进行叠加。硬件框图如图30.1所示。
30.3.2软件方案
软件的主要任务,简单的讲,即是在键盘按下之后,根据键名(音高)计算或查表得到对应频率的定时器计数初值,使定时器产生中断或输出给定频率的方波。推荐查表方式获得计数初值,此种方式只占用ROM,速度快。
一般情况下,每一个按键可以根据其硬件接线情况确定其编码,这一编码在一个键按下时是唯一的。但是,由于本系统允许多键同时按下,所以,键盘按键名进行编码的管理方式不适用于本系统。此时,应扫描键盘状态,即扫描有那几个键按下,再根据键盘(按下)状态查找定时器初值。由于没有重复处理的问题,所以不用键盘去抖延时。