姓 名:
班 级:
学 号:
小班学号:
同组姓名:
电子邮件:
实验课题:基于AVR单片机电子琴的制作
实验日期:—
目录:
一、实验简介
...................0,262,262,294,330,262,330,349,392,330,349,392,392,440,392,349,330,262,392,440,392,349,330,262,294,196,262,294,196,262};
②音长数组为:uint time[32] = {500,500,500,500,500,500,500,500,500,500,1000,500,500,1000,
375,125,375,125,500,500,375,125,375,125,500,500,500,500,1000,500,500,1000};
二、实验器材
:ATmega16单片机
图二 ATmega16单片机外观图
图三 ATmega16单片机引脚图
器材名称
数量
用途
4*4键盘
1
模拟电子琴的按键(不同音调的音符)以及暂停、快进、储存、播放等功能。
数码管
1
显示不同音调的音符
扬声器
1
播放音符及储存的音乐
LED灯
3
不同颜色的LED灯亮代表电子琴不同的工作状态,有指示作用。
导线
若干
连接电路
(1)4*4键盘:接PA0~PA7端口。
(2)LED灯:黄灯(接PC1端口),绿灯(接PC0端口),红灯(接PD7端口)。
(3)数码管:接PB0~PB3端口,PB5~PB7端口。
(4)扬声器:“+”接PD5端口,“—”接AGND。
三、实验原理
黄
绿
红
单片机输出频率CTC不同的信号来产生各种音符,将歌曲各个音符转化成相应的数字信号,存放在单片机程序寄存器中,当播放音乐时,程序从该寄存器里读取数据,然后以CTC信号的模式实现放音乐的功能。
int main()程序入口
init()初始化 8段数码管
发声、播放速度、按键
C:play()
弹奏和储存
B:播放《倔强》
Keyscan();
PORTB = 0b11111111;数码管初始化为8
PORTD |=(1<<7); 红灯亮
player(&sound,&time,15); 播放《一千年以后》
四、操作过程与运行结果
开始
定时器初始化数码管显示8
调用键盘扫描子程序
弹奏键按下
否
播放键按下
是
调用弹奏子程序
是
调用播放子程序
否
复位
结束
(1)按键操作原理 (2) 弹奏模式
(3)播放模式
共分为五大部分:
(1)ATmega16单片机
(2)4*4键盘
(3)LED显示灯
(4)数码管
(5)扬声器
(1)键盘区:数字1~7代表7个音符,8代表曲子加速播放,9代表曲子减速播放,0代表曲子恢复原速播放。另外,B、F可以进入演奏模式:按B可以播放我们预存的曲子一,按F可以播放预存曲子二。C、D、E分别代表L大调、C大调、H大调。按键C还有另一个功能:按下它可以进入弹奏模式,可以自己弹奏一曲(音符默认为L大调),弹奏完后按F可以播放自己先前弹奏的音符,有存储的功能。除此之外,2键有暂停的功能,3键有继续的功能,实现曲子的暂停与继续播放。1键有停止的功能,实现模式之间的转换,如从演奏模式转入弹奏模式。最后,在我们按1~7七个音符时,数码管会给予相应的数字显示,按下A键有清屏的功能。
(2)
单片机电子琴的实验报告 来自淘豆网m.daumloan.com转载请标明出处.