基于AT89C51单片机的音乐盒的课程设计

合集下载

音乐盒的设计

音乐盒的设计

目录1 概述 (1)1.1设计意义 (1)1.2主要研究工作 (1)1.3设计目标 (1)2 音乐盒的发音原理及程序设计 (2)2.1播放音乐的原理 (2)2.2音符频率的产生 (2)2.3节拍频率的产生 (4)2.4歌曲的编码改写实例 (4)3 硬件设置 (6)3.1框图及介绍 (6)3.2AT89C51 介绍 (6)3.2.1主要特性 (6)3.2.2管脚说明: (7)3.2.3振荡器特性 (9)3.2键盘系统 (9)3.3时钟电路 (9)3.4LED数码管 (10)3.5程序框图 (11)结束语 (13)参考文献 (14)附录1总设计图 (15)附录2原器件清单 (16)1 概述1.1设计意义音乐盒的起源,可追溯至中世纪欧洲文艺复兴时期。

当时为使教会的钟塔报时,而将大小的钟表装上机械装置,被称为“可发出声音的组钟”。

音乐盒有着300多年的发展历史,是人类文明发展的历史见证。

传统的音乐盒多是机械音乐盒,其工作原理是通过齿轮带动一个带有铁钉的铁桶转动,铁桶上的铁钉撞击铁片制成的琴键,从而发出声音。

但是,机械式的音乐盒体积比较大,比较笨重,且发音单调。

水、灰尘等外在因素,容易使内部金属发音条变形,从而造成发音跑调。

另外,机械音乐盒放音时为了让音色稳定,必须放平不能动摇,而且价格昂贵,不能实现大批量生产。

本文设计的音乐盒,是基于单片机设计制作的电子式音乐盒。

与传统的机械式音乐盒相比更小巧,音质更优美且能演奏和弦音乐。

电子式音乐盒动力来源是电池,制作工艺简单,可进行批量生产,所以价格便宜。

基于单片机制作的电子式音乐盒,控制功能强大,可根据需要选歌,使用方便。

所放歌曲的节奏可以根据需要进行设置,根据存储容量的大小,可以尽可能多的存储歌曲。

1.2主要研究工作在本次设计中,首先提出了发音盒的整体设计方案;然后对音乐盒所播放的音乐进行了程序设计;其次设计了音频驱动电路,以驱动播放扬声器;最后设计了直流稳压电源,用于为单片机和音频部分、显示部分提供稳定的+5V电压。

基于AT89C5单片机的电子音乐盒设计课程设计9869728

基于AT89C5单片机的电子音乐盒设计课程设计9869728

课程设计任务书工学院机械系机械设计制造及其自动化专业11 级机电三班题目: 基于AT89C51单片机的电子音乐盒设计课程:单片机应用技术课程设计课程设计时间 2014年10月27 日至2014年11 月10 日共2 周课程设计工作内容与基本要求(设计要求、设计任务、工作计划、所需相关资料)(纸张不够可加页)1.设计要求利用AT89C51单片机作为微控制器,用16盏以上的LED小灯,实现至少4种彩灯灯光效果(不含全部点亮,全部熄灭);可以用输入按钮在几种灯光效果间切换;可以通过按钮暂停彩灯效果,使小灯全亮,再次按下相同按钮后继续之前的效果。

创新设计:2. 设计任务与要求2.1系统硬件电路设计根据该系统设计的功能要求选择所用元器件,设计硬件电路。

要求用Proteus绘制整个系统电路原理图。

2.2软件设计根据该系统要求的功能进行软件设计,绘制整个系统的软件流程图;根据流程图编写程序并汇编调试通过;列出软件清单,软件清单要求逐条加以注释。

2.3 Proteus仿真用Proteus对系统软硬件进行仿真调试并通过。

2.4 编写设计说明书内容包括任务书、设计方案分析、硬件部分设计、软件部分设计、调试结果整理分析、设计调试的心得体会等,字数不少于5000字;硬件部分设计要绘制整个系统电路原理图,对各部分电路设计原理做出说明;软件设计部分要(用visio2003画图软件)绘制整个系统及各部分的软件流程图,列出程序清单,逐条加以注释,并注明各程序功能块的功能。

3.工作计划4.主要参考资料单片机课程设计指导书皮大能北京理工大学出版社 2012.7 8051单片机实践与应用吴金戎清华大学出版社2003.8单片机技术基础教程与实践夏路易电子工业出版社2008.1单片机原理及应用张毅刚高等教育出版社 2012.11基于Proteus的单片机系统设计与仿真实例蒋辉平机械工业出版社2007.7…指导老师签字:日期:摘要为了实现单片机控制音乐播放,在本次课程设计中尝试基于单片机AT89C51音乐盒的设计对这一思路进行验证。

