基于单片机的简易电子琴设计(汇编语言)(共36页).doc

上传人:飞****2 文档编号:6488262 上传时间:2022-02-04 格式:DOC 页数:36 大小:388.50KB
返回 下载 相关 举报
基于单片机的简易电子琴设计(汇编语言)(共36页).doc_第1页
第1页 / 共36页
基于单片机的简易电子琴设计(汇编语言)(共36页).doc_第2页
第2页 / 共36页
点击查看更多>>
资源描述

《基于单片机的简易电子琴设计(汇编语言)(共36页).doc》由会员分享,可在线阅读,更多相关《基于单片机的简易电子琴设计(汇编语言)(共36页).doc(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上 任务书1.1 课程设计目的本课程设计目的在于培养学生运用已学的单片机原理及应用的基础知识和基本理论,加以综合运用,进行单片机系统设计的初等训练,掌握运用单片机进行系统控制设计的原则、设计内容和设计步骤,为从事单片机相关的毕业设计或今后的工作需要打下良好的基础。1.2 课程设计内容本次课程设计的主要内容是以单片机为核心控制元件,设计一个电子琴。以单片机作为主控制核心,与键盘、发光二极管、扬声器等模块组成,其功能是实现单独演奏和自动播放歌曲,主要分为:1.2.1 单独演奏模块通过按键,利用所给键盘的1,2,3,4,5,6,7七个键,能够发出7个不同的音调,即按下按键1、

2、2、3、4、5、6、7,扬声器发出相应音调DO、RE、MI、FA、SO、LA、SI,每当有按键按下时,按键对应的LED灯对应点亮,可以用来演奏不同的歌曲。1.2.2 自动放歌模块通过按键可以进行单独演奏/自动放歌的选择,利用所给的键盘的第8个按键,能够使电子琴自动播放一首歌曲(歌曲自选,歌曲乐谱通过软件编程实现),自动放歌时,同时配有发光二极管作流水灯显示,达到歌曲与灯同步动作。1.3 课程设计原则1、尽可能地满足控制系统的的控制要求;2、在满足控制的前提下,力求使控制系统简单、经济;3、保证控制系统运行稳定、可靠;4、考虑到对系统的改进,在选择单片机芯片功能时,应适当留有余量,以便用作扩展功

3、能。1.4 课程设计步骤1、对设计系统的任务和要求作深入的调查研究,明确控制任务和实现功能;2、选择和确定单片机芯片、音频发声器件和串口下载芯片;3、确定系统整体设计方案;4、电子琴系统仿真设计;5、整体系统的软件设计;6、联机调试;7、撰写设计报告。1.5 时间安排时间内容备注第18周 周一集中讲解课程设计要求,分配设计题目,明确任务和具体安排并查找相关资料周二查找歌曲,音阶频率表周三学习DXP软件周四学习Proteus软件周五仿真歌曲第19周 周一仿真歌曲周二仿真铃声周三撰写课程设计报告周四撰写课程设计报告周五答辩1.6 基本要求(一)课程设计报告1系统流程图一张;2系统仿真图一张;3系统

4、软件程序清单一张;4撰写报告一份,包括以下内容:1) 写出设计计划和基本步骤。2) 写出系统要求并设计流程图。3) 画出系统仿真图。4) 编写软件程序,并加以注释。5) 写出调试过程和结果。6) 写课程设计小结。(二)成绩评定标准对学生进行全面考核,重点考核设计图纸、说明书质量;独立思考、独立工作能力,综合运用知识的能力;平时的工作态度及表现;答辩情况。最后按平时表现、报告质量、答辩成绩,其权重分别为0.2、0.4、0.4综合评定成绩,分优、良、中、及、不及格五个等级。 摘 要电子琴是现代电子科技与音乐结合的产物。电子琴是一种新型的键盘乐器,采用半导体集成电路,对乐音信号进行放大,通过扬声器产

