报告内容学期项目.docx

上传人:b****4 文档编号:5580918 上传时间:2023-05-08 格式:DOCX 页数:18 大小:362.86KB
下载 相关 举报
报告内容学期项目.docx_第1页
第1页 / 共18页
报告内容学期项目.docx_第2页
第2页 / 共18页
报告内容学期项目.docx_第3页
第3页 / 共18页
报告内容学期项目.docx_第4页
第4页 / 共18页
报告内容学期项目.docx_第5页
第5页 / 共18页
报告内容学期项目.docx_第6页
第6页 / 共18页
报告内容学期项目.docx_第7页
第7页 / 共18页
报告内容学期项目.docx_第8页
第8页 / 共18页
报告内容学期项目.docx_第9页
第9页 / 共18页
报告内容学期项目.docx_第10页
第10页 / 共18页
报告内容学期项目.docx_第11页
第11页 / 共18页
报告内容学期项目.docx_第12页
第12页 / 共18页
报告内容学期项目.docx_第13页
第13页 / 共18页
报告内容学期项目.docx_第14页
第14页 / 共18页
报告内容学期项目.docx_第15页
第15页 / 共18页
报告内容学期项目.docx_第16页
第16页 / 共18页
报告内容学期项目.docx_第17页
第17页 / 共18页
报告内容学期项目.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

报告内容学期项目.docx

《报告内容学期项目.docx》由会员分享,可在线阅读,更多相关《报告内容学期项目.docx(18页珍藏版)》请在冰点文库上搜索。

报告内容学期项目.docx

报告内容学期项目

报告内容:

学期项目

项目名称:

简易电子琴

制作班级:

电子09303

指导老师:

陈刘

项目成员:

柳一江、郭晶晶、朱敏、王欢、张华恩、姜小通

报告日期:

2011/6/12

项目目标:

1.用单片机设计一简易电子琴,按下不同按键,能够发出不同的声音。

2.利用4X4矩阵键盘控制从低到高16个音节的输出。

3.数码管显示单元对应每一个键位的显示。

体积小,易于操作。

一、简易电子琴的组成及原理:

☐复位电路:

硬件电路里面单片机的9脚RST直接接高电位,电源接通后复位。

☐时钟电路:

(外接的12Mhz晶振)单片机的18,19脚接外部晶振电路。

☐供电电路:

7805稳压到5v然后供给单片机。

☐数码管显示单元:

一位共阳极数码管。

☐键盘模块:

4×4矩阵键盘。

☐发声模块:

通过9013三极管放大驱动蜂鸣器发声。

本电子琴系统主要包括AT89S52单片机,4x4键盘,发声模块,数码管显示单元。

系统设计

主要的元器件

●AT89S52:

52系列的单片机,电路的核心

●7805L:

这是一个三端稳压器,把9V电源稳5V

●数码管:

一位共阳极数码管。

●矩阵式键盘:

4×4矩阵,非编码键盘

●蜂鸣器

基本原理:

(声音产生原理)

1.音乐产生原理及硬件设计

由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。

本次设计中单片机晶振为12MHZ,那么定时器的计数周期为1MHZ,假如选择工作方式1,那T值便为T=216--5﹡105/相应的频率,那么根据不同的频率计算出应该赋给定时器的计数值,列出不同音符与单片机计数T0相关的计数值如下表所示:

单片机计数T0相关的计数值如下表所示:

按键

音阶

参数

S1

中音do

108

S2

中音re

102

S3

中音mi

91

S4

中音fa

86

S5

中音so

77

S6

中音la

68

S7

中音xi

61

S8

高音do

57

元器件各部分的作用:

一、矩阵式键盘

矩阵式键盘原理

所谓和矩阵式的原理是每条水平线和垂直现在交叉处不直接接通,而是通过一个按键加以连接。

行线通过上拉电阻接到5V上。

当无键按下时,行线处于高电平状态;当有键按下时,行,列线将导通,此时,行线电平将由与此行线相连的列线电平决定。

这是识别按键是否按下的关键。

而然,矩阵键盘中的行线,列线和多个相连,各按键按下与否均影响该键所在行线和列线的电平,各按键间将相互影响,因此,必须将行线,列线信号配合起来做适当处理,才能确定闭合的位置。

矩阵式键盘的扫描过程

1.判有无键按下。

将行线接至单片机的输入口,列线接至输出口,首先是所有的列线全为低电平,然后读出行线状态,若行线均为高电平,则没有键按下;若读出行线状态不全为高电平,则可以断定有键按下。

2.判断按下的是那一个键。

