当前位置:文档之家› 基于单片机的电子琴毕业论文设计

基于单片机的电子琴毕业论文设计

东华理工大学毕业设计(论文)摘要

摘要

我们知道在工业、科技日新月异的这个时代,对我们来说掌握一门必要的技术是多么的重要,它能帮助我们在这个社会上更具有竞争力。而对于工业来说,正面向智能化、集成化、小型化的方向转变,这不仅给技术带来了挑战,而且带来了工艺的革命。同时也使我们学会了必须紧跟科技的前沿,不断用知识来充实自己。

而在工业中起着举足轻重作用的“单片机”,自然而然是必须要学的,单片机又称微电脑,在工业中起着控制、采样、计算、工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等重要的作用。它能按照程序进行相应的操作,能实行准时的定时、中断、计数,大大地减少了人员的工作量。同时因采用集成从而使得单片机具有的体积小、重量轻、功能强等特点,本设计采用AT89C51单片机为主控芯片、16矩阵式键盘为输入设备、喇叭为输出设备来组合成简单的电子琴基本框架,本电路能够实行音节与音拍的同时控制来演奏任意一首音乐,我相信在以后的应用中,随着单片机功能的不断加强,将得到更大地应用。关键词:单片机AT89C51 ; ;16矩阵键盘

I

东华理工大学毕业设计(论文)摘要

Abstract

W e know that in industry, science and technology of changing in this era, for us to master a foreign necessary technology is so important, it can help us in this world to more competitive. And for the industry as it is for intelligence, integration, to move in the direction of miniaturization, this not only give technical challenge, and brought the process of revolution. At the same time makes us learned must follow the leading edge of the science and technology, and constantly using knowledge to enrich himself.

And in industry plays a very important role in the "single chip", it is necessary to learn naturally, also called the single chip microcomputer, in the industry plays control, sampling, calculation, and other important role. It can be in accordance with the procedures for the corresponding operation, can carry out the timing, on time the interruption, counting, greatly reduce the workload of workers. At the same time because the single chip microcomputer integrated so that has small volume, light weight, the function is strong and other characteristics, the design USES A T89C51 single-chip microcomputer as the controller chip, 16 matrix for input device, horn keyboard for output devices to a combination of simple keyboard basic framework, the circuit can perform syllables and sound at the same time to control to take any music playing a song, I believe in the later application, along with the strengthening of SCM functions, will get more the earth application.

Keywords: single chip microcomputer AT89C51 16 matrix keyboard

II

东华理工大学毕业设计(论文)目录

目录

摘要............................................................................................................I Abstract .....................................................................................................I I 绪论.. (1)

1 . 方案的设计与选择 (2)

2 . 硬件设计 (4)

2.1原理框架 (4)

2.2 工作原理 (4)

2.3 时钟电路 (4)

2.4 键盘电路 (5)

2.5 信号放大电路 (6)

2.6、8051功能 (6)

2.6.3.控制线与电源复用引脚 (7)

3.软件设计 (9)

3.1 音乐产生原理 (9)

3.2 主程序的设计 (9)

3.3 定时中断子程序 (15)

3.4 判断是否松键子程序 (15)

4 . 致谢 (16)

5.参考文献 (17)

6.附录 (18)

东华理工大学毕业设计(论文)绪论

绪论

单片机诞生于20世纪70年代末,经历了S C M、M C U、S O C三大阶段。由于众多的半导体的厂商的不断创新,如今单片机已经发展到了第四代开发出了经典结构的MC S-51系列与80C51系列单片机等一系列产品,而且不断的在更新中。

电子琴作为现代电子科技与音乐结合的产物,是一种新型的键盘乐器,既有价格低、功能强、多音色、入手快等特点,因此在现代音乐扮演着重要的角色。

如今,单片机具有强大的控制功能和灵活的编程实现特性,这对于使用单片机制作电子琴就显得很方便。在本次设计中将介绍如何采用单片机设计电子琴,如何运用软件来控制音乐的音节与音拍,实现不按键时不发音、按键按下:不同按键发出不同的声音、按键松开停止发音的功能。

