单片机时钟工作于12MHZ。采用定时器工作方式1的模式来产生不同频率的脉冲。此种工作方式下定时器通过16位寄存器产生各种频率的定时信号。根据不同频率预先设定初值后,寄存器跟随着时钟周期进行自动加1的操作。在数值加到65535时达到上限5,再进行一次加1后产生溢出和中断,同时通知主函数进行中断处理。中断函数中对扬声器进行交替赋值“0”和“1”,产生了脉冲信号。对于不同的音阶,只需要改变定时器的初值来产生不同的频率。其对应关系如表1所示。
22按照乐谱配合节拍
除了音符以外,节拍也是音乐的关键组成部分。节拍实际上就是音阶持续时间的长短,在单片机系统中可以用延时来实现。先建立一个基本的单位延时函数,将各音阶的延时长度8除以单位延时得出延时次数s,将延时次数存入数组。在脉冲频率产生后中调用s次的单位延时函数,就实现了节拍。
3软件设计方案
软件设计方案中主函数中调用了两个子函数keysa
()和check_key(),keysa
()根据按键0多次按下切换花样流水灯9,根据按键1多次按下切换音乐,check_key()根据不同按键的输入播放对应音阶。设计流程10如图2所示。
4结束语
本文以单片机AT89S52作为核心控制芯片,设计了一个声光电子琴。文中对电子琴的设计原理,软件设计方法进行了详细的阐述。该电子琴设计思路清晰简洁。可以应用于单片机教学、玩具、娱乐设施等领域。
参考文献:
f龙源期刊网httpwwwqika
comc
1邵贝贝单片机技术的发展与单片机应用的广泛选择J电子技术应用,1993,(3):46
2徐江维,李菲基于51单片机的电子琴设计J电子世界,2017,(09):125
3孙万麟基于STC89C51单片机的电子琴设计J电脑知识与技术,2010,06(20):56265627
4彭建英,彭光含,曾志刚基于单片机的简易电子琴设计J湖南文理学院学报(自然科学版)2015,(4):3032
5冯川放MCS_51单片机定时器的应用与误差纠正J计算机时代,2008,(10):4849
6刘建超用单片机制作简易电子琴J单片机开发与应用,2005,(7):2425
7任肖丽,王骥基于STC89C51单片机的电子琴设计J电子元器件应用,2010,12(7):2728
8朱丽基于STC89C54微控制器的模拟电子琴设计J电脑编程技巧与维护,2015,(24):111112
9王志,许建明,陈炯明基于单片机的简易电子琴设计J电子世界,2016,(6):79
10程家勤,刘强强,等基于单片机的多功能电子琴设计J电子电路设计与方案,2017,(11):911
fr