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

上传人:苏美尔 文档编号:9109235 上传时间:2021-02-02 格式:DOC 页数:22 大小:328KB
返回 下载 相关 举报
基于单片机的电子琴毕业论文设计.doc_第1页
第1页 / 共22页
基于单片机的电子琴毕业论文设计.doc_第2页
第2页 / 共22页
基于单片机的电子琴毕业论文设计.doc_第3页
第3页 / 共22页
基于单片机的电子琴毕业论文设计.doc_第4页
第4页 / 共22页
基于单片机的电子琴毕业论文设计.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《基于单片机的电子琴毕业论文设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的电子琴毕业论文设计.doc(22页珍藏版)》请在三一文库上搜索。

1、摘要我们知道在工业、科技日新月异的这个时代,对我们来说掌握一门必要的技术是多么的重要,它能帮助我们在这个社会上更具有竞争力。而对于工业来说,正面向智能化、集成化、小型化的方向转变,这不仅给技术带来了挑战,而且带来了工艺的革命。同时也使我们学会了必须紧跟科技的前沿,不断用知识来充实自己。而在工业中起着举足轻重作用的“单片机”,自然而然是必须要学的,单片机又称微电脑,在工业中起着控制、采样、计算、工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等重要的作用。它能按照程序进行相应的操作,能实行准时的定时、中断、计数,大大地减少了人员的工作量。同时因采用集成从而使得单片机具有

2、的体积小、重量轻、功能强等特点,本设计采用AT89C51单片机为主控芯片、16矩阵式键盘为输入设备、喇叭为输出设备来组合成简单的电子琴基本框架,本电路能够实行音节与音拍的同时控制来演奏任意一首音乐,我相信在以后的应用中,随着单片机功能的不断加强,将得到更大地应用。关键词:单片机AT89C51 ; ;16矩阵键盘AbstractWe know that in industry, science and technology of changing in this era, for us to master a foreign necessary technology is so importan

3、t, 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

4、 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 ro

5、le. 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 functio

6、n is strong and other characteristics, the design USES AT89C51 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 t

7、o 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目 录 摘要IAbstractII绪论11 . 方案的设计与选择22 . 硬件设计42.1 原理框架42.2 工作原理42.3 时钟电路42.4 键盘电路52.5 信号放大

8、电路62.6、8051功能62.6.3控制线与电源复用引脚73.软件设计93.1 音乐产生原理93.2 主程序的设计93.3 定时中断子程序153.4 判断是否松键子程序154 . 致谢165参考文献176.附录18绪论 单片机诞生于20世纪70年代末,经历了SCM、MCU、SOC三大阶段。由于众多的半导体的厂商的不断创新,如今单片机已经发展到了第四代开发出了经典结构的MCS-51系列与80C51系列单片机等一系列产品,而且不断的在更新中。电子琴作为现代电子科技与音乐结合的产物,是一种新型的键盘乐器,既有价格低、功能强、多音色、入手快等特点,因此在现代音乐扮演着重要的角色。如今,单片机具有强大

9、的控制功能和灵活的编程实现特性,这对于使用单片机制作电子琴就显得很方便。在本次设计中将介绍如何采用单片机设计电子琴,如何运用软件来控制音乐的音节与音拍,实现不按键时不发音、按键按下:不同按键发出不同的声音、按键松开停止发音的功能。1 . 方案的设计与选择 1.1 方案一:原理图如1-1所示,采用独立式键盘结构,P0口连接键盘,P3.0为输出口,通过放大电路和喇叭连接; XTAL1/XTAL2连接时钟电路,此方案琴键与I/O口连线直观、简单,但因采用独立式键盘,所以需要较多I/O口,并且造成布线缭乱。放大电路琴键 电路P3.0P1|P08051时钟电路图1-11.2方案二:采用分立元件组成电子琴