数字音乐盒设计

数字音乐盒设计

基于51单片机的可控数字音乐盒设计摘要本文是一篇基于AT89C51单片机的可控数字音乐盒的程序设计。

该音乐盒是一个依据单片机技术原理,通过PROTEUS仿真软件对硬件电路进行仿真制作以及利用KEIL软件对音乐盒源程序进行C语言编译,而设计制作出的一个多功能数字音乐盒。

该音乐盒通过控制单片机内部的定时器来产生不同频率的方波,驱动喇叭发出不同音调的音乐。

该程序通过把乐谱转化成相应的定时常数来驱动发音设备演奏出悦耳动听的音乐。

本音乐盒一共设计了五首歌曲,同时还设计了三种LED彩灯的变化花样。

在演奏歌曲时彩灯随音调闪烁。

在停止演奏歌曲时三种彩灯花样开始闪烁。

歌曲和花样均可随意切换。

与此同时,数码管也不断变化数字,以此显示歌曲和彩灯花样的序号。

关键词:数字音乐盒;AT89C51;KEIL;PROTEUS;数码管目录1前言------------------------------------------------------------------------------------------------------1 2单片机和音乐盒硬件的功能------------------------------------------------------------------------2 2.1AT89C51芯片的功能----------------------------------------------------------------------------2 2.2音乐盒的硬件及其功能-------------------------------------------------------------------------4 3数字音乐盒的主体设计方案------------------------------------------------------------------------5 3.1音乐盒的主体结构-------------------------------------------------------------------------------5 3.2 主设计软件的介绍-------------------------------------------------------------------------------53.2.1编程软件KEIL的简介-----------------------------------------------------------------53.2.2 仿真软件PROTEUS的简介-----------------------------------------------------------64 音乐盒硬件设计---------------------------------------------------------------------------------------8 4.1总设计框图----------------------------------------------------------------------------------------8 4.2 各部分硬件的作用-------------------------------------------------------------------------------84.2.1时钟振荡电路------------------------------------------------------------------------------84.2.2 LED和数码管的设计--------------------------------------------------------------------95 音调和节拍的设计-----------------------------------------------------------------------------------11 5.1 音调和节拍的设计以及音乐基础知识------------------------------------------------------115.2 音调和节拍的编码------------------------------------------------------------------------------136 源程序设计--------------------------------------------------------------------------------------------14 6.1音乐程序------------------------------------------------------------------------------------------14 6.2 LED花样程序-------------------------------------------------------------------------------------15 6.3 数码管程序---------------------------------------------------------------------------------------16 7数字音乐盒总设计图--------------------------------------------------------------------------------17 7.1 仿真总设计图------------------------------------------------------------------------------------17 7.2 实物总设计图------------------------------------------------------------------------------------18 8结论-----------------------------------------------------------------------------------------------------19 参考文献--------------------------------------------------------------------------------------------------20 致谢--------------------------------------------------------------------------------------------------------21 附录A总程序源代码及注释-------------------------------------------------------------------------221 前言随着科技越来越发达,单片机技术也越来越纯熟,单片机的应用也越来越广泛,可以说几乎很难找到哪个领域没有单片机的踪迹。

Get清风毕业论文基于AT89C51单片机的音乐播放器的设计

Get清风毕业论文基于AT89C51单片机的音乐播放器的设计

毕业论文-基于AT89C51单片机的音乐播放器的设计兰州工业学院毕业设计〔论文〕题目基于单片机的音乐播放器的设计学院电子信息工程学院专业电子信息工程技术班级嵌入式1 1姓名张文琪学号202110103125指导教师〔职称〕兰聪花〔讲师〕日期2021年3月兰州工业学院毕业设计〔论文〕任务书电子信息工程学院2021届电子信息工程专业毕业设计〔论文〕任务书毕业设计〔论文〕题目基于单片机的音乐播放器的设计课题内容性质软、硬件开发课题来源性质教师收集的结合生产实际的课题设计/论文校内〔外〕指导教师职称工作单位及部门联系方式兰聪花讲师电子信息工程学院一、题目说明〔目的和意义〕:本设计希望通过对常见电子产品的设计与制作来培养学生综合运用所学知识,分析和解决实际问题的能力,掌握相关绘图制作软件,会运用电子仪器进行电路检测和调试,强化电子技术应用技能训练,为今后开展产品技术开发、设计和制作打下初步的根底。

