基于AT89S51单片机的电子琴设计文档格式.docx

上传人:b****5 文档编号:20819710 上传时间:2023-01-25 格式:DOCX 页数:21 大小:285.78KB
下载 相关 举报
基于AT89S51单片机的电子琴设计文档格式.docx_第1页
第1页 / 共21页
基于AT89S51单片机的电子琴设计文档格式.docx_第2页
第2页 / 共21页
基于AT89S51单片机的电子琴设计文档格式.docx_第3页
第3页 / 共21页
基于AT89S51单片机的电子琴设计文档格式.docx_第4页
第4页 / 共21页
基于AT89S51单片机的电子琴设计文档格式.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

基于AT89S51单片机的电子琴设计文档格式.docx

《基于AT89S51单片机的电子琴设计文档格式.docx》由会员分享,可在线阅读,更多相关《基于AT89S51单片机的电子琴设计文档格式.docx(21页珍藏版)》请在冰豆网上搜索。

基于AT89S51单片机的电子琴设计文档格式.docx

T值

1

262

64582

523

65058

2

294

64685

578

65110

3

330

64778

659

65165

4

349

64819

698

65178

5

392

64898

784

65217

6

440

64968

880

65252

7

494

65030

988

65283

图2-1各音符T值图

 

另一方面是每个音符地发音长度,各节拍与时间地设定如图2-2

曲调值

1/4拍时间

1/8拍时间

调4/4

125ms

62ms

调3/4

187ms

94ms

调2/4

250ms

图2-2节拍与时间设定图

22按键选择方案

在键盘中按键数量较多时,为了减少I/O口地占用,通常将按键排列成矩阵形式,在矩阵

式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接•这样,

个端口(如P1口)就可以构成4*4=16个按键•

3硬件设计

本次设计是根据系统设计结构图来对每个部分地电路进行分析和说明,重点讲述微控制

器AT89S51、七段数码管显示模块、扬声器•

3.1AT89S51

AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-system

programmable)地可反复擦写1000次地Flash只读程序存储器,器件采用ATMEL公司地高密

度、非易失性存储技术制造,兼容标准MCS-51指令系统及80S51引脚结构,芯片内集成了

通用8位中央处理器和ISPFlash存储单元,AT89S51在众多嵌入式控制应用系统中得到广泛应用.AT89S51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)地低电压,高性能CMOS8位微处理器,俗称单片机.AT89S51是一种带4K字节闪烁可编程可擦除只读存储器地单片机.

图3-1AT89S51引脚图

主要功能特性

1、4kBytesFlash片内程序存储器;

2、128bytes地随机存取数据存储器(RAM);

3、32个外部双向输入/输出(I/O)口;

4、6个中断源;

5、2个16位可编程定时器/计数器;

6、2个全双工串行通信口;

3.2矩阵式键盘地识别和显示

3.2.1矩阵式键盘地结构与工作原理

在键盘中按键数量较多时,为了减少I/O口地占用,通常将按键排列成矩阵形式,在矩

阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接.这样,

一个端口(如P1口)就可以构成4*4=16个按键,比直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键地键盘,而直接用端口线则只能

多出一键(9键)矩阵式结构地键盘显然比直接法要复杂一些,识别也要复杂一些,列线通过电阻接正电源,并将行线所接地单片机地I/O口作为输出端,而列线所接地I/O口则作为输入

这样,当按键没有按下时,所有地输出端都是高电平,代表无键按下.行线输出是低电平,一

旦有键按下,则输入线就会被拉低,这样,通过读入输入线地状态就可得知是否有键按下了

如图3-1

=4

L*~

itJi.

piJLL

―m1

i—q1

'

■00*

EJXl

ELL―■—

KJ2_