10、,如图1-2所示,此电路原理简单,根据RC 移相振荡器原理制作而成。vl和V2组成互补复合管, R2、R 3 、R16 组成偏流电路,Rl、C2 组成正反馈回路(三极管集电极输出电压与基极输入电压相位相差180。),整个电路为一自激多谐振荡器,当按下不同“琴键”进行演奏时,相当干改变与R2串联的音阶电阻群的阻值,从而改变振荡器的工作频率,使扬声器发出不同音阶的音响,但电路通用性不好,功能不强。图1-21.3方案三:如图1-3所示,本方案与独立式键盘连接方式相近,但采用4x4矩阵式键盘,大大增大I/O利用率,简化了电路结构,并且不影响系统的功能。本方案能实现随意弹奏音乐歌曲,模拟人声的音节与音拍

11、,完整的表达歌曲的音调与音色。 P0P3.08051时钟电路放大电路图1-3 琴 键 电 路 此次设计中三种方案基本都能实现在不同的按键或调节下根据不同的频率来使扬声器发音,但在实际中往往面临不同的台词和音节,而要想使得发音能准确,这就必须使得此设计要既有很强的通用性与控制性,而方案二中因采用改变分立元件电子群在实践中很难实现准确的控制。而方案一与方案三虽然原理相同,但方案一采用独立式键盘,在设计电子琴的过程过多的占用I/O口,浪费单片机资源。 综上所述,考虑到通用性等原因,本设计采用方案三来设计电子琴。2 . 硬件设计2.1 原理框架本实验由六部分组成:4x4矩阵键盘、8051单片机、信号放

12、大电路、喇叭、晶振电路、电源组成。信号放大8051喇叭4x4键盘时钟电路电源2.2 工作原理 4x4键盘的行线连接到单片机中的P0口的高四位,列线连接到P0口的低四位,XTAL1/XTAL2连接时钟电路,当接通电源+5V电压时,8051单片机进行工作,根据程序读入键盘值,屏蔽低四位查找相同行线值、然后依次查找列线值,判断是否为此列,如不是返回。在排除抖动的情况下,并判断按键的功能,然后查询数据表找出按键所对应的初值,由CPU送入TL0/TH0中,并由软件开中断入口。T0每执行一次中断,P3.0就取反一次,产生一定的频率方波来实现音乐中的音色功能,并把方波送入到信号放大器中,再由喇叭输出。同时每

13、执行一次中断,就查询一次按键信息,判断是否保持,保持则继续工作,否则关闭中断停止发音。2.3 时钟电路此系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。在8051单片机引脚中,存在XTAL1/XTAL2两个外部晶体振荡器接入/输出的引脚,能帮助单片机利用外部条件作为定时器/计数器的中断源,此两脚外接如图2-1所示电路,图中晶体谐振器以及电容CX1和CX2构成并联谐振电路,接在单片机内部放大器的反馈回路电路中,构成一个自激振荡器,输出固定波形。 图2-12.4 键盘电路本次设计采用4x4矩阵式键盘,如图2-2所示:工作时,保持行线值不变,列线值从低位向高位依次取反,每次列线取反,读

14、入行线值,依次与程序中值对照,判断按键信息。在判断按键信息时,可能存在抖动现像,所以采用延时10ms去抖。按键抖动原理介绍: 当按键时会因为按键接触不好出现如图2-3所示情况,这种现象称为抖动。在抖动存在的情况下,如果单片机正在采集键盘信息,这将给单片机带来一次按键多次处理的情况,影响输出结果。按键抖动时间一般为510ms,所以需要软件去抖。键按下前沿抖动后沿抖动闭合稳定 图2-3 2.5 信号放大电路 如图2-4所示:放大电路采用共集电极电路结构,利用“分压偏置式工作点稳定直流通路”,达到了对静态工作点的稳定。分压电阻分别选择1K和5.5K, A点连接单片机P1.0口。共集电极电路因输入电阻

15、大、输出电阻小,对信号源影响小,同时因输出电阻小、负载改变时,电压变化很小,所以具有很好的带负载能力。 图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电平兼容,又与C

16、MOS电平兼容,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)EAVPP:EA为内部和外部ROM控制端 当EA1时,从内ROM开始访问 当EA0时,只访问外部ROM VPP是编程电源

