基于单片机的电子琴设计
基于51单片机的电子琴设计
以下内容根据各专业特点自行确定(如条件、资料、内容、任务、进度安排及要求等):1.设计主要内容及要求基于单片机的简易电子琴的设计。
1)简要说明用单片机设计出一个简易电子琴。
此电子琴完成产生中音Do到高音Do的8个音阶功能。
2)任务和要求设计一个简易电子琴,该电子琴基本功能:通过本系统的扬声器产生从中音Do到高音Do的8个音阶。
实现的具体要求:首先设置8个按键分别连到单片机的I/O口,通过按键按下改变单片机I/O口的电平,其次根据单片机检测到I/O口上的信号,在某个I/O 引脚输出不同频率的方波,最后此方波最后输出到扬声器中。
对于此题目学生首先研究不同音阶所对应的输出频率,根据所研究的内容,完成延时模块的设计、按键检测模块和波形输出模块的设计。
3)训练目标熟练使用Keil开发环境,具备使用C语言编写单片机程序的初步能力,通过完成本课题的软硬件设计,使同学们了解单片机实例的整个开发流程。
2.对设计说明书、论文撰写内容、格式、字数的要求1)课程设计说明书(论文)是体现和总结课程设计成果的载体,一般不应少于3000字。
2)学生应撰写的内容为:中文摘要和关键词、目录、正文、参考文献等。
课程设计说明书(论文)的结构及各部分内容要求可参照《沈阳工程学院毕业设计(论文)撰写规范》执行。
应做到文理通顺,内容正确完整,书写工整,装订整齐。
3)说明书(论文)手写或打印均可。
手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时按《沈阳工程学院毕业设计(论文)撰写规范》的要求进行打印。
4)课程设计说明书(论文)装订顺序为:封面、任务书、成绩评审意见表、中文摘要和关键词、目录、正文、参考文献。
3.时间进度安排;III摘要随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。
我们都会抽空欣赏世界名曲,作为对精神的洗礼。
本论文设计一个基于单片机的简易电子琴。
我们对于电子琴如何实现其功能,如声音强弱控制、节拍器、自动放音功能等等也很好奇。
基于单片机的电子琴设计
摘要电子琴又名键盘乐器,是现代电子科技与音乐结合的产物。
基于单片机技术的电子琴由微处理器基本应用单元、键盘、音阶指示、音频放大、工作电源等五部分构成。
AT89C51单片机形成所期望的音阶频率信号;4×4矩阵式键盘产生音阶控制信号;八个发光二极管来以实时显示不同频率的音阶变化;LM386音频放大器以驱动扬声器发声。
采用软件Protel 进行原理图设计,并用软件Keil编写装置程序源代码,利用Proteus软件进行功能仿真,即每按一个按键,产生对应的音阶以及相对应的二极管亮。
通过仿真分析,验证了设计的可行性,达到了课题设计要求。
系统硬件电路简单,运行稳定,具有一定的实用和参考价值。
关键词电子琴;单片机;音阶指示;扬声器ABSTRACTElectronic organ is a modern electronic music technology and the product is a new type of keyboard instruments ,the main content is AT89C51 control of the core components design of a electronic organ. 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 and other core modules. In the main control module has 16 keys and a speaker. Matrix keyboard produce scale control signals Leds to show different frequency of scales using Protel to design the schematic diagram and Keil to Write device source code ,at last the simulation is conducted in preteus conduct..its simple hardware circuits, software functions, reliability of control system and high cost performance is its advantages. It also has certain practical and reference value.Keywords electronic organ AT89C51 musical scale instructions sounder目录摘要 (I)ABSTRACT (II)第一章电子琴总体设计方案 (4)1.1基于RC正弦波振荡电路的电子琴设计 (4)1.2基于51单片机电子琴方案设计 (4)1.3方案比较 (5)第二章基于51单片机电子琴硬件电路设计 (6)2.1 AT89C51基本应用单元 (6)2.1.1系统的时钟电路 (6)2.1.2复位电路 (6)2.2 矩阵式键盘 (7)2.2.1 矩阵式键盘的按键识别方法 (7)2.2.2 键盘接口必须具有的4个基本功能。
基于51单片机的简易电子琴的设计与实现
基于51单片机的简易电子琴设计一、设计任务及要求1、在该简易电子琴设计中,设置8个按键,8个按键能够发出do、re、mi、fa、sol、la、si、Do 8个音阶。
二、设计三个拨码开关,三个拨码开关能够调剂高音、中音、低音三个音调。
3、画出电路的整体方框图和电路原理图。
二、设计原理音乐由许多不同的音阶组成的,而每一个音阶对应着不同的频率,如此,咱们就能够够利用不同的频率组合,组成咱们想要的音乐。
简易电子琴是摁下拨码开关时,单片机AT89C51会发作声音,声音从端口通过LM386,通过放大以后传入喇叭。
声音主若是通过单片机4×4矩阵键盘的按键产生,那个地址只用到8个按键来产生高中低的8个音阶,来产生do re mi fa sol la si Do。
下面是计数初值:中1DO 523 0956 64580 #4FA# 1480 338 65198#1DO# 554 0903 64633 高5SO 1568 319 65217中2RE 578 0842 64684 #5SO# 1661 292 65235#2RE# 622 0804 64732 高6LA 1760 284 65252中3MI 659 0759 64777 #6LA# 1865 268 65268中4FA 698 0716 64820 高7SI 1976 253 65283三、设计方案本次设计的电子琴主若是利用AT89C51单片机为核心操纵元件,同时还包括键盘、拨码开关和扬声器等操纵模块,由键盘选择八个音阶。
一、电路原理图的整体设计整体电路需要c51单片机一片,音乐按键及喇叭等外围电路,要进行音调操纵和音频放大,设计好的电路图如以下图所示:2、键盘操纵模块的设计矩阵按键部份由8个轻触按键依照2行4列排列,连接到P3端口。
将行线所接的单片机的I/O口作为输出端,而列线所接的I/O,那么作为输入。
行线输出是低电平,有健按下,那么输入线就会被拉低,如此,通过读输入线的状态就可得知是不是有键按下。
基于单片机的电子琴设计
基于单片机的电子琴设计一、引言二、总体设计方案(一)设计目标设计一款基于单片机的电子琴,能够实现基本的音符演奏、音色切换、节奏控制等功能,并且具有良好的音质和稳定性。
(二)系统组成本电子琴系统主要由单片机控制模块、键盘输入模块、音频输出模块、显示模块和电源模块等部分组成。
1、单片机控制模块选用 STM32 系列单片机作为控制核心,负责处理键盘输入信号、生成音频信号、控制显示等功能。
2、键盘输入模块采用矩阵键盘,通过扫描键盘获取用户的按键操作,将其转换为对应的音符编码发送给单片机。
3、音频输出模块使用DAC 芯片将单片机生成的数字音频信号转换为模拟音频信号,再通过放大器和扬声器输出声音。
4、显示模块采用液晶显示屏,用于显示当前的演奏状态、音色选择、节奏模式等信息。
5、电源模块为整个系统提供稳定的电源供应,可采用电池供电或外接电源适配器。
三、硬件设计(一)单片机最小系统STM32 单片机的最小系统包括时钟电路、复位电路和电源电路。
时钟电路为单片机提供工作时钟,复位电路用于系统初始化,电源电路为单片机提供稳定的电源。
(二)键盘电路矩阵键盘由行线和列线组成,通过逐行扫描的方式检测按键状态。
将键盘的行线和列线分别连接到单片机的 GPIO 引脚,通过编程实现键盘扫描和按键识别。
(三)音频输出电路选用高性能的 DAC 芯片,如 PCM1794,将单片机输出的数字音频信号转换为模拟音频信号。
为了提高音频输出的质量,还需要添加放大器和滤波电路,以增强信号的功率和去除噪声。
(四)显示电路液晶显示屏通过 SPI 接口或 I2C 接口与单片机连接,单片机通过发送指令和数据来控制显示屏的显示内容。
(五)电源电路根据系统的工作电压和电流需求,选择合适的电源芯片,如LM7805 等,将输入电源转换为所需的电压,并通过滤波电容等元件提高电源的稳定性。
四、软件设计(一)主程序流程主程序首先进行系统初始化,包括单片机初始化、键盘初始化、音频输出初始化、显示初始化等。
基于单片机的微型电子琴建模
基于单片机的微型电子琴建模引言随着科技的不断发展,电子琴已经成为了音乐爱好者们的最爱之一。
传统的电子琴大多采用单片机和其他电子元件来实现各种音效和功能,但是这种电子琴通常比较大而且价格昂贵。
为了满足人们对小巧便携且质量优良的需求,我们打算通过使用单片机来设计一种微型电子琴。
本文将介绍该微型电子琴的设计思路、具体实现方法以及未来的发展方向。
一、微型电子琴的设计思路1. 硬件设计我们打算采用STM32F103C8T6单片机作为微型电子琴的核心处理器。
这款单片机具有较高的性能和丰富的外设资源,能够满足我们对音乐输出和按键输入的需求。
我们还会使用一块音频解码芯片来解码各种音色样本,并通过单片机进行控制和输出。
在按键方面,我们打算使用一组多功能按键来实现琴键的弹奏和功能的选择。
为了提高音质和音量,我们还会加入一组功放电路和扬声器。
2. 软件设计在软件设计方面,我们将会使用C语言来编写单片机的驱动程序和控制程序。
通过对按键输入的检测和音频解码芯片的控制,我们能够实现琴键的弹奏和音色的切换。
我们还会对整个系统进行优化,以确保微型电子琴的稳定性和响应速度,并且可以支持各种音乐演奏模式。
二、微型电子琴的具体实现方法1. 硬件实现我们需要搭建一套原型系统来验证我们的设计方案。
我们会使用原型板来连接单片机、音频解码芯片、按键和功放电路,并且通过软件调试来保证各部分的正常工作。
一旦原型系统稳定运行,我们就可以进行电路的PCB设计和制作,以便于后期的小批量生产。
在PCB设计中,我们需要注意每个电子元件的布局和连线,以减少信号干扰和提高整个系统的可靠性。
2. 软件实现在软件实现方面,我们需要编写音频解码程序、按键检测程序和功放控制程序。
通过音频解码程序,我们能够实现各种音色样本的解码和播放,以满足不同演奏需求。
通过按键检测程序,我们能够实现琴键的弹奏和功能的选择。
通过功放控制程序,我们能够控制扬声器的音量和音质,以提供更好的音乐体验。
单片机电子琴设计
2
硬件设计
NO作为微控制器。Arduino UNO具 有丰富的IO端口和内置的音频放大器,非常适合用于电 子琴设计
硬件设计
2. 按键矩阵
为了方便用户操作,本设计采用一个4x4的按键矩阵,共有16个按键,分别代表不同的音 符
3. 音频放大器
由于Arduino UNO的 输出功率较小,不足 以驱动扬声器产生清 晰的音符,因此需要 使用一个音频放大器 来放大音频信号。本 设计选用一个内置音 频放大器的芯片,如 LM386
-
感谢倾听
硬件设计
硬件设计
4. 扬声器
为了产生美妙的音乐 ,本设计选用一个8 欧姆、0.5瓦的扬声 器
硬件设计
5. 电路图
请参考以下电路图
3
软件设计
1. 代码框架
本设计的代码框架如下
软件设计
软件设计
2. 按键检测和音符播放
在loop()函数中,我们使用一个switch语句来检测按键事件,并根据不同的按键触发不同 的音符。为了简化代码,我们使用一个库来播放音符。这个库可以是Arduino内置的tone 库或者其他第三方库。以下是示例代码
单片机电子琴设 计
-
引言 硬件设计 软件设计
1
引言
引言
单片机电子琴是一种基 于微控制器的音乐设备 ,能够通过按键触发不 同的音符,从而演奏出 美妙的音乐
这种设计具有简单、便 携、节能等优点,因此 广泛应用于音乐教育、 儿童玩具等领域
本文将介绍一种基于 Arduino单片机的电子 琴设计,包括硬件和软 件部分
基于单片机的简易电子琴的设计正文
第一章设计要求1.1 基本要求1.设计一简易电子琴,要求能够发出1,2,3,4,5,6,7等7个音符,具有一般演奏功能。
2.具有自动重载歌曲功能1.2 电子琴的基本介绍1.按键模块:利用按键是否按下控制P口的是否为高低电平,从而驱动单片机系统发出相应频率的响声。
2.轰鸣器模块:利用P口与放大器连接,从而放大信号,放大的信号通过轰鸣器发出相应频率的声音。
3.自动重载模块:利用P口与按键连接,通过高低电平判断按键是否按下,从而实现将频率加载到定时器TH0和TL0。
1.3 电子琴设计原理电子琴由以下几个部件组成:单片机89C51、电源、按钮、音频放大模块、复位模块,数码管,LED显示模块、晶振模块。
第二章系统组成及工作原理2.1 系统组成框图简易电子琴由独立按键模块、自动加载音乐模块、轰鸣器模块、复位模块等几部分功能模块组成,每一个模块完成特定的模块功能。
在把每个模块有机的结合在一起组成一个单片机系统。
单片机系统框图如2-1所示:图2-1 单片机系统框图2.2 工作原理及分析一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。
若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。
利用定时器计时半周期时间,每当计时终止后就将P0.0反相,然后重复计时再反相。
就可在P0.0引脚上得到此频率的脉冲。
利用AT89S51的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T=1/523=1912μs,因此只要令计数器计时956μs/1μs=956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。
基于单片机的简易电子琴设计(汇编语言)
摘要电子琴是现代电子科技与音乐结合的产物。
电子琴是一种新型的键盘乐器,采用半导体集成电路,对乐音信号进行放大,通过扬声器产生音响.由音色,自动伴奏,自动和弦三大部分组成.它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。
本文的主要内容是用AT89C51单片机为核心控制元件,设计一个电子琴。
以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有8个按键和扬声器。
本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。
关键词:单片机,键盘,扬声器,电子琴AbstractElectronic organ is a modern electronic music technology 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 people's 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 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 performance is its advantages. It also has certain practical and reference value.Key words : SCM keyboard speaker electronic organ目录引言 (1)第一章总体方案论证与设计 (3)1.1 控制模块 (3)1.2 播放模块 (4)1.2 按键控制模块 (4)第二章系统的软件设计 (7)2.1 音乐弹奏原理 (7)2.2 音乐弹奏设计 (7)2.3 软件流程图 (8)2.4 上位机软件及程序 (9)第三章系统调试与测试结果分析 (18)3.1 使用的仪器及软件 (18)3.2 系统调试 (18)3.2.1 硬件调试 (18)3.2.2 软件调试 (19)3.2.3 硬件软件联调 (20)3.3 测试结果 (20)总结 (21)致谢 ................................................................................................................ 错误!未定义书签。
基于单片机的电子琴设计
基于单片机的电子琴设计电子琴是一种常见的乐器,通过电子元件和技术实现各种声音效果和音调的变化。
基于单片机的电子琴设计,使用单片机作为核心控制芯片,可以实现各种音色的生成、乐曲演奏和音调调整等功能。
一、基本原理1.音源生成:通过单片机的计算和控制,生成各种音色的数字波形信号。
可以使用PWM波形发生器,通过控制占空比实现不同音调的发声。
2.按键输入:通过按键进行音符的选择和演奏,按键可以通过矩阵键盘或编码器等方式实现,通过单片机的GPIO口读取按键输入信号。
3.音量控制:通过调节音量电阻或数字控制器,调整输出音量大小。
4.音色调整:通过改变生成波形的参数和算法,实现不同音色效果的切换和调整。
二、硬件设计1.单片机:选择合适的单片机,如STC89C52或ATmega328P等,作为控制核心。
2.键盘:选择合适的键盘结构和按键数量,如矩阵键盘或编码器。
3.音源:可以选择合适的音源模块或芯片,如AD9833,用于生成各种音色的波形信号。
4.音量控制:将数字音频信号通过运放进行放大,通过音量电位器或数字控制器调节输出音量大小。
5.音箱:选择合适的音箱,用于放大和放出音频信号。
三、软件设计1.按键扫描:通过单片机的GPIO口读取按键输入信号,实现按键的扫描和检测。
2.音符和音调处理:将按键输入映射为相应的音符号,通过生成不同的波形并控制频率实现不同音调的发声。
3.音量控制:通过改变音源模块的输出幅度或控制运放的增益,实现音量的调节。
4.音色调整:通过改变生成音色的参数和算法,实现不同音色效果的切换和调整。
5.乐曲演奏:通过编写相应的乐曲和音符的编码和播放算法,实现各种乐曲的演奏功能。
6.界面显示:可以通过液晶显示屏或LED显示器,实现界面的显示和操作。
四、功能扩展1.录音和播放:在单片机上添加存储模块(如SD卡或FLASH芯片),实现录音和播放功能,可以录制和回放演奏的音乐。
2.MIDI接口:添加MIDI接口,通过MIDI合成音源模块,实现与其他乐器和设备的互联。
(完整版)基于51单片机的电子琴毕业设计论文
摘要本设计是基于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 电子琴简介电子琴为键盘乐器,采用半导体集成电路,对乐音信号进行放大,通过扬声器产生音响。
电子琴有多种类型,为业余型和专业型。
使用五线谱,多为高低音双行记谱。
有时也用中音谱。
电子琴又称作电子键盘,属于电子乐器,发音音量可以自由调节。
音域较宽,和声丰富,甚至可以演奏出一个管弦乐队的效果,表现力极其丰富。
基于单片机的简易电子琴设计
基于单片机的简易电子琴设计随着科技的不断发展,人们对电子产品越来越依赖和喜爱。
其中,电子琴作为一种乐器,更是以其简便易用、能够自我演奏等特点受到了众多音乐爱好者的追捧。
在这样的背景下,基于单片机的简易电子琴的设计也逐渐成为了研究的热点。
一、设计思路电子琴主要由键盘、音源、电子音效处理电路等组成。
基于单片机的电子琴则采用了测量键盘按下与松开时间的方法,从而产生不同的频率,实现音源的输出。
设计主要包括单片机的选择、键盘的设计、显示器和音频的控制等。
二、单片机的选择单片机是电子琴各部件的控制中枢,而在众多的单片机中,AVR与Arduino等单片机最为常用。
AVR的主频高,适合高频率的应用,具有低功耗、高性能、高可靠性等特点,相较于Arduino其兼容性不如后者。
Arduino的易上手、容易编码、数据处理能力强等更适合初学者和小型应用,但其运行频率相对较低。
三、键盘的设计键盘的设计是电子琴中的十分重要的部分。
在电子琴的制作中,可以考虑采用机械键盘和触摸屏键盘等不同种类。
机械键盘的键位设计成多组形状相同的小凸起,按下按键时借助其可按性抵抗产生摁下按键的滑动感觉。
相对的,触摸屏键盘则直接采用触摸屏来实现,其轻触屏幕产生电信号而记录下按键行为。
不论哪种键盘,都需要体现“无声”、“无噪音”的特点。
四、显示器和音频的控制显示器的作用就是显示键盘所对应的音符或是指示各种操作。
音频的控制是电子琴中的另一个关键点。
基于单片机的电子琴中常使用的音频控制电路是DAC,即通过DAC将数字信号转换成模拟信号输出到扬声器中。
时序控制电路的实现能够控制不同的音符频率和音色,保证音乐的表现力。
五、组装与调试电子琴的组装与调试都是必备的过程。
在电子琴的组装中,要保证设计的完整性和正确性,能够正常地运行、使用、初始化。
在调试中,需要考虑键盘的触发状态、音乐效果的细节、等问题。
音乐效果的细节需要依赖听觉从口感、听感、声音表现、音乐艺术效果等方面进行观察、分析和把握,以提高电子琴的表现力。
基于单片机的简易电子琴电路设计
单片机课程设计任务书题目: 基于单片机的简易电子琴电路设计初始条件:简易电子琴一般具有弹奏一个自然大调7声音阶的功能。
本课程设计,要求用AT89C51等系列芯片实现控制功能,利用按键实现音符和音调的输入;两位的数码管进行被操作的按键显示;用LM386放大电路实现低音频功率放大;最后用蜂鸣器进行播放“送别”。
要求完成的主要任务:1.设计任务根据已知条件,设计并制作一个简易电子琴。
2.设计要求(1)基本要求:①具备7个按键,能够分别较准确地弹奏出1~7八个音符。
②选择电路方案,完成对确定方案电路的设计。
计算电路元件参数与元件选择、并画出总体电路原理图,阐述基本原理。
用EWB或MULTISIM软件完成仿真,之后制作出相应实物,并按规定格式写出课程设计报告书。
(2)扩展要求:(在完成基本要求的前提下,学有余力的同学可完成)①能够弹奏出至少21个音符(三个音阶)。
②能够较便捷地完成音阶的升降。
(用另外三个按键开关实现正常、升8度和降8度的切换)。
时间安排:指导教师签名:年月日基于单片机的简易电子琴控制系统设计摘要目的:本设计主要研究基于AT89C52单片机的简易电子琴设计。
方法:它是以单片机作为主控核心,设置键盘、蜂鸣器等外围器件;另外还用到一些简单器件如:两位数码管,和NPN型三极管及电阻等。
利用按键实现音符和音调的输入;两位的数码管进行被操作的按键显示;用NPN型三极管8550实现低音频功率放大;最后用蜂鸣器进行播放“送别”。
结果:本设计硬件部分主要由最小系统,按键系统模块、数码管显示模块和蜂鸣器模块组成。
其软件部分主要有主程序模块、定时中断程序、定时计数程序、显示程序。
(1)最小系统:它是单片机应用系统的设计基础。
它包括单片机的选择、时钟系统设计、复位电路设计、简单的I/O口扩展、掉电保护等。
(2)按键系统模块:本设计采用10个按键,其中7个按键用来显示7个音调,其它3个按键可以进行高低中音的切换,并自动播放已存歌曲。
基于51单片机的电子琴设计课程设计
基于51单片机的电子琴设计课程设计单片机原理》课程设计前言本课程设计旨在通过基于51单片机的电子琴设计,加深学生对单片机原理的理解和应用。
在本设计中,我们将介绍电子琴的设计要求、所用设备及软件以及总体设计方案。
随后,我们将详细介绍系统硬件设计中琴键控制电路、音频功放电路、时钟-复位电路和LED显示电路的设计。
第1章基于51单片机的电子琴设计1.1 电子琴的设计要求在电子琴的设计中,我们需要考虑琴键数量、音频输出质量、电源电压和外部接口等因素。
在本设计中,我们将采用25个琴键,保证音频输出质量和电源电压稳定,并提供外部接口以便于扩展和调试。
1.2 电子琴设计所用设备及软件在本设计中,我们将使用51单片机、琴键、音频功放、时钟、LED显示器等设备,并使用Keil C51编译器进行软件开发。
1.3 总体设计方案在总体设计方案中,我们将采用按键扫描方式实现琴键控制,使用PWM技术实现音频输出,使用外部晶振提供时钟信号,并使用LED显示器显示琴键状态。
第2章系统硬件设计2.1 琴键控制电路在琴键控制电路中,我们将采用矩阵按键扫描方式,通过51单片机的IO口进行扫描和检测。
同时,我们还将使用电容式触摸开关来实现琴键的触发。
2.2 音频功放电路在音频功放电路中,我们将采用TDA7297芯片作为功放,通过PWM技术实现音频输出,并通过滤波电路滤除杂音和谐波。
2.3 时钟-复位电路在时钟-复位电路中,我们将采用12MHz晶振作为时钟源,并使用复位电路确保系统在上电时能够正确运行。
2.4 LED显示电路在LED显示电路中,我们将采用MAX7219芯片实现LED点阵显示,并通过SPI接口与51单片机进行通信。
同时,我们还将使用CD4511芯片实现数码管显示琴键状态。
通过本课程设计,我们可以深入理解单片机原理的应用,掌握电子琴的设计和制作技术,提高自身的实践能力和创新能力。
2.5 整体电路本章将介绍电子琴的整体电路设计。
基于单片机的简易电子琴设计课程设计
湖南文理学院课程设计报告课程名称:单片机课程设计专业班级:自动化10102班17号学生姓名:肖葵指导教师:王南兰完成时间: 2013年 6 月 13 日报告成绩:湖南文理学院制摘要随着社会的发展进步,音乐逐渐成为人们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。
我们都会抽空欣赏世界名曲,作为对精神的洗礼。
本论文设计一个基于单片机的简易电子琴。
人们对于电子琴如何实现其功能,如音色选择、声音强弱控制、节拍器、自动放音功能等等也很好奇。
电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。
它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。
本文的主要内容是用AT89S52单片机为核心控制元件,设计一个电子琴。
以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。
本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。
关键词:AT89S51;音色节拍器;电子琴ABSTRACTWith the development of our society, music has become an important part of life. There’s a saying goes that people who likes music can not be an evil. During our life, we often enjoy all kinds of music in the world to baptize our spirits. This thesis has designed a simple microcontroller-based electronic key board. We are curious about the foundation of electronic keyboard, such as the choice of timber, the control of volume, the metrononme and automatic playback.The keyboard is a product of modern electronic technology combined with music, it is a new type of keyboard instruments. And it plays an important role in modern music. Single chip has a powerful control functions and flexible programming characteristics. It has converged with modern people's lives, become an irreplaceable part. The main content is AT89S51 control of the core components, Design of an electronic organ, single chip as a host to the core, with the keyboard, speakers and other core modules main control module, in the main control module has 16 keys and speakers. Stability of the system, its advantages are simple hardware circuits, software functions, control system reliability, high cost performance and have certain practical and reference value.Key words : single chip MCU keyboard speaker electronic organ目录第一章设计方案分析 (1)1.1设计背景 (1)1.2 设计任务 (1)2.1总体设计 (1)第二章电子琴总体电路图设计 (3)2.1单片机最小系统 (3)2.1.1 AT89S52简介 (3)2.1.2 时钟电路与复位电路 (7)2.2显示部分设计 (7)2.2.1数码显示方式 (7)2.2.2八位数码管的结构 (8)2.3按键模块设计 (8)2.3.1按键选取 (9)2.3.2键盘设计 (9)2.4 发音模块设计 (10)第三章程序设计 (12)3.1 系统总体功能流程图 (12)3.2 参数计算 (12)3.3判断音阶(高中低音)子程序 (14)3.4 播放子程序 (15)第四章 Proteus软件仿真 (17)4.1编程环境PROTEUS (17)4.2用PROTEUS ISIS进行硬件电路绘制 (17)4.3下载HEX文件 (19)4.4软件调试 (20)心得体会 (22)参考文献 (23)附录一原理图 (24)附录二源代码 (25)第一章设计方案分析1.1设计背景随着电子科学技术的飞速发展,电子技术正在逐渐改善着人们的学习、生活、工作,因此开发本系统希望能够给人们带来更多的生活乐趣。
基于51单片机的电子琴设计
基于51单片机的电子琴设计随着科技的不断发展,单片机技术已经成为了现代电子设备中的重要组成部分。
51单片机作为一种广泛应用的单片机系列,具有高性能、低功耗、高集成度等特点,被广泛应用于各种嵌入式系统开发中。
本文将介绍一种基于51单片机的电子琴设计。
一、系统硬件设计1、单片机选择本设计选用AT89C51单片机作为主控制器,AT89C51是一种低功耗、高性能的8位单片机,具有4K字节的可编程存储器和128字节的RAM,同时具有丰富的外设接口,如UART、SPI、I2C等。
2、电子琴设计电子琴采用8×8 LED点阵作为输出设备,通过单片机控制点阵的亮灭状态来展示音乐波形。
具体实现方式是将音频信号通过一个运放放大器放大,然后将其输入到LED点阵中,通过控制点阵的亮灭状态来展示音乐的波形。
3、存储模块设计为了实现电子琴曲目的存储和播放,本设计选用了一块AT24C02 EEPROM芯片作为存储设备。
AT24C02是一种串行E2PROM存储器,容量为256字节,可以通过I2C总线与单片机进行通信。
将曲目信息存储在AT24C02中,可以实现曲目的存储和播放功能。
4、按键模块设计本设计采用4×4矩阵键盘作为输入设备,通过扫描按键状态来实现音符的选择和节奏控制。
矩阵键盘的行线连接到单片机的P1口,列线连接到P2口,通过检测行列组合的变化来确定按下的键位。
二、系统软件设计1、音符解码本设计采用MIDI音符编码方式来存储和播放曲目信息。
在解码过程中,根据音符的频率和持续时间计算出对应的音高和节奏信息,然后将其用于驱动电子琴的输出设备展示音乐的波形。
2、演奏控制为了实现节奏控制,本设计采用了一种基于时间间隔的演奏方式。
在演奏过程中,单片机根据设定的节奏间隔时间来触发音符输出,从而实现对节奏的控制。
同时,为了实现曲目的停止和播放功能,我们需要在软件中加入相应的控制逻辑。
3、存储和播放在软件设计中,我们需要实现将曲目信息存储到AT24C02中以及从AT24C02中读取曲目信息的功能。
毕业论文基于单片机STC52的电子琴设计
毕业论文基于单片机STC52的电子琴设计电子琴是一种能够模拟真实乐器声音的电子音乐乐器,它使用数字信号处理技术来模拟不同音调和音色的声音。
在这篇毕业论文中,我们将基于STC52单片机设计一个电子琴。
首先,我们需要了解电子琴的基本原理和工作方式。
电子琴主要由白键和黑键组成,每个键对应一个音调。
当用户按下一些键时,电子琴会发出相应音调的声音。
为了模拟各种音调和音色,电子琴还需要使用合成器来生成声音波形。
在本设计中,我们将使用STC52单片机作为主控芯片。
这款单片机具有强大的计算和处理能力,并且易于编程和控制。
我们将使用C语言编程来实现电子琴的功能。
首先,我们需要设计一个按键矩阵来接收用户的按键输入。
按键矩阵将通过电子琴的键盘连接到STC52单片机的I/O口。
当用户按下一些键时,相应的I/O口将被触发,并且可以通过编程来检测并响应按键动作。
接下来,我们将设计一个音频输出电路来输出电子琴的声音。
音频输出电路将连接到STC52单片机的PWM输出口。
通过调节PWM输出的频率和占空比,我们可以生成不同频率和音量的声音波形。
然后,我们需要设计一个合成器来生成不同音调和音色的声音波形。
合成器可以通过不同的算法和参数来模拟不同乐器的声音。
我们可以使用数字信号处理技术,如傅里叶变换和滤波器设计,来实现合成器的功能。
最后,我们需要编写软件程序来控制和管理电子琴的功能。
我们可以使用STC52单片机的开发环境和编程工具来编写程序。
程序需要实现按键检测、声音生成和处理等功能。
通过编程,我们可以实现不同音调、音色和演奏效果的电子琴。
在设计实现过程中,我们还需要考虑到电子琴的硬件和电路布局、电源供应、按键和音频接口等方面的问题。
同时,我们还需要进行测试和调试,以保证电子琴的正常工作和良好的声音质量。
通过以上的设计和实现,我们可以制作一个基于STC52单片机的电子琴。
这款电子琴具有丰富的音调和音色选择,可以模拟不同乐器的声音,同时具有简单易用的操作和良好的音质。
基于单片机的电子琴设计资料
基于单片机的电子琴设计资料电子琴是一种电子乐器,通过电子回路和单片机控制,可以模拟出多种乐器的声音。
下面是一个基于单片机的电子琴设计资料,包括硬件设计和软件编程。
硬件设计:1.材料准备:选择一个适当大小的键盘,通常有8个到16个键位,每个键位可以连接到一个按钮开关。
2.连接按钮开关:将按钮开关连接到单片机的GPIO引脚上,通过读取引脚状态来检测按键的按下与释放。
3.音频输出:将单片机的数字音频输出连接到扬声器上,以发出相应的声音。
4.电源供应:提供适当的电源电压和电流给单片机和其他电子元件使用。
软件编程:1.初始化:在程序开始时,初始化单片机的GPIO引脚以及其他必要的外设,设置合适的时钟频率和中断设置。
2.按键扫描:通过循环遍历GPIO引脚,检测按钮开关的状态。
当检测到按键按下时,记录下按键对应的音符。
3.声音发生器:根据按键记录的音符,生成相应的音频信号。
可以使用一组预设的音符频率和振幅值,或者使用数学公式生成声音波形。
4.声音输出:将生成的音频信号发送到数字音频输出引脚,输出到扬声器上。
5.多音同步:为了更好的音乐体验,可以通过增加多音同步功能,使得按下多个按键时可以同时发出多个音符。
设计注意事项:1.硬件连接:确保正确连接按钮开关、声音输出和电源供应等元件,避免短路或其他电路问题。
2.音频信号处理:可以通过数字信号处理(DSP)算法对音频信号进行增强、滤波等处理,提高音质和音效。
3.功耗优化:在编程时,可以考虑使用低功耗模式以延长电子琴的电池寿命。
4.隔音材质:适当在琴身上加入隔音材质,减少按键和扬声器震动传递到外部的噪音。
总结:基于单片机的电子琴设计包括硬件连接和软件编程两个方面,硬件连接主要涉及键盘、按钮开关、扬声器和电源供应等元件的连接,软件编程则负责按键扫描、音频发生和音频输出等功能。
在设计过程中需注意硬件连接的正确性和优化声音效果,使得电子琴能够发出优美的音乐。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子琴设计摘要:本设计是用AT89S52单片机为核心控制元件,设计一个电子琴。
以单片机作为主控核心,与键盘、扬声器、LED显示器等模块组成核心主控制模块。
在主控模块上设有8个按键,其中7个按键控制7个音符,而1个作为功能转换键使用,具有手动随意弹奏和自动播放乐曲的功能。
本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。
关键词:AT89C52单片机 LED显示器扬声器 1×8矩阵键盘 7个音符自动播放乐曲1 引言电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。
目前市场上各种品牌、型号的电子琴有上百种,由几十块的玩具电子琴到几百,几千的学习、演奏用琴真是琳琅满目,电子琴能够模仿各种音色和具有自动伴奏功能,这些是电子琴最基本的特征。
档次的高低无非是音色模仿的是否逼真,自动伴奏设计的是否丰富,或者增加了其他制作,编曲功能的。
本设计主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴系统硬件组成。
利用单片机产生不同频率来获得我们要求的7个音符,最终可随意弹奏想要表达的音乐。
并且本设计分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。
一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。
2 总体设计方案2.1 设计思路2.1.1 从系统实现的功能上来看,电子琴的设计主要分为手动弹奏乐曲和自动播放音乐两大部分组成。
手动弹奏乐曲是根据具体的硬件键盘设置了7个音符按键和1个功能转换键,自动播放音乐是在单片机的存储器中通过软件编程的方法放置音乐代码和相关播放程序来实现。
2.1.2 从系统硬件结构上来看,主要使用到52系列单片机、矩阵1×8键输入电路、LED 数码管显示电路、扬声器以及电源电路等等。
将这些硬件电路有机地结合起来使之满足电子琴设计的基本硬件要求。
2.1.3 从系统软件设计角度来看,将电子琴的设计采用程序模块化设计方法,将程序分为主程序、键盘扫描程序模块、数码显示模块、转换控制模块、音乐产生模块等等。
此外,采用程序设计思想,将中断定时方式与外部按键查询方式相结合,实现手动弹奏乐曲到自动播放音乐的切换。
2.1.4 从音乐产生原理方面来看,通过控制单片机的定时器的定时时间产生不同频率的音频脉冲,经放大后驱动扬声器发出不同音乐的声音。
用软件延时来控制发音时间的长短,控制节拍。
把音乐的音符和相应的节拍变换为定时常数和延时常数,作为数据表格存放在程序存储器中,由程序查表得到定时常数和延时常数,分别用来控制定时器产生的脉冲频率和发出音频脉冲的持续时间。
因此,我们可以综合上述的不同角度的方案设计原理,主要从软件和硬件两部分进行有计划有步骤的系统分析与设计,最终确立总体的设计方案。
方案确立1、手动弹奏乐曲和自动播放音乐用非编码的矩阵键盘来实现,其中包括数字键和功能键,功能键主要是将手动弹奏模块转换到自动播放乐曲模块。
手动弹奏乐曲中7个键分别设置不同的7个音符,然后通过功能键可实现手动弹奏乐曲到播放乐曲之间的切换。
2、一位LED数码管显示当前工作状态,将按下的键值送入显示,并一一对应各个音符。
采用动态扫描输出。
3、软件的设计主要包括矩形键盘键值的读取、LED动态扫描输出程序、手动弹奏乐曲程序和音乐自动播放程序。
4、此次程序设计主要分为两大块:手动弹奏乐曲程序和自动播放程序。
两者之间用功能转换程序对其进行结合,并实现各种不同功能的控制。
2.2 设计方框图基于单片机系统的电子琴的基本结构如图(1)所示图(1)3 设计原理分析3.1演奏音乐原理通过控制单片机定时器的定时时间产生不同频率的音频脉冲,经放大后驱动蜂鸣器发出不同音节的声音。
用软件延时来控制发音时间的长短,控制节拍。
把乐谱的音符和相应的节拍变换为定时常数和延时常数,作为数据表格存放在存储器中,由程序到定时常数和延时常数,分别用来控制定时器产生的脉冲频率和发出该音频脉冲的持续时间。
单片机晶振频率为12MHZ时,乐曲中的音符、频率及定时常数之间的对应关系可制成表格。
本次设计中,定时常数是有16定时器T0根据不同的音符,装入不同的初值实现延时的,而延时常数是在自动播放音乐部分使用,控制不同音符的节拍,其延时常数是通过16位定时器T1实现的。
根据设计要求给出的各音符频率,我们只需要的各音符频率与计数值T的关系如表(1)所示表(1): C调各音符频率与计数值T的关系音符频率(Hz)半周期(ms)简谱码T值定时值(H)简谱码T值定时值(D)1 Do262 1.90F894H626282 Re294 1.70F95CH638353 Mi330 1.51FA1AH640214 Fa349 1.43FA6AH641035 So392 1.28FB00H642606 La440 1.14FB8CH644007 Si494 1.01FC0EH645243.2 键盘扫描原理先将1×8矩阵键盘的行(P2.0)和列(P1口)全部置为高电平,然后再逐行置为低电平,当有键按下时P1口的值会发生相应的改变,通过与给定数的比较,判定是否有键按下和是否键已松开。
并给定列号并保存,根据所给的列号的值,一方面通过P0口给LED送入确定好的段码数值,从而相对应地在LED上显示音符数字,另一方面从TABLE表中取出相应的值,给此时作为16位定时器的T0装入初值,不同的音符给T0装入的初值不同,即定时器的定时时间将不相同,将产生不同频率的音频脉冲,转换成声音播出的频率也将不同,从而实现7个不同的音符。
同时,通过示波器可查看P3.7的音频输出方波。
3.3 硬件电路设计分析因为AT89CXX系列与MCS-51系列单片机相比,有两大优势:第一,片内程序存储器采用闪速存储器,使程序的写入更方便;第二,提供了更小尺寸的芯片,使整个硬件电路的体积更小。
它以较小的体积、良好的性能价格比倍受青睐。
本次综合实验设计采用89C52单片机。
3.3.1 按键模块的设计如图(2)所示为1×8矩阵键盘模块,其行接P2.0口,其列逐一与P1口相接图(2)因为不同的音符对应的频率是不同的,当按到不同的按键,发出的声音不一样,所以其产生的方波频率信号也会不一样,如下列7个小图①~⑦对应着7个不同音符的方波频率信号。
图① 1 Do 图② 2 Re图③ 3 Mi 图④ 4 Fa图⑤ 5 So 图⑥ 6 La图⑦ 7 Si3.3.2LED数码管显示模块的设计如图(3)所示,为LED数码显示模块电路的设计部分图(3) 一位共阳数码管本系统用单片机的P0口的P0.0~P0.6来控制LED显示器的数字显示。
当有7个音符按键1~7中有被按下,LED数码管将对应显示出该音符的数字,从而可以通过手动和眼看来确定所按的是哪个音符,应该发出哪个音符的声音。
而最后一个功能转换键一旦被按下,程序将会调用倒计3秒子程序,LED数码管将从3开始倒数到0,紧接着进入自动播放音乐子程序,播放程序中通过表格数据形式存放在ROM的音乐代码而形成的乐曲3.3.3扬声器模块的设计如图(4)所示为扬声器模块电路图(4) 扬声器模块电路电磁式蜂鸣器由振荡器、电磁线圈、磁铁振动膜片及外壳等组成。
接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。
振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
本设计的蜂鸣器通过驱动电路与单片机的P3.7连接,单片机就可以通过P3.7的输出信号频率就行控制。
令外,通过示波器接到P3.7可方便我们观察波形。
3.3.4复位和晶振等其他附属部分的电路设计如图(5)所示,为复位和晶振等其他附属部分的电路图(5) 复位和晶振等其他附属部分的电路XTAL1、XTAL2分别是系统时钟信号f osc的输入和输出端。
晶振电路的设计可以两个电容与一个晶振即可,用来产生一个约等于12MHZ的稳定的频率。
复位是单片机的初始化操作,其作用是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。
本系统采用上电与按键复位电路,为了防止干扰串扰复位端,所以再接一个去耦电容。
4 实验数据1、利用AT89C52的内部定时器T0使其工作在方式1的定时方式下,改变计数值TH0及TL0以产生不同频率的方法产生不同音符。
计数脉冲值与频率的关系式是:N=fi÷2÷fr式中,N是计数值,fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz),fr是想要产生的频率。
其计数初值T的求法如下:T=65536-N=65536-fi÷2÷fr 实验中的K=65536,fi=1MHz,根据设计要求中给出的音阶频率表,可求出各自的计数初值。
T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr=65536-500000/fr因此,可以通过计算求得各音阶的简谱码T值如下:1 Do的T=65536-500000/262.1=636282 Re的T=65536-500000/293.7=638363 Mi的T=65536-500000/329.6=640214 Fa的T=65536-500000/349.2=641045 So的T=65536-500000/392.0=642616 La的T=65536-500000/440.0=644007 Si的T=65536-500000/493.9=64524相应求得在要发出不同音符时先给定时器T0装入的初值如下表:5 结束语在这一周里,一有空余时间都把时间花在本次实验。
其过程很艰苦,有时候做到深夜,但收获是颇多。
一开始拿到题目,关于不同频率的音符,我就知道肯定需要用到定时中断来实现,可是自己学习的进度很慢,大多数时间都是自学。
不过后来用大量时间去细看每一章节,做起实验来就容易多了。
本次设计性实验让我无论是在硬件还是软件方面都有了很大的提高,同时也增强了自己的信心和对学习的兴趣。
这些也是老师严格要求我们做好每一个实验的好处。
参考文献[1] 潘永雄.新编单片机原理与应用(第二版).西安电子科技大学出版社,2007[2] 杨欣.51单片机应用从零开始:清华大学出版社,2008[3] 彭伟.单片机C语言程序设计实训100例——基于8051+proteus仿真.电子工业出版社,2010附录1:总体电路图附录2:程序流程图设计附录3:源程序代码KEYBUF EQU 30HSTH0 EQU 31HSTL0 EQU 32HTEMP EQU 33HSPK EQU P3.7 ; 发声器所在端口ORG 0000HLJMP STARTORG 000BHLJMP INT_T0 ;定时器0放置弹奏乐曲程序ORG 001BHLJMP TIME0START:MOV TMOD,#11H ;设置定时器的工作方式,定时器T0和T1都是方式1,作为16为定时计数器使用(定时方式)SETB ET0 ;开各中断开关SETB ET1SETB EA ;开放中断总允许和源允许ACALL SAOMIAO ;进入手动弹奏程序SJMP START;********手动弹奏程序********SAOMIAO:MOV P2,#0FFH ;手动弹奏程序MOV P1,#0FFH ;先将键盘的行和列全部置为高电平,然后再逐行置为低电平CLR P2.0MOV A,P1XRL A,0FFHCJNE A,#00H,NEQ ;判断有没键按下LJMP NOKEYS ;没有按键按下即跳转到NOKEYSNEQ: ;有按键按下即跳到NEQLCALL DELY10MS ;延时10msMOV A,P1 ;消除扰动和干扰XRL A,0FFHCJNE A,#00H,NEQ1LJMP NOKEYSNEQ1:MOV A,P1 ;判断是否按下#0键CJNE A,#0FEH,NK1 ;按下#0键即顺序执行程序,否则跳到NK1检查下一键位 MOV KEYBUF,#0 ;保存列号#0MOV P0,#79H ;让LED显示为1LJMP DK1NK1:CJNE A,#0FDH,NK2 ;判断是否按下#1键MOV KEYBUF,#1 ;保存列号#1MOV P0,#24H ;让LED显示为2LJMP DK1NK2:CJNE A,#0FBH,NK3 ;判断是否按下#2键MOV KEYBUF,#2 ;保存列号#2MOV P0,#30H ;让LED显示为3LJMP DK1NK3:CJNE A,#0F7H,NK4 ;判断是否按下#3键MOV KEYBUF,#3 ;保存列号#3MOV P0,#19H ;让LED显示为4LJMP DK1NK4:CJNE A,#0EFH,NK5 ;判断是否按下#4键MOV KEYBUF,#4 ;保存列号#4MOV P0,#12H ;让LED显示为5LJMP DK1NK5:CJNE A,#0DFH,NK6 ;判断是否按下#5键MOV KEYBUF,#5 ;保存列号#5MOV P0,#02H ;让LED显示为6LJMP DK1NK6:CJNE A,#0BFH,NK7 ;判断是否按下#6键MOV KEYBUF,#6 ;保存列号#6MOV P0,#78H ;让LED显示为7LJMP DK1NK7: CJNE A ,#7FH,NK8NK8: LJMP CHOICEDK1:MOV A,KEYBUFMOV B,#2MUL AB ;对应读取表格TABLE1的数据 MOV TEMP,AMOV DPTR,#TABLE1MOVC A,@A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOV STL0,AMOV TL0,ASETB TR0 ;开启定时器T0,T0开始计数DK1A:MOV A,P1XRL A,#0FFHJNZ DK1AMOV A,P2ANl A,#0f0HMOV P2,ACLR TR0NOKEYS: RET;*******功能转换程序********CHOICE:MOV P2,#0FFH ;功能转换程序MOV P1,#0FFHCLR P2.0MOV A,P1CJNE A,#7FH,NEXT1111 ;按下了P1.7键后,顺序执行,否则则跳转到NEXT1111NEXT111:MOV P2,#0FFHMOV P1,#0FFHCLR P2.0MOV A,P1XRL A,#0FFHJNZ NEXT111 ;如果A不为0,即按键有变化,继续循环ACALL DISPLAY ;如果按键没变化,即调用DISPLAYMOV SP,#60HMOV DPTR,#TABLEACALL MUSICNEXT1111:LJMP SAOMIAO;*******自动播放音乐程序********MUSIC: MOV 21H,#00HMOV P2,#0FFHMOV P1,#0FFHCLR P2.0MOV A,P1JNB ACC.7,AA1SETB 21H.7AA1: MOV P2,#0FFHCLR P2.0MOV A,P1XRL A, #0FFHJNZ AA1JNB 21H.7,NEXT1111 CLR AMOVC A,@A+DPTRMOV R1,AINC DPTRCLR AMOVC A,@A+DPTRMOV R0,AORL A,R1JZ NEXT1MOV A,R0ANL A,R1CJNE A,#0FFH,NEXTSJMP MUSICNEXT: MOV TH1,R1MOV TL1,R0SETB TR1SJMP NEXT2NEXT1: CLR TR1NEXT2: CLR AINC DPTRMOVC A,@A+DPTRMOV R2,ALOOP1: ACALL DELAYDJNZ R2,LOOP1INC DPTRSJMP MUSICREP12: CLR TR1RETTIME0: MOV TH1,R1MOV TL1,R0CPL P3.7RETIDEL1S: MOV R5,#30D1: MOV R6,#100D2: MOV R7,#80DJNZ R7,$DJNZ R5,D1RETDEL:NOPDEL3:MOV R4,#02HDEL4:NOPDJNZ R4,DEL4NOPDJNZ R3,DEL3RETNOP;********延时10ms子程序******DELY10MS:MOV R6,#10D3: MOV R7,#248DJNZ R7,$DJNZ R6,D3RET;*******T0中断服务子程序**********INT_T0:MOV TH0,STH0MOV TL0,STL0CPL P3.7RETI;******倒计3秒进入自动播放音乐子程序******** DISPLAY:MOV DPTR,#table0MOV R0,#0LOOP10 :MOV A,R0MOVC A,@A+DPTRMOV P0,ACLR P2.0LCALL DELAY0INC R0CJNE R0,#4,LOOP10RET;*******数码显示DISPLAY9*********DISPLAY9:MOV DPTR,#table8 ;数码管显示数字MOV R0,#0LOOP15 :MOV A,R0MOVC A,@A+DPTRMOV P0,A ;送到P0口显示数字CLR P2.0LCALL DELAY0INC R0CJNE R0,#10,LOOP15RETDELAY0:MOV R7,#50DELA: MOV R6,#100DEL12: MOV R5,#100DJNZ R5,$DJNZ R6,DEL12DJNZ R7,DELARET;*******延时子程序DELAY********DELAY: MOV R7,#02D5: MOV R6,#187D6: MOV R5,#248DJNZ R5,$DJNZ R6,D6DJNZ R7,D5RETtable0: DB 30h,24h,79h,40h ;倒计时3秒table8: DB 10h,00h,78h,02h,12h,19h,30h,24h,79h,40h ;9,8,7,6,5,4,3,2,1,0 TABLE1: DW 62628,63835,64021,64103,64260,64400,64524 ;定时器TO初值TABLE: DB 0FDH,80H,03H, 0FDH,80H,01H ;音乐代码DB 0FDH,0C6H,04H, 0FDH,80H,04HDB 0FEH,2AH,04H, 0FEH,02H,04HDB 00H,00H,04HDB 0FDH,80H,03H, 0FDH,80H,01HDB 0FDH,0C6H,04H, 0FDH,80H,04HDB 0FEH,5CH,04H, 0FEH,2AH,04HDB 00H,00H,04HDB 0FDH,80H,03H, 0FDH,80H,01HDB 0FEH,0C0H,04H, 0FEH,84H,04HDB 0FEH,2AH,04H,0FEH,02H,04HDB 0FDH,0C6H,04HDB 0FEH,98H,03H,0FEH,98H,01HDB 0FEH,84H,04H,0FEH,2AH,04HDB 0FEH,5CH,04H,0FEH,2AH,04HDB 00H,00H,04HDB 0FFH,0FFH END。