dianziqin.docx
《dianziqin.docx》由会员分享,可在线阅读,更多相关《dianziqin.docx(12页珍藏版)》请在冰点文库上搜索。
![dianziqin.docx](https://file1.bingdoc.com/fileroot1/2023-5/3/5185600b-0635-4b8c-a749-3382b1d2cb64/5185600b-0635-4b8c-a749-3382b1d2cb641.gif)
dianziqin
阜阳师范学院
课程设计
课程单片机原理及应用课程设计
题目简易电子琴设计
院系物电学院
专业班级电子08级2班
学生姓名谢正俊、张沥蕾、章衾
学生学号200840620236
200840620242
200840620246
指导教师
2010年12月25日
阜阳师范学院课程设计书
课程单片机原理及应用课程设计
题目简易电子琴的设计
主要内容、基本要求、主要参考资料等
1、主要内容:
根据单片机课程所学内容,结合其他相关课程知识,设计一个简易八键电子琴系统。
2、基本要求:
本设计以MCS-51系列单片机为核心,采用常用电子器件设计。
要求当按钮开关on时,将可由其连接的输入口读取到低电平(即0)。
若按S1,则发出中音的Do;
若按S2,则发出中音的Re;
若按S3,则发出中音的Mi;
若按S4,则发出中音的Fa;
若按S5,则发出中音的So;
若按S6,则发出中音的La;
若按S7,则发出中音的Si;
若按S8,则发出高音的Do;
则实验结束。
3、主要参考资料:
[1]丁元杰.单片机原理及应用[M].北京:
机械工业出版社,2010.
[2]张义和,王敏男,许宏昌,余春长.例说51单片机(C语言版)[M].北京:
人民邮电出版社,2008.
完成日期2010年12月25日
指导教师王宪菊
2010年12月25日
目录
第1章系统设计1
1.1简易电子琴系统1
第2章设计原理及过程4
2.1硬件准备4
2.2运行环境4
2.3实验原理4
第3章软件程序设计6
总结8
参考文献9
附录1整体电路图10
附录2源程序10
第1章系统设计
1.1简易电子琴系统
如图1.1所示为一八键电子琴系统电路框图。
该课程设计将以单片机控制的8051发声系统为主,利用单片机完成发声的实验,实现按键控制内正常发声,从左向右依次发出中音Do至高音Do结束。
图1.1系统电路框图
(1)发声电路
声音的产生是一个音频振动的效果。
一般音响电路是用正弦波信号驱动喇叭,从而产生悦耳的音乐;在数字电路里,则是数字信号驱动喇叭,从而产生声音。
如果声音的频率相同,人类的耳朵很难区分出哪个是脉冲信号产生的声音,哪个是正弦波信号产生的声音。
若要用8051产生声音,可用程序产生频率,送到输出入端口(p1.0)再把该点连接到喇叭的驱动电路,即可驱动喇叭。
如图1.2所示。
图1.2喇叭驱动电路(达林顿对)
(2)按键电路
要求当按钮开关on时,将可由其连接的输入口读取到低电平(即0)。
若按S1,则发出中音的Do;
若按S2,则发出中音的Re;
若按S3,则发出中音的Mi;
若按S4,则发出中音的Fa;
若按S5,则发出中音的So;
若按S6,则发出中音的La;
若按S7,则发出中音的Si;
若按S8,则发出高音的Do;
电路如图1.3所示。
图1.3按键电路
第2章设计原理及过程
2.1硬件准备
PC机及相关软件,89C51芯片1个,10KΩ电阻若干,CS9013三极管2个,扬声器一个,开关按钮若干.
2.2运行环境
KeilμVision2,Proteus7Professional
2.3实验原理
(1)音调的产生
通常以Do、Re、Mi、Fa、Sa、La、Si、Do分别代表某一个频率的声音,我们称之为“音调”,及Tone。
若要产生这些音频,可使用延迟函数来实现。
voiddelay(unsignedcharx)
{unsignedchari,j;
for(i=0;ifor(j=0;j<1;j++);
}
注意:
内循环一次,最小延迟时间8.3us
(2)常用的音阶编号
简谱
音阶
频率
参数
按键
1
Do
523
108
S1
2
Re
587
102
S2
3
Mi
659
91
S3
4
Fa
698
86
S4
5
So
784
77
S5
6
La
880
68
S6
7
Si
988
61
S7
8
Do
1046
57
S8
第3章软件程序设计
系统源程序见附录2。
软件流程图如下所示:
S2被按下
Sound
(1)
S1被按下
Sound(0)
图3.1软件流程图
(1)发声函数
voidsound(unsignedcharx)//发声函数开始
{chari;//声明变量
for(i=0;i<60;i++)//执行60次
{speaker=1;//输出高电平
delay8(tone[x]);//延迟
speaker=0;//输出低电平
delay8(tone[x]);//延迟
}
}
(2)音阶定义
#include
sbitspeaker=P1^0;//声明喇叭位置
unsignedcharkeys;
/*声明音阶数组--DoReMiFaSoLaSiDo#*/
unsignedchartone[]={108,102,91,86,77,68,61,57};
voidsound(unsignedchar);//声明发声函数
voiddelay8(unsignedchar);
(3)按键程序
main()
{P2=0xff;//将p2规划成输入口
while
(1)
{keys=~P2;//读取按键
switch(keys)
{case0x01:
sound(0);break;//按下S1,发Do音
case0x02:
sound
(1);break;//按下S2,发Re音
case0x04:
sound
(2);break;//按下S3,发Mi音
case0x08:
sound(3);break;//按下S4,发Fa音
case0x10:
sound(4);break;//按下S5,发So音
case0x20:
sound(5);break;//按下S6,发La音
case0x40:
sound(6);break;//按下S7,发Si音
case0x80:
sound(7);break;//按下S8,发Do#音
}
}
}
总结
(1)程序运行中出现参数错误,经过修改延迟函数,delay8μs修改为delay8,程序运行正常。
(2)在本实验里,是由p1.0端口输出音频的,若要改由其他端口(如p1.7)只需在程序中修改喇叭位置即可。
(3)本次实验还可以用定时器方式设计此电子琴,同学们有兴趣可以自己尝试设计。
(4)通过本次实验,我们加深了对51单片机的了解,认识到理论与实践联系的重要性。
体会到团队合作的意义。
参考文献
[1]丁元杰.单片机原理及应用[M].北京:
机械工业出版社,2010.
[2]张义和,王敏男,许宏昌,余春长.例说51单片机(C语言版)[M].北京:
人民邮电出版社,2008.
附录1整体电路图
附录2源程序
/*ch9-1.c-简易电子琴实验*/
#include
sbitspeaker=P1^0;
unsignedcharkeys;
/*声明音阶数组--DoReMiFaSoLaSiDo#*/
unsignedchartone[]={108,102,91,86,77,68,61,57};
voidsound(unsignedchar);
voiddelay8(unsignedchar);
main()
{P2=0xff;
while
(1)
{keys=~P2;
switch(keys)
{case0x01:
sound(0);break;
case0x02:
sound
(1);break;
case0x04:
sound
(2);break;
case0x08:
sound(3);break;
case0x10:
sound(4);break;
case0x20:
sound(5);break;
case0x40:
sound(6);break;
case0x80:
sound(7);break;
}
}
}
voidsound(unsignedcharx)
{chari;
for(i=0;i<60;i++)
{speaker=1;
delay8(tone[x]);
speaker=0;
delay8(tone[x]);
}
}
voiddelay8(unsignedcharx)
{unsignedchari,j;
for(i=0;ifor(j=0;j<1;j++);
}