基于单片机的简易电子琴的设计

合集下载

基于单片机的简单电子琴毕业设计

基于单片机的简单电子琴毕业设计

基于单片机的简单电子琴毕业设计目录1引言 (1)2 总体设计 (2)2.1 设计目的与要求 (2)2.2 电子琴系统的组成 (2)2.3 系统设计框图 (3)3 详细设计 (4)3.1 硬件设计 (4)3.2 硬件简介 (5)3.2.1 AT89C51简介 (5)3.2.2 LED数码管 (10)3.3整体程序处理流程图设计 (11)3.4矩阵式键盘的识别和显示与设计 (12)3.4.1矩阵式键盘的结构与工作原理 (12)3.4.2矩阵式键盘的按键识别方法 (13)3.4.3键盘接口必须具有的4个基本功能 (15)3.5音乐播放设计 (16)3.5.1音乐发声原理 (16)3.5.2音乐播放流程图 (18)3.5.3放歌子程序流程图 (18)4实现联调 (20)4.1 Proteus 简介 (20)4.2 keil 简介 (20)4.3利用keil与Proteus进行的调试 (21)5 总结与展望 (23)参考文献 (25)Abstract: (26)致谢 (27)附录A:程序设计 (28)附录B 印制电路板(PCB)设计 (34)基于单片机的简单电子琴设计摘要:电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。

它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。

本文主要对使用单片机设计简易电子琴进行了分析与设计,并介绍了基于单片机电子琴的系统硬件组成。

该文设计是一种基于AT89C51的简单音乐发生器,利用单片机技术、键盘和一组发光二极、SPEARK等实现原理图设计,并用C51语言进行键盘识别程序设计和音频脉冲输出程序的设计。

经过软件和硬件的联调,并仿真出来。

该音乐发生器不仅能通过键盘弹奏出来简单的乐曲,而且不弹奏时按播放键可以播放置音乐,音调和节拍都由单片机控制实现。

本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。

基于单片机的简易电子琴的设计

基于单片机的简易电子琴的设计

