AT89S51电子琴1.docx
- 文档编号:3716149
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:10
- 大小:230.06KB
AT89S51电子琴1.docx
《AT89S51电子琴1.docx》由会员分享,可在线阅读,更多相关《AT89S51电子琴1.docx(10页珍藏版)》请在冰豆网上搜索。
AT89S51电子琴1
一、设计目的:
●了解KeiluVision4、Protel及Proteus软件的基本使用
●掌握单片机开发编程设计的基本流程
●熟悉芯片AT89C51的使用
●Protel原理图及PCB板的设计
●Proteus仿真图的设计
二、设计要求:
电子琴功能:
根据所给的3个键(S1,S2,S3)分别控制低音,中音,高音。
,按下K1~K7中对应键,单片机能够发出高音、中音、低音的1、2、3、4、5、6、7七个音符,按键的长短代表节拍,这样便可实现自编曲子或旋律;
三、设计任务和内容:
整体设计:
整个硬件电路是由中心控制、发声电路、电子琴等模块组成。
电路设计:
电路原理图、导入PCB板、Protues仿真图的设计。
软件设计:
软件设计主要可分为发声程序、电子琴程序二大模块。
四、系统框图和原理分析:
1)整体设计
整个硬件电路是由中心控制、发声模块电子琴等模块组成。
该硬件系统框图如图1-1所示。
图1-1硬件系统框图
2单片机最小系统
目前应用较为流行的单片机有AVR和51单片机。
从系统设计的功能需求及成本考虑,51单片机性价比更高,AT89S51是拥有2个外部中断,2个16位定时器,2个可编程串行UART的单片机。
中心控制模块采用AT89S51单片机已完全满足设计需要,实现整个系统控制。
如图1所示:
图1中心控制模块
3发声模块
播放模块是由8550NPN三极管和电磁蜂鸣器组成。
AT89S51输出高电平控制信号,启动8550NPN三极管使信号放大,从而启动电磁蜂鸣器。
与LM386和喇叭的组合相比较,该播放模块存在一定噪声.音响效果较差。
但由于所需驱动功率较小,驱动器件要求不高,并能降低设计成本。
因此,必须选用8550NPN三极管和电磁蜂鸣器则能满足系统要求。
如图2所示:
图2发声模块
4电子琴按键模块
电子琴设有10个按键,其中7个作为音符输入,另外3个作为对低音、中音和高音的控制。
7个按键分别代表7个音符,包括低、中、高音3个阶段的全部音符。
通过软硬件设计,要求通过查询按键的方式分别对10个按键进行查询。
(1)当按下低音控制键S1时,且没有松开。
这时按下K1~K7时,则对应发出低音阶段的7个音符。
(2)当按下中音控制键S2时,且没有松开。
这时按下K1~K7时,则对应发出中音阶段的7个音符。
(3)当按下高音控制键S3时,且没有松开。
这时按下K1~K7时,则对应发出高音阶段的7个音符。
这样用户就可以自己编写乐曲。
按键模块如图3所示:
图3按键模块
五、程序流程图
图4
程序流程如上图4所示,当程序开始运行,面对用户来说,首先要选择低、中、高音键,然后分别按下K1—K7键则发出7钟不同的音调,这就实现了电子琴的目的,按键流程如下图5。
图5
六、关键代码分析
此代码由一个三维数组表示,分别代表高、中、低音的七种音符。
代码如下:
uintcodemuctab[3][7]={63628,63835,64021,64103,64260,64400,64524,//低7音
64580,64684,64777,64820,64898,64968,65030,//中7音
65058,65110,65157,65178,65217,65252,65283};//高7音
七、设计总结
经过本次单片机课题的设计与研究,我们深入的学习了除课本以外的很多微机附件的内容,掌握了很多实验室操作技能。
我们在实际设计中遇到很多问题,但结合所学知识以及参考资料的帮助,不断地尝试,设计了一个简易电子琴,虽然其难易程度不是很大,但是对于我们对单片机的学习和了解有很大的帮助。
特别是在本次实验的程序调试方面,我们遇到了很多的问题,不过最后在我们的努力下终于完成了实验。
最后,我和我的队友们要感谢老师对我们的支持与帮助。
附录
附录1---电路图和PCB图
附录2---PCB图
附录3---仿真图
附录4---源程序(汇编或C语言)
#include
#defineuintunsignedint
#defineucharunsignedchar
#definespeakerP3^7
#definekeyP3^3
sbitp37=P3^7;
sbitdi=P0^0;
sbitzhong=P0^1;
sbitgao=P0^2;
ucharSTH0,STL0;
uintcodemuctab[3][7]={63628,63835,64021,64103,64260,64400,64524,//低7音
64580,64684,64777,64820,64898,64968,95030,//中7音
65058,65110,65157,65178,65217,65252,65283};//高7音
voiddelay(uintx)//延时
{
uinty,z;
for(y=x;y>0;y--)
for(z=110;z>0;z--);
}
voidtimer0_int()interrupt1
{
TH0=STH0;
TL0=STL0;
p37=~p37;//speaker反相
}
voidmain()
{
uchark,x;
TMOD=0x01;
ET0=1;
EA=1;
p37=0;
while
(1)
{
P2=0xff;//扫描键盘
if(P2!
=0xff)
{
delay(10);
if(P2!
=0xff)
{
if(P2==0xfe)
k=0;
if(P2==0xfd)
k=1;
if(P2==0xfb)
k=2;
if(P2==0xf7)
k=3;
if(P2==0xef)
k=4;
if(P2==0xdf)
k=5;
if(P2==0xbf)
k=6;
}
if(di==0)//选择高中低
x=0;
if(zhong==0)
x=1;
if(gao==0)
x=2;
STH0=muctab[x][k]/256;
STL0=muctab[x][k]%256;
TR0=1;
P2=0xff;
while(P2!
=0xff)//判断是否松手
{
P2=0xff;
}
TR0=0;
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AT89S51 电子琴