单片机课程设计报告基于AT89S52单片机多音阶电子琴的设计文档格式.docx

上传人:b****1 文档编号:1466216 上传时间:2023-04-30 格式:DOCX 页数:18 大小:378.60KB
下载 相关 举报
单片机课程设计报告基于AT89S52单片机多音阶电子琴的设计文档格式.docx_第1页
第1页 / 共18页
单片机课程设计报告基于AT89S52单片机多音阶电子琴的设计文档格式.docx_第2页
第2页 / 共18页
单片机课程设计报告基于AT89S52单片机多音阶电子琴的设计文档格式.docx_第3页
第3页 / 共18页
单片机课程设计报告基于AT89S52单片机多音阶电子琴的设计文档格式.docx_第4页
第4页 / 共18页
单片机课程设计报告基于AT89S52单片机多音阶电子琴的设计文档格式.docx_第5页
第5页 / 共18页
单片机课程设计报告基于AT89S52单片机多音阶电子琴的设计文档格式.docx_第6页
第6页 / 共18页
单片机课程设计报告基于AT89S52单片机多音阶电子琴的设计文档格式.docx_第7页
第7页 / 共18页
单片机课程设计报告基于AT89S52单片机多音阶电子琴的设计文档格式.docx_第8页
第8页 / 共18页
单片机课程设计报告基于AT89S52单片机多音阶电子琴的设计文档格式.docx_第9页
第9页 / 共18页
单片机课程设计报告基于AT89S52单片机多音阶电子琴的设计文档格式.docx_第10页
第10页 / 共18页
单片机课程设计报告基于AT89S52单片机多音阶电子琴的设计文档格式.docx_第11页
第11页 / 共18页
单片机课程设计报告基于AT89S52单片机多音阶电子琴的设计文档格式.docx_第12页
第12页 / 共18页
单片机课程设计报告基于AT89S52单片机多音阶电子琴的设计文档格式.docx_第13页
第13页 / 共18页
单片机课程设计报告基于AT89S52单片机多音阶电子琴的设计文档格式.docx_第14页
第14页 / 共18页
单片机课程设计报告基于AT89S52单片机多音阶电子琴的设计文档格式.docx_第15页
第15页 / 共18页
单片机课程设计报告基于AT89S52单片机多音阶电子琴的设计文档格式.docx_第16页
第16页 / 共18页
单片机课程设计报告基于AT89S52单片机多音阶电子琴的设计文档格式.docx_第17页
第17页 / 共18页
单片机课程设计报告基于AT89S52单片机多音阶电子琴的设计文档格式.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机课程设计报告基于AT89S52单片机多音阶电子琴的设计文档格式.docx

《单片机课程设计报告基于AT89S52单片机多音阶电子琴的设计文档格式.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告基于AT89S52单片机多音阶电子琴的设计文档格式.docx(18页珍藏版)》请在冰点文库上搜索。

单片机课程设计报告基于AT89S52单片机多音阶电子琴的设计文档格式.docx

通过这样可以不断的弹奏我们想要的音符或者是音调,电路由复位电路,指示灯电路,和功能按键电路组成,通过功能键可以选择播放音乐或者弹奏音节,硬件主要有下面几个部分组成。

系统框图

键盘输入

功能选择

(弹奏/播放)

AT89S52单片机

音频

放大

喇叭

发声

3硬件设计

为了使电子琴的控制系统更加的方便、灵活以及稳定性,我们对系统硬件进行了简约和优化,使硬件更加的实用,更加的人性化,硬件电路包括中心控制模块、播放模块、按键控制模块、复位按键模块四大类

3.1电路原理图

3.2主要单元电路

3.2.1中心控制模块的硬件设计

这次设计的中心控制模块是采用AT89S52单片机来控制整个系统。

其中P2口作为输入口,P1口为信号输出口,P1.0连接音响驱动电路。

3.2.2声音播放模块的硬件设计

如下图所示,为声音的播放模块,它接到P1.0口上,当有按键按下时,它通过AT89S52中心控制芯片的识别后发出相应的音符。

3.3元件清单

AT89C52单片机一个,按键16个,30pF电容两个,喇叭一个,LM386音频放大器一个,电阻,电容若干。

4软件设计

4.1程序流程图

T0中断入口

4.2主要功能程序设计

4.1音乐产生的原理

一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这

样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。

若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,

即为半周期的时间。

利用定时器计时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相。

就可在P1.0引脚上得到此频率的脉冲。

利用AT89C51的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T=1/523=1912μs,因此只要令计数器计时956μs/1μs=956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。

计数脉冲值与频率的关系式(如式2-1所示)是:

N=fi÷

fr 

2-1

式中,N是计数值;

fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);

fr是想要产生的频率。

其计数初值T的求法如下:

T=65536-N=65536-fi÷

fr

例如:

设K=65536,fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。

fr=65536-1000000÷

fr=65536-500000/fr

低音DO的T=65536-500000/262=63627

中音DO的T=65536-500000/523=64580

高音DO的T=65536-500000/1046=65059

单片机12MHZ晶振,高中低音符与计数T0相关的计数值如表2-2所示

表2-2音符频率表

Table2-2notesthefrequencytable

音符

频率(HZ)

简谱码(T值)

低1 DO

262

63628

#4FA#

740

64860

#1 DO#

277

63731

中5SO

784

64898

低2 RE

294

63835

#5SO#

831

64934

#2RE#

311

63928

中6LA

880

64968

低3M

330

64021

#6

932

64994

低4FA

349

64103

中7SI

988

65030

370

64185

高1DO

1046

65058

低5SO

392