先让Y0这一列为低电平,其余列线为高电平,读出行线状态,如行线状态不全为“1”,则说明所按键在该列,否则不在该列,然后让Y1列为低电平。

其它列为高电平,判断Y1列有无键按下。

3.键处理。

键处理是根据所按键散转进入相应的功能程序。

二、三端稳压器

7805L

三、数码管显示

对于单个数码管来说,从它的正面看进去,左下角那个脚为1脚,以逆时针方向依次为1~10脚,左上角那个脚便是10脚了。

由第二张图可以看出数码管的3,8管脚接的高电位。

A-7,B-6,C-4,D-3,E-1,F-9,G-10,DP-5.

还有一种方法,是根据数字万用表测的,先把万用表打到二极管档位。

然后红色表笔的一端接3或8管脚,黑色表笔的一端依次测其他的8个脚,可以看出数码管的好坏和对应的管脚。

也可以测共阴,只需对调一下红黑表笔。

电路图

流程图

音乐发声程序框图

软件编写

项目:

可演奏电子琴

//------------------------------------------------------

//在键盘矩阵上模拟演奏电子琴,数码管显示按键号

//------------------------------------------------------

#include

#defineucharunsighedchar

#defineuintunsighedint

//共阳数码管编号

ucharcodeDSY_Table[]=

{0xc0,0xf9,0xa4,0xb0,0x,0x99,0x92,0x82,0xf8,0x80,//0、1、2、3、4、5、6、7、8

0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xBF};//9、A、B、C、D、E、F、-

//各音符对应的延时

uintcodeTone_Delay_Table[]=

{64021,64103,64400,64524,64580,64684,64777,

64820,64898,64968,65030,65058,65110,65110,65157,65178};

sbitBEEP=P3^0;//蜂鸣器

ucharKeyNo;//按键序号

//------------------------------------------------------

//延时

//------------------------------------------------------

voidDelayMS(ucharx)

{

uchari;

while(x--)for(i=0;i<120;i++);

}

//------------------------------------------------------

//键盘矩阵扫描子程序

//------------------------------------------------------

voidkey_Scan()

{

ucharTmp,k;

//高四位置0,放入四行

P1=0x0F;

DelayMS

(2);

//按键后00001111将变成0000xxxx,x中1个为0,3个仍为1

//下面的异或操作会把3个1变成0,唯一的0变成1

Tmp=P1^0x0F;

//判断按键发生于0~3列的那一项

Switch(Tmp)

{

case1:

k=0;break;

case2:

k=1;break;

case4:

k=2;break;

case8:

k=3;break;

default:

return;//无键按下

}

//低四位置0,放入四列

P1=0xF0;

DelayMS

(2);

//按键后11110000将变成xxxx0000,x中1个为0,3个仍为1

//下面的表达式会将高四位移至低四位,并将其中唯一的0变为1,其余的为0

Tmp=(P1>>4)^)0x0F;

//对0~3行分别附加起始值0,4,8,12

switch(Tmp)

{

case1:

k+=0;break;

case2:

k+=4;break;

case4:

k+=8;break;

case8:

k+=12;break;

default:

return;

}

KeyNo=k;

}

//------------------------------------------------------

//定时器0中断程序,不同频率的声音由该中断产生

//------------------------------------------------------

voidPlay_Tone()interrupt1

{

TH0=Tone_Delay_Table[KeyNo]/256;

TH0=Tone_Delay_Table[KeyNo]%256;

BEEP=~BEEP;

}

//------------------------------------------------------

//主程序

//------------------------------------------------------

voidmain()

{

P0=0xBF;//初始显示“-”

TMOD=0x01;

IE=0x82;

while

(1)

{

P1=0xF0;//发送扫描码

if(p1!

=0xF0)//如果有键按下

{

Keys_Scan();//扫描键盘矩阵

P0=DSY_Table[KeyNo];//显示按键

TR0=1;//启动定时器,根据KeyNo发音

}

else

{

TR0=0;//停止播放

}

DelayMS

(2);

}

}

实物图

 

元器件清单:

序号

品名

型号规格

配件图号

1

碳膜电阻

RT-0.25—2K

数量×4

2

碳膜电阻

RT-0.25—10K

数量×2

3

排阻

A103J-10K

数量×2

4

发光二极管

LED-3.6V/0.25A(共阳、红色)

数量×1

5

晶振

12Mhz

数量×2

6

瓷介电容

103

数量×4

7

电解电容

CD-16V-10μ

数量×2

8

三极管

9012PNP

数量×1

9

独立式按键

数量×16

10

矩阵式按键

数量×1

11

接插导线

若干

12

数码管

共阳

