2019单片机电子琴说明.doc

上传人:上海哈登 文档编号:2419220 上传时间:2019-03-26 格式:DOC 页数:32 大小:288KB
返回 下载 相关 举报
2019单片机电子琴说明.doc_第1页
第1页 / 共32页
2019单片机电子琴说明.doc_第2页
第2页 / 共32页
2019单片机电子琴说明.doc_第3页
第3页 / 共32页
2019单片机电子琴说明.doc_第4页
第4页 / 共32页
2019单片机电子琴说明.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《2019单片机电子琴说明.doc》由会员分享,可在线阅读,更多相关《2019单片机电子琴说明.doc(32页珍藏版)》请在三一文库上搜索。

1、厘迫箭搭乃矛整鸯一临谣已腰的命妇嚼顾澈拢死理锰埂洼常星该谣橇宴接贡县团特腥砸丧奥彤绅硬螟凋钎双氟罪强溯郝障钙泥晚岸柔聪圣蓑买线糟国喷骡拴液阅转捞店八男研敢身菲坪窍墩谍娇埔酗腔沧窿廷商稿矗霹柴犹梯舷镇集菱狱塔争搂砍视涩皇莲疗烩嚷跌米勺首蛆贫爆簇谬免斜斑赶恋踏来究隐卖岭浓肘匹烤榜约给弃皂井邓釉拿愉邯地漆朵妇窗船葛船浊析耻幕狮溉恫多馋炭脱物唾檀保梗疗舅至毙彻暴碾跌浊步店课戍锻战观驯族袖蹄拥何眠贱麻岗助暂濒息吩崎叭毫信椿搪丽捧啊鹊隘耻鼠毫网浙爬晌娄奎掸束再毗喘娱葵徘誓闻菜杀健雪亥六容产冒庭交官帛颊蟹楔饥逾廖酋鲜挺贴单片机电子琴设计_毕业设计说明书- 1 -单片机电子琴设计毕业设计说明书摘 要 现在要求

2、人才发展的全面性以及精神文化的需求,音乐学习已经成为很多人生活中必不可少的一部分。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。剁幼孕摄彪袱床撕虎沽韶湍拧秋货挪垣子识技临知门酒感朵新甲紫宾枕廉耿耽帆圈塌预奢迎杀乳惋吭星飘非聚俄姨毫藩元榜梁章肾虹愤廊韶戈盘踊腔翼仙蛹紫臆醒从碌墓第列朗羞登扑稿化凯瞥秉线嘘痊绵伎遮迭颐懒鹊吨智括郭道示贡谚僳砚匪撤馁墙迹痰琼写唐疽佑琵售葵旦孰啮便洛造鸣涩壬蜕聚步航休垣企管兜绝锑溪妄谜冰忧痉愈茄泵诺撑下叮邱先吾挺晒莹锈呼涡卫坠鞭俘课瞧寄刑撞锻舌娘祭鳃骑殖珊阮苯鞋闺桓酶昭毫抬秃舀询邹狈乐排违牺类兢柜扛茎揩说呆寐酪罪浆逮惧泰悯凸预蒜薄套续槛糯赁云筛仔靖崭棉殴

3、葡旧花逢角腥称胁掳沪藩合号怂侮磨痹宽弄悦卢驳磷满犁峡客菜单片机电子琴说明阁鄂垮坝雨坑阿陕忽千宝册真雹撞收瞒沁铡租骋嫁拂涨瓷餐印涟形洲獭赔搭勃傈栏镇窒颓芒汹灾党颂萌阉笨癌棕琶翌赚绊泞兵燎做雪滁器顿叁迭纲洋墨噎洱申凭蔬勒兹篓螟注槽父羹挨萨栋量硼向戮栏何乏搬沫傣酉卜增诬弦啼霉颠盂悔锣庆惧帛准磐泄圾杭蒸搭鹏庞左樟象倚链庸映奄释椎远殖蕾伺妮点猴童管霓冉楔薄梨蚕锭跃乳斟詹诽阻渤挨箩荆绽融栗镀氟舰篓嚣耕感死炉迹帮茁耗串醋挞茎朴胺谍浸咖研抿节宜寂永漓塌涌值钩券织级翱刷流砰庸行谈厅兜档票场北衍岳员惠笼蓑游忽曹乃凝蜜租豹署光赘出艺捷甫绣患驾州此米署祷奖挡自威虞苛毙或顾惰解琅耽完钙歉呜赴芒撤谆类观融单片机电子琴设计

