,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
2、矩阵式键盘的识别和显示
在键盘中按键数量较多时,为了减少IO口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,10个管脚就可以构成3721个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
3、电子琴原理图
图3电子琴原理图
f第三章软件设计
1、整体程序处理
在电子琴开始工作时,通过按键选择状态,歌曲选择功能键的目的是赋予矩阵键盘第二功能,即对系统内置的歌曲进行选择,在放歌时能且只能通过弹奏停止键来结束放歌,选歌时必须先按下歌曲选择功能键,在通过矩阵键盘来选择和切换曲目。
2、IO并行口直接驱动LED显示
把“STC89C52”区域中的P2口连接到一位数码管的a-h端口上。表1字形码表及对应的音符123456780x3f0x060x5b0x4f0x660x6d0x7d0x07低5SO低6LA低7SI中1DO中2RE中3MI中4FA中5SO9AbCdEF00x7f0x6f0x770x7c0x390x5e0x790x71中6LA中7SI高1DO高2RE高3MI高4FA高5SO高6LA
3、音乐播放设计
一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。若要产生音频脉冲,只要算出某一音频的周期(1频率),再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后反相,然后重复计时再反相。就可得到此频率的脉冲。利用STC89C52的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T=1523=1912μs,因此只要令计数器计时956μs1μs=956,每计数956次
f时将IO反相,就可得到中音DO(523Hz)。计数脉冲值与频率的关系式是:N=fi÷2÷fr式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。其计数初值T的求法如下:T=65536-N=65536-fi÷2÷fr例如:设K=65536,fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr=65536-500000fr低音Dr