- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机论文-基于单片机的电子琴设计
单片机课程设计
简易电子琴设计
班级:学号:20092300246 姓名:XX
设计简介
用键盘上的数字1~7代替电子琴键,演奏音符,音调可在低音、中音和高音之间进行切换。
系统介绍
该系统采用一片51系列单片机、一个扬声器和8个按键开关。
基于对音乐的了解,一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,我们可以利用单片机的不同频率来模拟音乐,可以利用定时/计数器T1来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。本次设计中单片机晶振为12MHZ,那么定时器的计数周期为1MHZ,假如选择工作方式1,那T值便为T= 216--5﹡105/相应的频率 ,那么根据不同的频率计算出应该赋给定时器的计数值,可以列出不同音符与单片机计数T1相关的计数值。
简易电子琴系统框图
硬件电路设计
系统中8个键采用独立连接方式,有P1口接收键值,1~7号键用于控制音符。8号键用于音区切换,8号键未按下为低音,按一次为中音,按2次为高音,按第3次又回到低音。
简易电子琴电路图
程序设计
扬声器发声的频率可由定时/计数器0的计数值确定,在程序中可定义3个音区1~7对应的计数初值,然后根据按键情况查表后对定时/计数器0的中断服务程序中对扬声器的控制端变反即可控制扬声器发出不同频率的声音。本系统软件中还要是编辑电子琴播放状态的内容,在设计中采用c51语言编写了电子琴控制系统控制和播放内容的程序。
简易电子琴程序流程图
程序清单:
#include reg51.h
#includeintrins.h
#define uchar unsigned char
#define uint unsigned int
sfr16 T0=0x8A;
sbit BEEP=P0.0;
uint t0_f;
code unint char freq[21]={
0x220,
0x247,
0x277,
0x294,
0x330,
0x370,
0x415,
0x440,
0x494,
0x554,
0x587,
0x659,
0x740,
0x831,
0x880,
0x988,
0x1109,
0x1175,
0x1318,
0x1480,
0x1661,
};
timer0( )interrupt 1
{
T0=t0_f;
BEEP=~BEEP;
}
Void main(void)
{
Uchar key,key8_count;
TMOD=0x01;
TR0=0;
ET0=1;
EA=1;
While(1)
{
flag=0;
key=P1;
for(i=0;i8;i++)
{
if((_coro_(a,i)0x01)==0)
{
flag=1;
break;
}
}
if(flag==1)
{
if(i==7)
{
key8_count++;
key8_count=key8_count%3;
}
else
{
switch(key8_count)
{
case0:t0_f=freq[i];break;
case1:t0_f=freq[i+7];break;
case2:t0_f=freq[i+14];
}
TR0=1;
for(n=0;n10000;n++);
TR0=0;
BEEP=1;
}
}
}
}
总结
完成了简易电子琴的设计。数字1~7键发挥了电子琴键的作用,能弹奏出音符。8号键也发挥作用,未按下时为低音,按一次为中音,按两次为高音,按三次又回到了低音。
1.在单片机课程设计中,我在增长知识、提高能力的同时,产生了很深的感触。从初步定下方案到编出程序,从不断的运行排错到调试成功,在整个设计过程中,着实受益匪浅,不仅可以巩固以前所学过的知识,而且学到了很多在书本所没有学到过的东西。
2.我懂得了理论与实际相结合是很重要的,眼高手低的现象常常难以避免。只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能提高自己的实际动手能力和独立思考的能力。
3. 在设计的过程中难免会遇到各种各样的问题,但是在这重重困难之中我了解到自己的真实水平,并努力提高自己。同时我明白,对于想要成功的人来说更重要的不是知识或技能,而是克服困难的信心。
您可能关注的文档
最近下载
- 外教社新世纪英专本科生系列(修订版):英语阅读 第1册 PPT课件Unit 3.pptx VIP
- 毕业论文的选题及开题报告的撰写.pptx VIP
- 初中语文2025届中考常考易错字词汇总(多音字+形声字+易错字形+易错成语).pdf VIP
- 4清洁生产的实施途径.pptx VIP
- 中视科华有限公司北京技术服务分公司招聘笔试题库2025.pdf
- JJG 1201-2024 数字式轮胎压力表.pdf
- 高标准农田建设项目监理实施细则.docx
- 四川省成都市2022-2023学年八年级下册期末物理试卷3(含答案).pdf VIP
- 钩端螺旋体病疫情应急处置技术方案.doc VIP
- GB 24430.1-2009 家用双层床安全第1部分:要求.docx VIP
文档评论(0)