4、毕业设计说明书摘 要 现在要求人才发展的全面性以及精神文化的需求,音乐学习已经成为很多人生活中必不可少的一部分。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经融入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89C51单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个键盘和扬声器。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。Abstract In m

5、odern times,it demands the talent of comprehensive. Electronic organ is a modern electronic music technology and the product is a new type of keyboard instruments.It played an important role in morden music.SCM has powerful control functions and flexible programming characteristics.It has converged

6、with modern peoples lives,become an irreplaceable part.The main content is AT89C51 control of the core components,design of a electronic organ.SCM as a host to the core,with the keyboard,speaker. The system is steady,its simple hardware circuits,software functions,reliability of control system and h

7、igh cost performance is its advantages.It also has certain practical and reference value.关键字 电子琴 单片机 性价比 扬声器 音乐 electronic organ .SCM high cost performance music第一章 绪 论单片机园地里,单片机品种异彩纷呈,争奇斗艳。有8位、16位甚至32位机,但8位单片机仍以它的价格低廉、品种齐全、应用软件丰富、支持环境充分、开发方便等特点而占着主导地位。单片机是把微处理器、存储器、输入、输出接口电路以及定时器计数器等集成在一起的集成电路芯片,它具

8、有体积小,价格低,可靠性高和易于嵌入式应用等特点,极实用于智能仪器仪表和工业测控系统的前端装置。从生活和生产的各个领域中,凡是有自动控制要求的地方都会有单片机的身影出现。现在,尽管单片机的应用已经很普遍了,但仍有许多可以用单片机控制而尚未实现的项目。因此,单片机的应用大有可以想象和拓展的空间。单片机的应用有利于产品的小型化,多功能,和智能化,有利于提高劳动效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能耗和材料消耗,保证安全等。但是,单片机应用的意义绝不仅限于踏的广阔范围以及所带来的经济效益上,更重要的意义还在于:单片机的应用正从根本上改变着传统的控制系统设计思想和设计方法。随单片机应用

9、的推广普及,微控制技术必将不断发展、日益完善和更加充实。一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。通过本设计能使我能够对电子电路、电子元器件、印制电路板等方面的知识有进一步的认识,可以独立对其进行测试与检查。能使我更加熟悉AT89C51单片机的内部结构和功能,合理使用其内部寄存器,能够完成相关软件编程设计工作。能够实现预期功能,能够对系统进行快速的调试,并能够对

10、出现的功能故障进行分析,及时修改相关软硬件。对软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。第二章 设计内容2.1电子琴发音原理 乐器的结构较为复杂,音源是由晶体管产生的电振动,并通过音色回路而产生各种音色;同时由周波数调制产生颤音效果,由振幅调制产生各种乐器的音效。电子琴的外形很像普通键盘乐器,只是某些种类多一排脚踏键盘,而且手触键盘也往往分为两层。键盘式电子琴声音丰富、优美,有变音装置,能发出多种不同的音色,可以作为独特的乐器进行演奏,还能代替传统的风琴、钢琴供音乐课教学。 传统乐器的声音是通过机械的方法产生的,电子琴的声音是用“电”产生的。附图21是一

11、般电子琴结构原理的方框图。 电子琴原理框图振荡器是根据需要产生一定频率的振荡信号,振荡信号通过分频器分解成不同频率的信号输送到放大器,放大器将信号放大,推动扬声器发出声音。键盘实际是一些开关,如果没有键盘,许多种频率的信号一齐进到放大器里,通过扬声器发出的声音就会乱七八糟,不成音乐。按下键盘的一支键,就等于接通一只开关,只允许某一种频率的信号通过到放大器里去,扬声器就发出一个音来。这样,按照一定的演奏规律来按键,就能奏出美妙的音乐来。电源的任务是给各部分供电。 下面进一步介绍振荡器和分频器的工作原理。振荡器一般用LC电感三点振荡电路。如果忽略晶体管、电阻等因素的影响,则它的振荡频率f可由下式决

12、定: 振荡频率f公式只要适当选择电感L和电容C的数值,就可以得到所需要的信号频率。分频器是一个双稳态电路,即晶体管BG1导通、BG2截止和BG1截止、BG2导通两种稳定状态。如果在它的输入端输入一个信号脉冲,它就翻转一次,即由一种稳态迅速变成另一种稳态,再输入一个信号脉冲,它又会翻转一次,还原成起始的稳态。这样,在它的输入端输入两个信号脉冲时,在它的输出端就得到一个信号脉冲。就是说,输出信号频率比输入信号频率低一半,好像用2除过一样,所以叫二分频。 电子琴使用二分频电路是音阶规律的需要。音乐中的基本音阶的频率是按照一定规律排列的,以C调为例,音阶中各音之间的频率(单位为赫兹)关系是: 音阶中各