17、输入端2.6.4并行输入/输出引脚(1)P0口:P0.0P0.7统称为P0口(2)P1口:P1.0P1.7统称为P1口(3)P2口:P2.0P2.7统称为P2口(4)P3口:P3.0P3.7统称为P3口 P3口每一位可用作第二功能,而且P3口的每一条引脚都可以独立设置为第一功能的I/O口功能和第二功能 。第二功能如下:2.6.5 8051单片机采用哈佛结构,拥有八大功能部件:(1)微处理器(8位CPU)CPU内部包含:运算器、控制器、一些寄存器(2)程序存储器(ROM、EPROM或Flash等)(3)数据存储器(RAM、E2PROM)(4)四个8位并行可编程I/O端口(P0、P1、P2、P3)

18、(5)一个串行口(UART)(6)两个16位定时器/计数器(T0/T1)(7)中断系统(含8个中断源、2个优先级)(8)特殊功能寄存器(SFR) 3.软件设计本次设计使用汇编语言编写,采用模块化设计,便于观察、调试,结构明了。其中包含主程序与若干子程序,能初步实现基于单片机的电子琴表演。在调试过程中使用了TKStudio软件大大改善了程序的结构与正确度。3.1 音乐产生原理一首音乐是由许多不同的音阶组成的,而不同的音阶对应着不同的频率,利用这点,我们组合不同的频率就能产生所想要的歌了,而这对于单片机来说产生不同的频率很简单。只要所要的频率对应相应的音阶就行,现在以单片机内部12M晶振为振源,利

19、用单片机的定时/计数器T0来产生音节方波信号。3.1.1 T0初值计算: 编写工作方式寄存器TMOD,使得T0工作在方式1定时模式下,当我们需要某个音阶时可根据频率的不同计算TH0、TL0的值,公式如下: N = T / tcy X = 65536 NX :计数初值,65536:方式1最大计数值,N:计数值,tcy:机器周期,T:定时时间依照上面公式计算可得T0与音阶关系如表3-1(见附录表3-1)3.2 主程序的设计 在程序中主程序相当于主干包含程序的初始化、中断子程序入口、赋值、开中断与结束语。为实现电子琴功能,本次采用按键形式来查询数据表,产生不同音调,而每次执行完一次取反以后,由程序自

20、动查询键盘,判断按键是否继续,在松键后停止发音,其中采用循环一次取反一次的原则,来保证声音的准确。产生的音频信号由p3.0输出到放大器开始读入行值查找键值所对应初值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 L

21、JMP 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 ;延时10MSKO : MOV A ,P0 CJNE A ,HL ,HANG0 ;去抖动 ANL A , #0FH ;屏蔽高4位NK0 : CJNE A ,

22、 #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 ,#0FHXRL A ,#0FH JZ HANG2 LCALL D10MS MOV A ,P0 CJNE A ,HL,HANG0 ;去抖动,如是抖动 回入扫描键盘 ANL A ,#0FHNK1 : CJNE A ,#0EH,NK5 MOV KEYBUF ,#4 LJMP DK1HANG2 : MOV P0 ,#0FFH ;同上 CLR

23、 P0.6 MOV A ,P0 MOV HL ,A ANL A ,#0FH XRL A ,#0FH JZ HANG3 LCALL D10MS MOV A ,P0 CJNE A ,HL,HANG0 ANL A ,#0FHNK2 : CJNE A ,#0EH ,NK6 MOV KEYBUF ,#8 LJMP DK1HANG3: 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 ,#0FHNK3 : C

24、JNE A ,#0EH,NK13 MOV KEYBUF ,#12 LJMP DK1NK4 : CJNE A ,#0DH,NK8 ;键盘按键处理 MOV KEYBUF ,#1 LJMP DK1NK8 : CJNE A ,#0BH ,NK12 MOV KEYBUF ,#2 LJMP DK1NK12 : CJNE A ,#07H ,HANG0 MOV KEYBUF ,#3 LJMP DK1NK5 : CJNE A ,#0DH ,NK9 MOV KEYBUF ,#5 LJMP DK1NK9 : CJNE A , #0BH ,NK13 MOV KEYBUF ,#6 LJMP DK1NK13 : CJNE