1

东华理工大学毕业设计(论文) 第一章

2

1 . 方案的设计与选择

1.1 方案一:原理图如1-1所示,采用独立式键盘结构,P0口连接键盘,P3.0

为输出口,通过放大电路和喇叭连接; XTAL1/XTAL2连接时钟电路,此方案琴键与I/O 口连线直观、简单,但因采用独立式键盘,所以需要较多I/O 口,并且造成布线缭乱。

图1-1

1.2方案二:采用分立元件组成电子琴,如图1-2所示,此电路原理简单,.根据RC 移相振荡器原理制作而成。vl 和V2组成互补复合管, R2、R 3 、R16 组成偏流电路,Rl 、C2 组成正反馈回路(三极管集电极输出电压与基极输入电压相位相差180。),整个电路为一自激多谐振荡器,当按下不同“琴键”进行演奏时,相当干改变与R2串联的音阶电阻群的阻值,从而改变振荡器的工作频率,使扬声器发出不同音阶的音响,但电路通用性不好,功能不强。

琴键

电路

8051

P1 | P0

放大 电路

P3.0

时钟电路

东华理工大学毕业设计(论文) 第一章

3

图1-2

1.3方案三:如图1-3所示,本方案与独立式键盘连接方式相近,但采用4x4矩阵式键盘,大大增大I/O 利用率,简化了电路结构,并且不影响系统的功能。本方案能实现随意弹奏音乐歌曲,模拟人声的音节与音拍,完整的表达歌曲的音调与音色。

此次设计中三种方案基本都能实现在不同的按键或调节下根据不同的频率来

使扬声器发音,但在实际中往往面临不同的台词和音节,而要想使得发音能准确,这就必须使得此设计要既有很强的通用性与控制性,而方案二中因采用改变分立元件电子群在实践中很难实现准确的控制。而方案一与方案三虽然原理相同,但方案一采用独立式键盘,在设计电子琴的过程过多的占用I/O 口,浪费单片机资源。 综上所述,考虑到通用性等原因,本设计采用方案三来设计电子琴。

P0

P3.0

8051

时钟 电路

放大 电路

图1-3

琴 键 电 路

东华理工大学毕业设计(论文) 第二章

4

2 . 硬件设计

2.1 原理框架

本实验由六部分组成:4x4矩阵键盘、8051单片机、信号放大电路、喇叭、晶振电路、电源组成。

2.2 工作原理

4x4键盘的行线连接到单片机中的P0口的高四位,列线连接到P0口的低

四位,XTAL1/XTAL2连接时钟电路,当接通电源+5V 电压时,8051单片机进行工作,根据程序读入键盘值,屏蔽低四位查找相同行线值、然后依次查找列线值,判断是否为此列,如不是返回。在排除抖动的情况下,并判断按键的功能,然后查询数据表找出按键所对应的初值,由CPU 送入TL0/TH0中,并由软件开中断入口。

T0每执行一次中断,P3.0就取反一次,产生一定的频率方波来实现音乐中的音色功能,并把方波送入到信号放大器中,再由喇叭输出。同时每执行一次中断,就查询一次按键信息,判断是否保持,保持则继续工作,否则关闭中断停止发音。

2.3 时钟电路

此系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。 在8051单片机引脚中,存在XTAL1/XTAL2两个外部晶体振荡器接入/输出的引脚,能帮助单片机利用外部条件作为定时器/计数器的中断源,此两脚外接如图2-1

信号放大

8051

喇叭

4x4键盘

时钟电路

电源

东华理工大学毕业设计(论文) 第二章

5

所示电路,图中晶体谐振器以及电容CX1和CX2构成并联谐振电路,接在单片机内部放大器的反馈回路电路中,构成一个自激振荡器,输出固定波形。

图2-1

2.4 键盘电路

本次设计采用4x4矩阵式键盘,如图2-2所示:

工作时,保持行线值不变,列线值从低位向高位依次取反,每次列线取反,读入行线值,依次与程序中值对照,判断按键信息。在判断按键信息时,可能存在抖动现像,所以采用延时10ms 去抖。 按键抖动原理介绍:

当按键时会因为按键接触不好出现如图2-3所示情况,这种现象称为抖动。在抖动存在的情况下,如果单片机正在采集键盘信息,这将给单片机带来一次按键

多次处理的情况,影响输出结果。按键抖动时间一般为5~10ms ,所以需要软件去抖。

图2-3

键按下

前沿抖动

后沿抖动

闭合

稳定

东华理工大学毕业设计(论文) 第二章

6

2.5 信号放大电路

如图2-4所示:放大电路采用共集电极电路结构,利用“分压偏置式工

作点稳定直流通路”,达到了对静态工作点的稳定。分压电阻分别选择1K 和5.5K, A 点连接单片机P1.0口。

共集电极电路因输入电阻大、输出电阻小,对信号源影响小,同时因输出电阻小、负载改变时,电压变化很小,所以具有很好的带负载能力。

图2-4

2.6、8051功能

MCS-51系列单片机由美国Intel 于1980年推出,是如今公认的单片机经典机种,

包含(8051、8751、8031、8052······)等多种型号。

该系列单片机的生产工艺有两种。

一是早期的HMOS 工艺

二是现在的CHMOS 工艺。Chmos 工艺即保持了HMOS 高速度和高密度的特点,还具有CMOS 的低功耗的特点,在产品中带有字母“C ”的即为CHMOS 芯片,不带字母“C ”的即为HMOS 芯片。HMOS 芯片的电平与TTL 电平兼容,而CHMOS 芯片的电平即与TTL 电平兼容,又与CMOS 电平兼容,8051为CMOS 工艺。

8051引脚图

2.6.1.主电源引脚

(1)VSS 接地

(2)VCC 正常操作时为十5V 电源。 2.6.2.时钟电路引脚 (1)XTAL1: (2)XTAL2:

东华理工大学毕业设计(论文)第二章

2.6.3.控制线与电源复用引脚

(1)RST/VPD:RST是复位信号,

高电平有效。

VPD为第二功能,即备用电源输入端。

(2)ALE/PROG:ALE为地址锁存允许信号输出引脚。

PROG为编程信号,第二功能,低电平有效。

(3)PSEN:片外ROM选通信号输出端,低电平有效。

(4)EA/VPP:EA为内部和外部ROM控制端

当EA=1时,从内ROM开始访问

当EA=0时,只访问外部ROM

VPP是编程电源输入端

2.6.4.并行输入/输出引脚

(1)P0口:P0.0~P0.7统称为P0口

(2)P1口:P1.0~P1.7统称为P1口

(3)P2口:P2.0~P2.7统称为P2口

(4)P3口:P3.0~P3.7统称为P3口

P3口每一位可用作第二功能,而且P3口的每一条引脚都可以独立设置为第一功能的I/O口功能和第二功能。第二功能如下:

7

东华理工大学毕业设计(论文)第二章

2.6.58051单片机采用哈佛结构,拥有八大功能部件:

(1)微处理器(8位CPU)

CPU内部包含:运算器、控制器、一些寄存器

(2)程序存储器(ROM、EPROM或Flash等)

(3)数据存储器(RAM、E2PROM)

(4)四个8位并行可编程I/O端口(P0、P1、P2、P3)

(5)一个串行口(UART)

(6)两个16位定时器/计数器(T0/T1)

(7)中断系统(含5~8个中断源、2个优先级)

(8)特殊功能寄存器(SFR)

8

东华理工大学毕业设计(论文)第三章3.软件设计

本次设计使用汇编语言编写,采用模块化设计,便于观察、调试,结构明了。其中包含主程序与若干子程序,能初步实现基于单片机的电子琴表演。在调试过程中使用了TKStudio软件大大改善了程序的结构与正确度。

3.1 音乐产生原理

一首音乐是由许多不同的音阶组成的,而不同的音阶对应着不同的频率,利用这点,我们组合不同的频率就能产生所想要的歌了,而这对于单片机来说产生不同的频率很简单。只要所要的频率对应相应的音阶就行,现在以单片机内部12M晶振为振源,利用单片机的定时/计数器T0来产生音节方波信号。