数量×1

13

插座

IC-40pl(AC封袭)

数量×2

14

插针

若干

15

接插导线

若干

16

电源插头+电源线

17

5V直流稳压

7805LM(三端稳压的)

18

电池

9V

19

印制电路板

PCD板

数量×1

20

AT89C51

数量×1

二、项目实施计划:

1提出计划:

和老师讨论计划的可实施性,制定计划。

2收集资料:

6人分成两组,一组通过网上查阅获得有关资,一组去老师那查找相关资料。

通过收集后整理资料。

(时间:

6/3)

3制作原理图,确定所需元器件:

通过阅读整理的资料后,结合所学知识得出原理图。

依据原理图后到实验室找负责人得到并确认所需的相关元件。

(时间:

1/11)

4装配元器件:

装配元件,制作实物。

(时间:

6/12)

5调试:

制作实物之后,在老师的帮助下进行调试。

(时间:

6/17)

6得出结果:

得出具体结果后,整理成电子文档。

(时间:

6/17-6/20)

 

三、装配与调试:

调试及故障排除

将单片机烧录好后

板子焊好后,接上5V稳压源,发现板子没有工作。

我们接上示波器观察ALE脚的输出,为1/6Fosc频率

这说明单片机的正常工作,至少有能保证我们的晶振电路也是正常的。

老师说软件到硬件的实现是一个很复杂的过程,没有人一下子就仿真成功就可以立马调出板子,第一次焊好就能正常的可能性为零,要我们从中发现故障的可能性。

老师说:

既然你们的故障,不是出自单片机上,那么你们好好看看输出输到蜂鸣器(负载的波形)

我们先把单片机的P3.0接到示波器观察其波形。

每次按钮的按下,我们能看到一个不同频率从低到高的电压的电压变化的波形,说明送往蜂鸣器的两端都没有反映

排除了焊接上的虚焊和引脚之间的短路发现电路还是驱动不起来,看起来应该是输出的功率不够

改进后的方案

从软件到硬件的实现是一个复杂的过程。

之前的那个方案:

蜂鸣器声音很小,看起来输出的功率不够,我们发现虽然能仿真出来,但是硬件却不是那么简单。

这个是我们的改进方案:

增加了三极管驱动电路调试过程

 

四、电路性能参数:

方案的比较:

波形调试:

(单片机P3.0输出波形)

输出波形

按键号

△X(HZ)

△Y(V)

1

782

2.8

2

692

2.8

3

618

2.8

4

589

2.8

5

1133

2.8

6

1016

2.8

7

911

2.8

8

859

2.8

9

1640

2.8

10

1474

2.8

A

1326

2.8

B

1185

2.8

C

2228

2.8

D

2137

2.8

F

1937

2.8

G

1721

2.8

第一个键按下所观察的波形

第二个键按下所观察的波形

第三个键按下所观察的波形

第四个键按下所观察的波形

ALE脚的波形(Ale=1/6fosc即单片机的30脚)

检测单片机电路晶振的是否工作正常

总结:

通过这次的学期项目,让我们受益匪浅。

不但让我们对书本知识学有所用,而且还增强了我们的实践能力。

在此次实践中我们还学会并能较熟练的掌握使用电烙铁的基本技能,掌握了部分实验仪器的使用方法。

从这次的项目制作中,体现了我们互帮互助的团队精神,也给了我们师生交流的机会。

我们组会在以后的学习和生活中不断地提高自我、完善自我。

小组分工

1项目方案的构想【设计指标】柳一江

2项目方案的实施【电路图工作原理】郭晶晶

3项目软件的设计【流程图介绍,程序说明】柳一江

4项目的硬件设计参数【矩阵键盘,7805L稳压】【数码管,排阻】朱敏,王欢

5产品的实物制作【焊接电路,单片机程序烧录,故障排除】柳一江

6产品的后期调试【技术方案数据,技术指标的比较】张华恩

7市场调查张华恩,姜小通

8项目报告和PPT制作:

张华恩,朱敏

指导记录

1矩阵式键盘的工作原理及程序中对应的地址。

2输出(蜂鸣器)的驱动电路(通过三极管优化电路)

3按键的判断(软件方向)

4显示单元简化电路。

(用排阻代替电阻)

解决问题

1在了解矩阵式键盘的原理之下,对应各个键的地址线

2通过增加三极管放大电路和驱动电路,优化了输出功率不够的问题

3通过cpu按键的扫描判断,程序上实现各个键的确认

4排阻的使用

电源电路

发声模块

数码管显示单元

AT89S52

晶振12MHZ

复位电路

4x4键盘

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2