该系统设计,涉及到电路技术、单片机原理、Protel电路设计原理、程序设计、单片机程序烧录和焊接电路等方面知识,考察了学生对以往学习过的课程的综合应用能力。

二、设计〔论文〕要求〔工作量、内容〕:【设计内容】根据音乐演奏控制器所要实现的显示与选曲及音乐产生功能原理,系统包括演奏扬声器、选曲、播放和显示几局部。

通过按键控制,系统具有开启、暂停播放当前曲子的功能;播放前一首、后一首歌曲的功能;控制播放器的播放模式:顺序播放、随机播放、重复单曲、全部重复等功能。

未播放时放光二极管产生流水灯,播放音乐时能随着曲调闪烁。

所设计的音乐播放器可以播放多首音乐,曲目选择可以由键盘控制,并通过显示器显示歌曲序号。

【设计环境】软件:keil 软件,AVR_fighter烧写软件,Protel99se绘图软件,Protues仿真软件。

硬件:微机,常用电子元件,实验室常用电子检测仪器。

【设计要求】〔1〕完成系统总体设计,硬件设计和软件设计等。

基于AT89C51音乐播放器

基于AT89C51音乐播放器

单片机原理及系统课程设计专业:自动控制班级:1103班姓名:徐越学号:2指导教师:李亚宁兰州交通大学自动化与电气工程学院2013 年 9月 1 日基于单片机的音乐播放器设计摘要随着我国现代化技术建设的发展,电子产品多种多样,但同类电子产品工作原理基本相同,只不过在硬件电路的是实现上有所不同。

例如我们我们平时所用的MP3音乐播放器,就可以用单片机和一些电子元件来实现它的基本功能。

我的设计是以89C51单片机作为核心工作元件的音乐播放器,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能音乐盒。

该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。

本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试,节约了设计时间。

它在实现音乐播放功能上简单易行,在制作硬件电路上也不困难。

因此,此次课程设计,我除了完成了系统的软件设计和实物电路仿真外,利用空余时间制作出了实物。

关键字音乐播放器,AT89C51单片机,KEIL,PROTEUS。

1 引言1.1 设计目的此次制作的音乐播放器,只需将音乐编码导入C语言程序,经过KEIL软件运行生成HEX文件,经BDM下载器导入单片机中即可。

可以同时生成多首歌曲的音乐编码,再次我选择了两首歌的音乐编码。

学生自己动手就可以制作属于自己的个性化的音乐播放器,通过自己动手将所学的单片机知识应用到实践中。

1.2 设计要求设计一个基于AT89C51的音乐播放器,利用软件编程和相应的硬件电路实现不同歌曲的播放,先利用KEIL软件编程,再用PROTEUS仿真实现,生成可执行的HEX文件,最后焊接实物电路。

1.3 设计方法采用AT89C51单片机、蜂鸣器,晶体振荡器,晶体管2N2905,复位开关为主要硬件。

PROTEUS仿真软件设计和C语言编程方法实现播放器的模拟,用AT89C51实现音乐编码的处理,用晶体管2N2905对电路中电流放大,进而驱动蜂鸣器播放音乐。

单片机音乐盒设计

单片机音乐盒设计

基于单片机的带彩灯外观的音乐盒摘要:随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要求。

小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。

传统音乐盒多是机械型的,体积笨重,发音单调,不能实现批量生产。

本文设计的音乐盒是以AT89C51单片机为核心元件的电子式音乐盒,体积小,重量轻,能演奏音乐,功能多,外观效果多彩,配有彩灯,使用方便,本音乐盒有三个按键,key1控制彩灯,key2控制音乐,key3为总开关,可同时关闭音乐与彩灯。

具有一定的商业价值。

关键字:AT89C51;音乐盒;按键;彩灯Abstract: Along with the development of human society, people of vision, hearing things put forward higher request. Small music box can bring good memories and improve people's spiritual culture. Traditional music box is heavy mechanical type, size, pronunciation and drab, cannot achieve batch production. Music box designed in this paper based on AT89C51 microcontroller as the core element of electronic music box, small size, light weight, can play music, multi-function, appearance and colorful, with a lantern,easy to use. The music box with three buttons , The key1 control Lantern, key2 control music, key3 total switch can turn off the music and lanterns. Have some commercial value.Keywords:AT89C51, music boxes, buttons, Lantern1 引言1.1设计目的随着电子技术及计算机技术的发展,单片机在日常生活中的应用越来越广泛,同时也显现出了它的重要性,尤其在一些特殊的场合更是不可代替。

基于单片机的带流水灯的音乐盒设计解析

基于单片机的带流水灯的音乐盒设计解析

前言本次课程设计是一个基于AT89C51系列单片机的音乐盒的设计,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个音乐盒。