3.1.1T0初值计算:

编写工作方式寄存器TMOD,使得T0工作在方式1定时模式下,当我们需要某个音阶时可根据频率的不同计算TH0、TL0的值,公式如下:

N = T / tcy

X = 65536 — N

X :计数初值,65536:方式1最大计数值,N:计数值,tcy:机器周期,T:定时时间

依照上面公式计算可得T0与音阶关系如表3-1(见附录表3-1)

3.2 主程序的设计

在程序中主程序相当于主干包含程序的初始化、中断子程序入口、赋

9

东华理工大学毕业设计(论文)第三章值、开中断与结束语。为实现电子琴功能,本次采用按键形式来查询数据表,产生不同音调,而每次执行完一次取反以后,由程序自动查询键盘,判断按键是否继续,在松键后停止发音,其中采用循环一次取反一次的原则,来保证声音的准确。产生的音频信号由p3.0输出到放大器

10

东华理工大学毕业设计(论文) 第三章

11

开始

读入行值

查找键值所对应

初值

T0装入初值

按键松放?

返回

初始化

对照行值

四行查

读入列值

该列有键按

下? 四列查

返回

返回

执行中断 P3.0取反发音

开中断

中断等待

东华理工大学毕业设计(论文)第三章

KEYBUF EQU 30H ;TABLE查数据表时存偏移量单元

STH0 EQU 31H ;T0定时/计数TH0重赋值单元

STL0 EQU 32H ;T0定时/计数TL0重赋值单元

TEMP EQU 33H

HL EQU 34H ;判断是否按键存储单元

ORG 00H

LJMP NEXT

ORG 0BH

LJMP INT_T0 ;T0中断入口

ORG 0030H ;开始以此单元存储数据

NEXT : MOV TMOD,#01H ;定义T0为16位定时模式

HANG0 : MOV P0 ,#0FFH ;第一行,赋给P3地址

CLR P0.4 ;高1位取反

MOV A ,P0 ;读入此时P3值

MOV HL ,A ;保存P3值到HL单元

ANL A ,#0FH

XRL A ,#0FH ;判断是否是第一行按下

JZ HANG1

LCALL D10MS ;延时10MS

KO : MOV A ,P0

CJNE A ,HL ,HANG0 ;去抖动

ANL A , #0FH ;屏蔽高4位

NK0 : CJNE A , #0EH,NK4 ;是否第0键按下

MOV KEYBUF ,#0 ;查表偏移量

LJMP DK1 ;跳转

HANG1 : MOV P0 ,#0FFH ;第二行

CLR P0.5 ;高2位取反

MOV A ,P0 ;读入P3此时值

MOV HL , A

ANL A ,#0FH

XRL A ,#0FH

JZ HANG2

LCALL D10MS

MOV A ,P0

CJNE A ,HL,HANG0 ;去抖动,如是抖动回入扫描键盘

ANL A ,#0FH

NK1 : CJNE A ,#0EH,NK5

MOV KEYBUF ,#4

LJMP DK1

HANG2 : MOV P0 ,#0FFH ;同上

CLR P0.6

MOV A ,P0

MOV HL ,A

ANL A ,#0FH

12

东华理工大学毕业设计(论文)第三章

XRL A ,#0FH

JZ HANG3

LCALL D10MS

MOV A ,P0

CJNE A ,HL,HANG0

ANL A ,#0FH

NK2 : CJNE A ,#0EH ,NK6

MOV KEYBUF ,#8

LJMP DK1

HANG3: MOV P0 ,#0FFH ;同上

CLR P0.7

MOV A ,P0

MOV HL ,A

ANL A ,#0FH

XRL A ,#0FH

JZ HANG0

LCALL D10MS

MOV A ,P0

CJNE A ,HL,HANG0

ANL A ,#0FH

NK3 : CJNE A ,#0EH,NK13

MOV KEYBUF ,#12

LJMP DK1

NK4 : CJNE A ,#0DH,NK8 ;键盘按键处理

MOV KEYBUF ,#1