22. 电子琴1 •实验任务(1 •由4X4组成16个按钮矩阵,设计成16个音 (2.可随意弹奏想要表达的音乐。

2. 电路原理图图 4.22.13. 系统板硬件连线(1.把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区 域中的SPK IN 端口上;5-IK Is s£ 52 嶺E 曾s B 9一10VLS 自rnrr空a §s ss §s 5S <區£§■& ■ss:官益CKHFC d §2R STTL CflFz i ■Air氏疽氐氐M w &氏u>'sS.WOiw-rsswo(2.把“单片机系统“区域中的 P3.0 — P3.7端口用8芯排线连接到“ 4X4行列式键盘”区域中的C1— C4 R1— R4端口上; 4.相关程序内容1 . 4X4 行列式键盘识别; 2. 音乐产生的方法;一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我 们就可以利用不同的频率的组合, 即可构成我们所想要的音乐了, 当然对于单片 机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这 样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。

现在以单片机12MHZ 晶振为例,例出高中低音符与单片机计数 T0相关的计数值 如下表所示低音 0—19之间,中音在 20—39之间,高音在 40—59之间TABLE: DW 0,63628,63835,64021,64103,64260,64400,64524,0,0音符 频率(HQ 简谱码(T 值)音符 频率( HZ ) 简谱码(T 值) 低 1 DO 26263628 # 4 FA# 740 64860 #1 DO# 277 63731 中 5 SO 784 64898 低 2 RE 294 63835 # 5 SO# 831 64934 #2 RE# 311 63928 中 6 LA 880 64968 低 3 M 330 64021 # 6 932 64994 低 4 FA 349 64103 中 7 SI 988 65030 # 4 FA# 370 64185 高 1 DO 1046 65058 低 5 SO 392 64260 # 1 DO# 1109 65085 # 5 SO# 415 64331 高 2 RE 1175 65110 低 6 LA 440 64400 # 2 RE# 1245 65134 # 6 466 64463 高 3 M 1318 65157 低 7 SI 494 64524 高 4 FA 1397 65178 中 1 DO 523 64580 # 4 FA# 1480 65198 # 1 DO# 554 64633 高 5 SO 1568 65217 中 2 RE 587 64684 # 5 SO# 1661 65235 # 2 RE# 622 64732 高 6 LA 1760 65252 中 3 M 659 64777 # 6 1865 65268 中 4 FA69864820高 7 SI196765283下面我们要为这个音符建立一个表格, 的数据有助于单片机通过查表的方式来获得相应DW 0,63731,63928,0,64185,64331,64463,0,0,0DW 0,64633,64732,0,64860,64934,64994,0,0,0DW 0,65058,65110,65157,65178,65217,65252,65283,0,0DW 0,65085,65134,0,65198,65235,65268,0,0,0DW 02、音乐的音拍,一个节拍为单位(C调)曲调值DELAY 曲调值DELAY调4/4 125ms 调4/4 62ms调3/4 187ms 调3/4 94ms调2/4 250ms 调2/4 125ms对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。

基于单片机的电子琴设计

基于单片机的电子琴设计

基于单片机的电子琴设计一、引言二、总体设计方案(一)设计目标设计一款基于单片机的电子琴,能够实现基本的音符演奏、音色切换、节奏控制等功能,并且具有良好的音质和稳定性。

(二)系统组成本电子琴系统主要由单片机控制模块、键盘输入模块、音频输出模块、显示模块和电源模块等部分组成。

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. 让学生掌握简易电子琴单片机的基本原理和组成结构,理解其工作流程。

2. 使学生了解并掌握电子琴音阶与音符的关系,能够识别常见音符及其对应的单片机程序编写方法。

3. 帮助学生掌握基础编程知识,能够使用相关软件编写简易电子琴程序。

技能目标:1. 培养学生运用单片机进行音乐创作的能力,能够编写并演奏简单曲目。

2. 提高学生动手实践能力,能够独立完成简易电子琴单片机的组装和调试。

3. 培养学生团队协作和问题解决能力,能够在团队中共同完成课程项目。

情感态度价值观目标:1. 培养学生对电子琴音乐创作的兴趣和热情,激发学生探索音乐世界的欲望。

2. 培养学生勇于尝试、不断探索的精神,增强面对困难的勇气和信心。

3. 培养学生环保意识和创新精神,关注科技发展,认识到科技进步对音乐产业的影响。

本课程针对高年级学生,结合学科特点,以实用性为导向,将理论知识与实践操作相结合。

课程目标旨在让学生在学习过程中,既能掌握电子琴单片机的基本知识,又能提高动手实践和团队协作能力,同时培养对音乐的热爱和科技创新意识。

通过分解课程目标为具体学习成果,为后续教学设计和评估提供明确方向。

二、教学内容1. 简易电子琴单片机原理及结构- 了解单片机的基本概念及功能- 学习简易电子琴单片机的组成结构及工作原理- 教材章节:第三章 单片机原理及其应用2. 音阶与音符关系- 掌握音阶与音符的基本概念及对应关系- 学习简易电子琴音阶与单片机程序编写方法- 教材章节:第四章 音乐基础与编程3. 编程知识与软件应用- 学习基础编程知识,如C语言基本语法、数据类型等- 掌握相关编程软件的使用,如Keil、Proteus等- 教材章节:第五章 单片机编程与仿真4. 动手实践与项目制作- 完成简易电子琴单片机的组装、调试与演奏- 课程项目:团队协作完成一首简单曲目的电子琴演奏- 教材章节:第六章 单片机项目实践5. 回顾与拓展- 对所学知识进行总结回顾,巩固学习成果- 探讨简易电子琴单片机的拓展应用,如与其他智能硬件的结合- 教材章节:第七章 单片机拓展应用教学内容根据课程目标制定,保证科学性和系统性。

基于51单片机的简易电子琴的设计与实现

基于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,那么作为输入。

行线输出是低电平,有健按下,那么输入线就会被拉低,如此,通过读输入线的状态就可得知是不是有键按下。

基于单片机的简易电子琴设计

基于单片机的简易电子琴设计

基于单片机的简易电子琴设计随着科技的不断发展,人们对电子产品越来越依赖和喜爱。

其中,电子琴作为一种乐器,更是以其简便易用、能够自我演奏等特点受到了众多音乐爱好者的追捧。

在这样的背景下,基于单片机的简易电子琴的设计也逐渐成为了研究的热点。

一、设计思路电子琴主要由键盘、音源、电子音效处理电路等组成。

基于单片机的电子琴则采用了测量键盘按下与松开时间的方法,从而产生不同的频率,实现音源的输出。

设计主要包括单片机的选择、键盘的设计、显示器和音频的控制等。

二、单片机的选择单片机是电子琴各部件的控制中枢,而在众多的单片机中,AVR与Arduino等单片机最为常用。

AVR的主频高,适合高频率的应用,具有低功耗、高性能、高可靠性等特点,相较于Arduino其兼容性不如后者。

Arduino的易上手、容易编码、数据处理能力强等更适合初学者和小型应用,但其运行频率相对较低。

三、键盘的设计键盘的设计是电子琴中的十分重要的部分。

在电子琴的制作中,可以考虑采用机械键盘和触摸屏键盘等不同种类。

机械键盘的键位设计成多组形状相同的小凸起,按下按键时借助其可按性抵抗产生摁下按键的滑动感觉。

相对的,触摸屏键盘则直接采用触摸屏来实现,其轻触屏幕产生电信号而记录下按键行为。

不论哪种键盘,都需要体现“无声”、“无噪音”的特点。

四、显示器和音频的控制显示器的作用就是显示键盘所对应的音符或是指示各种操作。

音频的控制是电子琴中的另一个关键点。

基于单片机的电子琴中常使用的音频控制电路是DAC,即通过DAC将数字信号转换成模拟信号输出到扬声器中。

时序控制电路的实现能够控制不同的音符频率和音色,保证音乐的表现力。

五、组装与调试电子琴的组装与调试都是必备的过程。

在电子琴的组装中,要保证设计的完整性和正确性,能够正常地运行、使用、初始化。

在调试中,需要考虑键盘的触发状态、音乐效果的细节、等问题。

音乐效果的细节需要依赖听觉从口感、听感、声音表现、音乐艺术效果等方面进行观察、分析和把握,以提高电子琴的表现力。

基于单片机的简易电子琴设计_毕业设计

基于单片机的简易电子琴设计_毕业设计
基于单片机的简易电子琴设计
摘要
单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机, 它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的 应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成 为高科技和工程领域的一项重大课题。
电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现 代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性, 它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用 AT89S51 单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与 键盘、扬声器等模块组成核心主控制模块,在主控模块上设有 16 个按键和扬声 器。
1. 2任务与要求 实现电子琴发声控制系统;要求电路实现如下功能:
利用蜂鸣器作为发声部件,两个数码管作为显示部件,设置 10 个按键,实现高 音、中音、低音的 1、2、3、4、5、6、7 的发音。并在存储一首歌曲的内容,可 以实现自动播放。
用 PROTEUS 实现的电子琴仿真设计 说明:单片机的工作时钟频率为 11.0592MHz 。
图 1-1 AT89C52
2 系统总体方案及硬件设计
本系统采用单片机 AT89C52 为电子琴的控制核心,系统主要包括播放模块、 安键控制模块。下面对各模块的设计逐一进行论证比较。总电路图见附页二。
2. 1 系统总体方案 2.1.1 定时/计数器的设计和状态字定义:
若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以 2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将 P1.0 反相,然后重复计时再反相。就可在 P1.0 引脚上得到此频率的脉冲。利用 AT89C51 的内部定时器使其工作计数器模式(MODE1)下,改变计数值 TH0 及 TL0 以产生 不同频率的方法产生不同音阶,例如,频率为 523Hz,其周期 T=1/523=1912μ s, 因此只要令计数器计时 956μ s/1μ s=956,每计数 956 次时将 I/O 反相,就可 得到中音 DO(523Hz)。计数脉冲值与频率的关系式是:N=fi÷2÷fr,式中,N 是计数值;fi 是机器频率(晶体振荡器为 12MHz 时,其频率为 1MHz);fr 是想 要产生的频率。其计数初值 T 的求法如下:T=65536-N=65536-fi÷2÷fr 例如:设 K=65536,fi=1MHz,求中音 DO(261Hz)。T=65536-N=65536- fi÷2÷fr=65536-1000000÷2÷fr=65536-500000/fr,中音 DO 的 T=65536 -500000/523=64580。 单片机 12MHZ 晶振,中音符与计数 T0 相关的计数值如表所示:

单片机课程设计——简易电子琴

单片机课程设计——简易电子琴
单片机课程设计——简易电子 琴
汇报人:
单击输入目录标题 单片机基础知识 简易电子琴系统设计 单片机与简易电子琴的结合 简易电子琴的功能扩展 简易电子琴的优化与改进
添加章节标题
单片机基础知识
单片机简介
单片机是一种集成电路芯片,将微处理器、存储器、输入/输出接口等集成在一起 单片机具有体积小、功耗低、可靠性高、编程灵活等特点 单片机广泛应用于工业控制、家电、汽车电子等领域 单片机课程设计是学习单片机应用的重要环节,可以提高学生的实践能力和创新能力
音乐播放与控制
单片机控制:通过单片机控制电子琴的音色、音高和节奏 音乐播放:单片机通过控制电子琴的音色、音高和节奏,实现音乐的播放 控制方式:可以通过按键、触摸屏等方式控制音乐的播放 功能扩展:可以增加录音、播放、暂停、快进、快退等功能,提高用户体验
显示模块的应用
显示模块的作用:显示电子琴 的音色、音高、节奏等信息
单片机在简易电子琴中的应用
控制音量:通过单片机控制 音量的大小,实现电子琴的 音量调节功能。
控制音色:通过单片机控制 不同频率的音色,实现电子 琴的多种音色效果。
控制节奏:通过单片机控制 节奏的快慢,实现电子琴的
节奏调节功能。
控制和弦:通过单片机控制 和弦的演奏,实现电子琴的
和弦演奏功能。
单片机开发环境搭建
测试内容:音色、音调、 音量、节奏等性能指标
测试结果分析:对测试数 据进行分析,找出问题并 解决
测试报告:记录测试过程、 结果和分析,为后续改进 提供依据
单片机与简易电子琴的结合
单片机控制简易电子琴的原理
单片机作为核心控制单元,负责接收和处理来自键盘的输入信号
单片机根据接收到的输入信号,控制电子琴的音源产生相应的音调

基于单片机的简易电子琴设计

基于单片机的简易电子琴设计

V c c40E A31R S T9G N D20X 119X 218P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P3.6/WR16P3.7/RD17P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732ALE 30PSEN29P2.7/A1528P2.6/A1427P2.5/A1326P2.4/A1225P2.3/A1124P2.2/A1023P2.1/A922P2.0/A821U1AT89S51R110K R210KR310KY112MHzC730pF C630pF12345678P1HEADER 8S1SW -PBS2SW -PBS3SW -PBS4SW -PBS5SW -PBS6SW -PBS7SW -PBS8SW -PBS9SW -PBS10SW -PBS11SW -PBS12SW -PBS13SW -PBS14SW -PBS15SW -PBS16SW -PBC110uFVCCVcc 6IN+3IN-2BY PASS7V O UT 5GA IN 1GA IN 8GN D4U2LM386C210uF C30.1uF VCCC4R410KC50.1uFLS1扬声器CR4CR3CR2CR1BR4BR3BR2BR1C R 4C R 3C R 2C R 1B R 4B R 3B R 2B R 1R4220agdefb cdpa 7b 6c 4d 2e 1f 9G N D3G N D8g 10dp 5DS1DP Y7_SEG_DP1.2系统板硬件连线系统板硬件连线如图1-1所示,发生模块,键盘模块,及LED显示模块连接如下1.把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上;2.把“单片机系统”区域中的P3.0-P3.7端口用8芯排线连接到“4X4行列式键盘”区域中的C1-C4 R1-R4端口上;3.把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。

基于单片机的简易电子琴电路设计

基于单片机的简易电子琴电路设计

单片机课程设计任务书题目: 基于单片机的简易电子琴电路设计初始条件:简易电子琴一般具有弹奏一个自然大调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单片机的电子琴设计课程设计单片机原理》课程设计前言本课程设计旨在通过基于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 整体电路本章将介绍电子琴的整体电路设计。

《电子设计》简易电子琴

《电子设计》简易电子琴

《电子设计》简易电子琴1、设计任务本次的设计任务是设计一款简易电子琴,其功能是能够通过使用者交互完成播放两个八度声音与音乐的目的。

2、设计方案2.1设计框图本次设计共有两种方案。

第一种方案使用STC89C52RC 单片机。

通过独立按键完成输入,通过扬声器完成声音的输出。

其设计框图如下:图1:方案一硬件框图第二种方案使用STC8G1K08单片机。

通过触摸按键结合单片机ADC 完成输入,通过TC8002功放电路完成声音的输出。

其设计框图如下:图2:方案二硬件框图2.2 各模块设计2.2.1 电源设计(例如)方案一使用的是STC89C52RC 单片机,其工作电压为5V ,通过引脚与5V 外部电源连接即可完成供电。

方案二使用的是STC8G1K08单片机,其工作电压也是5V ,通过TYPEC 接口完成供电。

原理图如下图所示:图3:方案二电源设计2.2.2 输入电路设计方案一与方案二使用两种不同的输入方式。

方案一使用共阴极接法的独立按键与单片机引脚连接,通过单片机检测按键是否被按下完成输入检测。

其原理图如下图所示:图4:方案一输入电路方案二使用触摸检测电路完成输入功能。

使用者接触触摸按键时会改变该电路的电容,使单片机ADC 引脚接收的数据发生改变,进而达到输入功能。

其原理图如下图所示:图5:方案二输入电路2.2.3 扬声器与功放电路两种方案播放声音的设备都是喇叭,但驱动电路不同。

方案一使用的三极管放大电路,其原理图如下图所示:图6:方案一扬声器驱动电路方案二使用功放芯片TC8002完成扬声器的驱动。

该芯片是一颗带关断模式,专为大功率高保真的应用场合所设计的音频功放IC。

它所需外围元件少且在2V~5V的输入电压下即可工作。

它的管脚图如下图所示:图7:TC8002管脚排列图经查看该芯片手册设计的功放电路图如下图所示:图8:功放模块电路图2.2.4 其余电路设计除以上两种模块,还有其余的模块电路如方案一的晶振电路,复位电路,方案二的供电提示电路等。

基于单片机的简易电子琴设计_毕业设计论文

基于单片机的简易电子琴设计_毕业设计论文

基于单片机的简易电子琴设计摘要随着科学技术的不断发展,单片机的应用日益成熟。

单片机集成度高、处理功能强大、价格低廉使其在各个领域得到广泛应用。

同时电子琴作科学技术与音乐共同发展的产物,在这个电子信息化的时代,为音乐的大众化做出了不可代替的贡献。

本文主要介绍一种基于51单片机的简易电子琴设计方案。

它采用了STC公司出品的一款低功耗、高性能单片机STC89C52芯片作为主控单元,与4*4矩阵键盘、复位电路、LED双位数码显示器、扬声器等组成主控核心模块。

文章详细论述了电子琴硬件设计和软件结构设计流程,采用了Altium Designer 09画出原理图、PCB图,通过Keil编程软件对电子琴进行软件编程,然后进行软硬件的调试运行并将程序烧录到STC89C52芯片中。

此系统运行比较稳定,具有硬件设计电路简单、清晰,成本低,软件功能完善,控制系统牢靠,性价比高等优点,具有一定的实用和参考价值。

关键词:STC89C52;电子琴;矩阵键盘AbstractAlong with the development of science and technology, the application of SCM increasingly mature. Single chip microcomputer high level of integration, processing powerful, low prices make it is widely used in various fields. At the same time the keyboards for science and technology and music common development of the product, in the electronic information era, for music's popular do can't replace contribution.This paper mainly introduces a kind of simple keyboard based on 51 SCM design scheme. It USES the STC product of our company a low power consumption, high performance microprocessor STC89C52 chips as the master unit, and 4 * 4 matrix keyboard and reset circuit, LED digital display, a double master core module and other components of the speaker. This paper discusses the design of hardware and software structure keyboard design process, the use of a Altium Designer 09 draw a diagram, PCB figure, through the Keil software keyboard to software programming, then the software and hardware debugging run and will burn to STC89C52 chip program. Operation of the system is stable and has the hardware circuit design simple, clear, and the cost is low, the software perfect function, control system firm, price higher advantages, has certain practical and reference value.Key words : stc89c52; keyboard; matrix keyboard目录摘要 (I)Abstract (II)1 绪论 (1)1.1 设计的目的和意义 (1)1.2 设计的主要内容 (1)2 系统概述 (2)2.1 系统工作原理 (2)2.2 系统结构组成 (2)2.2.1 电源电路 (2)2.2.2 控制部分 (3)2.2.3 显示部分 (3)2.2.4 发声部分 (3)2.3 主要芯片及元件的介绍 (3)2.3.1 STC89C52单片机简介 (3)2.3.2 芯片引脚介绍 (4)2.3.3 STC89C52时钟介绍 (6)2.3.4 双位LED数码显示器简介 (7)3 硬件电路的设计 (9)3.1 电源电路的设计 (9)3.2 复位电路的设计 (10)3.2.1 复位操作 (10)3.2.2 复位信号及其产生 (11)3.3 键盘控制电路 (12)3.3.1 矩阵式键盘的概述 (12)3.3.2 矩阵式键盘按键识别原理及方法 (12)3.4 显示电路 (13)4 系统软件设计 (14)4.1 如何利用单片机实现音乐节拍 (14)4.2 如何用单片机产生音频脉冲 (15)4.2.1 音符和频率的关系 (15)4.2.2 定义初值 (16)4.3 音乐发生程序流程图 (17)结论 (18)参考文献 (19)附录一电子琴源程序 (20)附录二原理图 (24)附录三 PCB图 (25)附录四实物图 (26)致谢 (27)1 绪论1.1 设计的目的和意义单片机又称单片微型计算机,英文字母的缩写MCU。

基于单片机的简易电子琴设计课程设计

基于单片机的简易电子琴设计课程设计

湖南文理学院课程设计报告课程名称:单片机课程设计专业班级:自动化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设计背景随着电子科学技术的飞速发展,电子技术正在逐渐改善着人们的学习、生活、工作,因此开发本系统希望能够给人们带来更多的生活乐趣。

单片机简易电子琴设计方案大全(六款模拟电路设计原理图详解)

单片机简易电子琴设计方案大全(六款模拟电路设计原理图详解)

单片机简易电子琴设计方案大全(六款模拟电路设计原理图详解)单片机简易电子琴设计方案(一)设计一简易电子琴,要求能够发出1、2、3、4、5、6、7等七个音符。

原理:由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。

本次设计中单片机晶振为12MHZ,那么定时器的计数周期为1MHZ,假如选择工作方式1,那T值便为T=216--5﹡105/相应的频率,那么根据不同的频率计算出应该赋给定时器的计数值,列出不同音符与单片机计数T0相关的计数值如下表所示:通过单片机实现电子琴演奏,实质就是将不同按键和特定频率的方波信号对应起来,以方波信号驱动蜂鸣器发出乐音。

下面简单介绍一下乐音的特性。

乐音实际上是有固定频率的信号。

在音乐理论中,把一组音按音调高低的次序排列起来就成为音节,也就是1、2、3、4、5、6、7和高音1。

高音1的频率正好是中音1频率的2倍,而且音节中各音的频率跟1的频率之比都是整数之比。

为了发出某一特定频率的乐音,可以控制单片机的一个I/O口产生该频率的方波信号,经过电流放大后驱动蜂鸣器发出该乐音。

对于方波的产生,可以启用单片机的一个定时器进行计时,产生溢出中断。

中断发生时,将输出引脚的电平取反,然后重新载入计数器初始值。

因此,正确的设置定时器的工作模式和初始计数值是发出乐音的基础。

例如中音l,其频率是523Hz,则周期为T=l/523=1912s,半个周期为956s。

根据单片机计数器计数的机器周期,就可以算出计数器的预置初始值应为多少。

例如,假设采用的单片机的一个计数周期需要12个时钟周期,当采用12MHz晶振时,一个计数周期即ls。

要定时956s,只需设置其计数初值为计数最大计数值减去956。

基于单片机的简易电子琴设计(汇编语言)

基于单片机的简易电子琴设计(汇编语言)

任务书1.1 课程设计目的本课程设计目的在于培养学生运用已学的单片机原理及应用的基础知识和基本理论,加以综合运用,进行单片机系统设计的初等训练,掌握运用单片机进行系统控制设计的原则、设计内容和设计步骤,为从事单片机相关的毕业设计或今后的工作需要打下良好的基础。

1.2 课程设计内容本次课程设计的主要内容是以单片机为核心控制元件,设计一个电子琴。

以单片机作为主控制核心,与键盘、发光二极管、扬声器等模块组成,其功能是实现单独演奏和自动播放歌曲,主要分为:1.2.1 单独演奏模块通过按键,利用所给键盘的1,2,3,4,5,6,7七个键,能够发出7个不同的音调,即按下按键1、2、3、4、5、6、7,扬声器发出相应音调DO、RE、MI、FA、SO、LA、SI,每当有按键按下时,按键对应的LED灯对应点亮,可以用来演奏不同的歌曲。

1.2.2 自动放歌模块通过按键可以进行单独演奏/自动放歌的选择,利用所给的键盘的第8个按键,能够使电子琴自动播放一首歌曲(歌曲自选,歌曲乐谱通过软件编程实现),自动放歌时,同时配有发光二极管作流水灯显示,达到歌曲与灯同步动作。

1.3 课程设计原则1、尽可能地满足控制系统的的控制要求;2、在满足控制的前提下,力求使控制系统简单、经济;3、保证控制系统运行稳定、可靠;4、考虑到对系统的改进,在选择单片机芯片功能时,应适当留有余量,以便用作扩展功能。

1.4 课程设计步骤1、对设计系统的任务和要求作深入的调查研究,明确控制任务和实现功能;2、选择和确定单片机芯片、音频发声器件和串口下载芯片;3、确定系统整体设计方案;4、电子琴系统仿真设计;5、整体系统的软件设计;6、联机调试;7、撰写设计报告。

1.5 时间安排1.6 基本要求(一)课程设计报告1.系统流程图一张;2.系统仿真图一张;3.系统软件程序清单一张;4.撰写报告一份,包括以下内容:1)写出设计计划和基本步骤。

2)写出系统要求并设计流程图。

基于51单片机的电子琴设计

基于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中读取曲目信息的功能。

基于单片机的电子琴设计资料

基于单片机的电子琴设计资料

基于单片机的电子琴设计资料电子琴是一种电子乐器,通过电子回路和单片机控制,可以模拟出多种乐器的声音。

下面是一个基于单片机的电子琴设计资料,包括硬件设计和软件编程。

硬件设计:1.材料准备:选择一个适当大小的键盘,通常有8个到16个键位,每个键位可以连接到一个按钮开关。

2.连接按钮开关:将按钮开关连接到单片机的GPIO引脚上,通过读取引脚状态来检测按键的按下与释放。

3.音频输出:将单片机的数字音频输出连接到扬声器上,以发出相应的声音。

4.电源供应:提供适当的电源电压和电流给单片机和其他电子元件使用。

软件编程:1.初始化:在程序开始时,初始化单片机的GPIO引脚以及其他必要的外设,设置合适的时钟频率和中断设置。

2.按键扫描:通过循环遍历GPIO引脚,检测按钮开关的状态。

当检测到按键按下时,记录下按键对应的音符。

3.声音发生器:根据按键记录的音符,生成相应的音频信号。

可以使用一组预设的音符频率和振幅值,或者使用数学公式生成声音波形。

4.声音输出:将生成的音频信号发送到数字音频输出引脚,输出到扬声器上。

5.多音同步:为了更好的音乐体验,可以通过增加多音同步功能,使得按下多个按键时可以同时发出多个音符。

设计注意事项:1.硬件连接:确保正确连接按钮开关、声音输出和电源供应等元件,避免短路或其他电路问题。

2.音频信号处理:可以通过数字信号处理(DSP)算法对音频信号进行增强、滤波等处理,提高音质和音效。

3.功耗优化:在编程时,可以考虑使用低功耗模式以延长电子琴的电池寿命。

4.隔音材质:适当在琴身上加入隔音材质,减少按键和扬声器震动传递到外部的噪音。

总结:基于单片机的电子琴设计包括硬件连接和软件编程两个方面,硬件连接主要涉及键盘、按钮开关、扬声器和电源供应等元件的连接,软件编程则负责按键扫描、音频发生和音频输出等功能。

在设计过程中需注意硬件连接的正确性和优化声音效果,使得电子琴能够发出优美的音乐。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

22.电子琴1.实验任务(1.由4X4组成16个按钮矩阵,设计成16个音。

(2.可随意弹奏想要表达的音乐。

2.电路原理图图4.22.13.系统板硬件连线(1.把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上;(2.把“单片机系统“区域中的P3.0-P3.7端口用8芯排线连接到“4X4行列式键盘”区域中的C1-C4 R1-R4端口上;4.相关程序内容(1. 4X4行列式键盘识别;(2.音乐产生的方法;一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。

现在以单片机12MHZ晶振为例,例出高中低音符与单片机计数T0相关的计数值如下表所示音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)低1 DO 262 63628 # 4 FA# 740 64860#1 DO# 277 63731 中 5 SO 784 64898低2 RE 294 63835 # 5 SO# 831 64934#2 RE# 311 63928 中 6 LA 880 64968低 3 M 330 64021 # 6 932 64994低 4 FA 349 64103 中 7 SI 988 65030# 4 FA# 370 64185 高 1 DO 1046 65058低 5 SO 392 64260 # 1 DO# 1109 65085# 5 SO# 415 64331 高 2 RE 1175 65110低 6 LA 440 64400 # 2 RE# 1245 65134# 6 466 64463 高 3 M 1318 65157低 7 SI 494 64524 高 4 FA 1397 65178中 1 DO 523 64580 # 4 FA# 1480 65198# 1 DO# 554 64633 高 5 SO 1568 65217中 2 RE 587 64684 # 5 SO# 1661 65235# 2 RE# 622 64732 高 6 LA 1760 65252中 3 M 659 64777 # 6 1865 65268中 4 FA 698 64820 高 7 SI 1967 65283下面我们要为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据低音0-19之间,中音在20-39之间,高音在40-59之间TABLE: DW 0,63628,63835,64021,64103,64260,64400,64524,0,0DW 0,63731,63928,0,64185,64331,64463,0,0,0DW 0,64580,64684,64777,64820,64898,64968,65030,0,0DW 0,64633,64732,0,64860,64934,64994,0,0,0DW 0,65058,65110,65157,65178,65217,65252,65283,0,0DW 0,65085,65134,0,65198,65235,65268,0,0,0DW 02、音乐的音拍,一个节拍为单位(C调)曲调值DELAY 曲调值DELAY调4/4 125ms 调4/4 62ms调3/4 187ms 调3/4 94ms调2/4 250ms 调2/4 125ms对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。

下面就用AT89S51单片机产生一首“生日快乐”歌曲来说明单片机如何产生的。

在这个程序中用到了两个定时/计数器来完成的。

其中T0用来产生音符频率,T1用来产生音拍。

5.程序框图图4.22.27. C语言源程序#include <AT89X51.H>unsigned char temp;unsigned char key;unsigned char i,j;unsigned char STH0;unsigned char STL0;unsigned int code tab[]={64021,64103,64260,64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110,65157,65178};void main(void){TMOD=0x01;ET0=1;EA=1;while(1){P3=0xff; //将P3口取出P3_4=0; //使P3_4为低电平,这样可以判断第一竖排有没有键按下temp=P3;temp=temp & 0x0f;if (temp!=0x0f) //有键按下{for(i=50;i>0;i--)for(j=200;j>0;j--); //延时temp=P3;temp=temp & 0x0f;if (temp!=0x0f) //再判断是否有键按下{temp=P3;temp=temp & 0x0f;switch(temp) //判断是哪个键按下{case 0x0e:key=0;break;case 0x0d:key=1;break;case 0x0b:key=2;break;case 0x07:key=3;}temp=P3;P1_0=~P1_0;P0=table[key];STH0=tab[key]/256; //找出键对应的频率的时间,作为定时器中断初始值STL0=tab[key]%256;TR0=1;temp=temp & 0x0f;while(temp!=0x0f){temp=P3;temp=temp & 0x0f;}TR0=0;}}P3=0xff;P3_5=0; //跟上面差不多,现在是判断第二排的按键temp=P3;temp=temp & 0x0f;if (temp!=0x0f){for(i=50;i>0;i--)for(j=200;j>0;j--);temp=P3;temp=temp & 0x0f;if (temp!=0x0f){temp=P3;temp=temp & 0x0f;switch(temp){case 0x0e:key=4;break;case 0x0d:key=5;break;case 0x0b:key=6;break;case 0x07:break;}temp=P3;P1_0=~P1_0;P0=table[key];STH0=tab[key]/256; STL0=tab[key]%256; TR0=1;temp=temp & 0x0f; while(temp!=0x0f) {temp=P3;temp=temp & 0x0f; }TR0=0;}}P3=0xff;P3_6=0;temp=P3;temp=temp & 0x0f; if (temp!=0x0f) {for(i=50;i>0;i--) for(j=200;j>0;j--); temp=P3;temp=temp & 0x0f; if (temp!=0x0f) {temp=P3;temp=temp & 0x0f; switch(temp){case 0x0e:key=8;break;case 0x0d:key=9;break;case 0x0b:key=10;break;case 0x07:key=11;break;}temp=P3;P1_0=~P1_0;P0=table[key];STH0=tab[key]/256; STL0=tab[key]%256; TR0=1;temp=temp & 0x0f; while(temp!=0x0f) {temp=P3;temp=temp & 0x0f; }TR0=0;}}P3=0xff;P3_7=0;temp=P3;temp=temp & 0x0f; if (temp!=0x0f) {for(i=50;i>0;i--) for(j=200;j>0;j--); temp=P3;temp=temp & 0x0f; if (temp!=0x0f) {temp=P3;temp=temp & 0x0f; switch(temp){case 0x0e:key=12;break;case 0x0d:key=13;break;case 0x0b:key=14;break;case 0x07:key=15;break;}temp=P3;P1_0=~P1_0;P0=table[key];STH0=tab[key]/256;STL0=tab[key]%256;TR0=1;temp=temp & 0x0f;while(temp!=0x0f){temp=P3;temp=temp & 0x0f;}TR0=0;}}}}void t0(void) interrupt 1 using 0 {TH0=STH0;TL0=STL0;P1_0=~P1_0;}。

相关文档
最新文档