8255的51单片机电子琴设计
- 格式:doc
- 大小:35.50 KB
- 文档页数:8
(完整版)基于51单⽚机的简易电⼦琴设计基于51单⽚机的简易电⼦琴设计⼀.问题提出为什么选择简易电⼦琴设计?1.对于⾳乐的兴趣我们对⾳乐都有着浓厚的兴趣,喜欢听钢琴曲,如理查德·克莱德曼演奏的《思乡曲》《星空》《秋⽇的私语》等,⾳乐在我们的⽣活中扮演着很重要的⾓⾊。
有⼈曾说,喜欢⾳乐的⼈不会向恶。
以前不以为然,可是随着这些年来慢慢喜欢上阴郁,听了越来越多的钢琴曲之后,觉得这句话⾮常有道理。
⾳乐是⽤艺术家⽤⾳符记录世界,传达情感的⼀种艺术形式,⾳乐⾥有⼀种和谐之美,听⾳乐可以让⼈⼼情舒畅,与外界和谐统⼀。
⾳乐现在已经成为我⽣活中很重要的⼀部分,我们每周都会抽些时间去欣赏世界名曲,作为对精神的洗礼。
2.对于电⼦琴的好奇好奇是⼈的天性,⼈类对于⾃然的认识,对于科学的探索,⽆不始于好奇。
我们对电⼦琴如何实现其功能,如⾳⾊选择、声⾳强弱控制、节拍器、⾃动放⾳功能等等也很好奇,想通过学习单⽚机这个机会,深⼊了解电⼦琴的功能实现原理。
3.对于51单⽚机强⼤功能的信赖51单⽚机有基本特性:(1)⾯向控制的8位CPU和指令系统(2)4K字节的程序存储器(ROM或EPROM)(3)128字节的数据存储器(4)可编程的并⾏I/O⼝P0~P3,有32位双向输⼊/输出线(5)⼀个全双⼯串⾏⼝(6)两个16位定时器/计数器(7)五个中断源,两个优先级的中断结构(8)⼀个⽚内时钟振荡器和时钟电路(9)可以寻址64K字节的程序存储器和64K字节的外部数据存储器51单⽚机功能强⼤,性能⽇趋完善,在⼯业测控、智能仪器仪表、机电⼀体化产品、家电领域中应⽤⼴泛,因此基于51单⽚机设计简易的电⼦琴可⾏性⾮常⼤。
⼆.功能需求1.能够实现基本的琴键功能即每按下⼀个琴键,单⽚机能够检测到键盘的按键,并根据按键的位置,通过程序来控制,使蜂鸣器发出不同频率(⾳调)的声⾳,声⾳延迟⼀段时间,等到按键放开后,声⾳停⽌。
然后再继续扫描,看是否有键按下,如此循环下去,即可实现基本的琴键功能。
一、内容摘要设计一个电子琴。
利用数字键1、2、3、4、5、6、7作为电子琴键,按下数字键发出相应的音调。
二、课程设计的目的和意义1、进一步掌握定时器编程和应用。
2、了解微机利用定时器产生音乐的基本方法。
三、课程设计的要点和内容1、根据音阶频率表,利用定时器可以产生相应频率的脉冲信号,不同频率的脉冲信号经驱动电路放大后,就会发生不同的音调。
2、对于每个按键的音调发音时间由软件延时控制,如键一直按下,就会连续发音各音阶标称频率值:本次课设要求设计一个电子琴,作为一个乐器,其最基本的功能就是能够发出一个音阶的所有声音,即:do,re,mi,fa,so,la,xi,dou,8个音符,不同的声音的本质就是不同频率的波,每个音符都对应着固定的频率;而声音的长短即是波的个数。
所以得出的一条思路是:用汇编语言来产生一系列频率不同的方波信号,找到各个音符的频率,然后用汇编语言产生同频信号,并将该信号输入到扬声器,如果驱动功率不够则可以加放大电路。
四、硬件电路设计1、单元电路设计:硬件结构应结合软件方案一并考虑,做到软件、硬件功能相匹配。
在DJ-598K 三合一单片机微机试验仪平台上,硬件设计参考方案如下:2、电路工作原理:2.1可编程8253计数器(1)在计算机的引用中,常常要对外设的某些信号进行计数,希望计算机既能控制技术的过程,还有能读取计数的结果,进而作为控制或管理的决策依据。
如果被计数的信号有了准确的固定的周期,就形成了定时器。
(2)图为8253的内部组成和引脚。
如图所示,与外部的连接线主要分布在右侧的三个部分,即:三个计数器。
其中CLK为计数通道的输入脉冲信号,对于8253来说的频率范围是0—2MHz。
GATE为门控信号,用来启动或禁止计数工作,高电平有效,不同的工作方式,作用也不同。
Out为输出信号,用来输出波形,不同的工作方式,不同的工作方式,输出的波形也不同;而与CPU的的内部接线主要分布在左侧的三个部分。
电子琴设计报告一、实验目的1.更深刻的了解、学习8051单片机的发声原理,利用定时器可以发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调。
2.其次,定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平,由于定时参数不同,所以发出不同频率的脉冲。
3.进一步熟悉定时器的编程方法和定时初值的计算,进一步熟悉键盘扫描电路的工作原理和编程方法,了解单片机芯片的接口技术。
二、实验要求1.能够通过键盘演奏音符。
2.能够保存演奏的音乐,并实现回放。
3.有音调调整功能(如:C调,G调)。
4.自由发挥其他功能。
5.要求有单片机硬件系统框图,电路原理图,软件流程图。
三、实验基本原理简易电子琴有主控、蜂鸣器、键盘输入、电源四部分组成。
主控部分以AT89S52 为核心,用C 语言编程,充分运用AT89S52 的8k字节闪烁可编程可擦除只读存储器及其丰富的I/O 口,实现了对键盘数据的采集,和对蜂鸣器声音的控制;键盘输入部分采用4×4的键盘键盘输入,可以实现多个音调;供电部分可对整个电路进行供电。
经测试,整机基本实现预计功能,可以实现键盘演奏音符、调整音调、保存并回放的功能。
四、实验设计分析根据实验所要求实现的功能设计实现该项实验设计的软件电路及硬件电路。
五、实验要求实现A.电路设计1. 整体设计计划利用AT89S52 单片机的功能结合C 语言编程,实现电子琴播放音符等的简单功能,然后结合AT89S52 单片机的控制功能,利用蜂鸣器将输入表达出来,结合程序编制过程中,对各个I/O 的利用设置了键盘的扫描读入,结合电子琴需要多键位的现实,加入了4×4 键盘输入,达到了预期的效果。
2.分块设计1.控制模块AT89S52单片机是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含有8kb的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。
基于51单⽚机的简易电⼦琴设计基于51单⽚机的简易电⼦琴设计⼀、设计任务及要求1、在该简易电⼦琴设计中,设置8个按键,8个按键可以发出do、re、mi、fa、sol、la、si、Do 8个⾳阶。
2、设计三个拨码开关,三个拨码开关可以调节⾼⾳、中⾳、低⾳三个⾳调。
3、画出电路的总体⽅框图和电路原理图。
⼆、设计原理⾳乐由许多不同的⾳阶组成的,⽽每个⾳阶对应着不同的频率,这样,我们就可以利⽤不同的频率组合,构成我们想要的⾳乐。
简易电⼦琴是摁下拨码开关时,单⽚机AT89C51会发出声⾳,声⾳从P1.0端⼝经过LM386,经过放⼤以后传⼊喇叭。
声⾳主要是经过单⽚机4×4矩阵键盘的按键产⽣,这⾥只⽤到8个按键来产⽣⾼中低的8个⾳阶,来产⽣do re mi fa sol la si Do。
下⾯是计数初值:三、设计⽅案本次设计的电⼦琴主要是利⽤AT89C51单⽚机为核⼼控制元件,同时还包括键盘、拨码开关和扬声器等控制模块,由键盘选择⼋个⾳阶。
1、电路原理图的总体设计总体电路需要c51单⽚机⼀⽚,⾳乐按键及喇叭等外围电路,要进⾏⾳调控制和⾳频放⼤,设计好的电路图如下图所⽰:2、键盘控制模块的设计矩阵按键部分由8个轻触按键按照2⾏4列排列,连接到P3端⼝。
将⾏线所接的单⽚机的I/O⼝作为输出端,⽽列线所接的I/O,则作为输⼊。
⾏线输出是低电平,有健按下,则输⼊线就会被拉低,这样,通过读输⼊线的状态就可得知是否有键按下。
3、键盘消抖当⽤⼿按下⼀个键时,如图所⽰,往往按键在闭合位置和断开位置之间跳⼏下才稳定到闭合状态的情况;在释放⼀个键时,也回会出现类似的情况。
这就是抖动。
抖动的持续时间随键盘材料和操作员⽽异,不过通常总是不⼤于10ms。
⽤软件⽅法可以很容易地解决抖动问题,这就是通过延迟10ms来等待抖动消失,此后再读⼊键盘码。
⼀个单⽚机⼯作于12M晶振,它的时钟周期是1/12(微秒)。
它的⼀个机器周期是12*(1/12)也就是1微秒。
目录摘要 (3)Abstract (3)1绪论 (4)1.1背景 (4)1.2目的 (4)1.3 意义 (4)1.4基本理论依据和主要工作内容 (4)2 设计方案简述 (6)2.1键盘模块 (6)2.2发声模块 (6)2.3 8X8点阵显示模块 (6)2.4系统技术指标和预期功能 (7)3 详细设计 (8)3.1主要IC芯片介绍 (8)3.2硬件设计 (11)4 设计结果及分析 (19)4.1 测试 (19)5总结 (20)参考文献 (21)附录主要程序代码 (22)摘要单片机的应用已经越来越贴近生活,用单片机来实现一些电子设计也变得容易起来。
本设计阐述的主要内容是一种基于51 单片机的电子琴的设计,其核心芯片AT89S52 单片机,内部电路包括4X4行列式键盘模块、音频放大模块和8X8LED点阵显示模块,本系统运行稳定,功能较为完善,控制系统可靠,性价比较高等,具有一定的实用价值。
对于那些需要显示的信息量不是很大,分辨率不是很高,又需要制造成本相对比较低的场合,使用大、小屏幕LED点阵显示器是比较经济适用的,他可以显示字符、数字和简单图形,显示亮度较高,并且对环境条件要求比较低。
电子乐器的结构较为复杂,音源是由晶体管产生的电振动,并通过音色回路而产生各种音色;同时由周波数调制产生颤音效果,由振幅调制产生各种乐器的音效。
关键词:AT89S52单片机;音频放大模块;8X8点阵AbstractIts applications have become increasingly close to life, with a single chip to achieve a number of electronic design is becoming simpler. The main elements of the design described is based on 51 single-chip, the flower design, the core chip AT89S52 microcontroller Internal circuit including the 4X4 determinant keyboard module, audio amplifier module and 8X8LED dot matrix display module, the system is stable, function better, control system reliability, higher cost and so on, has some practical value. For those who need to display the amount of information is small, resolution is not high, they need to make the occasion a relatively low cost, using large and small screen, LED dot matrix display is more economical, and he can display characters, numbers and simple graphics, display brightness higher and lower demands on the environmental conditions. : The structure of more complex electronic instruments, the source is generated by the transistor electrical vibration, and sound loops generated by a variety of tone; also modulated by the frequency to produce vibrato effects, generated by the amplitude modulated sounds of various instruments.Keywords:AT89S52 Microcontroller;Audio Amplifier Module;8X8 matrix1绪论1.1背景单片机是随着大规模集成电路的出现极其发展,将计算机的CPU,RAM,ROM,定时/计数器和多种I/O接口集成在一片芯片上,形成了芯片级的计算机,因此单片机早期的含义称为单片微型计算机(single chipmicrocomputer).它拥有优异的性价比、集成度高、体积小、可靠性高、控制功能强、低电压、低功耗的显著优点.主要应用于智能仪器仪表、工业检测控制、机电一体化等方面,并且取得了显著的成果。
BUZZ EQU P1.0ORG 0000HLJMP STARTORG 000BHLJMP INT_T0ORG 0100HSTART:CLR EAMOV TMOD,#01H ;设置定时器0为工作模式1SETB ET0 ;开定时器0中断SETB EA ;开总中断CLR TR0 ;关闭定时器0MOV R1,#0FFHKE: LCALL KEYCJNE R1,#0FFH,KE2 ; 无键按下,返回startCLR TR0SJMP STARTKE2: CJNE R1,#1FH,KE1 ;MON键按下,音乐LJMP START0KE1: LCALL KEYCJNE R1,#09H,KEY2 ;K0键按下MOV 30H,#0FEH ;设置音阶7MOV 31H,#06HLJMP SET_TIMERKEY2: CJNE R1,#08H,KEY3 ;K1键按下MOV 30H,#0FEH ;设置音阶1MOV 31H,#022HLJMP SET_TIMERKEY3: CJNE R1,#0AH,KEY4 ;K2键按下MOV 30H,#0FEH ;设置音阶#1MOV 31H,#03DHLJMP SET_TIMERKEY4: CJNE R1,#0CH,KEY5 ;K3键按下MOV 30H,#0FEH ;设置音阶2MOV 31H,#056HLJMP SET_TIMERKEY5: CJNE R1,#01H,KEY6 ;K4键按下MOV 30H,#0FEH ;设置音阶#2MOV 31H,#06EHLJMP SET_TIMERKEY6: CJNE R1,#03H,KEY7 ;K5键按下MOV 30H,#0FEH ;设置音阶3MOV 31H,#085HLJMP SET_TIMERKEY7: CJNE R1,#05H,KEY8 ;K6键按下MOV 30H,#0FEH ;设置音阶4MOV 31H,#09AHLJMP SET_TIMERKEY8: CJNE R1,#00H,KEY9 ;K7键按下MOV 30H,#0FEH ;设置音阶#4MOV 31H,#0AEHLJMP SET_TIMERKEY9: CJNE R1,#02H,KEY10 ;K8键按下MOV 30H,#0FEH ;设置音阶5MOV 31H,#0C1HLJMP SET_TIMERKEY10:CJNE R1,#04H,KEY11 ;K9键按下MOV 30H,#0FEH ;设置音阶#5MOV 31H,#0D3HLJMP SET_TIMERKEY11:CJNE R1,#06H,KEY12 ;KA键按下MOV 30H,#0FEH ;设置音阶6MOV 31H,#0E4HLJMP SET_TIMERKEY12:CJNE R1,#07H,KEY13 ;KB键按下MOV 30H,#0FEH ;设置音阶#6MOV 31H,#0F4HLJMP SET_TIMERKEY13:CJNE R1,#0EH,KEY14 ;KC键按下MOV 30H,#0FFH ;设置音阶7MOV 31H,#03HLJMP SET_TIMERKEY14:CJNE R1,#0FH,KEY15 ;KD键按下MOV 30H,#0FFH ;设置音阶1MOV 31H,#011HLJMP SET_TIMERKEY15:CJNE R1,#0DH,KEY16 ;KE键按下MOV 30H,#0FFH ;设置音阶#1MOV 31H,#1FHLJMP SET_TIMERKEY16:CJNE R1,#0BH,KEY17 ;KF按下MOV 30H,#0FFH ;设置音阶2MOV 31H,#2BHLJMP SET_TIMERKEY17:CJNE R1,#10H,KEY18 ;TV/ME按下,停止LJMP STARTKEY18:CJNE R1,#12H,KEY19 ;EG/DL按下MOV 30H,#0FCH ;设置音阶低#1MOV 31H,#79HLJMP SET_TIMERKEY19:CJNE R1,#14H,KEY20 ;CLB键按下MOV 30H,#0FCH ;设置音阶低2MOV 31H,#0ADHLJMP SET_TIMERKEY20:CJNE R1,#16H,KEY21 ;EXEC键按下MOV 30H,#0FCH ;设置音阶低#2MOV 31H,#0DCHLJMP SET_TIMERKEY21:CJNE R1,#11H,KEY22 ;RG/FS键按下MOV 30H,#0FDH ;设置音阶低3MOV 31H,#0AHLJMP SET_TIMERKEY22:CJNE R1,#13H,KEY23 ;RW/IS键按下MOV 30H,#0FDH ;设置音阶低4MOV 31H,#33HLJMP SET_TIMERKEY23:CJNE R1,#15H,KEY24 ;COMP键按下MOV 30H,#0FDH ;设置音阶低#4MOV 31H,#5CHLJMP SET_TIMERKEY24:CJNE R1,#17H,KEY25 ;SCAL按下MOV 30H,#0FDH ;设置音阶低5MOV 31H,#82HLJMP SET_TIMERKEY25:CJNE R1,#18H,KEY26 ;FI/LS按下MOV 30H,#0FDH ;设置音阶低#5MOV 31H,#0A5HLJMP SET_TIMERKEY26:CJNE R1,#1AH,KEY27 ;EV/UN按下MOV 30H,#0FDH ;设置音阶低6MOV 31H,#0C7HLJMP SET_TIMERKEY27:CJNE R1,#1CH,KEY28 ;MOVE键按下MOV 30H,#0FDH ;设置音阶低#6MOV 31H,#0E7HLJMP SET_TIMERKEY28:CJNE R1,#1EH,KEY29 ;STEP键按下MOV 30H,#0FFH ;设置音阶高5MOV 31H,#60HLJMP SET_TIMERKEY29:CJNE R1,#19H,KEY30 ;F2/NX键按下MOV 30H,#0FFH ;设置音阶高#2MOV 31H,#37HLJMP SET_TIMERKEY30:CJNE R1,#1BH,KEY31 ;EC/EP键按下MOV 30H,#0FFH ;设置音阶高3MOV 31H,#042HLJMP SET_TIMERKEY31:CJNE R1,#1DH,NOKEY ;SRB键按下MOV 30H,#0FFH ;设置音阶高4MOV 31H,#4DHLJMP SET_TIMERSET_TIMER:SETB TR0 ;发声LJMP KENOKEY:CLR TR0 ;无键按下LJMP KESTART0:MOV 40H,#00HNEXT0: MOV A,40HMOV DPTR,#TABLEMOVC A,@A+DPTR ;查表取音调和节拍MOV R2,AJZ END0 ;为零,返回startANL A,#0FHMOV R5,A ;将节拍存入R5MOV A,R2SW AP AANL A,#0FHJNZ SING ;根据音调决定是否演奏.CLR TR0JMP D1SING: DEC AMOV 22H,A ;将音调存入22H.RL AMOV DPTR,#TABLE1MOVC A,@A+DPTR ;根据音调决定定时器初值.MOV TH0,A ;放入TH0MOV 21H,AMOV A,22HRL AINC AMOVC A,@A+DPTRMOV TL0,A ;放入TL0MOV 20H,ASETB TR0 ;启动定时D1 :LCALL KEYCJNE R1,#0FFH,D9LJMP STARTD9: CALL DELAYCJNE R1,#10H,D8LJMP STARTD8: INC 40HJMP NEXT0END0: CLR TR0JMP STARTINT_T0: ;T0中断服务程序CJNE R1,#1FH,D6PUSH ACCPUSH PSWMOV TL0,20H ;重赋初值.MOV TH0,21HCPL P1.0POP PSWPOP ACCSJMP D7D6:MOV TH0,30H ;定时器赋初值MOV TL0,31HCPL BUZZ ;输出方波D7:RETIKEY:MOV A,#81HMOV DPTR,#0FFFFHMOVX @DPTR,AKEY1:ACALL KSJNZ LK1ACALL DELAJMP ALSLK1:ACALL DELACALL KSJNZ LK2AJMP ALSLK2:MOV R3,#0FEHMOV R4,#00HLK:MOV DPTR,#0FFFDHMOV A,R3MOVX @DPTR,AINC DPTRMOVX A,@DPTRJB ACC.0,LONEMOV A,#00HAJMP LKPLONE:JB ACC.1,LTWOMOV A,#08HAJMP LKPLTWO:JB ACC.2,LTHEMOV A,#10HAJMP LKPLTHE:JB ACC.3,NEXTMOV A,#18HAJMP LKPLKP:ADD A,R4PUSH ACCLK4:ACALL DELACALL KSJNZ LK4POP ACCMOV R1,AKEND:RETNEXT:INC R4MOV A,R3JNB ACC.7,ALSRL AMOV R3,AAJMP LKALS: MOV A,#0FFHAJMP KENDDEL:MOV R7,#01HDEL1:MOV R6,#0FFHDJNZ R6,$DJNZ R7,DEL1RETKS:MOV DPTR ,#0FFFDHMOV A,#00HMOVX @DPTR,AINC DPTRMOVX A,@DPTRCPL AANL A,#0FHRETDELAY:MOV R7,#02H ;延时子程序D2: MOV R4,#50D3: MOV R3,#248DJNZ R3,$DJNZ R4,D3DJNZ R7,D2DJNZ R5,DELAYRET。
电创“十年杯”电子设计竞赛论文触摸你心爱的旋律----电子琴设计目录摘要-------------------------------------------------------------3 引言-------------------------------------------------------------4一概述-------------------------------------------------------------------5系统开发意义------------------------------------------------------------5 设计目标-------------------------------------------------------------------------------------------------5系统组成及总框图--------------------------------------------------------6二、硬件设计-----------------------------------------------------------7系统的硬件电路设计 (7)2.1AT89C51 (7)2.2单片机的时钟振荡电路 (7)2.3.复位状态 (8)2.3.复位电路 (8)2.4 单片机最小系统 (9)2.5 键盘输入部分 (9)2.6音频功放电路 (10)TDA2030A放大电路----------------------------------------------------------------------------------112.8扬声器 (11)三、软件设计 (12)3.1如何用单片机实现音乐的节---------------------------------------------13音乐相关知识---------------------------------------------------------------------------------------133.1.1定时/计数器的设计和状态字定义: (14)3.2音调数据表 (16)3.3 软件流程 .................................................................... 错误!未定义书签。
电子琴课程设计8255一、教学目标本节课的学习目标包括以下三个方面:1.知识目标:学生需要掌握电子琴的基本结构和功能,了解电子琴的工作原理,以及基本的音乐理论知识。
2.技能目标:学生能够熟练操作电子琴,进行基本的弹奏和演奏;能够通过电子琴创作简单的音乐作品。
3.情感态度价值观目标:培养学生对音乐的热爱和兴趣,提高学生的音乐素养,培养学生的创新精神和团队合作意识。
二、教学内容本节课的教学内容主要包括以下几个部分:1.电子琴的基本结构和功能:介绍电子琴的各个部分,如键盘、音量控制、音色选择等,以及它们的作用和功能。
2.电子琴的工作原理:讲解电子琴内部的工作原理,如声音产生、音量控制等。
3.基本音乐理论知识:介绍音阶、和弦、节奏等基本音乐理论知识。
4.电子琴操作练习:指导学生进行电子琴的基本操作练习,如开关机、选择音色、调节音量等。
5.简单弹奏和演奏练习:教授学生简单的电子琴弹奏和演奏技巧,并进行练习。
6.创作简单音乐作品:引导学生进行电子琴创作,创作简单的音乐作品。
三、教学方法本节课采用以下几种教学方法:1.讲授法:讲解电子琴的基本结构和功能、工作原理以及基本音乐理论知识。
2.示范法:教师进行电子琴操作示范,学生跟随模仿。
3.练习法:学生进行电子琴操作练习,教师进行指导。
4.创作法:学生进行电子琴创作,教师进行评价和指导。
四、教学资源本节课的教学资源包括以下几个方面:1.教材:电子琴教材,用于指导学生学习。
2.多媒体资料:电子琴教学视频、音频等资料,用于辅助教学。
3.实验设备:电子琴及相关设备,用于学生实践操作和创作。
4.参考书:音乐理论相关书籍,用于学生深入学习音乐理论知识。
五、教学评估本节课的评估方式包括以下几个方面:1.平时表现:评估学生在课堂上的参与度、积极性和表现,包括发言、提问、合作等。
2.作业:评估学生提交的作业,包括练习题、创作作品等,以检查学生的学习成果和理解程度。
3.考试:进行一次电子琴操作和演奏考试,评估学生的技能水平和音乐理论知识掌握情况。
摘要本设计是基于AT89S52单片机的简易电子琴设计。
主要组成是以51单片机最小系统为核心,通过键盘获取按键信息,通过运用单片机定时器等部件实现蜂鸣器发声同时用数码管同步显示。
本系统具有播放歌曲及选取按键输入高、中、低音的功能。
本设计的特点是:大部分功能通过软件实现,使电路简单明了,系统稳定性好。
电子琴是电子科技与音乐结合的产物是一种新型的键盘乐器。
一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。
关键字:AT89S52,按键,数码管,蜂鸣器,音阶。
(要求宋体、小四号,行间距为固定值22磅。
字数500字以上。
介绍你所作设计的主要内容及主要方法和取得的结果,是整个报告的概括性内容,不要超过一页面)目录(小三号居中,加粗)1 概述………………………………………………………………………………1.1 51系列单片机简介89系列单片机是ATMEL公司的8位FLASH单片机系列。
89系列单片机是以8031为核心构成的,它和8051系列单片机外部端子是一样的、兼容的,其最大特点是片内含有FLASH存储器。
AT89S52单片机是一种低功耗、高性能、内含4KB的闪速存储器(Flash Memory)的8位微控制器。
片内闪速存储器的程序代码或数据可在线写入,也可通过常规的编程器编程。
(宋体、小四,行间距固定值18磅。
以下相同要求)……………………1.2 电子琴简介电子琴为键盘乐器,采用半导体集成电路,对乐音信号进行放大,通过扬声器产生音响。
电子琴有多种类型,为业余型和专业型。
使用五线谱,多为高低音双行记谱。
有时也用中音谱。
电子琴又称作电子键盘,属于电子乐器,发音音量可以自由调节。
音域较宽,和声丰富,甚至可以演奏出一个管弦乐队的效果,表现力极其丰富。
BUZZ EQU P1.0ORG 0000HLJMP STARTORG 000BHLJMP INT_T0ORG 0100HSTART:CLR EAMOV TMOD,#01H ;设置定时器0为工作模式1SETB ET0 ;开定时器0中断SETB EA ;开总中断CLR TR0 ;关闭定时器0MOV R1,#0FFHKE: LCALL KEYCJNE R1,#0FFH,KE2 ; 无键按下,返回startCLR TR0SJMP STARTKE2: CJNE R1,#1FH,KE1 ;MON键按下,音乐LJMP START0KE1: LCALL KEYCJNE R1,#09H,KEY2 ;K0键按下MOV 30H,#0FEH ;设置音阶7MOV 31H,#06HLJMP SET_TIMERKEY2: CJNE R1,#08H,KEY3 ;K1键按下MOV 30H,#0FEH ;设置音阶1MOV 31H,#022HLJMP SET_TIMERKEY3: CJNE R1,#0AH,KEY4 ;K2键按下MOV 30H,#0FEH ;设置音阶#1MOV 31H,#03DHLJMP SET_TIMERKEY4: CJNE R1,#0CH,KEY5 ;K3键按下MOV 30H,#0FEH ;设置音阶2MOV 31H,#056HLJMP SET_TIMERKEY5: CJNE R1,#01H,KEY6 ;K4键按下MOV 30H,#0FEH ;设置音阶#2MOV 31H,#06EHLJMP SET_TIMERKEY6: CJNE R1,#03H,KEY7 ;K5键按下MOV 30H,#0FEH ;设置音阶3MOV 31H,#085HLJMP SET_TIMERKEY7: CJNE R1,#05H,KEY8 ;K6键按下MOV 30H,#0FEH ;设置音阶4MOV 31H,#09AHLJMP SET_TIMERKEY8: CJNE R1,#00H,KEY9 ;K7键按下MOV 30H,#0FEH ;设置音阶#4MOV 31H,#0AEHLJMP SET_TIMERKEY9: CJNE R1,#02H,KEY10 ;K8键按下MOV 30H,#0FEH ;设置音阶5MOV 31H,#0C1HLJMP SET_TIMERKEY10:CJNE R1,#04H,KEY11 ;K9键按下MOV 30H,#0FEH ;设置音阶#5MOV 31H,#0D3HLJMP SET_TIMERKEY11:CJNE R1,#06H,KEY12 ;KA键按下MOV 30H,#0FEH ;设置音阶6MOV 31H,#0E4HLJMP SET_TIMERKEY12:CJNE R1,#07H,KEY13 ;KB键按下MOV 30H,#0FEH ;设置音阶#6MOV 31H,#0F4HLJMP SET_TIMERKEY13:CJNE R1,#0EH,KEY14 ;KC键按下MOV 30H,#0FFH ;设置音阶7MOV 31H,#03HLJMP SET_TIMERKEY14:CJNE R1,#0FH,KEY15 ;KD键按下MOV 30H,#0FFH ;设置音阶1MOV 31H,#011HLJMP SET_TIMERKEY15:CJNE R1,#0DH,KEY16 ;KE键按下MOV 30H,#0FFH ;设置音阶#1MOV 31H,#1FHLJMP SET_TIMERKEY16:CJNE R1,#0BH,KEY17 ;KF按下MOV 30H,#0FFH ;设置音阶2MOV 31H,#2BHLJMP SET_TIMERKEY17:CJNE R1,#10H,KEY18 ;TV/ME按下,停止LJMP STARTKEY18:CJNE R1,#12H,KEY19 ;EG/DL按下MOV 30H,#0FCH ;设置音阶低#1MOV 31H,#79HLJMP SET_TIMERKEY19:CJNE R1,#14H,KEY20 ;CLB键按下MOV 30H,#0FCH ;设置音阶低2MOV 31H,#0ADHLJMP SET_TIMERKEY20:CJNE R1,#16H,KEY21 ;EXEC键按下MOV 30H,#0FCH ;设置音阶低#2MOV 31H,#0DCHLJMP SET_TIMERKEY21:CJNE R1,#11H,KEY22 ;RG/FS键按下MOV 30H,#0FDH ;设置音阶低3MOV 31H,#0AHLJMP SET_TIMERKEY22:CJNE R1,#13H,KEY23 ;RW/IS键按下MOV 30H,#0FDH ;设置音阶低4MOV 31H,#33HLJMP SET_TIMERKEY23:CJNE R1,#15H,KEY24 ;COMP键按下MOV 30H,#0FDH ;设置音阶低#4MOV 31H,#5CHLJMP SET_TIMERKEY24:CJNE R1,#17H,KEY25 ;SCAL按下MOV 30H,#0FDH ;设置音阶低5MOV 31H,#82HLJMP SET_TIMERKEY25:CJNE R1,#18H,KEY26 ;FI/LS按下MOV 30H,#0FDH ;设置音阶低#5MOV 31H,#0A5HLJMP SET_TIMERKEY26:CJNE R1,#1AH,KEY27 ;EV/UN按下MOV 30H,#0FDH ;设置音阶低6MOV 31H,#0C7HLJMP SET_TIMERKEY27:CJNE R1,#1CH,KEY28 ;MOVE键按下MOV 30H,#0FDH ;设置音阶低#6MOV 31H,#0E7HLJMP SET_TIMERKEY28:CJNE R1,#1EH,KEY29 ;STEP键按下MOV 30H,#0FFH ;设置音阶高5MOV 31H,#60HLJMP SET_TIMERKEY29:CJNE R1,#19H,KEY30 ;F2/NX键按下MOV 30H,#0FFH ;设置音阶高#2MOV 31H,#37HLJMP SET_TIMERKEY30:CJNE R1,#1BH,KEY31 ;EC/EP键按下MOV 30H,#0FFH ;设置音阶高3MOV 31H,#042HLJMP SET_TIMERKEY31:CJNE R1,#1DH,NOKEY ;SRB键按下MOV 30H,#0FFH ;设置音阶高4MOV 31H,#4DHLJMP SET_TIMERSET_TIMER:SETB TR0 ;发声LJMP KENOKEY:CLR TR0 ;无键按下LJMP KESTART0:MOV 40H,#00HNEXT0: MOV A,40HMOV DPTR,#TABLEMOVC A,@A+DPTR ;查表取音调和节拍MOV R2,AJZ END0 ;为零,返回startANL A,#0FHMOV R5,A ;将节拍存入R5MOV A,R2SW AP AANL A,#0FHJNZ SING ;根据音调决定是否演奏.CLR TR0JMP D1SING: DEC AMOV 22H,A ;将音调存入22H.RL AMOV DPTR,#TABLE1MOVC A,@A+DPTR ;根据音调决定定时器初值.MOV TH0,A ;放入TH0MOV 21H,AMOV A,22HRL AINC AMOVC A,@A+DPTRMOV TL0,A ;放入TL0MOV 20H,ASETB TR0 ;启动定时D1 :LCALL KEYCJNE R1,#0FFH,D9LJMP STARTD9: CALL DELAYCJNE R1,#10H,D8LJMP STARTD8: INC 40HJMP NEXT0END0: CLR TR0JMP STARTINT_T0: ;T0中断服务程序CJNE R1,#1FH,D6PUSH ACCPUSH PSWMOV TL0,20H ;重赋初值.MOV TH0,21HCPL P1.0POP PSWPOP ACCSJMP D7D6:MOV TH0,30H ;定时器赋初值MOV TL0,31HCPL BUZZ ;输出方波D7:RETIKEY:MOV A,#81HMOV DPTR,#0FFFFHMOVX @DPTR,AKEY1:ACALL KSJNZ LK1ACALL DELAJMP ALSLK1:ACALL DELACALL KSJNZ LK2AJMP ALSLK2:MOV R3,#0FEHMOV R4,#00HLK:MOV DPTR,#0FFFDHMOV A,R3MOVX @DPTR,AINC DPTRMOVX A,@DPTRJB ACC.0,LONEMOV A,#00HAJMP LKPLONE:JB ACC.1,LTWOMOV A,#08HAJMP LKPLTWO:JB ACC.2,LTHEMOV A,#10HAJMP LKPLTHE:JB ACC.3,NEXTMOV A,#18HAJMP LKPLKP:ADD A,R4PUSH ACCLK4:ACALL DELACALL KSJNZ LK4POP ACCMOV R1,AKEND:RETNEXT:INC R4MOV A,R3JNB ACC.7,ALSRL AMOV R3,AAJMP LKALS: MOV A,#0FFHAJMP KENDDEL:MOV R7,#01HDEL1:MOV R6,#0FFHDJNZ R6,$DJNZ R7,DEL1RETKS:MOV DPTR ,#0FFFDHMOV A,#00HMOVX @DPTR,AINC DPTRMOVX A,@DPTRCPL AANL A,#0FHRETDELAY:MOV R7,#02H ;延时子程序D2: MOV R4,#50D3: MOV R3,#248DJNZ R3,$DJNZ R4,D3DJNZ R7,D2DJNZ R5,DELAYRET。