25、 A ,#07H,HANG0 MOV KEYBUF ,#7 LJMP DK1NK6 : CJNE A ,#0DH,NK10 MOV KEYBUF ,#9 LJMP DK1NK10 : CJNE A , #0BH,NK14 MOV KEYBUF ,#10 LJMP DK1NK14 : CJNE A ,#07H,HANG0 MOV KEYBUF ,#11 LJMP DK1NK7: CJNE A ,#0DH ,NK11 MOV KEYBUF ,#13 LJMP DK1NK11 : CJNE A ,#0BH ,NK15 MOV KEYBUF ,#14 LJMP DK1NK15 : CJNE A ,#0

26、7H ,HANG0 MOV KEYBUF ,#15 LJMP DK1DK1 : 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初值

27、MOV TL0 ,STL0 CPL P3.0 ;P1.0取反,产生一定的音阶 MOV A ,P0 ;判断是否松键 ANL A ,#0FH XRL A ,#0FH JNZ DK1 CLR TR0 ;关掉T0 RETITABLE : DW 64021,64103,64260,64400 DW 64524,64580,64684,64777 DW 64820,64898,64968,65030 DW 65058,65110,65157,651783.3 定时中断子程序 在设计中需要定时器T0来产生中断,生成不同频率的方波来实现不同的音调发音,在程序中根据不同的按键来查询数据表的内容,装入TO中,开中

28、断,取反。并检查按键,如果还是按下继续发音,否则返回。3.4 判断是否松键子程序本次设计采用松键形式来控制T0的中断,不仅能准确的实现控制,而且能根据按键的不同时间的长短来控制声音的音拍。 读入键值判断是否为0T0中断返回T0赋初值跳转4 . 致谢在本此设计中使我更加了解的单片机的工作原理和写作的流程,增强了我的严禁的态度,在设计时我往往感到脑海空白,不知如何下笔,我知道这是我对知识的缺乏。而我能够完成此设计,这与马善农老师的指导是分不开的,在此表示衷心的感谢,此次设计使我查阅了大量有关资料,增强了我的知识与自学能力,进一步了解单片机的结构,同时也加强了对汇编语言的了解。在使用TKStudio

29、软件时,大大的改善了程序的正确性与紧凑性。也增加了对TKStudio的掌握,我知道对于专业来说,仅仅这些是不够用的,我会加强后天的学习,不断的完善自己,为以后打好基础。5参考文献1 李全利 单片机原理及应用技术3版北京:高等教育出版社,2009.2 李兰友 微机原理与接口技术2版北京:清华大学出版社,2009.3 张毅刚MCS-51单片机应用设计哈尔滨:哈尔滨工业大学出版社,19976.附录附录3-1音符 频率 计数值 音符 频率 计数值低1 D0 262 63628 #4 FA# 740 64860#1 D0 277 63731 中 5S0 784 64898低2 RE 294 63835

30、# 5 S0# 831 64934#2 RE# 311 63928 中 6 LA 880 64968低 3 M 330 64021 # 6 932 64994低 4 FA 349 64103 中 7 SI 988 65030# 4 FA# 370 64185 高 1D0 1046 65085# 5 S0# 415 64331 高 2 RE 1175 65110低 5 S0 392 64260 # 1 D0# 1109 65085低 6 LA 440 64400 #2 RE# 1245 65134# 6 466 64463 高 3M 1318 65157低 7 SI 494 64524 高 4FA 1397 65178中 1D0 523 64580 # 4 FA# 1480 65198# 1D0# 554 64633 高 5S0 1568 65217中 2RE 587 64684 # 5S0# 1661 65235中 3M 659 64777 # 6 1865 65268# 2 RE# 622 64732 高6 LA 1760 65235中4 FA 698 64820 高 7 SI 1967 65283

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

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1