64260

#1DO#

1109

65085

415

64331

高2RE

1175

65110

低6LA

440

64400

#2RE#

1245

65134

466

64463

高3M

1318

65157

低7SI

494

64524

高4FA

1397

65178

中1DO

523

64580

1480

65198

554

64633

高5SO

1568

65217

中2RE

587

64684

1661

65235

622

64732

高6LA

1760

65252

中3M

659

64777

1865

65268

中4FA

698

64820

高7SI

1967

65283

我们要为这个音符建立一个表格,单片机通过查表的方式来获得相应的数据

低音0-19之间,中音在20-39之间,高音在40-59之间

 

TABLE:

DW0,63628,63835,64021,64103,64260,64400,64524,0,0

DW0,63731,63928,0,64185,64331,64463,0,0,0

DW0,64580,64684,64777,64820,64898,64968,65030,0,0

DW0,64633,64732,0,64860,64934,64994,0,0,0

DW0,65058,65110,65157,65178,65217,65252,65283,0,0

DW0,65085,65134,0,65198,65235,65268,0,0,0

DW0 

音乐的音拍,一个节拍为单位(C调)(如表2-3所示)

表2-3曲调值表

Table2-3Tunethevalueofthetable

曲调值

DELAY

调4/4

125ms

62ms

调3/4

187ms

94ms

调2/4

250ms

对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。

琴键处理程序,根据检测到得按键值,查询音律表,给计时器赋值,发出相应频率的声音。

对音调的控制:

根据不同的按键,对定时器T1送入不同的初值,调节T1的溢出时间,这样就可以输出不同音调频率的方波。

不同音调下各个音阶的定时器。

在这个程序中用到了两个定时/计数器来完成的。

其中T0用来产生音符频率,T1用来产生音拍。

4.3程序清单

KEYBUFEQU30H

STHOEQU31H

STLOEQU32H

TEMPEQU33H

ORG00H

LJMPSTART

ORG0BH

LJMPINT_T0

START:

MOVTMOD,#01H

SETBET0

SETBEA

WAIT:

MOVP3,#0FFH

CLRP3.7

MOVA,P3

ANLA,#0FH

XRLA,#0FH

JZNOKEY1

LCALLDELAY10MS

CJNEA,#0EH,NK1

MOVKEYBUF,#0

LJMPDK1

NK1:

CJNEA,#0DH,NK2

MOVKEYBUF,#1

NK2:

CJNEA,#0BH,NK3

MOVKEYBUF,#2

NK3:

CJNEA,#07H,NK4

MOVKEYBUF,#3

NK4:

NOP

DK1:

MOVA,KEYBUF

MOVB,#2

MULAB

MOVTEMP,A

MOVDPTR,#TABLE

MOVCA,@A+DPTR

MOVSTHO,A

MOVTH0,A

INCTEMP

MOVA,TEMP

MOVSTLO,A

MOVTL0,A

SETBTR0

DK1A:

JNZDK1A

CLRTR0

NOKEY1:

CLRP3.6

JZNOKEY2

LcallDELAY10MS

CJNEA,#0EH,NK5

MOVKEYBUF,#4

LJMPDK2

NK5:

CJNEA,#0DH,NK6

MOVKEYBUF,#5

NK6:

CJNEA,#0BH,NK7

MOVKEYBUF,#6

NK7:

CJNEA,#07H,NK8

MOVKEYBUF,#7

NK8:

NOP

DK2:

MOVA,KEYBUF

MOVTEMP,A

DK2A:

JNZDK2A

NOKEY2:

CLRP3.5

JZNOKEY3

CJNEA,#0EH,NK9

MOVKEYBUF,#8

LJMPDK3

NK9:

CJNEA,#0DH,NK10

MOVKEYBUF,#9

NK10:

CJNEA,#0BH,NK11

MOVKEYBUF,#10

NK11:

CJNEA,#07H,NK12

MOVKEYBUF,#11

NK12:

DK3:

DK3A:

JNZDK3A

NOKEY3:

CLRP3.4

JZNOKEY4

CJNEA,#0EH,NK13

MOVKEYBUF,#12

LJMPDK4

NK13:

CJNEA,#0DH,NK14

MOVKEYBUF,#13

NK14:

CJNEA,#0BH,NK15

MOVKEYBUF,#14

NK15:

CJNEA,#07H,NK16

MOVKEYBUF,#15

NK16:

DK4:

DK4A:

JNZDK4A

NOKEY4:

LJMPWAIT

DELAY10MS:

MOVR6,#10

D1:

MOVR7,#248

DJNZR7,$

DJNZR6,D1

RET

INT_T0:

MOVTH0,STHO

MOVTL0,STLO

CPLP1.0

RETI

DW64021,64103,64260,64400

DW64524,64580,64684,64777

DW64820,64898,64968,65030

DW65058,65110,65157,65178

END

5系统仿真及调试

Proteus的ISIS事一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,可以给我们做电路设计提供方便快捷的仿真效果,让我们事半功倍。

目前支持的单片机类型有:

680以及各种外围芯片0系列、8051系列、AVR系列、PIC12系列、HC11系列。

5.1仿真原理图

5.2调试波形

Keil与proteus联机调试

5.3仿真结果及分析

理论上按不同的键会出现不同的频率的声音,可是我的用proteus和keil联调时却没响,电气规则检查没有错误……

6训练体会

7参考文献

[1]张鑫《单片机原理及应用》[M]电子工业出版社.

[2]周明德《微机原理与接口技术》[M]人民邮电出版社.

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

当前位置:首页 > 人文社科 > 法律资料

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

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