1、 单片机课程设计 09 届 电子信息工程 专业 班级 题 目 基于单片机的电子琴设计 学 号 姓 名 . 指导教师 二一 一 年 一 月 五 日 一、电子琴的基本原理 设计要求: 1、具有 7 个基本音符的按键,能够弹奏简单乐曲; 2、能够播放存贮在内存中的 3 首乐曲; 3、可以将弹奏乐曲存储在内存中并回放; 分析上述的设计要求结合单片机的功能,一首音乐是许多不同的音 阶组成的, 而每个音阶对应着不同的频率, 而乐音就是固定频率的声音。 这样我们就可以利用不同的频率的组合,构成我们想演奏的那首曲目。 当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定 时/计数器 T0 来产生这样
2、的方波频率信号,因此,我们只要把一首歌曲 的音阶对应频率关系编写正确就可以达到我们想要的曲目。 二、电子琴的硬件设计 总体硬件组成框图 该设计方案是通过按键随意按下所要表达的音符,作为电平送给主 体电路,中央处理器通过识别,解码输出音符,在扬声器中发出有效的 声音。通过这样可以不断的弹奏我们想要的音符或者是音调,电路由复 位电路,指示灯电路,和功能按键电路组成,通过功能键可以选择播放 键盘输入 A T89S52 单片机 喇 叭 发 出声音 音乐或者弹奏音节。 元器件列表 元器件清单 序号 器件名称 参数 数量 1 USB 座 1 2 USB 线 1 3 双排针 2 2 4 跳帽 3 5 104
3、 电容 0.1uF 7 6 LED 灯 1 7 电阻 2K 1 8 40 针座 1 9 STC89C52 1 10 晶振 12MHZ 1 11 电容 20pF 2 12 复位键 1 13 电阻 10K 1 14 蜂鸣器 1 15 三极管 9015 9 16 电阻 330 9 17 16 针座 1 18 MAX232 1 19 串口 1 20 单排针 3 1 21 LED 4 位 1 22 电阻 4.7K 8 23 按键 表 1 元件列表 三、三、电子琴电子琴的软件设计 针对原理图做出软件设计分析,根据学过的矩阵键盘相关知识,可以设 计扫描式键盘,本设计中总共用到 12 个按键,分别控制暂停,播
4、放(3 个按键) ,蜂鸣器用到 p1.6口,键盘用 p3 口,只需要把对应的行线和列 线连接起来就可以了。基本按照硬件电路设计的规则去设计软件电路, 因为 protus 仿真会用到电路图,所以这也属于软件设计的一部分。接下 来就是编程,然后用 keil生成 hex 文件可以下到板子里调试,也可以先 用仿真软件仿真然后再调试,最终实现功能。 程序:#include #define MUSICNUMBER 3 /歌曲的数目 /*/ #define SYSTEM_OSC 12000000 /定义晶振频率 12000000HZ #define SOUND_SPACE 4/5 /定义普通音符演奏的长度分
5、率,/ 每 4 分音符间隔 sbit BeepIO = P16; /定义输出管脚 unsigned char MusicIndex = 0; unsigned int code FreTab12 = 262,277,294,311,330,349,369,392,415,440,466,494 ; unsigned char code SignTab7 = 0,2,4,5,7,9,11 ; unsigned char code LengthTab7= 1,2,4,8,16,32,64 ; unsigned int Sound_Temp_TH0,Sound_Temp_TL0; unsigned int Sound_Temp_TH1,Sound_Temp_TL1; /*/ unsigned char tempkey,key=0;unsigned int Temp_T; /*/ void Delay1ms(unsigned int count);unsigned char keydisp(); unsigned char getke