我们的软件实验做的是电子音乐发生器,拥有以下4种功能: 1.按键演奏:即“电子琴”功能,可以用键盘上的“1”到“A”键演奏从低音sol到高音do等11个音; 2.点歌功能:即按动“B”“C”键分别演奏两首乐曲(可以表现准确的音高和音长;。 3.存储音乐功能:即按右下角“F存储”键,然后按键演奏并存储,随后按“E”键结束,之后按“D键”就可以播放存储的乐曲了; 4.液晶显示功能:即在开始时显示“hello!”,在点播时分别显示“song b”、“song c”,在存储时显示“saving”。 我们的硬件实验做的是脉冲宽度测量仪,主要的功能为测量输入脉冲方波的宽度,以4位16进制数显示在液晶显示器上,并用portc的低四位以二进制逐一显示每位。 b.方案论证与比较: 一、软件实验的设计:我们首先在大体上对音乐播放器的功能按几个部分进行了划分,其中包括键盘扫描、单键演奏、键盘点播乐曲、音乐输入存储及播放、液晶显示等几个部分,随后分工,我主要负责键盘扫描、键盘点播乐曲、音乐存储及播放部分,并合作了实现电子琴演奏功能的部分,最后把程序整和在一起调试完成。 其中对于音乐的存储和演奏我们有过讨论。起初我们设想把音乐的声调高低这些信息用不同的电压代表。通过A\D转换存储到内存单元里,而这不同的电压正可以通过不同的按键实现,后来在具体编程时发现有困难,于是在网上查到相应音高的分频值存储在寄存器里,并将其与对应的按键进行关联,通过键盘扫描子程序将对应的分频值送入单音播放子程序即可产生相应频率的电压方波,再将其输出到喇叭即可产生对应的音高实现电子琴功能。将音符按音高和音长直接存储在数据存储器里并与按键相关联,调用自动演奏子程序产生相应频率和时长的方波电压输出到喇叭即可。 另外在液晶显示方面,也有两种方法思路: 1、应用查表实现; 2、直接传输16进制ASCII码送显输出...... |
查看评论
已有0位网友发表了看法