论文部分内容阅读
摘 要:该设计是一种基于AT89C51的简单音乐发生器,利用主控芯片AT89C51、4*4键盘和数码管、蜂鸣器等实现设计,并用C语言进行按键识别程序设计和音频脉冲输出程序的设计。实践应用表明,该设计有一定的应用价值。
关键词:AT89C51;电子琴;C语言
0 引言
本文以AT89C51为核心来设计电子琴,目的在于从日常生活能接触到的细微处着手,通过理论与实践的结合,更深层次的了解单片机技术,更加熟练的掌握一些单片机芯片的开发应用,以解决很多理论和实践脱节的问题,更明确自己的所学所用,也在实践中发现理论的不足,对目前日益广泛应用的单片机有更加理性化的认识,使理论和实践更加很好的结合[1]。
1 系统总体设计
该系统通过电子琴按键随意键入所要表达的音符,作为电平送给主电路,中央处理器通过识别,解码输出音符,在发音电路发出有效的声音,这样便可以不断的弹奏乐曲。其主要模块可分为六个模块组成,其中时钟模块、复位模块和键盘模块为输入模块,数码显示模块和发音模块为输出模块。
2 系统硬件电路设计
该系统硬件电路主要包括:键盘电路、复位电路、时钟电路、显示电路等组成。
2.1 键盘电路设计
由于本设计是电子琴设计,其每个按键应该是独立发音,按键较多,因此本次设计采用的矩阵键盘。其优点是扫描速度快,按键数量多。
矩阵式结构的键盘识别要复杂一些,列线接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入端。这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读输入线的状态就可得知是否有键按下了。
利用AT89C51的并行口P2口为按键输入口,形成4×4式16个触点式按键矩阵,均为低电平有效。16个琴键在数码管上按0-F顺序显示,对应按键的序号排列如图1所示。
图1 键盘设计电路
2.2 复位电路设计
本设计采用按键与上电复位电路,如图2所示,上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且按键复位的操作。实际应用中如果在单片机断电后,有可能在较短的时间内再次加电,可以在R2上并接一个放电二极管,这样可以有效地提高此种情况下复位的可靠性。
3 系统软件设计
图3为电路工作的总流程图,上电后,先对T0和T1初始化并允许中断,然后开始按键扫描,检测是否有键按下,对于主要的键盘扫描的處理,本系统采用一种线反转法来读取按键状态,程序先从矩阵键盘的行坐标扫描,当系统检测到行内有键按下,再进行列扫描,将检测到得行坐标和列坐标组合在一起来确定是哪个键按下,然后调用每个键对应的数码管段码和音符值,在数码管上显示出来并通过扬声器发出声音[2]。
当系统扫描到是弹奏键时,系统就根据所按下的键的功能取相应音符值到T0,由T0计时发音,按键释放后,T0停止工作,返回继续扫描是否有键按下。当系统检测到是播放键时,系统取相应的音符码到T1,由T1定时器执行对应乐曲的延时常数和定时常数,完成乐曲的播放。播放结束后,返回键盘扫描程序。
图2 复位电路
图3 软件流程图
4 结论
本设计以AT89C51为控制核心,通过键盘可以弹奏出来简单的乐曲,而且不弹奏时按播放键可以播放内置音乐,经过实践证明,本系统运行较稳定,具有一定的实用和参考价值。■
参考文献
[1] 钱丹浩等.LCD可储存式数字电子琴设计[J].科技信息,2007 (7):36-42
[2] 韩改宁.基于AT89C52实现简单音乐发生器[J].电脑知识与技术,2009(32):77-98
[3] 汪晓峰.电子综合设计实验设备的研制音频处理电路的设计[J].硅谷,2008(48): 120-143
[4] 田其冲.基于AT89S51的电子琴设计[J].电脑知识与技术,2010(67):28-47
关键词:AT89C51;电子琴;C语言
0 引言
本文以AT89C51为核心来设计电子琴,目的在于从日常生活能接触到的细微处着手,通过理论与实践的结合,更深层次的了解单片机技术,更加熟练的掌握一些单片机芯片的开发应用,以解决很多理论和实践脱节的问题,更明确自己的所学所用,也在实践中发现理论的不足,对目前日益广泛应用的单片机有更加理性化的认识,使理论和实践更加很好的结合[1]。
1 系统总体设计
该系统通过电子琴按键随意键入所要表达的音符,作为电平送给主电路,中央处理器通过识别,解码输出音符,在发音电路发出有效的声音,这样便可以不断的弹奏乐曲。其主要模块可分为六个模块组成,其中时钟模块、复位模块和键盘模块为输入模块,数码显示模块和发音模块为输出模块。
2 系统硬件电路设计
该系统硬件电路主要包括:键盘电路、复位电路、时钟电路、显示电路等组成。
2.1 键盘电路设计
由于本设计是电子琴设计,其每个按键应该是独立发音,按键较多,因此本次设计采用的矩阵键盘。其优点是扫描速度快,按键数量多。
矩阵式结构的键盘识别要复杂一些,列线接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入端。这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读输入线的状态就可得知是否有键按下了。
利用AT89C51的并行口P2口为按键输入口,形成4×4式16个触点式按键矩阵,均为低电平有效。16个琴键在数码管上按0-F顺序显示,对应按键的序号排列如图1所示。
图1 键盘设计电路
2.2 复位电路设计
本设计采用按键与上电复位电路,如图2所示,上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且按键复位的操作。实际应用中如果在单片机断电后,有可能在较短的时间内再次加电,可以在R2上并接一个放电二极管,这样可以有效地提高此种情况下复位的可靠性。
3 系统软件设计
图3为电路工作的总流程图,上电后,先对T0和T1初始化并允许中断,然后开始按键扫描,检测是否有键按下,对于主要的键盘扫描的處理,本系统采用一种线反转法来读取按键状态,程序先从矩阵键盘的行坐标扫描,当系统检测到行内有键按下,再进行列扫描,将检测到得行坐标和列坐标组合在一起来确定是哪个键按下,然后调用每个键对应的数码管段码和音符值,在数码管上显示出来并通过扬声器发出声音[2]。
当系统扫描到是弹奏键时,系统就根据所按下的键的功能取相应音符值到T0,由T0计时发音,按键释放后,T0停止工作,返回继续扫描是否有键按下。当系统检测到是播放键时,系统取相应的音符码到T1,由T1定时器执行对应乐曲的延时常数和定时常数,完成乐曲的播放。播放结束后,返回键盘扫描程序。
图2 复位电路
图3 软件流程图
4 结论
本设计以AT89C51为控制核心,通过键盘可以弹奏出来简单的乐曲,而且不弹奏时按播放键可以播放内置音乐,经过实践证明,本系统运行较稳定,具有一定的实用和参考价值。■
参考文献
[1] 钱丹浩等.LCD可储存式数字电子琴设计[J].科技信息,2007 (7):36-42
[2] 韩改宁.基于AT89C52实现简单音乐发生器[J].电脑知识与技术,2009(32):77-98
[3] 汪晓峰.电子综合设计实验设备的研制音频处理电路的设计[J].硅谷,2008(48): 120-143
[4] 田其冲.基于AT89S51的电子琴设计[J].电脑知识与技术,2010(67):28-47