简易电子琴单片机原理及应用实训报告Word文档下载推荐.docx

上传人:b****6 文档编号:21399630 上传时间:2023-01-30 格式:DOCX 页数:17 大小:54.94KB
下载 相关 举报
简易电子琴单片机原理及应用实训报告Word文档下载推荐.docx_第1页
第1页 / 共17页
简易电子琴单片机原理及应用实训报告Word文档下载推荐.docx_第2页
第2页 / 共17页
简易电子琴单片机原理及应用实训报告Word文档下载推荐.docx_第3页
第3页 / 共17页
简易电子琴单片机原理及应用实训报告Word文档下载推荐.docx_第4页
第4页 / 共17页
简易电子琴单片机原理及应用实训报告Word文档下载推荐.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

简易电子琴单片机原理及应用实训报告Word文档下载推荐.docx

《简易电子琴单片机原理及应用实训报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《简易电子琴单片机原理及应用实训报告Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。

简易电子琴单片机原理及应用实训报告Word文档下载推荐.docx

1.2.1设计思路

1、根据设计任务和性能指标要求选择总体方案,画出设计框图;

2、参阅相关资料,根据设计框图和发放的元件进行单元电路的设计;

3、绘制原理图,搭建电路板;

4、编写LED驱动程序,能够对应点亮相应的LED;

5、编写数码管程序,对数码管进行测试,使之能循环显示0到9;

6、编写按键程序,能够将按键和LED及数码管对应起来;

7、驱动蜂鸣器程序,完成简易电子琴功能;

8、编写播放音乐程序;

9、写实训报告(包括设计与调试的全过程,附上有关资料、电路图和心得体会)。

1.2.2总体设计框图

单片机

LED+数码管

蜂鸣器

及驱动

2各个模块程序的设计

程序设计流程图

详细程序:

主程序头文件与声明:

#include<

reg52.h>

#include<

intrins.h>

#defineucharunsignedchar

#defineuintunsignedint

sbitspeak1=P1^6;

sbits=P1^7;

sbitled0=P1^0;

sbitled1=P1^1;

sbitk1=P1^4;

ucharn=0;

//节拍常数变量

对应音调1、2、3、4、5、6、7:

uintcodefre[]={64579,64685,64778,64820,64898,64968,65030};

数码管显示:

ucharcodeshumaguan[]={

0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0x11,0xc1,

0x63,0x85,0x61,0x71};

uchark;

ucharj;

uchartemp;

ucharflag;

uintscale;

voiddelay_ms(uintx);

voiddelay(unsignedcharm);

voidmain()

{

while

(1)

{

while(k1==1)

{

TMOD=0x21;

//定时器0工作于16位定时方式,定时器1工作在8位自动重装

EA=1;

ET0=1;

ET1=1;

TH1=0x06;

TL1=0x06;

TR1=1;

speak1=1;

s=1;

temp=0;

flag=0;

led0=1;

led1=1;

scale=0;

按键扫描

while(k1==1)

temp=P0;

if((temp|0x80)!

=0xff)

delay_ms(10);

temp=P0;

if((temp|0x80)!

{

switch(temp)

{case0xfe:

k=1;

break;

case0xfd:

k=2;

case0xfb:

k=3;

case0xf7:

k=4;

case0xef:

k=5;

case0xdf:

k=6;

case0xbf:

k=7;

}

if(flag==0)

{

TH0=fre[k-1]/256;

TL0=fre[k-1]%256;

TR0=1;

flag=1;

s=0;

P2=shumaguan[k];

led0=0;

scale++;

if(scale==10)

scale=0;

TR2=1;

}

}

}

if((temp|0x80)==0xff)

if(temp==0xff)

TR0=0;

speak1=1;

s=1;

led0=1;

}

}

if(k1==0)

ucharp,m;

uchari=0;

j=0;

TH0=0xd8;

TL0=0xef;

while(k1==0)

led0=0;

p=music_tab[i];

if(p==0x00)

i=0;

delay_ms(100);

else

if(p==0xff)

i=i+1;

delay_ms(10);

m=music_tab[i++];

n=music_tab[i++];

while(n!

=0&

&

k1==0)//节拍

speak1=~speak1;

if(scale==10)

scale=0;

delay(m);

//音调即音调的频率

TR0=0;

s=0;

P2=shumaguan[j++];

if(j==16)

j=0;

}

}

中断子程序:

voidtime0()interrupt1

if(k1==1)

speak1=~speak1;

flag=0;

TH0=0Xd8;

TL0=0Xef;

n--;

}

voidtime1()interrupt3

uchart;

t++;

if(t==10)

t=0;

led1=0;

if(scale==t)

voiddelay(unsignedcharm)

uinti;

i=3*m;

while(--i);

voiddelay_ms(uintx)//ms级延时

while(x--)

uchari;

for(i=0;

i<

131;

i++)

_nop_();

3调试过程

通过调试,发现数码管显示不正常,播放音乐效果失灵,调试后依然没能完整解决,验收过程前再次询问老师以期结果。

4功能测试

4.1测试仪器与设备

万用表,下载线,计算机。

4.2性能指标测试

顺利实现1-7弹奏,数码管运行效果趋于不良,音乐播放功能受损。

4.3误差分析

误差方面主要是音准问题,1-7弹奏中可以明显发现音准错误,根据频率换算完成的中断时间并不能完全保证音准,还需要更多调试。

5实训心得体会

本次实训中学到了许多知识,增强了自身实际动手能力,非常感谢老师与同学们给予的帮助与支持。

对于本次实训完成的电子琴,即便完成了实训,不足之处依然不胜枚举,让人略感沮丧,好在不足之处可以弥补,透过实训所学到的关于硬件与软件的知识然我感到受益匪浅。

首先就硬件而言,透过本次实训基本了解了电子产品的开发流程与外围电路的设计与搭建,对52系单片机的工作原理以及各接口功能有了更加深刻的理解。

在软件方面,本次实训中我更加清楚的理解了52系单片机寄存器与内部编程规则以及如何控制外围电路。

所有这一切都来自于本次动手去完成实训,事实证明,实践出真知,动手远比理论获益更丰。

最后,再一次向本次实训中向我伸出援手的老师与同学表示感谢,谢谢。

6参考文献

谢自美.《电子线路设计·

实验·

测试》(第二版)。

武汉:

华中科技大学出版社,2000

陈涛.《单片机应用及C51程序设计》(第二版)。

北京:

机械工业出版社,2010

喻宗泉.《单片机原理与应用技术》。

西安:

西安电子科技大学出版社,2006

附录

附录1:

原理图

实际原理图有所改动与参考原理图有出入,以上为老师给出参考原理图。

附录2:

程序清单

TL0=fre[k-1]%256;

scale++;

k1==0)

if(scale==10)

voidtime0()interrupt1

flag=0;

voiddelay_ms(uintx)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1