- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《乐曲编辑
乐曲编辑器设计
系统功能及性能指标
系统采用AT89C52单片机,能自行按键编辑音符,并将记录的音符播放出来。还可播放存在单片机中的6首曲目。在lcd液晶显示屏中显示播放的曲目名字,按键播放下一首。还设有停止键。
方案论证
方案一:利用eda技术实现,基于FPGA的乐器编辑设计,用到了VHDL硬件描述语言设计以及适当的外围电路,可从琴键上进行演奏。总体框图如图2
图2 系统整体电路结构框图
此方案需掌握硬件描述语言及其设计方法,且时钟控制电路的分频要求严格是设置,涉及到占空比、同异步预置控制设置、分频系数及计数方式等。还有排除溢出信号的冒险干扰。
方案二:利用单片机定时器来产生各种频率的声音,构建矩阵键盘,人机操作来编辑相应的音符及节拍,存储于at24c02芯片中。用C51高级语言
4*4矩阵键盘模块
键盘与单片机P1口相连,程序设计时采用行列扫描的方法。且接了4个1K的限流电阻。单片机键盘扫描法是在判定有键按下后逐列果行(或列)的状态出现非全1,状态,如果行(或列)的状态出现非全1状态,这时0状态的行、列交点的键就是所按下的键。首先判断有无键按下,逐行(或列)扫描查询。在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其他线为高电平,在确定某根行线位置为低电平后,再逐行检测各列线的电平状态,若某列为低,则该列线与置为低电平的行线交叉处的按钮就是闭合的按键。
喇叭电路
喇叭电路中增加了功放电路,LM386芯片,是专为低损耗电源所设计的功率放大器集成电路。3脚输入,跟P20口连接,5脚输出,其中各电容作用是隔直+耦合。隔断直流电压,直流电压过大有可能会损坏喇叭线圈。它与扬声器负载构成了一阶高通滤波器。
A0、A1、A2 器件地址输入端用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0。当使用AT24C02 时最大可级联8个器件。如果只有一个AT24C02被总线寻址,这三个地址输入脚(A0、A1、A2 )可悬空或连接到Vss,如果只有一个AT24C02被总线寻址这三个地址输入脚(A0、A1、A2 )必须连接到Vss。
LCD液晶电路
P0口作为数据,其中RS、RW、EN分别与IO口P27、P26、P25相连。
系统程序设计
程序主流程图
单片机播发乐曲原理
乐曲中不同的音符,实质就是不同频率的声音。通过单片机产生不同的频率的
脉冲信号,经过放大电路,由蜂鸣器放出,就产生了美妙和谐的乐曲。
要产生音频脉冲,只要算出某一音频的脉冲然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期的时间再对I/O反相,就可以在I/O脚上得到此频率的脉冲。
再利用8051的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法如下:
例如,频率为523Hz,其周期1/523 S=1912uS,因此只要令计数器计时956uS/1us=956,在每计数956次时就将I/O取反,就可得到中音DO。各个音符频率与计数值T的对照表如表1所示:
表1
程序中用到了两个定时/计数器来完成的。其中T0用来产生音符频率,T1用来产生音拍。每个音符使用个1字节,字节的高4位代表音符的高低,低4位代表音符的节拍。如果1拍为0.4秒,那么1/4拍就为0.1秒,只要设定延迟时间就可求得节拍的时间。我们可以举例来说明。在一张乐谱中,我们经常会看到这样的表达式,如1=C 、1=G…… 等等,这里1=C,1=G表示乐谱的曲调,和我们前面所谈的音调有很大的关联,、就是用来表示节拍的。以为例加以说明,它表示乐谱中以四分音符为节拍,每一小结有三拍。比如:
其中1 、2 为一拍,3、4、5为一拍,6为一拍共三拍。1 、2的时长为四分音符的一半,即为八分音符长,3、4的时长为八分音符的一半,即为十六分音符长,5的时长为四分音符的一半,即为八分音符长,6的时长为四分音符长。那么一拍到底该唱多长呢?一般说来,如果乐曲没有特殊说明,一拍的时长大约为400—500ms 。在程序设计时就是把音长的值赋给T1。
定时器的流程图如下:
键盘扫描流程图
对4*4键盘编号从0到15,其中8到15为一个调的八个音阶。0号键为曲目选择,每按一下液晶即显示曲首和歌曲名,1号键按在则播放显示在液晶中的歌曲,2号键清屏,3号键播放乐曲编辑后的音阶,5号键实现暂停退出播放函数,7号键是确定编辑后所
文档评论(0)