该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器和led显示电路组成。

使用两个按键控制音乐盒,一个用来切换歌曲,另一个用来切换8路led的变化花样。

本音乐盒共有两首歌曲,花样灯花样共计3种。

播放歌曲时,蜂鸣器发出某个音调,与之对应的led亮起。

本设计利用keil编程软件对音乐盒源程序进行编程并调试,配合proteus仿真软件对硬件进行仿真调试。

该音乐盒使用c语言编程和汇编语言相结合,程序段使用C语言,歌曲音谱和led显示花样使用汇编语言。

目录绪论 (1)1.设计题目要求 (2)1.1课题意义 (2)1.2设计目的 (2)1.3设计要求 (2)2 方案设计及硬件设计及其原理 (2)2.1方案设计和硬件设计 (2)2.1.1系统总体方案设计 (2)2.1.2音乐盒设计 (3)2.1.3硬件总体设计 (3)2.1.4硬件仿真图及功能 (4)2.2相关知识,原理和理论介绍 (5)2.2.1 AT89C52简介 (5)2.2.2 LED显示电路设计与原理 (5)2.2.3 时钟振荡电路 (5)2.2.4 花样灯3种花样图 (6)3软件设计 (7)3.1音调、节拍以及编码的确定方法 (7)3.1.1音调的确定 (7)3.1.2节拍的确定 (8)3.1.3编码 (9)3.2软件程序设计 (10)3.2.1主程序流程图 (10)3.2.2播放音乐子程序设计 (13)3.3调试成果 (15)4心得体会 (15)参考文献 (17)附录 (18)绪论21世纪,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

随着科学技术的进步和社会的发展,人类所接触的信息也在不断增加并且日益复杂。

基于AT89C51单片机的音乐播放器课程设计

基于AT89C51单片机的音乐播放器课程设计
在设计过程中遇到一个关键问题就是怎么使播放器能够顺利播放并进入下一首,刚开始没有思路,进过小组讨论后,一致认为采用中断控制子程序然后调用子程序,最后顺利实现目地。
五、总 结
通过本次设计,我对单片机这门课有了更进一步的了解。无论是在硬件连接方面还是在软件编程方面。本次设计采用了AT89C52单片机芯片,与以往的单片机相比增加了许多新的功能,使其功能更为完善,应用领域也更为广泛。总之这次电路的设计和仿真,基本上达到了设计的功能要求。在以后的实践中,我将继续努力学习电路设计方面的理论知识,并理论联系实际,争取在电路设计方面能有所提升。
基于AT89C51单片机的音乐播放器课程设计
一、设计任务与要求
基于单片机的音乐播放器可应用于mp3,MP4,扩音器等很多方面,并可作为很多系统的辅助功能,作为单片机的重要硬件资源之一,利用定时器可以产生各种固定频率的方波信号,也可以产生包括"Do"、"Re"、"Me"--等音阶在内的各种频率声音。将各个音阶连接在一起,便可组成一支曲子或是演奏一段旋律。基于这个思想,我设计了一款特殊的"音乐播放器",本播放器可实现播放、暂停、复位等功能。为了体现乐曲播放过程中的动态效果,增加了1只LED,作随机闪烁以指示旋律的节奏。由于时间及条件限制,本设计实现了一种简单的音乐播放器,其核心器件采用AT89C51单片机,本播放器具有电路简单,功能强大,易于拓展等特点。
总体原理:乐曲中不同的音符,实质就是不同频率的声音。通过单片机产生不同的频率的脉冲信号,经过放大电路,由蜂鸣器放出,就产生了美妙和谐的乐曲。
仿真图: 实物图:
歌曲《军港之夜》
实物图波形:仿Βιβλιοθήκη 图波形:暂停仿真及实物图实物图波形:仿真图波形:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1《单片机原理及应用》课程设计说明书设计题目:基于AT89C52单片机的音乐盒的设计学 院:专业班级:设 计 者:学 号:指导老师:目录摘要 (4)第1章概述 (5)第2章音乐盒的发音原理 (6)2.1 播放音乐的原理 (6)2.2 音符频率的产生 (6)2.3 节拍频率的产生 (8)第3章硬件电路设计 (9)3.1 硬件电路 (9)3.2 整体硬件电路 (10)3.3 原理说明 (10)23.4 键盘按键 (10)第4章软件设计 (11)4.1 程序设计流程 (11)4.2 设计源程序代码 (12)第5章仿真及调试 (16)5.1 调试 (16)5.2 仿真 (16)5.3 程序调试中出现的问题及解决的办法 (17)第6章设计小结 (18)附录元件清单 (19)3基于AT89C52单片机的音乐盒的设计【摘要】:随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要求。