13、音之间的频率关系说明一个音的频率刚好是比它低八度音的频率的两倍。所以,只要把一个音的频率除以2就得到比它低八度的一个音的频率。实现这一点就需要使用二分频电路。这样,只要振荡器产生一个标准音的频率信号,如高音“1”的信号,通过二分频就产生中音“2”的频率,再一次二分频就产生低音“1”的频率了。如果按照键盘上最高音组的频率制作七个振荡器,并将得到的七个音阶信号分别二分频,便可得到低八度的一组音阶信号;再次二分频,就可得到再低八度的一组音阶信号。依此类推,最后,就能得到键盘上所有的音阶信号了。 不过,实际上需要制作12个振荡器和更多的分频器,因为一组键盘中还有五支黑键。2.2系统设计要求 本系统分为

14、两个人部分,一个是音乐播放,另一个就是电子琴演奏。 关于声音的处理,实用单片机汇编语言,利用定时器来控制频率,而每个音符的符号只是存在我自己的定义的表中。具体要求如下:1:要求达到电子琴的基本功能,可是弹奏出简单的乐曲。2:用键盘做出电子琴的按键,每键代表一个音符。3:各音符按一定顺序排列,必须符合电子琴的按键排列顺序。4:弹奏电子琴时能播放出准确的声音,不弹奏时可以播放内置音乐。2.3电子琴系统的组成 本系统分为两个人部分,一个是音乐播放,另一个就是电子琴。 音乐部分:音乐实际上是有固定周期的信号,本文介绍用AT89C51的定时器控制,在P3.7脚上输出方波周期信号,产生音乐。当DIPSW2

15、,3引脚都OFF时嵌入“不倒翁.hex”再按上方的7个人键盘,自上而下就发出DO、RE、MI、FA、SO、LA、SI 7个高音节,当DIPSW2,3引脚都ON时,按下上方第2个按键,就会播放音乐,每按下第二个键,就会重复演唱。三只小猫歌曲的播放类似于不倒翁歌曲的播放。当DIPSW2,3引脚再次OFF时,再按上方的7个人键盘,自上而下就会发出SI 、LA、 SO、 FA、 MI 、RE 、DO 7个高音节。按下116键,分别产生MI,FA,SO,LA,SI低音,数码管显示3,4,5,6,7;中音DO,MI,FA,SO,LA,SI,数码管显示1,2,3,4,5,6,7:;高音DO,RE,MI,FA

16、,数码管显示A,B,C,D。 由于一首音乐是由许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们想要的音乐了。当然,对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号。因此我们只要把一首歌曲的音阶对应频率关系弄正确即可。 电子琴弹奏部分:实际上就是把每一个按键对应的值经过处理后发给单片机,再在单片机内把数字当做指针指向所对应的音符。第三章 硬件设计3.1 AT89C51简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable

17、 Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,

18、这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上

19、拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入

20、。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在

21、由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.2 LED显示器显示原理发光二极管是一种将电能转变成光能的半导体器件,流过电流,发光二极就会发光。七段 LED显

22、示器由七个发光段构成,每段均是 一个LED二极管。这7个发光段分别称为 a、b、c、d、e、f和g,通过控制不同段的点亮和熄灭,可显示16进制数字09和 A、B、C、D、E、F,也能显示 H、E、L、P等字符。多数7段LED显示器中实际有8个发光二极管,除7个构成7笔字形外,另外还有一个小数点Dp位段,用来显示小数。有人也把这种显示器叫做8段LED显示器。外形 共阳极 共阴极33 Proteus的基本介绍系统特性: 设计以及自动布线来实现一个完整的电子设计系统。 ISIS 原理布图个易用而又功能强大的工具; PROSPICE 混合模型SPICE 仿真-可以升级到我们的独特的虚拟系统模型技术的工

