




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 lx 职 业 技 术 学 院毕 业 论 文题 目简易电子琴系 部电气工程系专 业应用电子技术班 级姓 名学 号指 导 教 师日 期2010-12-16设计任务书设计题目:简易电子琴设计设计要求:分析音乐产生原理设计电子琴工作电路图设计硬件连线使各部分模块的协调运作发挥各自功能作用设计按键识别程序及音乐发生程序设计音乐发生系统能够产生更多音调,使音乐更动听进行调试,找出问题,并进行改进设计进度要求第一周:确定题目,分析设计总体框架第二周:根据设计要求分析简易电子琴的音乐发声原理第三周:收集资料第四周:对音乐发生程序进行设计第五周:画电子线路图第六周:对各部分进行总体概括第七周:撰写论文第八周:
2、答辩 指导教师(签名): 摘 要随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。我们都会抽空欣赏世界名曲,作为对精神的洗礼。本论文设计一个基于单片机的简易电子琴。我们对于电子琴如何实现其功能,如音色选择、声音强弱控制、节拍器、自动放音功能等等也很好奇。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用at89s51单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主
3、控制模块,在主控模块上设有16个按键和扬声器。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。关键词:at89s51单片机 音色 节拍器 自动放音 目 录摘要2目录. . . . . .3前言.41.电子琴的主要芯片简介及连线. . 5 1.1主要芯片简介5 1.1.1 at89s51简介51.1.2 lm38671.1.3 led数码管71.2 系统板硬件连线82电子琴的实现过程92.1 4x4行列式键盘识别及显示92.2硬件板上的系统连线设计112.3 程序设计内容112.4 i/o并行口直接驱动led显示123 音乐产生的方法15
4、3.1 原理153.2 程序框图及实现程序174 设计小结22致谢23参考文献 24附录25前 言单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用at89s51单片机为核心控制元件,设计一个电子琴。以单
5、片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。 本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器t0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确
6、即可。1电子琴主要芯片简介1.1主要芯片简介1.1.1 at89s51简介at89s51是一个低功耗,高性能cmos 8位单片机,片内含4k bytes isp(in-system programmable)的可反复擦写1000次的flash只读程序存储器,器件采用atmel公司的高密度、非易失性存储技术制造,兼容标准mcs-51指令系统及80c51引脚结构,芯片内集成了通用8位中央处理器和isp flash存储单元,功能强大的微型计算机的at89s51可为许多嵌入式控制应用系统提供高性价比的解决方案。 at89s51具有如下特点:40个引脚(引脚图如图1-1所示),4k bytes flas
7、h片内程序存储器,128 bytes的随机存取数据存储器(ram),32个外部双向输入/输出(i/o)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(wdt)电路,片内时钟振荡器。 此外,at89s51设计和配置了振荡频率可为0hz并可通过软件设置省电模式。空闲模式下,cpu暂停工作,而ram定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存ram的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有pdip、tqfp和plcc等三种封装形式,以适应不同产品的需求。 图1-1管脚图主要功能特性 兼容mcs-51指令系统
8、32个双向i/o口 2个16位可编程定时/计数器 全双工uart串行中断口线 2个外部中断源 中断唤醒省电模式 看门狗(wdt)电路 灵活的isp字节和分页编程 4k可反复擦写isp flash rom 4.5-5.5v工作电压 时钟频率0-33mhz 128*8bit内部ram 低功耗空闲和省电模式 3级加密位 软件设置空闲和省电功能 双数据寄存器指针1.1.2 lm386内部电路lm386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。lm386特性:静态功耗低,约为4ma,可用于电池供电;工作电压范围宽,4v-12v或5v-18v;外围元件少;电压增益可调,20-2
9、00;低失真度。lm386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。 。图1.2 音频放大器电路1.1.3 led数码管图1-3 7段数码管数码管(如图1-3所示)使用条件:a、段及小数点上加限流电阻b、使用电压:段:根据发光颜色决定;小数点:根据发光颜色决定c、使用电流:静态:总电流 80ma(每段 10ma);动态:平均电流 4-5ma 峰值电流 100ma上面这只是七段数码管引脚图,其中共阳极数码管引脚图和共阴极的是一样的。数码管使用注意事项说明:(1)数码管表面不要用手触摸,不要用手去弄引角;(2)
10、焊接温度:260度;焊接时间:5s(3)表面有保护膜的产品,可以在使用前撕下来。1.2系统板硬件连线 系统板硬件连线如图1-1所示,发生模块,键盘模块,及led显示模块连接如下1.把“单片机系统”区域中的p1.0端口用导线连接到“音频放大模块”区域中的spk in端口上;2.把“单片机系统”区域中的p3.0p3.7端口用8芯排线连接到“4x4行列式键盘”区域中的c1c4r1r4端口上;3.把“单片机系统”区域中的p0.0/ad0p0.7/ad7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个ah端口上;要求:p0.0/ad0对应着a,p0.1/ad1对应着b,p0.7/ad7对应着h
11、。2.电子琴的实现过程2.1 4x4行列式键盘识别及显示组成键盘的按键有机械式、电容式、导电橡胶式、薄膜式多种,但不管什么形式,其作用都是一个使电路接通与断开的开关。目前微机系统中使用的键盘按其功能不同,通常可分为编码键盘和非编码键盘两种基本类型。 编码键盘:键盘本身带有实现接口主要功能所需的硬件电路。不仅能自动检测被按下的键,并完成去抖动、防串键等功能,而且能提供与被按键功能对应的键码(如ascii码)送往cpu。所以,编码键盘接口简单、使用方便。但由于硬件电路较复杂,因而价格较贵。 非编码键盘:键盘只简单地提供按键开关的行列矩阵。有关按键的识别、键码的确定与输入、去抖动等功能均由软件完成。
12、目前微机系统中,一般为了降低成本大多数采用非编码键盘。 键盘接口必须具有去抖动、防串键、按键识别和键码产生4个基本功能。 (1)去抖动:每个按键在按下或松开时,都会产生短时间的抖动。抖动的持续时间与键的质量相关,一般为520mm。所谓抖动是指在识别被按键是必须避开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。去抖问题可通过软件延时或硬件电路解决。 (2)防串键:防串键是为了解决多个键同时按下或者前一按键没有释放又有新的按键按下时产生的问题。常用的方法有双键锁定和n键轮回两种方法。双键锁定,是当有两个或两个以上的按键按下时,只把最后释放的键当作有效键并产生相应的键码。n键轮回,是
13、当检测到有多个键被按下时,能根据发现它们的顺序依次产生相应键的键码。 (3)被按键识别:如何识别被按键是接口解决的主要问题,一般可通过软硬结合的方法完成。常用的方法有行扫描法和线反转法两种。行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此,需要设置入口、输出口一个,该方法在微机系统中被广泛使用。线反转法的基本思想是通过行列颠倒两次扫描来识别闭合键,为此需要提供两个可编程的双向输入/输出端口。 (4)键码产生:为了从键的行列坐标编码得到反映键功能的键码,一般在内存区中建立一个键盘编码表,通过查表获得被按键的键码。用at89s51的并行口p1接44矩阵键盘,以p
14、1.0p1.3作输入线,以p1.4p1.7作输出线;在数码管上显示每个按键的“0f”序号。图2-1 键盘识别模块2.2 系统板上硬件连线设计键盘模块硬件连线如图2-1所示:(1)把“单片机系统”区域中的p3.0p3.7端口用8芯排线连接到“4x4行列式键盘”区域中的c1c4r1r4端口上;(2)把“单片机系统”区域中的p0.0/ad0p0.7/ad7端口用8芯排线连接到“7段数码显示模块”区域中的任一个ah端口上;要求:p0.0/ad0对应着a,p0.1/ad1对应着b,p0.7/ad7对应着h。2.3 程序设计内容(1)44矩阵键盘识别处理,每个按键有它的行值和列值,行值和列值的组合就是识别
15、这个按键的编码。矩阵的行线和列线分别通过两并行接口和cpu通信。每个按键的状态同样需变成数字量“0”和“1”,开关的一端(列线)通过电阻接vcc,而接地是通过程序输出数字“0”实现的。(2)键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么;还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。电路图如下图2.3 行列式键盘电路2.4 i/o并行口直接驱动led显示led显示模块如图2-2所示,利用at89s51单片机的p0端口的p0.0p0.
16、7连接到一个七段数码管的ah的笔段上,数码管的公共端接地。在数码管上循环显示07数字,时间间隔0.2秒。图2-4 电路原理图系统板上硬件连线:(如图2-2所示) 把“单片机系统”区域中的p0.0/ad0p0.7/ad7端口用8芯排线连接到“七段数码显示模块”区域中的任一个数码管的ah端口上;要求:p0.0/ad0与a相连,p0.1/ad1与b相连,p0.2/ad2与c相连,p0.7/ad7与h相连。程序设计内容(1)led数码显示原理: 七段led显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的极管的接线形式,可分成共阴极型和共阳极型。 led数码管的ga七个发光二极管因加
17、正电压而发亮,因加零电压而不以发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码,下面给出共阴极的字形码表(如表2-1所示)表2-1 字形码表“0”3fh“8”7fh“1”06h“9”6fh“2”5bh“a”77h“3”4fh“b”7ch“4”66h“c”39h“5”6dh“d”5eh“6”7dh“e”79h“7”07h“f”71h(2)由于显示的数字09的字形码没有规律可循,只能采用查表的方式来完成我们所需的要求了。这样我们按着数字09的顺序,把每个数字的笔段代码按顺序排好!建立的表格如下所示:tabledb 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,
18、6fh。3 音乐产生的方法 3.1 原理一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器t0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将p1.0反相,然后重复计时再反相。就可在p1.0引脚上得到此频率的脉冲。 利用at89c51的内部定时器使其工作计数器模式(mode1)下,改变计数值
19、th0及tl0以产生不同频率的方法产生不同音阶,例如,频率为523hz,其周期t1/5231912s,因此只要令计数器计时956s/1s956,每计数956次时将i/o反相,就可得到中音do(523hz)。 计数脉冲值与频率的关系式(如式2-1所示)是: nfi2fr 2-1式中,n是计数值;fi是机器频率(晶体振荡器为12mhz时,其频率为1mhz);fr是想要产生的频率。其计数初值t的求法如下: t65536n65536fi2fr 例如:设k65536,fi1mhz,求低音do(261hz)、中音do(523hz)、高音do(1046hz)的计数值。 t65536n65536fi2fr65
20、53610000002fr65536500000/fr 低音do的t65536500000/26263627 中音do的t65536500000/52364580 高音do的t65536500000/104665059单片机12mhz晶振,高中低音符与计数t0相关的计数值如表2-2所示表2-2 音符频率表音符频率(hz)简谱码(t值)音符频率(hz)简谱码(t值)低1do26263628# 4 fa#74064860#1do#27763731中 5 so78464898低2re29463835# 5 so#83164934#2 re#31163928中 6 la88064968低 3 m330
21、64021# 693264994低 4 fa34964103中 7 si98865030# 4 fa#37064185高 1 do104665058低 5 so39264260# 1 do#110965085# 5 so#41564331高 2 re117565110低 6 la44064400# 2 re#124565134# 646664463高 3 m131865157低 7 si49464524高 4 fa139765178中 1 do52364580# 4 fa#148065198# 1 do#55464633高 5 so156865217中 2 re58764684# 5 so#1
22、66165235# 2 re#62264732高 6 la176065252中 3 m65964777# 6186565268中 4 fa69864820高 7 si196765283我们要为这个音符建立一个表格,单片机通过查表的方式来获得相应的数据 低音019之间,中音在2039之间,高音在4059之间 table: dw 0, 63628, 63835, 64021, 64103, 64260, 64400, 64524, 0, 0 dw 0, 63731, 63928, 0, 64185, 64331, 64463, 0, 0, 0 dw 0, 64580, 64684, 64777,
23、64820, 64898, 64968, 65030, 0, 0 dw 0, 64633, 64732, 0, 64860, 64934, 64994, 0, 0, 0 dw 0, 65058, 65110,65157, 65178, 65217, 65252, 65283, 0, 0 dw 0, 65085, 65134, 0, 65198, 65235, 65268, 0, 0, 0 dw 0音乐的音拍,一个节拍为单位(c调)(如表2-3所示)表2-3 曲调值表曲调值delay曲调值delay调4/4125ms调4/462ms调3/4187ms调3/494ms调2/4250ms调2/412
24、5ms对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。琴键处理程序,根据检测到得按键值,查询音律表,给计时器赋值,发出相应频率的声音。对音调的控制:根据不同的按键,对定时器t1送入不同的初值,调节t1的溢出时间,这样就可以输出不同音调频率的方波。不同音调下各个音阶的定时器。在这个程序中用到了两个定时/计数器来完成的。其中t0用来产生音符频率,t1用来产生音拍。3.2 程序框图及实现程序音乐发声程序框图如图2-4所示:图2-4 音乐发声程序框图按键识别程序: 产生按键音符 org 0000h ljmp main org 000bh ljmp breakmain: mov tmod,
25、#01h ;设置定时器0的工作方式 setb ea setb et0 ; 设置定时器0中断 setb tr0 ; 启动定时器0wait1: lcall key ; 调用key子程序,判断有键按下否?第几个键? clr ea ;屏蔽中断 cjne r3,#00h,wait1 ;如果r3=0,表示有键按下 mov a,22h ;将22h里存放的按键号送给a rl a ; 因为查表里都是字,所以得乘2查得数据 mov dptr,#table ;指向表头 movc a,a+dptr ; 查表 mov th0,a ;将数据高位送th0 mov 21h,a ; 将高位备份 mov a,22h ;将22h里
26、存放的按键号送给a rl a ;因为查表里都是字,所以得乘2查得数据 inc a ;取低位数据 movc a,a+dptr mov tl0,a mov 20h,await2: lcall key setb ea cjne r3,#00h,wait1 jmp wait2key: mov r3,#00h ; key子程序,判断有键按下否?第几个键? mov r1,#0ffh mov r0,#00h mov a,r1 mov p2,a mov a,p2 clr c cpl c ;利用标志位cy来判断是哪个键按下 mov r2,#08hwait3: rlc a ;移位判断 jnc store inc
27、r0 djnz r2,wait3store: mov 22h,r0 ; 将按键号存22h,r3=0有键按下 mov r3,#00h retbreak: push acc ; 中断产生方波,从p1.0口输出 push psw mov tl0,20h mov th0,21h cpl p1.0 pop psw pop acc retitable: dw 65030,64968,64898,64820,64777,64684,64580 ; 7,6,5,4,3,2,1 end生日快乐歌: org 0000h jmp main org 000bh jmp tt0main: mov tmod,#01h ;
28、设置定时器0工作方式 mov ie,#82h ;设置中断main0:mov 30h,#00hnext: mov a,30h mov dptr,#table ;查表 movc a,a+dptr mov r2,a jz stop anl a,0fh mov r5,a mov a,r2 swap a anl a,#0fh jnz sing clr tr0 jmp w1sing: dec a mov 22h,a rl a mov dptr,#table1 ;查表 movc a,a+dptr mov th0,a mov 21h,a mov a,22h rl a inc a movc a,a+dptr m
29、ov tl0,a mov 20h,a setb tr0w1: call delay inc 30h jmp nextstop: clr tr0 jmp main0tt0: push acc ;中断服务程序 push psw mov tl0,20h mov th0,21h cpl p1.0 pop psw pop acc retidelay:mov r7,#2 ;延时187ms w2: mov r4,#187 w3: mov r3,#248 djnz r3,$ djnz r4,w3 djnz r7,w2 djnz r5,delay rettable1:dw 64260,64400,64524,6
30、4580 ;音符计数植 dw 64684,64777,64820,64898 dw 64968,65030,65058,65110dw 65157,65178,65217 table:db 82h,01h,81h,94h,84h ;节拍表 db 0b4h,0a4h,04h db 82h,01h,81h,94h,84hdb 0c4h,0b4h,04h db 82h,01h,81h,0f4h,0d4h db 0b4h,0a4h,94h db 0e2h,01h,0e1h,0d4h,0b4hdb 0c4h,0b4h,04h db 82h,01h,81h,94h,84h db 0b4h,0a4h,04h
31、 db 82h,01h,81h,94h,84hdb 0c4h,0b4h,04h db 82h,01h,81h,0f4h,0d4h db 0b4h,0a4h,94h db 0e2h,01h,0e1h,0d4h,0b4h db 0c4h,0b4h,04h db 00hend4 设计小结 通过这次毕业设计,我学到了不少课本上没有的知识,也锻炼了自己的动手能力,将以前学过的零散的知识串到一起。首先在毕业设计刚开始的调研阶段,我学会了怎么通过各种方式查询相关的资料。通过对这些资料的学习,我大致了解了单片机的发展现状以及未来的发展趋势,认识到目前单片机方面的各种各样的发展,和它们之间的竞争。了解了单片机方
32、面的先进技术,这些都为我的未来的学习指明了方向。我的毕业设计主要涉及硬件和软件两方面的内容,通过这些我的硬件和软件开发能力都获得了提高。首先硬件方面,基本了解了电子产品的开发流程和所要做的工作。基本掌握了protel99se原理图的方法,并设计了一个单片机最小系统。通过开发板的设计和硬件搭建的过程,使我对51系单片机的接口有了更深层次的理解,熟悉了一些单片机常用的外围电路引脚和连接方法,如led数码管,键盘等。在软件方面,通过串行口调试工具的开发,使我加深了对累封装的理解,熟悉了51系列单片机内部的寄存器和编程规则,以及如何控制外围电路。 将程序烧入芯片,调试成功后,可任意弹奏自己想要的旋律。本研究通过制作电子琴,将几个模块很好的融合起来,对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。说明一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 粮食供应链协同创新及其在储备中的应用
- 跨文化交流中的创意碰撞与合作
- 制造业升级背景下的工业园区发展策略
- 油菜生长周期管理与增产策略
- 教育信息化背景下的语文教学创新
- 商法实务基础知识点归纳
- 人工智能助力基层医疗服务的突破
- 传统节庆的现代化开发与体验设计
- 房产行业新人导引
- 《数字绘画基础教程》课件-06造型篇-项目六
- 手工皂制作教程(课堂)课件
- 部编版小学道德与法治三年级下册期末质量检测试卷【含答案】5套
- 断亲协议书范本
- 五年级语文下册第八单元【教材解读】课件
- 篮球比赛计分表word版
- 手卫生依从性差鱼骨分析
- 外科围手术期患者心理问题原因分析及护理干预
- 电荷耦合器件(CCD)介绍和工作原理
- JJF(闽) 1101-2020 在线式CCD图像尺寸测量系统校准规范
- 生产安全事故调查工作实务含直接经济损失计算方法和标准
- 四川省甘孜州2022年中考语文试题及参考答案
评论
0/150
提交评论