小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。

传统的音乐盒多是机械型的,体积笨重,发音单调,不能实现批量生产。

本文设计的音乐盒是以单片机为核心元件的电子式音乐盒,体积小,重量轻,能演奏和旋音乐,功能多,使用方便,可以批量生产,具有一定的商业价值。

【关键词】:音乐盒;单片机45第1章 概述传统的音乐盒多是机械音乐盒,其工作原理是通过齿轮带动一个带有铁钉的铁桶转动,铁桶上的铁钉撞击铁片制成的琴键,从而发出声音。

但是,机械式的音乐盒体积比较大,比较笨重,且发音单调。

水、灰尘等外在因素,容易使内部金属发音条变形,从而造成发音跑调。

另外,机械音乐盒放音时为了让音色稳定,必须放平不能动摇,而且价格昂贵,不能实现大批量生产。

本文设计的音乐盒,是基于单片机设计制作的电子式音乐盒。

与传统的机械式音乐盒相比更小巧,音质更优美且能演奏和弦音乐。

电子式音乐盒动力来源是电池,制作工艺简单,可进行批量生产,所以价格便宜。

基于单片机制作的电子式音乐盒,控制功能强大,可根据需要选歌,使用方便。

所放歌曲的节奏可以根据需要进行设置,根据存储容量的大小,可以尽可能多的存储歌曲。

另外,可以设计彩灯外观效果,增设放歌时间、序号显示灯功能,使音乐盒的功能更加丰富,如图1-1所示。

图1-1 单片机音乐盒功能框图6第2章 音乐盒的发音原理2.1 播放音乐的原理发音原理:播放一段音乐需要的是两个元素,一个是音调,另一个是音符。

首先要了解对应的音调,音调主要由声音的频率决定,同时也与声音强度有关。

对一定强度的纯音,音调随频率的升降而升降;对一定频率的纯音、低频纯音的音调随声强增加而下降,高频纯音的音调却随强度增加而上升。

另外,音符的频率有所不同。

基于上面的内容,这样就对发音的原理有了一些初步的了解。

音符的发音主要靠不同的音频脉冲。

利用单片机的内部定时器/计数器0,使其工作在模式1,定时中断,然后控制P3.7引脚的输出音乐。

只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O 反相,然后重复计时此半周期时间再对I/O 反相,就可在I/O 脚上得到此频率的脉冲。

2.2 音符频率的产生音符及定时器初始值:例如:中音1(do )的音频=523HZ,周期T=1/523s=1912s μ定时器/计数器0的定时时间为:T/2=1912/2s μ=956s μ定时器956s μ的计数值=定时时间/机器周期=956s μ/1s μ=956(时钟频率=12MHZ)装入T0计数器初值为65536-956=64580将64580装入T0寄存器中,启动T0工作后,每计数956次时将产生溢出中断,进入中断服务时,每次对P3.0引脚的输出值进行取反,就可得到中音DO (523HZ )的音符音频。

将51单片机内部定时器工作在计数器模式1下,改变计数初值TH0,TL0以产生不同的频率。

下表2-1是C 调各音符频率与计数初值T 的对照表:7表2-1 C 调各音符频率与计数初值T 的对照表音符、音符编码及定时器初始值:为了产生音符,必须求出音符低音5—高音5的计数初值。

例如C 调的低1DO 的THTL=65536-50000/262=63627,中音DO 的THTL=65536-500000/523=64580,高音DO 的THTL=65536-500000/1042=65056。

为了方便写谱,对其进行简单的编码,在编程时,根据音符编码查找对应的计数初值。

比如说音乐是C 调的,那么出现低音的5SO ,直接将代码写为1;出现低音6LA,直接写一个2的代码;出现低音7SI ,直接写一个3代码。

表2-2 音符编码表82.3 节拍频率的产生节拍的产生与编码:音乐中的节拍用延时时间产生。

例如,1拍=0.4s ,1/4拍=0.1s ,以此类推。

假设1/4拍执行一次延时程序,则1/2拍就执行两次延时程序,所以只要求出1/4拍的延时时间,其余节拍就是它的倍数。

为了方便,将节拍数也进行了编码,并且计算了乐谱节拍编程时的延时时间,如表2-3和表2-4所示。

表2-3 节拍数编码表表2-4 乐谱节拍编程时的时间延时表音符编码和节拍编码完成后,在编程时,每个音符占一个字节,高四位是音符编码,低四位是节拍编码。

9第3章 硬件电路设计3.1 硬件电路设计中用到了AT89C52单片机,3*3键盘,蜂鸣器等硬件电路常用元器件。