5、生音响.由音色,自动伴奏,自动和弦三大部分组成.它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89C51单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有8个按键和扬声器。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。关键词: 单片机,键盘,扬声器,电子琴Abstract Electronic organ is a modern electronic music tec

6、hnology and the product is a new type of keyboard instruments. It played an important role in modern music. SCM has powerful control functions and flexible programming characteristics. It has converged with modern peoples lives, become an irreplaceable part. The main content is AT89C51 control of th

7、e core components, design of a electronic organ. SCM as a host to the core, with the keyboard, speaker and other core modules. In the main control module has 8 keys and a speaker. The system is steady, its simple hardware circuits, software functions, reliability of control system and high cost perf

8、ormance is its advantages. It also has certain practical and reference value.Key words : SCM keyboard speaker electronic organ 目 录 专心-专注-专业 引 言电子琴是现代电子科技与音乐结合的产物。电子琴是一种新型的键盘乐器,采用半导体集成电路,对乐音信号进行放大,通过扬声器产生音响.由音色,自动伴奏,自动和弦三大部分组成.它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT

9、89C51单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有8个按键和扬声器。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。键盘乐器,采用半导体集成电路,对乐音信号进行放大,通过扬声器产生音响。发音音量可以自由调节。音域较宽,和声丰富,表现力极其丰富。电子琴是电声乐队的中坚力量,常用于独奏主旋律并伴以丰富的和声。还常作为独奏乐器出现,具有鲜明时代特色。但电子琴的局限性也十分明显:旋律与和声缺乏音量变化,过于协和、单一;在模仿各类管、弦乐器时,音色还不够逼真,模仿提琴类乐

10、器的音色时,失真度更大,还需要不断改进。电子琴的演奏有较大一部分是通过自动和弦伴奏来配合完成的,在音乐中和弦的连接推动了旋律地进行,不同的和声连接,形成了不同的音乐色彩。本次设计提出了用AT89C51单片机为核心控制元件,设计一个简易的电子琴. 本方案以AT89C51单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块在主控模块上设有8个按键和8个扬声器.根据使用者的操作随意弹奏想要表达的音乐。一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器

11、T0来产生这样方波频率信号。 通过本课程的实训,旨在使学生在掌握先修课程的基础上,一方面能综合应用这些课程的理论知识,更重要的一方面,是让学生亲自动手,参与到工程实践训练中。使学生在之前掌握的知识,以及单片机知识的基础上,进一步掌握电子产品设计以及开发调试的全过程。电路设计、电路调试、程序调试、程序下载等实践实训部分,真正培养学生理论联系实际.分析解决一般性技术问题以及实际动手的能力。利用所给键盘的1,2,3,4,5,6,7,8八个键,能够发出7个不同的音调,并且要求按下按键发声,松开延时一段时间停止,当按下第八个键时,开始播放实现存储在程序中的音乐;按第二次播放第二个音乐,第三次播放第三个音

12、乐,依次类推。当系统扫描到键盘上有键被按下,则快速检测出是哪一个键被按下,然后单片机的定时器被启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。同时,相应的指示灯被点亮。 第一章 总体方案论证与设计声音的产生是一种音频效果,振动的频率高,则为高音,频率低,则为低音,人能辨别的声音频率大概为20Hz-20KHz,在数字电路中,以脉冲信号驱动扬声器,产生声音。在同样的频率下,人耳很难分辨正弦信号或是脉冲信号产生的音效。一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同

13、的频率非常方便,我们可以利用单片机的定时/计数器来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。AT89C51的内部定时器使其工作计数器模式下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶。在本次电子琴设计中,我们组成员单片机芯片在仿真的时候我们用的AT89C51,在最后的时候用的是STC89C52芯片,而89C52系列的兼容性也比较好。52的内存是51的两倍,其引脚功能都是一样的。本系统采用单片机AT89C52为电子琴的控制核心,系统主要包括音频放大模块、按键控制模块。下面对各模块的设计逐一进行论证比较。1.1 控制模块AT89C51是一种带4KFL