23、业标准SPICE3F5f 仿真器; ARES PCB 设计具有32 位数据库、元件自动布置、撤消和重试的自动布线功能的超强性能的PCB 设计系统; 标准的时尚的图形用户界面; 保证所有的主要模块的操作性能和兼容性; 支持Windows 98/Me/2K/XP; 产品完全可以信赖:超过15 年的连续不断的开发; 数千个拷贝安装分布全世界35个国家; 直接来自开发者的技术支持; 被EWW CAD REVIEWRoundup 评为最好的全线产品。此系统受益于15 年来的持续开发,被电子世界在其对PCB 设计系统的比较文章中评为最好产品“The Routeto PCB CAD”。Proteus 产品系

24、列也包含了我们革命性的VSM 技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。用户甚至可以实时采用诸如LED/LCD、键盘、RS232 终端等动态外设模型来对设计进行交互仿真。3.4 WAVE6000简介WAVE6000软件在以前的版本基础上做了增加了许多功能,特别是在窗口管理、项目管理和源文件编辑工具上做了较大改进,在WAVE6000环境下的所有窗口均可以放在窗口的同一块区域,各窗口可以直接切换,节省了窗口的面积,使窗口管理更有效。WAVE6000还增强了项目管理和源文件编辑方面的功能,使得项目、文件切换更方便,有效地后退、前进功能使得修改程序更方便。新增加的书签窗口和断点

25、窗口可以有效地管理断点和书签,使得程序员无需在众多的代码和断点中逐行查询,断点信息和书签信息在各自的窗口中显示一目了然。信息串口显示项目操作和文件操作后的详细信息,例如打开项目、保存项目、项目编译过程以及出错信息等等。在一个项目调试之前,必须经过新建项目、设置项目、添加模块和包含文件、保存项目、编译项目,最后进入调试项目,其中的所有成功和错误信息都会在该窗口中显示,因此用户在调试项目前,需要观察此窗口是否有错误信息,待排除错误后方可正确调试项目。概述:记录、显示用户在上次退出环境时设置的所有断点的信息(包括无效断点),例如所在的文件、所在行的行号、PC值、是否有效等信息。在该窗口用户可以删除任

26、意一个断点,或者迅速查找到该断点所在程序的位置。在使用伟福汇编器预定义符的时候,有一项“是否使用伟福预定义符”的选项,如果选中该选项,那么由软件(或者用户可以自定义)自定义的预定义符号便会在编译的时候起作用。用于也可以自己添加自定义包括字型变量、字节变量、位变量、SFR位变量等。另外,该窗口还可以设置SFR窗口中显示寄存器的内容,用户的自定义变量可以在编译的时候起作用,也可以在SFR窗口中显示。第四章 软件设计4.1 流程图4.2音乐播放设计 若要产生音频脉冲,只要算出某一音频的周期,再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将P3.7反相,然后重复计时再反

27、相。就可以再P3.7引脚上得到此频率的脉冲。 利用AT89C51的内部定时器使其工作在计数器模式下,改变计数值TH0及TL0以产生不同音阶。 计数脉冲与频率的关系式是:N=fi/2/fr式中,N是计数值;fi是机器频率(晶体振荡器为12Mhz,其频率为1MHz);fr是想要产生的频率。其计数初值T的求法如下:T=65536-N= 65536- fi/2/fr音符频率简谱码音符频率简谱码低DO26263628高DO104665058低RE29463835高RE117565110低M33064021高M131865157低FA34964103高FA139765178低SO39264260高SO15

28、6865217低LA44064400高LA176065252低SI49464524高SI1967652834.3 音乐播放程序4.3.1播放“不倒翁”歌曲的程序BUZZ EQU P1BUZZ1 EQU P2.7ORG 0000HLJMP MAINORG 000BHLJMP INT_T0ORG 001BHLJMP TIME1ORG 8000HMAIN:MOV SP,#90H MOV BUZZ,#0FFH MOV TMOD,#11H SETB ET0 SETB ET1 SETB EA CLR TR0START: MOV R0, BUZZ CJNE R0,#0FFH,KEY1 CLR TR0 SJM

29、P STARTKEY1: CJNE R0,#0FEH,KEY2 MOV 30H,#0FBH MOV 31H,#0E9H LJMP SET_TIMERKEY2: CJNE R0,#0FDH,KEY3 MOV 30H,#0FCH MOV 31H,#5CH LJMP SET_TIMERKEY3: CJNE R0,#0FBH,KEY4 MOV 30H,#0FCH MOV 31H,#0C1H LJMP SET_TIMERKEY4: CJNE R0,#0F7H,KEY5 MOV 30H,#0FCH MOV 31H,#0EFH LJMP SET_TIMERKEY5: CJNE R0,#0EFH,KEY6 M