LJMP DK1

NK8 : CJNE A ,#0BH ,NK12

MOV KEYBUF ,#2

LJMP DK1

NK12 : CJNE A ,#07H ,HANG0

MOV KEYBUF ,#3

LJMP DK1

NK5 : CJNE A ,#0DH ,NK9

MOV KEYBUF ,#5

LJMP DK1

NK9 : CJNE A , #0BH ,NK13

MOV KEYBUF ,#6

LJMP DK1

NK13 : CJNE A ,#07H,HANG0

MOV KEYBUF ,#7

LJMP DK1

NK6 : CJNE A ,#0DH,NK10

MOV KEYBUF ,#9

LJMP DK1

13

东华理工大学毕业设计(论文)第三章

NK10 : CJNE A , #0BH,NK14

MOV KEYBUF ,#10

LJMP DK1

NK14 : CJNE A ,#07H,HANG0

MOV KEYBUF ,#11

LJMP DK1

NK7: CJNE A ,#0DH ,NK11

MOV KEYBUF ,#13

LJMP DK1

NK11 : CJNE A ,#0BH ,NK15

MOV KEYBUF ,#14

LJMP DK1

NK15 : CJNE A ,#07H ,HANG0

MOV KEYBUF ,#15

LJMP DK1

DK1 : MOV A , KEYBUF ;装入偏移量值

RL A

MOV TEMP ,A

MOV DPTR ,#TABLE1 ;T0定时器/计数器装入初值

MOVC A ,@A+DPTR

MOV STH0 ,A

MOV TH0 , A

INC TEMP

MOV A ,TEMP

MOVC A ,@A+DPTR

MOV STL0 ,A

MOV TL0 ,A

SETB ET0 ;T0开中断

SETB EA ;允许中断

SETB TR0 ;启动T0定时器/计数器

SJMP $

INT_T0 : MOV TH0 ,STH0 ;重装T0初值

MOV TL0 ,STL0

CPL P3.0 ;P1.0取反,产生一定的音阶

MOV A ,P0 ;判断是否松键

ANL A ,#0FH

XRL A ,#0FH

JNZ DK1

CLR TR0 ;关掉T0

RETI

TABLE : DW 64021,64103,64260,64400

DW 64524,64580,64684,64777

DW 64820,64898,64968,65030

DW 65058,65110,65157,65178

14

东华理工大学毕业设计(论文) 第三章

15

3.3 定时中断子程序

在设计中需要定时器T0来产生中断,生成不同频率的方波来实现不同的音调发音,在程序中根据不同的按键来查询数据表的内容,装入TO 中,开中断,取反。并检查按键,如果还是按下继续发音,否则返回。

3.4 判断是否松键子程序

本次设计采用松键形式来控制T0的中断,不仅能准确的实现控制,而且能根据按键的不同时间的长短来控制声音的音拍。

读入键值

判断是否为0

T0中

T0赋初值

跳转

东华理工大学毕业设计(论文)致谢

4 . 致谢

在本此设计中使我更加了解的单片机的工作原理和写作的流程,增强了我的严禁的态度,在设计时我往往感到脑海空白,不知如何下笔,我知道这是我对知识的缺乏。而我能够完成此设计,这与马善农老师的指导是分不开的,在此表示衷心的感谢,此次设计使我查阅了大量有关资料,增强了我的知识与自学能力,进一步了解单片机的结构,同时也加强了对汇编语言的了解。在使用TKStudio软件时,大大的改善了程序的正确性与紧凑性。也增加了对TKStudio的掌握,我知道对于专业来说,仅仅这些是不够用的,我会加强后天的学习,不断的完善自己,为以后打好基础。

16

东华理工大学毕业设计(论文)参考文献5.参考文献

[1] 李全利·单片机原理及应用技术·3版·北京:高等教育出版社,2009.

[2] 李兰友·微机原理与接口技术·2版·北京:清华大学出版社,2009.

[3] 张毅刚·MCS-51单片机应用设计·哈尔滨:哈尔滨工业大学出版社,1997

17

相关主题
相关文档 最新文档