14、ASH(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位,俗称。AT89C2051是一种带2K闪存可编程可擦除的。的可擦除可以反复擦除1000次。该器件采用ATMEL高密度非易失制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51为很多提供了一种灵活性高且价廉的方案。本次设计中中心控制模块是采用AT89C51单片机来控制整个系统。P1口连接按键控制电路

15、,P2口接LED指示灯,P3.4连接放大电路、喇叭, 从而实现播放音乐的功能。RST连接复位电路,XTAL1和XTAL2引脚连接晶振电路与芯片组成的最小系统。1.2 播放模块播放模块是喇叭构成。它几乎不存在噪声,音响效果较好。而且由于所需驱动功率较小,且价格低廉,所以,被广泛应用。如下图所示,播放模块其实就是放大电路加上喇叭,它接到P3.4口上,当有音符输出时,它就会发出声音。1.2 按键控制模块电子琴设有8个按键,其中7个作为音符输入,另外1个作为模式转换按键,实现用户自弹作曲。接与P1口。7个按键分别代表7个音符,包括中音段的全部音符。通过软硬件设计,按键外部触发系统,启动电子琴。然后通过

16、查询电子琴所按下的按键,读取电子琴输入状态,跳转到对应的程序人口,实现按键发音。当读取需要电子琴已储存的歌曲时,按下按键8即可轮流播放以存储的歌曲。1.4 总体硬件组成原理图为使该模块化电子琴控制系统具有更加方便和灵活性,我们对系统的硬件做了精心设计。硬件电路包括中心控制模块、播放模块、按键控制模块三大模块。 第二章 系统的软件设计软件是该电子琴控制系统的重要组成部分,在系统的软件设计中我们也才用了模块化设计,将系统的各部分功能编写成子模块的形式,这样增强了系统软件的可读性和可移植性。2.1 音乐弹奏原理由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样就可以利用不同的频率的

17、组合,即可弹奏出我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器来产生这样的方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。演奏中,每一音符对应着确定的频率,我们将每一音符的时间常数和其相应的节拍常数作为一组,按顺序将乐曲中的所有常数排列成一个表,然后由查表程序依次取出,产生音符并控制节奏,就可以实现演奏效果。电子琴弹奏部分:实际上就是把每个按键所对应的值经过处理后发给单片机,再在单片机内把数字当作指针指向所对应的音符。如下表所示:按键音阶S1doS2reS3miS4faS5soS6laS7xiS8音乐2.2 音乐弹奏设计发音电路

18、有三极管、电阻和扬声器组成,接在P3.4口,通过定时器溢出的时间不同,P3.4口输出不同频率的高低电平,P3.4输出的脉冲频率不同,三极管导通的频率也不同,从而扬声器根据不同频率的脉冲发出的声音也不相同。如下表所示:各音符频率与计数值T的关系音符频率Hz半周期(ms)简谱码T定时值(H)简谱码T定时值(D)低Do1313.82F11761719低Re1473.4F2B762135低Mi1653.03F42A62506低Fa1752.86F4D762679低So1962.55F60962985低La2202.27F71F63263低Si2472.02F81863512中Do2621.91F88C

19、63628中Re2941.7F95B63835中Mi3301.52FA1564021中Fa3491.43FA6764103中So3921.28FB0464260中La4401.14FB9064400中Si4941.01FC0C64524高Do2620.96FC4464580高Re2940.85FCAC64684高Mi3300.76FD0964777高Fa3490.71FD2A64810高So3920.64FD8264898高La4400.57FDC864968高Si4940.51FE2E650702.3 软件流程图本系统中单片机89C51的主要功能就是实现音乐播放功能。其主程序流程如图4-1所

20、示。2.4 上位机软件及程序 本系统的上位机软件主要是编辑电子琴播放状态的内容,在设计中采用汇编语言编写了电子琴控制系统控制和播放内容的程序。 ORG 0000HSJMP M1ORG 000BHMOV TH0,R1 ;设置定时器初值MOV TL0,R0CPL P3.4 ;输出方波RETIM0:MOV R5,#00HM1:CLR A MOV C,P1.0 ;判断是否为按键1MOV ACC.0,CJZ DO MOV C,P1.1 ;判断是否为按键2MOV ACC.0,CJZ RAIMOV C,P1.2 ;判断是否为按键3MOV ACC.0,CJZ MIMOV C,P1.3 ;判断是否为按键4MOV

21、 ACC.0,CJZ FAMOV C,P1.4 ;判断是否为按键5MOV ACC.0,CJZ SOMOV C,P1.5 ;判断是否为按键6MOV ACC.0,CJZ LAMOV C,P1.6 ;判断是否为按键7MOV ACC.0,CJZ XIMOV C,P1.7 ;判断是否为按键8MOV ACC.0,CJZ M7 LJMP M1M7:LJMP M2DO:MOV R1,#0FCH ;设定各音节初值 MOV R0,#43H MOV R2,#08H CLR P2.0 ;打开灯D1 LJMP NEXTRAI:MOV R1,#0FCH MOV R0,#0ABH MOV R2,#08H CLR P2.1

22、;打开灯D2 LJMP NEXTMI:MOV R1,#0FDH MOV R0,#08H MOV R2,#08H CLR P2.2 ;打开灯D3 LJMP NEXTFA:MOV R1,#0FDH MOV R0,#33H MOV R2,#08H CLR P2.3 ;打开灯D4 LJMP NEXTSO:MOV R1,#0FDH MOV R0,#81H MOV R2,#08H CLR P2.4 ;打开灯D5 LJMP NEXTLA:MOV R1,#0FDH MOV R0,#0C7H MOV R2,#08H CLR P2.5 ;打开灯D6 LJMP NEXTXI:MOV R1,#0FEH MOV R0,

23、#05H MOV R2,#08H CLR P2.6 ;打开灯D7 LJMP NEXTNEXT:CLR AMOV TMOD,#01H ;设定定时器工作方式MOV IE,#82H ;开启总中断MOV TH0,R1 ;设置初值MOV TL0,R0SETB TR0 ;开启中断0LOOP1: LCALL D200C ;调用延时DJNZ R2,LOOP1 ;判定是否延时完CLR TR0 ;关闭中断MOV A,#0FFH ;关灯MOV P2,A LJMP M1 ;跳转主程序M5:CJNE R5,#04H,M9 ;判断是否为歌曲4MOV DPTR,#QULJMP LOOPM9:CJNE R5,#05H,M8

24、;判断是否为铃声MOV DPTR,#LSLJMP LOOPM8:CJNE R5,#06H,M10 ;判断按键是否到第6次M10:LJMP M0 M4:CJNE R5,#03H,M5 ;判定是否为歌曲3MOV DPTR,#PLLJMP LOOPM3:CJNE R5,#02H,M4 ;判定是否为歌曲2MOV DPTR,#LINGLJMP LOOPM2:INC R5 ;记录按键8次数CJNE R5,#01H,M3 ;判定是否为歌曲1MOV DPTR,#TABLOOP: CPL P2.7 ;打开灯D8CLR AMOVC A,A+DPTR ;取音符MOV R1,A INC DPTRCLR AMOVC A

25、,A+DPTRMOV R0,AORL A,R1JZ NEXT0 ;判定是否为结束符号MOV A,R0ANL A,R1CJNE A,#0FFH,NEXT3 ;判定是否为休止符CLR TR0MOV R2,04HLCALL D200CINC DPTRLJMP LOOPNEXT3: MOV TMOD,#01H ;设定定时器工作方式MOV IE,#82H ;开启总中断MOV TH0,R1 ;设置初值MOV TL0,R0SETB TR0 ;开启中断0SJMP NEXT2 NEXT0:CLR TR0 ;关中断MOV A,#0FFH ;关灯MOV P2,A LJMP M1 ;跳转至主程序NEXT2: CLR

26、A INC DPTR MOVC A,A+DPTR ;取节拍MOV R2,ALOOP3: LCALL D200C ;调用延时DJNZ R2,LOOP3 ;判断是否延时完 INC DPTR ;跳到下一音符LJMP LOOPD200C:MOV R3,#65H ;延时子程序D200B:MOV A,#0FFHD200A:DEC AJNZ D200ADEC R3CJNE R3,#00H,D200BRETTAB:DB ;歌 曲 10FDH,81H,02H,0FDH,81H,04H,0FDH,81H,02H,0FDH,81H,04H,0FDH,08H,02H,0FDH,81H,02HDB 0FCH,43H,0

27、4H,0FDH,0C7H,04H,0FDH,81H,08HDB FDH,81H,02H,0FDH,81H,04H,0FDH,81H,02H,0FDH,81H,04H,0FDH,08H,02H,0FCH,0ABH,02HDB 0FCH,43H,04H,0FDH,08H,04H,0FCH,0ABH,08HDB 0FCH,0ABH,06H,0FDH,08H,02H,0FDH,81H,04H,0FDH,81H,02H,0FDH,81H,02HDB 0FDH,08H,04H,0FDH,08H,02H,0FCH,0ABH,02H,0FCH,43H,04H,0FCH,43H,04HDB 0FCH,0ABH,

28、06H,0FDH,08H,02H,0FCH,43H,04H,0FCH,43H,02H,0FBH,8FH,02HDB 0FBH,03H,04H,0FBH,8FH,04H,0FBH,03H,08HDB 00H,00HLING: ;歌 曲2DB 0FDH,08H,04H,0FDH,08H,04H,0FDH,08H,04H,0FCH,43H,04HDB 0FBH,03H,08H,0FBH,03H,08HDB 0FDH,08H,04H,0FDH,08H,04H,0FDH,08H,04H,0FCH,43H,04HDB 0FDH,08H,08H,0FCH,43H,02H,0FCH,0ABH,02H,0FDH

29、,08H,02H,0FDH,33H,02HDB 0FDH,81H,04H,0FDH,81H,04H,0FDH,08H,04H,0FCH,43H,04HDB 0FBH,03H,04H,0FBH,03H,04H,0FBH,03H,08HDB 0FBH,8FH,04H,0FCH,0BH,04H,0FCH,43H,04H,0FDH,08H,04HDB 0FCH,0ABH,10HDB 00H,00HPL: ;歌 曲 3DB 0FCH,43H,04H,0FCH,0ABH,04H,0FDH,08H,04H,0FCH,43H,04HDB 0FDH,81H,10HDB 0FDH,0C7H,04H, 0FDH,0

30、C7H,04H,0FEH,05H,04H,0FDH,0C7H,04HDB 0FDH,81H,10HDB 0FDH,0C7H,04H, 0FDH,0C7H,04H,0FEH,05H,08HDB 0FDH,0C7H,04H, 0FDH,0C7H,04H,0FDH,81H,08HDB 0FDH,0C7H,04H,0FDH,81H,04H ,0FDH,08H,04H,0FDH,81H,04HDB 0FDH,08H,04H,0FCH,43H,04H,0FCH,0ABH,04H, 0FDH,08H,04HDB 0FCH,43H,10HDB 00H,00HQU: ;歌 曲4DB 0FDH,81H,06H,0

31、FEH,05H,02H,0FDH,81H,04H,0FDH,33H,04HDB 0FDH,08H,04H,0FCH,0ABH,04H,0FCH,43H,08HDB 0FCH,43H,04H,0FCH,43H,04H,0FCH,0ABH,04H,0FDH,08H,04HDB 0FDH,08H,04H,0FCH,43H,04H,0FDH,08H,04H,0FDH,33H,04HDB 0FDH,81H,10HDB 0FDH,81H,10HDB 00H,00HLS: ;铃声DB 0FDH,0C7H,04H,0FDH,0C7H,04H,0FDH,81H,04H DB 0FDH,0C7H,04H,0FDH

32、,0C7H,04H,0FDH,81H,04HDB 00H,00HEND 第三章 系统调试与测试结果分析3.1 使用的仪器及软件 单片机仿真软件 Proteus 单片机设计软件 DXP蜂鸣器 LS13.2 系统调试根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。由于在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试:中心控制模块的调试,音乐播放模块的调试,按键控制模块的调试等,最后将各模块组合后进行整体测试。3.2.1 硬件调试对各个模块的功能进行调试,主要调试各模块能否实现指定的功能。硬件的图片如下所示3.2.2 软件调试软件调试采用Proteus软

33、件,将编好的程序进行调试,主要是检查语法错误。Proteus的仿真图如下所示3.2.3 硬件软件联调 将调试好的硬件和软件进行联调,主要调试系统的实现功能。3.3 测试结果此次系统设计结果较好,分别播动7个按键会发出7种高低不同的声音,按第8个按键,将轮流放出以存储的4首歌曲 总 结 经过两周的忙碌,我的电子琴终于仿真成功.虽然失败了几次,但经过老师对硬件连接图的纠正,自己又调整.了程序最后终于方仿真成功.心情很激动,一方面:觉得很有成就感;另一方面:收获很大,:不但锻炼了编程的能力,而且通过编程对硬件的整个流程了解了。在仿真过程中,我犯了两个低级错误:一个是用了没有模型的元件,另一个是喇叭可

34、以不用驱动就能发出声音。经老师提醒,我改正了连接图。结果成功了。用单片机控制播放模块和按键控制模块制作出的电子琴,结构简单,可靠性高,并且价格低廉,具有实用的价值。这种电子琴能够支持单音弹琴和曲目播放,如果与高品质的音源芯片连接,音质更可与高档电子琴相媲美。在这里我首先衷心的感谢我的导师蔡长青老师,本文不论是从选题到完成,还是从理论上的探讨到实际问题的解决,无不包含着蔡老师的心血,并且其他同学的相互鼓励和帮助为毕业设计的正常进行起到了非常大的效果。在整个毕业设计的过程中我懂得了许多东西,也培养了我独立工作的能力,坚定了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响,而且大大的

35、提高了我动手的能力,是我充分体会到了在创造过程中的艰难探索和成功的喜悦。虽然这个项目还不是很完善,但是在这次设计过程中所学的东西是本次毕业设计的最大收获和财富,将使我终身受益。蔡长青老师的悉心指导和建议给了我极大的帮助和支持,使我受益匪浅,在该论文完成之际,谨向蔡长青老师致以深深的谢意和崇高的敬意,更希望老师在以后的学医生涯中多加的指点,并提出宝贵的意见,使我们对学到的知识掌握的更为牢固些,从而在以后的实际应用中充分发挥。参考文献1 MCS-51系列单片机原理及应用,刘淑荣,王瑾,中国电力出版社2 视频: Protues教程,优酷网附录1 源程序ORG 0000HSJMP M1ORG 000B

36、HMOV TH0,R1 ;设置定时器初值MOV TL0,R0CPL P3.4 ;输出方波RETIM0:MOV R5,#00HM1:CLR A MOV C,P1.0 ;判断是否为按键1MOV ACC.0,CJZ DO MOV C,P1.1 ;判断是否为按键2MOV ACC.0,CJZ RAIMOV C,P1.2 ;判断是否为按键3MOV ACC.0,CJZ MIMOV C,P1.3 ;判断是否为按键4MOV ACC.0,CJZ FAMOV C,P1.4 ;判断是否为按键5MOV ACC.0,CJZ SOMOV C,P1.5 ;判断是否为按键6MOV ACC.0,CJZ LAMOV C,P1.6

37、;判断是否为按键7MOV ACC.0,CJZ XIMOV C,P1.7 ;判断是否为按键8MOV ACC.0,CJZ M7 LJMP M1M7:LJMP M2DO:MOV R1,#0FCH ;设定各音节初值 MOV R0,#43H MOV R2,#08H CLR P2.0 ;打开灯D1 LJMP NEXTRAI:MOV R1,#0FCH MOV R0,#0ABH MOV R2,#08H CLR P2.1 ;打开灯D2 LJMP NEXTMI:MOV R1,#0FDH MOV R0,#08H MOV R2,#08H CLR P2.2 ;打开灯D3 LJMP NEXTFA:MOV R1,#0FDH

38、 MOV R0,#33H MOV R2,#08H CLR P2.3 ;打开灯D4 LJMP NEXTSO:MOV R1,#0FDH MOV R0,#81H MOV R2,#08H CLR P2.4 ;打开灯D5 LJMP NEXTLA:MOV R1,#0FDH MOV R0,#0C7H MOV R2,#08H CLR P2.5 ;打开灯D6 LJMP NEXTXI:MOV R1,#0FEH MOV R0,#05H MOV R2,#08H CLR P2.6 ;打开灯D7 LJMP NEXTNEXT:CLR AMOV TMOD,#01H ;设定定时器工作方式MOV IE,#82H ;开启总中断MO

39、V TH0,R1 ;设置初值MOV TL0,R0SETB TR0 ;开启中断0LOOP1: LCALL D200C ;调用延时DJNZ R2,LOOP1 ;判定是否延时完CLR TR0 ;关闭中断MOV A,#0FFH ;关灯MOV P2,A LJMP M1 ;跳转主程序M5:CJNE R5,#04H,M9 ;判断是否为歌曲4MOV DPTR,#QULJMP LOOPM9:CJNE R5,#05H,M8 ;判断是否为铃声MOV DPTR,#LSLJMP LOOPM8:CJNE R5,#06H,M10 ;判断按键是否到第6次M10:LJMP M0 M4:CJNE R5,#03H,M5 ;判定是否

40、为歌曲3MOV DPTR,#PLLJMP LOOPM3:CJNE R5,#02H,M4 ;判定是否为歌曲2MOV DPTR,#LINGLJMP LOOPM2:INC R5 ;记录按键8次数CJNE R5,#01H,M3 ;判定是否为歌曲1MOV DPTR,#TABLOOP: CPL P2.7 ;打开灯D8CLR AMOVC A,A+DPTR ;取音符MOV R1,A INC DPTRCLR AMOVC A,A+DPTRMOV R0,AORL A,R1JZ NEXT0 ;判定是否为结束符号MOV A,R0ANL A,R1CJNE A,#0FFH,NEXT3 ;判定是否为休止符CLR TR0MOV

41、 R2,04HLCALL D200CINC DPTRLJMP LOOPNEXT3: MOV TMOD,#01H ;设定定时器工作方式MOV IE,#82H ;开启总中断MOV TH0,R1 ;设置初值MOV TL0,R0SETB TR0 ;开启中断0SJMP NEXT2 NEXT0:CLR TR0 ;关中断MOV A,#0FFH ;关灯MOV P2,A LJMP M1 ;跳转至主程序NEXT2: CLR A INC DPTR MOVC A,A+DPTR ;取节拍MOV R2,ALOOP3: LCALL D200C ;调用延时DJNZ R2,LOOP3 ;判断是否延时完 INC DPTR ;跳到下一音符LJMP LOOPD200C:MOV R3,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 教育教学

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