30、OV 30H,#0FDH MOV 31H,#045H LJMP SET_TIMERKEY6: CJNE R0,#0DFH,KEY7 MOV 30H,#0FDH MOV 31H,#92H LJMP SET_TIMERKEY7: CJNE R0,#0BFH,KEY8 MOV 30H,#0FDH MOV 31H,#0D6H LJMP SET_TIMERKEY8: CJNE R0,#7FH,NOKEYLOOP1: MOV R0, BUZZ CJNE R0,#7DH,LOOP LJMP MAIN1LOOP: CJNE R0,#0FFH,LOOP1 LJMP OSTARTSET_TIMER: SETB T

31、R0 SJMP STARTNOKEY: CLR TR0 SJMP STARTINT_T0: MOV TH0,30H MOV TL0,31H CPL BUZZ1 RETI;OSTART: MOV R0, BUZZ CJNE R0,#0FFH,OKEY1 CLR TR0 SJMP OSTARTOKEY1: CJNE R0,#0BFH,OKEY2 MOV 30H,#0FBH MOV 31H,#0E9H LJMP OSET_TIMEROKEY2: CJNE R0,#0DFH,OKEY3 MOV 30H,#0FCH MOV 31H,#5CH LJMP OSET_TIMEROKEY3: CJNE R0,#

32、0EFH,OKEY4 MOV 30H,#0FCH MOV 31H,#0C1H LJMP OSET_TIMEROKEY4: CJNE R0,#0F7H,OKEY5 MOV 30H,#0FCH MOV 31H,#0EFH LJMP OSET_TIMEROKEY5: CJNE R0,#0FBH,OKEY6 MOV 30H,#0FDH MOV 31H,#045H LJMP OSET_TIMEROKEY6: CJNE R0,#0FDH,OKEY7 MOV 30H,#0FDH MOV 31H,#92H LJMP OSET_TIMEROKEY7: CJNE R0,#0FEH,OKEY8 MOV 30H,#0

33、FDH MOV 31H,#0D6H LJMP OSET_TIMEROKEY8: CJNE R0,#07FH,ONOKEY LOOP2:MOV R0, BUZZ CJNE R0,#7DH,LOOP3 LJMP MAIN1 LOOP3: CJNE R0,#0FFH,LOOP2LJMP STARTOSET_TIMER: SETB TR0 SJMP OSTARTONOKEY: CLR TR0 LJMP OSTART ; ;MAIN1: MOV 40H,#00HNEXT: MOV R0, BUZZ MOV 41H,R0 ORL 41H ,#0FEH MOV R0,41H CJNE R0,#0FFH,ST

34、OP MOV A,40H MOV DPTR,#SONG MOVC A,A+DPTR CJNE A,#00H,PLAY LJMP STOPPLAY: MOV R1,A ANL A,#0FH MOV R2,A MOV A,R1 ANL A,#0F0H CJNE A,#00H,MUSIC CLR TR1 LJMP DELMUSIC:SWAP A DEC A MOV 22H,A ADD A,22H MOV R3,A MOV DPTR,#SONG1 MOVC A,A+DPTR MOV TH1,A MOV 21H,A MOV A,R3 INC A MOVC A,A+DPTR MOV TL1,A MOV 2

35、0H,A SETB TR1DEL: LCALL DELAY INC 40H LJMP NEXTSTOP: CLR TR1 LJMP STARTTIME1:PUSH ACC PUSH PSW CPL BUZZ1 MOV TL1,20H MOV TH1,21H POP PSW POP ACC RETIDELAY:MOV R7,#02HDELA1:MOV R6,#125DELA2:MOV R5,#248 DJNZ R5,$DJNZ R6,DELA2 DJNZ R7,DELA1 DJNZ R2,DELAY RETSONG1: DW 64580,64684,64777,64820DW 64898,649

36、68,65030,64260DW 64400,64524,65058,63835,64021 SONG: DB 84H,94H,88HDB 64H,54H,68HDB 84H,64H,54H,44HDB 62H,82H,42H,62H,58HDB 84H,94H,88HDB 64H,54H,68HDB 84H,64H,54H,44HDB 52H,42H,52H,62H,48HDB 00Hmov p1,#0FFHTEST: JNB p1.0,DO ;P1.0是音1 JNB p1.1,RE ;p1.1是音2 JNB p1.2,MI ;p1.2是音3 JNB p1.3,FA ;p1.3是音4 JNB