3.1.1 时钟复位电路时钟电路由单片机XTAL1、 XTAL2引脚外接晶振(12MHz )及起振电容C1、C2(均为30pf )组成。

如图3-1所示:图3-1 时钟复位电路3.1.2 按键输入电路按键输入电路由3*3矩阵键盘组成, P3口作为输入控制按键,其中P3.4~P3.6扫描行,P3.0~P1.2扫描列。

图3-2 按键输入电路10 3.2 整体硬件电路如图3-3所示:图3-3 音乐盒硬件电路原理图3.3 原理说明:当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。

(1) 硬件电路中用P3口控制按键,其中P3.0~P3.2扫描列,P3.4~P1.6扫描行;(2) 用P1.0口控制蜂鸣器;(3) 电路为12MHz 晶振频率工作,起振电路中C1,C2均为30pf 。

3.4 键盘按键键盘按键分布如下: 按键功能说明: 1 2 3 4 5 6 7 8 91—5 五首歌曲6 上一首歌曲7 关机8 暂停9 下一首歌曲第4章软件设计本程序可以实现该课程设计的基本要求,并可以通过按键播放达10首歌曲。

4.1 程序设计流程程序设计流程图如图4-1所示:11图4-1 程序设计流程图124.2 设计源程序代码ORG 0000H LJMP MAIN ORG 000BH ;定时器T0溢出中断入口地址 LJMP TT0 ORG 001BH ;定时器T1溢出中断入口地址 LJMP T1INT ORG 1000H MAIN: MOV SP,#70H LCALL INITIL ;内存初始化 WAIT: LCALL KEY LJMP WAIT KEY: ;键盘扫描 NOP NOP LCALL KS JNZ K1 ;有按键转到K1 MOV A,37H LCALL SOP XN: LJMP KEY K1: LCALL KS JNZ K2 LJMP KEY K2: ;读键盘 MOV R2,#0FEH MOV R4,#00H K3: MOV A,R2 MOV P3,A MOV A,P3 JB ACC.4,L1 ;为1跳转,第一行无按键 MOV A,#01H LJMP LK L1: JB ACC.5,L2 MOV A,#04H LJMP LK L2: JB ACC.6,NEXT1 MOV A,#07H LK: ADD A,R4 PUSH ACC K4: LCALL DELAY1 LCALL KS JNZ K4 ;若同时有其他按键,则等待(同时按视为无效) MOV R3,#07H CLR A MOV R0,#30H MOV R1,#31H MM1: MOV A,@R1 ;键值给37H MOV @R0,A INC R0 INC R1 DJNZ R3,MM1 POP ACC MOV @R0,A RETNEXT1: INC R4 ;列扫描 MOV A,R2 JNB ACC.2,N2 LJMP N1 N2: LJMP KEY N1: RL A MOV R2,A LJMP K3 KS: MOV A,#0F0H ;判断P1口 MOV P3,A NOP NOP MOV A,P3 CPL A ANL A,#0F0H RET DELAY1: ;延时2.55ms 63×4×1us ×10+10×3×1us SETB RS0 DL: MOV R5,#0AH DL2: MOV R6,#63 DL3: NOP NOP DJNZ R6,DL3 DJNZ R5,DL2 CLR RS0 RET INITIL: ;30H~37H 初值为零 MOV R3,#08H MOV R0,#30H M1: MOV @R0,#00H INC R0 DJNZ R3,M1 CLR P1.0 RET ;按键值播放歌曲 SOP: MOV A,37H CJNE A,#01H,A11 MOV 52H,#HIGH TABLE10 MOV 53H,#LOW TABLE1013LCALL MAIN0A11: CJNE A,#02H,A22MOV 52H,#HIGH TABLE20 MOV 53H,#LOW TABLE20 LCALL MAIN0A22: CJNE A,#03H,A33MOV 52H,#HIGH TABLE30 MOV 53H,#LOW TABLE30 LCALL MAIN0 A33: CJNE A,#04H,A44MOV 52H,#HIGH TABLE40 MOV 53H,#LOW TABLE40 LCALL MAIN0A44: CJNE A,#05H,A55MOV 52H,#HIGH TABLE50 MOV 53H,#LOW TABLE50 LCALL MAIN0 A55: RETDELAY: MOV R4,#05 D1: MOV R5,#0FFH DJNZ R5,$ DJNZ R4,D1 RETMAIN0: MOV TMOD,#11H ; 播放歌曲程序 MOV IE,#8AH MOV TH1,#3CHMOV TL1,#0B0H LCALL KSJNZ TTM12 MOV 40H,#00H NEXT20: MOV A,40H MOV DPH,52H MOV DPL,53H MOVC A,@A+DPTR MOV R2,A JZ STOP ANL A,#0FH MOV R1,A MOV A,R2 SWAP AANL A,#0FH JNZ SING CLR TR0 JMP W1 SING: DEC AMOV 22H,A RL AMOV DPTR,#TABLE00 MOVC A,@A+DPTR MOV TH0,A MOV 21H,AMOV A,22H RL A INC AMOVC A,@A+DPTR MOV TL0,A MOV 20H,A SETB TR0 SETB TR1W1: LCALL DELAY30 INC 40HLCALL KS ;有键跳出 JNZ STOP LJMP NEXT20 STOP: CLR TR0 CLR TR1 CLR P1.0 LJMP MAIN0 TTM12: LCALL K2 MOV A,37HCJNE A,#08H,TTM13 ;暂停 CLR TR1 CLR P1.0LCALL DELAY1 TTM120: LCALL KSLCALL DELAY1 JZ TTM120 LCALL K2 MOV A,37HCJNE A,#08H,TTM120 SETB TR1 LJMP NEXT20TTM13: CJNE A,#09H,TTM14 ;下一曲 MOV A,52H INC AMOV 52H,A MOV A,53H INC AMOV 53H,A MOV A,36H INC AMOV 37H,A LJMP TTM2TTM14: CJNE A,#06H,TTM2 ; 上一曲 MOV A,52H DEC AMOV 52H,A MOV A,53H DEC AMOV 53H,A MOV A,36H DEC AMOV 37H,A TTM2: RET14TT0: PUSH ACC ; 定时器中断子程序0 PUSH PSW MOV TL0,20H MOV TH0,21H CPL P1.0 ;获得脉冲 POP PSW POP ACC RETI;定时器中断子程序1 T1INT:MOV TH1, #3cH MOV TL1, #0b0H RETI DELAY30:MOV R7,#2 W2: MOV R4,#125 W3: MOV R3,#248 DJNZ R3,$ DJNZ R4,W3 DJNZ R7,W2DJNZ R1,DELAY30 RET TABLE00:DW 64580,64684,64777,6482 ;音符 DW 64898,64968,65030,64260DW 64400,64524,65058,63835,64021 TABLE10: ;第一首《精忠报国》 DB66H,52H,36H,22H,12H,12H,22H,32H,98H,84H ,82H,92H,14H,12H,22H DB32H,52H,22H,42H,38H,66H,52H,36H,22H,12H ,22H,22H,32H,98H DB24H,22H,32H,54H,52H,32H,92H,12H,92H,82H ,98H,66H,52H,36H,22H DB12H,12H,22H,32H,98H,84H,82H,92H,14H,12H ,22H,32H,52H,22H,42H,38H DB66H,52H,36H,22H,12H,22H,22H,32H,98H,24H ,22H,32H,54H,52H,32H DB22H,12H,92H,82H,98H,14H,24H,34H,44H,64H ,0B4H,64H,32H,52H DB62H,0B2H,62H,52H,38H,24H,22H,32H,54H,52H,62H,52H,32H,32H,22H,38H DB64H,0B4H,64H,32H,52H,62H,0B2H,62H,52H,38H,22H,22H,22H,32H,52H,52HDB 52H,62H,7FH,74H,04H,58H,6FH DB 00TABLE20: ;第二首《月亮代表我的心》 DB 02H,82HDB 16H,32H,54H,02H,52H DB 0A6H,32H,54H,02H,52H DB 64H,74H,0B6H,64H DB 52H,5CH,32H,22HDB 16H,12H,14H,32H,22H DB 16H,12H,14H,22H,32H DB 26H,12H,94H,22H,32H DB 2CHDB 32H,52HDB 36H,22H,14H,54H DB 0ACH,92H,0A2H DB 96H,0A2H,96H,82H DB 3CH,54HDB 36H,22H,14H,54H DB 0ACH,92H,0A2HDB 16H,12H,14H,22H,32H DB 2CH,02H,82HDB 16H,32H,56H,12H DB 0A6H,32H,56H,52H DB 66H,72H,0B6H,62H DB 62H,52H,58H,32H,22H DB 16H,12H,14H,32H,22H DB 16H,12H,14H,22H,32H DB 26H,92H,0A4H,12H,22H DB 1CH DB 00TABLE30: ; 第三首《大海》 DB82H,92H,12H,14H,12H,14H,92H,82H,12H,14H ,22H,14H,92H,12H,22H,24H DB22H,24H,12H,92H,22H,24H,32H,24H,32H,52H ,62H,54H,52H,64H,52H,32H DB22H,32H,22H,12H,94H,82H,92H,12H,14H,12H ,14H,94H,1CH DB82H,92H,12H,14H,12H,14H,92H,82H,12H,14H ,22H,14H,92H,12H,22H,24H DB22H,24H,12H,92H,22H,24H,32H,24H,32H,52H ,62H,54H,52H,64H,52H,32H DB22H,32H,22H,12H,94H,82H,92H,12H,14H,12H ,14H,22H,12H,1CH,32H,52H DB62H,64H,62H,64H,0B2H,62H,52H,54H,62H,54H,32H,22H DB12H,14H,12H,14H,24H,3CH,32H,22H,12H,14H ,12H,14H,0B2H,62H,52H,54H,62H,54H,32H,5152H DB66H,0B2H,0B4H,62H,52H,5CH,32H,52H,62H,64H,62H,64H,0B2H,62H,52H,54H DB62H,54H,32H,22H,12H,14H,12H,14H,54H,3CH ,32H,22H,12H,14H,12H,14H,22H,32H DB52H,54H,32H,54H,32H,52H,6FH,04H,02H,92H ,32H,24H,12H,1FH DB 00TABLE40: ;第四首《彩云追月》 DB86H,92H,12H,22H,32H,52H,68H,63H,52H,34H ,62H,0B2H,0B2H,62H,51H,61H,51H,31H,54H DB62H,0B2H,0B2H,62H,52H,32H,52H,52H,51H,61H,51H,31H,34H,52H,62H,74H,32H,52H,52H,32HDB 21H,31H,21H,11H,24H DB32H,52H,52H,32H,22H,12H,24H,32H,52H,52H ,32H,62H,52H,61H,51HDB 31H,21H,21H,31H,21H,11H,1CH DB21H,31H,22H,23H,31H,21H,18H,02H,0B2H,0B CH,0B4H,72H,61H,51H,72H,61H DB 71H,61H,51H,61H,71H,61H,6FH DB86H,94H,12H,22H,32H,52H,64H,62H,51H,31H ,52H,21H,31H,21H,33H,62H,0B2H,0B2H,62H DB 51H,61H,51H,31H,54H DB62H,0B2H,72H,61H,51H,51H,61H,51H,31H,54H,61H,0B2H,72H,61H,51H,51H,61H,51H,31H,32HDB 21H,11H,32H,51H,61H,54H DB02H,32H,24H,32H,52H,52H,32H,22H,31H,21H ,11H,24H,32H,52H,62H,0B2H,72H,61H,51H,61H DB 51H,31H,32H,52H,52H,32H,62H DB51H,31H,31H,21H,11H,91H,23H,31H,21H,1CH ,12H,24H,32H,62H,51H,31H,34H,0B4H,72H DB 61H,51H,63H,71H,64H DB0B2H,54H,72H,62H,71H,61H,54H,61H,51H,31H,21H,34H,73H,61H,54H,22H,32H,52H,22H,36H DB52H,62H,61H,31H,32H,21H,11H,21H,11H,91H ,81H DB94H,52H,62H,52H,42H,32H,22H,32H,52H,0B4H,74H,64H,52H,61H,51H,41H,5CH,02H,52H,0B4H,74HDB 63H,51H,61H,51H,31H,21H DB 00TABLE50: ;第五首《看我七十二变》 DB 0D4H,84H,94H,82H,92HDB 12H,22H,82H,92H,02H,92H,82H,0D2H DB 82H,92H,14H,84H,02H,0D1H,0D1H DB 0C2H,0D2H,84H,0D2H,0D2H,82H,82H DB 84H,82H,82H,94H,82H,0D2HDB 82H,82H,82H,92H,02H,82H,82H,0D2H DB 0C4H,84H,0D4H,92H,0D2H DB 82H,0D2H,82H,92H,98H DB 04H,94H,88H DB 04H,94H,88H DB 04H,94H,88HDB 04H,94H,88H,04HDB 32H,32H,22H,12H,02H,92H,12H,92H DB 32H,32H,22H,12H,02H,92H,12H,92H DB 32H,32H,22H,12H,02H,92H,12H,22H DB 54H,44H,34H,12H,22HDB 34H,22H,12H,02H,92H,12H,92HDB 32H,32H,22H,12H,02H,92H,12H,92H DB 32H,32H,22H,12H,02H,92H,12H,22H DB 54H,44H,32H,22H,12H,92H DB 00 END16第5章 仿真及调试5.1 调试:(1)按照第2章设计的硬件电路在proteus 软件内画好电路图。

相关文档
最新文档