plli[—

1J1

|91

1*■・=♦

Kii

JdL

KjT

pH-£

1

1I~~'

Ll1

F3+

3.2.2按键识别方法

确定矩阵式键盘上何键被按下介绍一种“行扫描法’行扫描法行扫描法又称为逐行(或列)扫描查询法,是一种最常用地按键识别方法.判断键盘中有无键按下将全部行线Y0-Y3置低电平,然后检测列线地状态.只要有一列地电平为低,则

表示键盘中有键被按下,而且闭合地键位于低电平线与4根行线相交叉地4个按键之中.若所有列线均为高电平,则键盘中无键按下.判断闭合键所在地位置在确认有键按下后,即可进入确定具体闭合键地过程.其方法是:

次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平.在确定某根行线位置为

低电平后,再逐行检测各列线地电平状态.若某列为低,则该列线与置为低电平地行线交叉处

地按键就是闭合地按键.

3.2.3键盘口必须具有地四个功能

键盘接口必须具有去抖动、防串键、按键识别和键码产生4个基本功能.

(1)去抖动:

每个按键在按下或松开时,都会产生短时间地抖动.抖动地持续时间与键地质

量相关,一般为5—20mm.所谓抖动是指在识别被按键是必须避开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误.

(2)防串键:

防串键是为了解决多个键同时按下或者前一按键没有释放又有新地按键按下时产生地问题.常用地方法有双键锁定和N键轮回两种方法.双键锁定,是当有两个或两个

以上地按键按下时,只把最后释放地键当作有效键并产生相应地键码.N键轮回,是当检测到有多个键被按下时,能根据发现它们地顺序依次产生相应键地键码.

(3)被按键识别:

如何识别被按键是接口解决地主要问题,一般可通过软硬结合地方法完

成.常用地方法有行扫描法和线反转法两种.行扫描法地基本思想是,由程序对键盘逐行扫描,

通过检测到地列输出状态来确定闭合键,为此,需要设置入口、输出口一个,该方法在微机系统中被广泛使用.线反转法地基本思想是通过行列颠倒两次扫描来识别闭合键,为此需要提供两个可编程地双向输入/输出端口.

(4)键码产生:

为了从键地行列坐标编码得到反映键功能地键码,一般在内存区中建立一个键盘编码表,通过查表获得被按键地键码.

3.3七段数码管

3.3.1七段数码管简介(图3-3)

a、段及小数点上加限流电阻

c、使用电流:

静态:

总电流80mA(每段10mA);

动态:

平均电流4-5mA峰值电流

(共

100mA上面这个只是七段数码管引脚图,其中共阳极数码管引脚图和共阴极地是一样地

阳管与共阴管地判断方法:

在公共端加高电平,段码端加低电平,看是否点亮二极管,若亮

则为共阳管,不亮则为共阴管)

图3-3七段数码管引脚图

332数码管地分类

数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管

单元(多一个小数点显示);

按能显示多少个“8可分为1位、2位、4位等等数码管;

按发

光二极管单元连接方式分为共阳极数码管和共阴极数码管•共阳数码管是指将所有发光二极管

地阳极接到一起形成公共阳极(COM)地数码管•共阳数码管在应用时应将公共极COM接到

+5V,当某一字段发光二极管地阴极为低电平时,相应字段就点亮•当某一字段地阴极为高电

平时,相应字段就不亮•共阴数码管是指将所有发光二极管地阴极接到一起形成公共阴极

(COM)地数码管•共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光

二极管地阳极为高电平时,相应字段就点亮

3.4功率放大器

功率放大器工作原理:

利用三极管地电流控制作用或场效应管地电压控制作用将电源地

功率转换为按照输入信号变化地电流.因为声音是不同振幅和不同频率地波,即交流信号电

流,三极管地集电极电流永远是基极电流地B倍,B是三极管地交流放大倍数,应用这一

点,若将小信号注入基极,则集电极流过地电流会等于基极电流地B倍,然后将这个信号用

隔直电容隔离出来,就得到了电流(或电压)是原先地B倍地大信号,这现象成为三极管地放

.如图3-4所示.

大作用•经过不断地电流放大,就完成了功率放大,简称功放

动,所以要求功放

原理图

虑,功放输出地功率最地,例如收音机中功放2/3,因此要十分注意提出功率与耗电功率地比信号已经几级放大,有功放管工作点大幅度移

电路有较大地动态范围

功放管地工作点选择不当,输出会有严重失真•为得到需要地输出功率,电路须选集电极功耗

足够大地三极管,功放管地工作电流和集电极电压也较高•电路设计使用中首先要考虑怎样充

分地发挥三极管功能而又不损坏三极管•由于电路中功放管工作状态常接近极限值,所以功放

电流调整和使用时要小心,不宜超限使用•选择是非常重要地•

我选择地是LM386功放丄M386是专为低功耗电源设计地功率放大器集成电路,它地内建

增益为20,透过Pin1和pin8脚位间电容地搭配,增益高达200.LM386可使用电池供电•其输

入电压范围4V-12V,无动作是仅消耗4mA电流,且失真低•其LM386内部电路如图3-1

7—乜源

Tio

输出

2地

图3-5LM386内部电路图

第一级为差分放大电路,T1和T3、T2和T4分别构成复合管,作为差分放大电路地放大管;

T5和T6组成镜像电流源作为T1和T2地有源负载;

T3和T4信号从管地基极输入,从T2管地集电极输出,为双端输入单端输出差分电路•使用镜像电流源作为差分放大电路有

源负载,可使单端输出电路地增益近似等于双端输出电容地增益

第二级为共射放大电路,T7为放大管,恒流源作有源负载,以增大放大倍数

第三级中地T8和T9管复合成PNP型管,与NPN型管T10构成准互补输出级•二极管D1和D2为输出级提供合适地偏置电压,可以消除交越失真

引脚2为反相输入端,引脚3为同相输入端•电路由单电源供电,故为OTL电路输出端

(引脚5)应外接输出电容后再接负载•

电阻R7从输出端连接到T2地发射极,形成反馈通路,并与R5和R6构成反馈网络,从

而引入了深度电压串联负反馈,使整个电路具有稳定地电压增益

3.5基于单片机电子琴硬件电路图

电子琴地整体硬件电路,包括以上设计地各个分块电路•另外还包括矩阵按键电路,指示灯

只是电路等,完整地电路如图3-2所示•

图3-6电路硬件图

4软件设计

基于单片机地电子琴硬件电路已经确定,要实现其功能,需要软件支持,电子琴地工作

原理前文已论述,设计框图如图4所示

图4程序流程图

4.1电子琴总体软件设计

•它不但

电子琴是高科技在音乐领域地一个代表,它是古典文化与现代文明地一个浓缩体可以帮助我们地音乐教师进行传统音乐文化地教育教案工作,而且由于它又具备现代音乐,

特别是电子音乐、电脑音乐地基本结构、特征,因而使我们地教师在进行现代音乐、电子音

乐、电脑音乐地教案时,更直接、更简便

单片微型计算机是大规模集成电路技术发展地产物,属第四代电子计算机,它具有高性

能、高速度、体积小、价格低廉、稳定可靠、应用广泛地特点.它地应用必定导致传统地控制

技术从根本上发生变革.因此,单片机地开发应用已成为高科技和工程领域地一项重大课题

电子琴基本工作流程如图4-1所示:

图4-1基本工作流程图

(1)键盘扫描程序:

检测是否有按键按下,有按键按下则记录按下键地键值,并跳转至功能

转移程序;

无按键按下,则返回键盘扫描程序继续检测

.图4-2

图4-2键盘扫描程序流程图

(2)功能转移程序:

对检测到地按键值进行判断,是琴键则跳转至琴键处理程序,是功能键

则跳转至相应地功能程序•

(3)琴键处理程序:

根据检测到地按键值,查询音调表,给定时计时器赋值,使发出相应

频率键地声音.

4.2电子琴按键软件设计

基于单片机电子琴地另一个重要功能就是要实现点击后发出类似钢琴那种管弦乐音•单片

机控制核心通过拾取按键信息,判断是哪个按键按下,并对按键进行相应地出来,然后调动

不同地频率输出,产生定时,去驱动蜂鸣器,实现电子弹奏功能•每一个音符对应一个频率•利

用实验仪上提供地键盘,使数字1、2、3、4、5、6、7作为电子琴按键,按下即发出相应地

音调,用P1.0口发出音频脉冲,驱动喇叭•

5调试结果(如图5)

电路连线图

通过键盘地按键1、2、3、4、5、6、7键发出声音,当我按下1键是发出声音duo.当按下键

2时发出声音re,当按下键3时发出声音mi,当按下键4时发出声音fa,当按下键5时发出声音shuo,当按下键6时发出声音na,当按下键7时发出声音xi.

达到本次设计地效果.

6结束语

通过这次地设计提高了我运用所学地专业基础知识来解决面临实际问题地能力,同时也

提高了我查阅各种文献资料、设计手册、设计规范以及软件编程排版地水平•対单片机课程设计地整个流程和设计要求都有了深刻地认识,对以后地学习和设计都有很大地帮助•本论文是在我地导师牟琳老师地亲切关怀和悉心指导下完成地•从课题地选择到最终完成,牟琳老师都

参考文献

[1]谭会生.张昌凡.EDA技术及应用(第二版)[M].西安电子科技大学出版社,2009年9月.

[2]徐志军.EDA技术与PLD设计[M].人民邮电出版社,2010年2月第1版.

[3]赵鑫..数字电路设计[M].北京机械工业出版社,2009年6月第一版.

[4]苏家健、曹柏荣、汪志锋.单片机原理及应用技术[M].高等教育出版社,2012年6月.

[5][美]AshishWilfredMeetaGuptaKartikBhatnagar著,刘永明,贺民译.php专业工程实例开发[J].水利水电出版社,2009.

[6]于海生.微型计算机控制技术选编[M].清华大学出版社,2009.

[7]李朝青.单片机原理及接口技术[M].北京:

北京航天航空大学出版色,2009.

[8]胡汉才.单片机原理及其接口技术[M].北京:

清华大学出版社,2009.

附录

源程序代码

连线P1.0VIN1

OUTBITequ0e101h位控制口

INequ0e103h键盘入口

Pulseequ0

PulseCNTequ50h

ToneHighequ51h

ToneLowequ52h

LJMPSTAR

MIAN:

DB00H,00H,00H,00H,00H,00H,00H,00H。

MIAN1:

DB02H,00H,0D0H。

...

o

INTS1:

MOVDPTR,#0E100HDPTR=0E100H

MOVA,#03H

MOVX@DPTR,A

MOVTMOD,#01H

MOVIE,#82H

INTS2:

MOVA,#0FFH

A=03H

DPTR=03H

TMOD=01H定时计数器

IE=82H终端控制寄存器

A=0FFH

JZINTS2

累加器为0时跳转到INTS2

MOVR4,07H

R4=07H

MOVA,R4

A=07H

CLRC

进位标志位C清0

SUBBA,#01H

A=07H-01H

JCINTS2

进位标志位为1转到INTS2

SETBC

进位标志位C置1

SUBBA,#07H

A=07H-07H

JNCINTS2

进位标志位为0时转移到INTS2

ADDA,ACC

A=A+ACC

ADDA,#0C0H

A=A+0C0H

MOVDPL,A

DPL=A

CLRA

累加A清0

ADDCA,#00H

A=A+00H(带进位)

MOVDPH,A

DPH=A

对累加器A清0

LCALLKEY1

绝对调用子程序到KEY1

MOVCA,@A+DPTRA=A+DPTR

MOVR2,A

R2=A

MOVA,#01H

A=01H

MOVR3,A

R3=A

MOVA,R2

A=R2

MOV09H,A

09H=A

MOV08H,#00H

08H=00H

MOV0AH,#00H

0AH=00H

MOV0BH,R3

OBH=R3

MOVTH0,A

TH0=A为计数器高位赋值

MOVTL0,0BH

TL0=0BH为计数器低位赋值

SETBTR0

启动定时器

MOV0CH,#0C8H

0CH=0C8H

KEY:

MOVA,0CH

A=0CH

JNZKEY

累加器为1时转移到KEY

CLRTR0

对TR0清0TR0=0时停止工作

SJMPINTS2

段转移到INTS2

KEY1:

MOVR7,#06H

R7=06H

MOVR6,#20H

R6=20H

KEY2:

MOVA,R6

A=20H

CPLA累加器A求反

MOVDPTR,#0E101HDPTR=0E101H

MOVX@DPTR,ADPTR=A

MOVA,R6A=20H

CLRC对C清0

RRCA经过进位标志位地累加器循环右移

MOVR6,AR6=A

MOVDPTR,#0E103HDPTR=0E103H

MOVXA,@DPTRA=DPTR

CPL

A

累加器A求反

ANL

A,#0FH

A=A&

0FH

MOV

R5,A

R5=A

DECR7

R7减1

MOVA,R7A=R7

JZKEY3累加器为0转移到KEY3

MOVA,R5A=R5

JZKEY2累加器为0转移到KEY2

KEY3:

MOVA,R5A=R5

A,R7

A=R7

ADD

A,ACC

加A到累加器ACC

R7,A

累加器内容传送到寄存器

A,R5

寄存器内容传送到累加器

JZTONE3

为0则转移

JNBACC.1,TONEACC.1不为1则跳转到TONE标号处为1则向下顺序执行

INCR7寄存器增1

SJMPTONE2短跳转到当前TONE2所指位置

TONE:

MOVA,R5

A=R5

JNBACC.2,TONE1

ACC.2不为1则跳转到TONE1标号处,为1则向下顺序

执行

INCR7

寄存器增1

SJMPTONE2

短跳转到当前TONE2所指位置

TONE1:

JNBACC.3

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

当前位置:首页 > 高等教育 > 其它

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

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