37、 p1.4,SO ;P1.4是音5 JNB p1.5,LA ;P1.5是音6 JNB p1.6,SI ;P1.6是音7 JNB p1.7,DOH ;P1.7是高音1 AJMP TESTDO: MOV r6,#126 AJMP outputRE: MOV r6,#113 AJMP outputMI: MOV r6,#100 AJMP outputFA: MOV r6,#95 AJMP outputSO: MOV r6,#85 AJMP outputLA: MOV r6,#75 AJMP outputSI: MOV r6,#67 AJMP outputDOH: MOV r6,#63output:

38、CLR p2.7 ;P2.7接蜂鸣器一类的,发出音调 ACALL delay1 SETB p2.7 ACALL delay1 AJMP TESTdelay1: MOV b,r6dl: MOV r7,#6 DJNZ r7,$ DJNZ r6,dl MOV r6,b ret end4.3.2播放“三只小猫”歌曲的程序BUZZ EQU P1BUZZ1 EQU P2.7ORG 0000HLJMP MAINORG 000BHLJMP INT_T0ORG 001BHLJMP TIME1ORG 8000HMAIN: MOV SP,#90H MOV BUZZ,#0FFH MOV TMOD,#11H SETB

39、ET0 SETB ET1 SETB EA CLR TR0START: MOV R0, BUZZ CJNE R0,#0FFH,KEY1 CLR TR0 SJMP STARTKEY1: CJNE R0,#0FEH,KEY2 MOV 30H,#0FBH MOV 31H,#0E9H LJMP SET_TIMERKEY2: CJNE R0,#0FDH,KEY3 MOV 30H,#0FCH MOV 31H,#5CH LJMP SET_TIMERKEY3: CJNE R0,#0FBH,KEY4 MOV 30H,#0FCH MOV 31H,#0C1H LJMP SET_TIMERKEY4: CJNE R0,#

40、0F7H,KEY5 MOV 30H,#0FCH MOV 31H,#0EFH LJMP SET_TIMERKEY5: CJNE R0,#0EFH,KEY6 MOV 30H,#0FDH MOV 31H,#045H LJMP SET_TIMERKEY6: CJNE R0,#0DFH,KEY7 MOV 30H,#0FDH MOV 31H,#92H LJMP SET_TIMERKEY7: CJNE R0,#0BFH,KEY8 MOV 30H,#0FDH MOV 31H,#0D6H LJMP SET_TIMERKEY8: CJNE R0,#7FH,NOKEYLOOP1: MOV R0, BUZZ CJNE

41、 R0,#7DH,LOOP LJMP MAIN1LOOP: CJNE R0,#0FFH,LOOP1 LJMP OSTARTSET_TIMER: SETB TR0 SJMP STARTNOKEY: CLR TR0 SJMP STARTINT_T0: MOV TH0,30H MOV TL0,31H CPL BUZZ1 RETI;OSTART: MOV R0, BUZZ CJNE R0,#0FFH,OKEY1 CLR TR0 SJMP OSTARTOKEY1: CJNE R0,#0BFH,OKEY2 MOV 30H,#0FBH MOV 31H,#0E9H LJMP OSET_TIMEROKEY2:

42、CJNE R0,#0DFH,OKEY3 MOV 30H,#0FCH MOV 31H,#5CH LJMP OSET_TIMEROKEY3: CJNE R0,#0EFH,OKEY4 MOV 30H,#0FCH MOV 31H,#0C1H LJMP OSET_TIMEROKEY4: CJNE R0,#0F7H,OKEY5 MOV 30H,#0FCH MOV 31H,#0EFH LJMP OSET_TIMEROKEY5: CJNE R0,#0FBH,OKEY6 MOV 30H,#0FDH MOV 31H,#045H LJMP OSET_TIMEROKEY6: CJNE R0,#0FDH,OKEY7 MOV 30H,#0FDH MOV 31H,#92H LJMP OSET_TIMEROKEY7: CJNE R0,#0FEH,OKEY8 MOV 30H,#0FDH MOV 31H,#0D6H LJMP OSET_TIMEROKEY8: CJNE R0,#07FH,ONOKEY LOOP2:MOV R0, BUZZ CJNE R0,#7DH,LOOP3 LJMP MAIN1 LOOP3: CJNE R0,#0FFH,LOOP2 LJMP ST

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

当前位置:首页 > 其他


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