根据单片机电子琴设计
基于51单片机的电子琴设计课程设计
目录前言 (2)第1章基于51单片机的电子琴设计 (3)1.1 电子琴的设计要求 (3)1.2 电子琴设计所用设备及软件 (3)1.3 总体设计方案 (3)第2章系统硬件设计 (5)2.1 琴键控制电路 (5)2.2 音频功放电路 (6)2.3 时钟-复位电路 (6)2.4 LED显示电路 (6)2.5 整体电路 (6)第3章电子琴系统软件设计 (7)3.1 系统硬件接口定义 (7)3.2 主函数 (8)3.2.1 主函数程序 (8)3.3 按键扫描及LED显示函数 (9)3.3.1 键盘去抖及LED显示子程序 (10)3.4 中断函数 (11)3.4.1 中断程序 (12)第4章电子琴和调试 (12)4.1 调试工具 (12)4.2 调试结果 (13)4.3 电子琴设计中的问题及解决方法 (14)第5章电子琴设计总结 (15)参考文献 (16)附录 (17)前言音乐教育是学校美育的主要途径和最重要内容,它在陶冶情操、提高素养、开发智力,特别是在培养学生创新精神和实践能力方面发挥着独特的作用。
近年来,我国音乐教育在理论与实践上都取得了有目共睹的成绩,探索并形成了具有中国特色的、较为完整的音乐教育教学体系。
但我国音乐教育的改革力度离素质教育发展的要求还存在一定距离。
如今,电子琴作为电子时代的新产物以其独特的功能和巨大的兼容性被人们广泛的接受和推崇。
而在课堂教学方面,它拥有其它乐器无法比拟的两个瞬间:瞬间多元素思维的特殊的弹奏方法;瞬间多声部(包括多音色)展示的乐队音响效果的特点。
结合电子琴自身强大的功能及独特的优点来进行音乐教育的实施,这样就应该大力推广电子琴进入音乐教室,让电子琴教学在音乐教育中发挥巨大的作用。
现代乐器中,电子琴是高新科技在音乐领域的一个代表,体现了人类电子技术和艺术的完美结合。
电子琴自动伴奏的稳定性、准确性,以及鲜明的强弱规律、随人设置的速度要求,都更便于人们由易到难、深入浅出的准确掌握歌曲节奏和乐曲风格,对其节奏的稳定性和准确性训练能起到非常大的作用。
基于51单片机的简易电子琴设计
基于51单⽚机的简易电⼦琴设计基于51单⽚机的简易电⼦琴设计⼀、设计任务及要求1、在该简易电⼦琴设计中,设置8个按键,8个按键可以发出do、re、mi、fa、sol、la、si、Do 8个⾳阶。
2、设计三个拨码开关,三个拨码开关可以调节⾼⾳、中⾳、低⾳三个⾳调。
3、画出电路的总体⽅框图和电路原理图。
⼆、设计原理⾳乐由许多不同的⾳阶组成的,⽽每个⾳阶对应着不同的频率,这样,我们就可以利⽤不同的频率组合,构成我们想要的⾳乐。
简易电⼦琴是摁下拨码开关时,单⽚机AT89C51会发出声⾳,声⾳从P1.0端⼝经过LM386,经过放⼤以后传⼊喇叭。
声⾳主要是经过单⽚机4×4矩阵键盘的按键产⽣,这⾥只⽤到8个按键来产⽣⾼中低的8个⾳阶,来产⽣do re mi fa sol la si Do。
下⾯是计数初值:三、设计⽅案本次设计的电⼦琴主要是利⽤AT89C51单⽚机为核⼼控制元件,同时还包括键盘、拨码开关和扬声器等控制模块,由键盘选择⼋个⾳阶。
1、电路原理图的总体设计总体电路需要c51单⽚机⼀⽚,⾳乐按键及喇叭等外围电路,要进⾏⾳调控制和⾳频放⼤,设计好的电路图如下图所⽰:2、键盘控制模块的设计矩阵按键部分由8个轻触按键按照2⾏4列排列,连接到P3端⼝。
将⾏线所接的单⽚机的I/O⼝作为输出端,⽽列线所接的I/O,则作为输⼊。
⾏线输出是低电平,有健按下,则输⼊线就会被拉低,这样,通过读输⼊线的状态就可得知是否有键按下。
3、键盘消抖当⽤⼿按下⼀个键时,如图所⽰,往往按键在闭合位置和断开位置之间跳⼏下才稳定到闭合状态的情况;在释放⼀个键时,也回会出现类似的情况。
这就是抖动。
抖动的持续时间随键盘材料和操作员⽽异,不过通常总是不⼤于10ms。
⽤软件⽅法可以很容易地解决抖动问题,这就是通过延迟10ms来等待抖动消失,此后再读⼊键盘码。
⼀个单⽚机⼯作于12M晶振,它的时钟周期是1/12(微秒)。
它的⼀个机器周期是12*(1/12)也就是1微秒。
基于单片机的电子琴设计_毕业设计论文
基于单片机的电子琴设计_毕业设计论文基于单片机的电子琴设计目录1 概述 (3)1.1 引言 (3)1.2 设计思路 (4)1.3 方案论证........................................................................4 2 系统总体方案及硬件设计 (4)2.1 系统组成及总体框图.........................................................4 2.2 元件介绍 (5)2.2.1 AT89S52 (5)2.2.2 三极管 (5)2.2.3 LED数码管............................................................6 2.3 按键选择方案..................................................................6 2.4各功能模块原理图 (6)2.4.1 AT89S52模块电路原理图 (6)2.4.2 键盘扫描模块电路原理图 (7)2.4.3 数码管显示模块电路原理图 (7)2.4.4 音频处理模块电路原理图..........................................7 3 软件设计 (8)3.1 音乐相关知识 (8)3.2 如何用单片机实现音乐的节拍 (8)3.3 如何用单片机产生音频脉冲 (8)3.4 系统总体功能流程图.........................................................10 4 Proteus软件仿真 (11)4.1 ISIS软件介绍 (11)4.2 仿真图介绍..................................................................11 5 系统调试 (12)5.1 硬件调试 (12)5.2 软件调试........................................................................12 6课程设计体会........................................................................12 参考文献.................................................................................12 附1:源程序代码.....................................................................22 附2:系统原理图 (23)河南理工大学本科课程设计报告概述1.1 引言电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。
基于单片机的电子琴设计
基于单片机的电子琴设计一、引言二、总体设计方案(一)设计目标设计一款基于单片机的电子琴,能够实现基本的音符演奏、音色切换、节奏控制等功能,并且具有良好的音质和稳定性。
(二)系统组成本电子琴系统主要由单片机控制模块、键盘输入模块、音频输出模块、显示模块和电源模块等部分组成。
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单片机的电子 琴设计,包括硬件和软 件部分
基于单片机的电子琴设计
基于单片机的电子琴设计摘要:本文提出了一种基于单片机的电子琴的设计方案,旨在实现音乐的创作和演奏。
设计方案的硬件部分包括键盘、音箱、电源和电路板等,软件部分则采用C语言进行编程。
通过此设计方案可以实现多种音色的演奏和各种音乐效果的创作。
本文的实验结果表明,设计方案具有良好的音效和音质,非常适合学习和演奏音乐。
关键词:单片机、电子琴、音乐引言:随着科技的不断发展和电子技术的不断进步,电子琴已经成为一种非常重要的乐器之一。
传统的钢琴因为体积大、制造、维护成本高等原因,使得它成为高消费群体的享受。
而电子琴的便携性、价格适中、功能丰富、可扩展性高等特点,使得它逐渐成为广大音乐爱好者和乐手的选择。
本文提出了一种基于单片机的电子琴的设计方案,可以实现多种音色的演奏和各种音乐效果的创作,有着非常广阔的市场前景和应用前景。
1.电子琴的原理电子琴是一种基于电子技术的乐器,它是通过触键产生音符,再通过放大器和音箱放出声音。
电子琴的音色可以通过数字合成和采样技术来实现。
数字合成的原理是通过脉冲宽度调制(PWM)和频率控制(FM)等方式来合成各种音色。
采样的原理则是通过把各种乐器的音色进行采样,并保存为数字信号,在电子琴上播放所需乐器的音色。
2.基于单片机的电子琴的设计方案本文提出的基于单片机的电子琴设计方案,包括硬件和软件两部分。
硬件部分:主要包括键盘、音箱、电源和电路板等组成部分。
其中电路板是整个电子琴的核心部分,它包含了单片机、按键、驱动等器件。
键盘是传统琴键的改良版,用硬纸板制成,磨砂表面处理。
而音箱则采用了好声音的喇叭,拥有清晰甜美、高音饱满的音质。
软件部分:采用C语言进行程序设计,包括键盘扫描模块、音频模块、数字控制模块和显示模块等多个模块组成。
其中键盘扫描模块是整个软件的核心部分,它利用单片机的IO口来扫描键盘,实现对音符的捕捉。
而音频模块则是利用DAC芯片,通过PWM控制,实现各种音色的播放。
数字控制模块是通过编程来控制各种音乐效果的产生,而显示模块则是把音符和效果的信息在LCD屏幕上进行显示。
基于单片机的简易电子琴设计(汇编语言)
摘要电子琴是现代电子科技与音乐结合的产物。
电子琴是一种新型的键盘乐器,采用半导体集成电路,对乐音信号进行放大,通过扬声器产生音响.由音色,自动伴奏,自动和弦三大部分组成.它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。
本文的主要内容是用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合成音源模块,实现与其他乐器和设备的互联。
基于单片机的简易电子琴设计
基于单片机的简易电子琴设计随着科技的不断发展,人们对电子产品越来越依赖和喜爱。
其中,电子琴作为一种乐器,更是以其简便易用、能够自我演奏等特点受到了众多音乐爱好者的追捧。
在这样的背景下,基于单片机的简易电子琴的设计也逐渐成为了研究的热点。
一、设计思路电子琴主要由键盘、音源、电子音效处理电路等组成。
基于单片机的电子琴则采用了测量键盘按下与松开时间的方法,从而产生不同的频率,实现音源的输出。
设计主要包括单片机的选择、键盘的设计、显示器和音频的控制等。
二、单片机的选择单片机是电子琴各部件的控制中枢,而在众多的单片机中,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 相关的计数值如表所示:
基于单片机的电子琴设计
基于单片机的电子琴设计随着科技的不断发展,电子音乐已成为现代社会中不可或缺的一部分。
作为电子音乐的代表,电子琴早已被广泛地应用到音乐演奏和教学中。
当下,单片机技术的迅速发展,让基于单片机的电子琴设计成为了一个非常热门的领域。
本文将探讨基于单片机的电子琴的设计与实现,并介绍一些技术细节和应用领域。
一、电子琴概述先来了解一下什么是电子琴。
电子琴是一种使用电子技术模拟声音的乐器。
相比于传统的钢琴,电子琴不仅可以产生更广泛的声音效果,而且由于其自带音箱,可以直接输出声音,无需通过扬声器来放大声音。
同时,电子琴的调音可以通过软件进行自动化,而不是需要手动调整琴键,这使得电子琴在音乐演奏和创作方面具有更大的创意空间。
二、基于单片机的电子琴设计基于单片机的电子琴设计是一种采用单片机控制电路的电子琴。
与传统的电子琴不同,基于单片机的电子琴可以通过使用数字信号处理技术来模拟真实的钢琴声音。
这种设计的主要原理是利用单片机驱动各个琴键的驱动电路,并将信号传递给数字信号处理单元进行声音信号的处理。
三、单片机电路基于单片机的电子琴主要由单片机控制驱动电路和数字信号处理单元两部分组成。
单片机控制驱动电路主要采用AD (Analog Devices)的相关芯片,使用ARM内核,并带有SDRAM和FLASH存储器。
数字信号处理部分主要由TMS(Texas Instrument)的DSP处理器构成。
这里重点介绍单片机控制驱动电路的工作原理:1.单片机控制琴键单片机控制琴键的原理是通过按键输入来扫描琴键的状态,并找到对应的音阶和音色。
琴键的按下通过触发一个非常小的开关按钮来进行操作,该按钮可以产生一个数字信号,指示琴键是否按下。
单片机轮询所有琴键的状态,并选择要发送给数字信号处理部分进行处理的琴键。
2.音频信号输出单片机通过GPIO(通用输入/输出)来驱动DAC(数字到模拟转换器)芯片来产生音频信号,并将其输出到音箱或扬声器。
DAC是将数字信号转换成模拟声音波形的微电子设备,用户可以选择和调整模拟转换器以获得所需的音色或音质。
基于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.熟悉定时器和键盘扫描电路的工作原理及编程方法。
二、实验完成的功能1.利用键盘1~7进行音调选择, 即按下音符产生对应音调。
2.事先存储三首歌曲, 并可进行选择播放。
3.谱曲功能:通过按键对LCD菜单选项进行选择, 进入谱曲界面, 通过按键1~7分别输入音高与几分音符类型, 由按键输入若干数据完成谱曲。
4.在播放存储歌曲与谱曲播放时,对应音符及其节奏LCD显示对应频谱。
5.在播放音乐时按“返回”键出现返回界面,由键盘按“确认”键选择返回主菜单或循环播放。
三、实验原理1.音节由不同频率的方波产生, 音节与频率的关系如表(1)所示。
要产生音频方波, 只要计算出某一音频的周期(..频率), 然后将此周期除以2, 即为半周期的时间。
利用计时器计时此半周期时间, 每当计时到后就将输出方波的I/O(P1.7)反相, 然后重复计时此半周期时间再对I/O反相, 就可在P1.7脚得到此频率的方波。
将P1.7经过驱动电路与蜂鸣器相连, 随着P1.7口输出不同频率的方波, 蜂鸣器便会发出不同的声音。
音乐的节拍是由延时实现的, 如果1拍的时间为0.4秒, 1/4拍是0.1秒。
只要设定延时时间, 就可得到节拍的时间。
延时实现基本延时时间, 节拍值只能是它的整数倍。
每个音节相应的定时器初值计算公式如下:(1/2)*(1/f)=(12/fose)*(216-x)即 x=216-(fose/24f)其中, f是音调频率, 当晶振fosc=11.0592MHz时, 音节“1”相应的定时器初值为x, 则可得到x=63777D=F921H, 其它的可同样得到。
表(1)音节与频率的关系在编写歌曲代码过程中, 音高由三位数字组成: 个位是表示1~7 这七个音符;十位是表示音符所在的音区:1-低音, -中音, -高音;百位表示这个音符是否要升半音: 0-不升, -升半音。
音长最多由三位数字组成: 个位表示音符的时值, 其对应关系是:|数值(n): |0 |1 |2 |3 | 4 | 5 | 6|几分音符: |1 |2 |4 |8 |16 |32 |64 音符=2^n 十位表示音符的演奏效果(0-2): 0-普通, -连音, -顿音, 百位是符点位: 0-无符点, 1-有符点。
基于单片机的简易电子琴设计_毕业设计论文
基于单片机的简易电子琴设计摘要随着科学技术的不断发展,单片机的应用日益成熟。
单片机集成度高、处理功能强大、价格低廉使其在各个领域得到广泛应用。
同时电子琴作科学技术与音乐共同发展的产物,在这个电子信息化的时代,为音乐的大众化做出了不可代替的贡献。
本文主要介绍一种基于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。
基于单片机的微型电子琴建模
基于单片机的微型电子琴建模随着科技的不断发展,单片机技术在各个领域得到了广泛应用,其中包括音乐领域。
单片机在音乐电子琴中的应用,可以实现丰富的音色和多功能的音乐演奏效果。
本文将介绍基于单片机的微型电子琴建模,包括硬件和软件的设计。
本文还将探讨在设计过程中的一些关键技术和难点,并给出相应的解决方案。
一、微型电子琴的整体设计思路微型电子琴的整体设计思路是基于单片机来实现的。
在硬件方面,微型电子琴主要包括音频输入输出模块、按键模块、显示模块和电源模块。
在软件方面,需要设计合适的算法来处理音频信号和按键输入,并实现琴键的控制和音色的切换等功能。
二、硬件设计1. 音频输入输出模块音频输入输出模块是微型电子琴的核心部件之一。
它包括声音的输入和输出。
声音输入通常采用麦克风或音频接口,声音输出则可通过扬声器或耳机接口实现。
音频输入输出模块需要配合单片机进行声音的采集、处理和播放。
2. 按键模块按键模块是微型电子琴的另一个核心部件。
它由多个琴键组成,每个琴键对应一个音调或音符。
按键模块需要能够准确地检测琴键的按下和抬起动作,并将按键的状态信息传输给单片机进行处理。
3. 显示模块显示模块用于显示音乐演奏时的相关信息,比如琴键的音符、音量大小、音色选择等。
常见的显示模块包括数码管、液晶显示屏和LED等。
4. 电源模块电源模块负责为微型电子琴提供稳定的电源供应。
由于微型电子琴通常需要使用电池供电,因此电源模块还需要考虑节能和寿命的问题。
1. 音频处理算法音频处理算法是微型电子琴的核心部分。
它需要能够实时地对采集到的声音信号进行分析和处理,以实现音符的识别、音色的切换和音量的调节等功能。
常见的音频处理算法包括FFT(快速傅里叶变换)、滤波器设计、音频编解码等。
2. 按键输入处理算法按键输入处理算法用于对琴键的按下和抬起动作进行检测和处理,以实现音符的选择和音符的演奏。
这涉及到按键扫描算法、按键状态的存储和切换等内容。
3. 控制算法控制算法用于微型电子琴的整体控制。
基于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单片机简易电子琴设计姓名:学号:专业班级:电信08—2班指导老师:胡治国刘巍所在学院:电气工程与自动化学院2011年11月22 日摘要设计的主要内容是用AT89S52单片机为核心控制元件,通过脉冲触发产生出电子音调,设计一个简易的电子琴。
以单片机作为主控核心,与键盘、蜂鸣器等模块组成控制模块。
该系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用与参考价值。
关键词:AT89S52;单片机;脉冲触发;电子琴设计目录1 概述 (4)1.1 功能简介 (4)1.2 功能的实现 (4)1.3 音乐产生原理 (4)2 系统总体方案及硬件设计 (6)2.1 总体方案 (6)2.2 硬件部分 (6)2.2.1 矩阵键盘部分 (7)2.2.2 扬声器接口电路部分 (7)3 软件设计 (8)4 Proteus软件仿真 (11)5 课程设计体会 (12)参考文献 (12)附录1 源程序代码 (13)附录2系统原理图 (27)1 概述1.1 功能简介电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。
它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。
本简易电子琴的设计可实现的功能如下:程序中预存了一首音乐《月亮代表我的心》,通过一个独立键盘可以实现对该音乐的播放和停止操作的控制。
4*4矩阵键盘的16个按键分别对应着16个不同的音符,分为高、低两个八度,当按下某一按键,会发出相应的音调。
按下按键时,扬声器会发出声音,松开按键后,扬声器停止发声,按键的时间越长,发声时间越久。
连续按下不同的按键,可以实现乐曲的演奏。
1.2 功能的实现功能的实现部分分为软件和硬件两部分来简介。
1.3 音乐产生原理一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,只需将一首歌的音阶和频率相对应即可。
若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。
利用定时器计时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相。
就可在P1.0引脚上得到此频率的脉冲。
利用AT89S52的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T=1/523=1912μs,因此只要令计数器计时956μs/1μs=956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。
计数脉冲值与频率的关系式(如式2-1所示)是:N=fi÷2÷fr 2-1 式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。
其计数初值T的求法如下:T=65536-N=65536-fi÷2÷fr 2-2 例如:设K=65536,fi=1MHz,求低音DO(261Hz)、中音DO (523Hz)、高音DO(1046Hz)的计数值。
T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr=65536-500000/fr低音DO的T=65536-500000/262=63627中音DO的T=65536-500000/523=64580高音DO的T=65536-500000/1046=65059我们要为这个音符建立一个表格,单片机通过查表的方式来获得相应的数据,音符表见附录一。
音乐的音拍,一个节拍为单位(C调)(如表2-1所示)错误!未指定书签。
对于不同的曲调我们也可以用单片机的定时/计数器来完成。
程序流程图如图2.5。
2 系统总体方案及硬件设计2.1 总体方案本设计采用4*4键盘控制通过程序产生高八度和低八度音律,要考虑到软件和硬件的匹配以及硬件电路焊接时的排版问题,否则建会带来不必要的焊接麻烦,在编程序时要注意仿真与实际电路中可能的不符,2.2 硬件部分本设计硬件电路共由以下几部分构成:矩阵键盘部分;扬声器部分;AT89S52主控电路部分;独立按键部分。
2.2.1 矩阵键盘部分设计中采用AT89S51的并行口P3接4×4矩阵键盘,以P3.0-P3.3作输入线,以P3.4-P3.7作输出线。
每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码。
矩阵的行线和列线分别通过两并行接口和CPU通信。
每个按键的状态同样需变成数字量“0”和“1”,开关的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。
键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么;还要消除按键在闭合或断开时的抖动。
两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能,在本程序中,当程序检测到有键按下时,将查表使按键值与预存数据表中数据对应,并调用发声程序。
图2.1 矩阵键盘的连接2.2.2 扬声器接口电路部分仿真中的扬声器一段接CPU的P2^4口,另一端接高电平。
当P2^4口有电平变化时,扬声器被驱动发声。
而在实物制作中,这样是难以实现功能的,需要增加模拟电路以除去多余的干扰信号。
也可选用集成芯片LM386作为扬声器的驱动芯片。
若使用LM386驱动扬声器,通过相应的模拟电路的设计,还可以实现音量的调节。
不过,在平时做实物时,我们一般用一个三极管作为放大器,这次我采用的是8050图2.2扬声器接口电路3 软件设计本设计使用Protues仿真软件进行仿真,在程序设计部分,包括键盘扫描程序,音乐发声程序。
程序见附录1。
4*4矩阵键盘是由CPU控制I/O口来实现扫描的。
具体程序见附录二主程序键盘扫描部分。
键盘扫描程序流程图如图2.4。
程序首先给P3口赋值,然后读取P3的状态,将读取的状态值同所赋值相比较,如果二者不相同,则说明有键按下,子程序将按键值返回主程序;否则,说明没有键按下,程序继续进行下一次扫描。
本系统的软件流程图如下图2.3 系统主程序流程键盘扫描程序流程图图2.4键盘扫描程序流程图音乐发声程序图2.5音乐发声程序流程图4 Proteus软件仿真仿真电路图5 课程设计体会将程序烧入芯片,调试成功后,可任意弹奏自己想要的旋律。
本设计通过制作电子琴,将几个模块很好的融合,对使用单片机设计简易电子琴进行了分析,并了解了基于单片机电子琴统硬件组成。
利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。
说明一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,于是我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可,然后我们利用功放电路来将音乐声音放大。
遇到的问题:在刚刚焊接好后,程序烧入芯片后,发现并不发声,经检查才发现是对键盘没看清楚,将键盘接乱了,另外,在硬件电路修改好后,发现每次按键时会引起蜂鸣器一直响,再按键时有可能会消失,经检查后知道是再每按键件程序后蜂鸣器对应参值没有直接置零。
总之,这是一次动手能力的锻炼,也是一次单片机知识的再回顾,还是对自己细心以及耐心能力的考察。
参考文献[1] 贾立新、王涌.电子系统设计与实践[M],清华大学出版社,2008年2月版;[2] 陶春鸣、陈享成、瓮嘉民.单片机使用技术[M],人民邮电出版社,2008年4月版;[3] 余发山.单片机原理及应用技术[M],中国矿业大学出版社,2003年12月版;[4] 李光飞.单片机课程设计实例指导[M], 航空航天大学出版社,2004年9月版;[5] 余永权.ATMEL89 系列单片机[M],北京航空航天大学出版社,2002年4 月版;[6] 胡宴如,耿苏燕.模拟电子技术[M],高等教育出版社,2007年12月版;[7] 赵润林,张迎辉.单片机原理与应用教程[M],北京大学出版社,2007年1月版;[8] 马淑华、王凤文.单片机原理与接口技术[M],北京邮电大学出版社,2005年10月版;[9] 李建忠.单片机原理及应用[M],西安电子科技大学出版社,2002 年5月版;[10] 杨子文.单片机原理及应用[M],西安电子科技大学出版社,2006 年4月版附录1 源程序代码#include<reg51.h>#define uchar unsigned char#define uint unsigned intuint key,i,j,time,m,k;uchar temp;uchar STH0,STL0,STH1,STL1;sbit sw=P2^7;sbit speaker=P2^4;sbit P37=P3^7;sbit P36=P3^6;sbit P35=P3^5;sbit P34=P3^4;//月亮代表我的心数据表code unsigned char sszymmh[]={ 0,2,1, 5,1,1, 1,2,3, 3,2,1, 5,2,3, 1,2,1, 7,1,3,3,2,1, 5,2,2, 0,2,1, 5,2,1, 6,2,1, 7,2,2, 1,3,3,6,2,1, 6,2,1, 5,2,1, 5,2,5, 3,2,1, 2,2,1, 1,2,3,1,2,1, 1,2,2, 3,2,1, 2,2,1, 1,2,3, 1,2,1, 1,2,2,2,2,1, 3,2,1,2,2,2, 1,2,1,6,1,2, 2,2,1, 3,2,1, 2,2,5,};// 音阶频率表高八位code unsigned char FREQH[]={0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC,//1,2,3,4,5,6,7,8,i0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,} ;// 音阶频率表低八位code unsigned char FREQL[]={0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F,//1,2,3,4,5,6,7,8,i0xEE,0x44, 0x6B,0xB4,0xF4,0x2D,0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,};unsigned int code tab[]={ 64103,64260,64400, 64524,64580,64684,64777,64820,64898,64968,65030,65058,65110,65157,65178,65217};void key_music(){unsigned char tmp;P3=0xff;P34=0;temp=P3;temp=temp&0x0f;tmp = temp;if(temp!=0x0f){for(i=50;i>0;i--)for(j=200;j>0;j--);temp=P3;temp=temp&0x0f;//(temp!=0x0f)if(temp==tmp){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;break;}//speaker=~speaker; STH1=tab[key]/256; STL1=tab[key]%256;temp=P3;temp=temp & 0x0f; while(temp!=0x0f) {TR0=1;temp=P3;temp=temp & 0x0f;}TR0=0;speaker = 0;}}P3=0xff;P35=0;temp=P3;temp=temp&0x0f;tmp = temp;if(temp!=0x0f){for(i=50;i>0;i--)for(j=200;j>0;j--);temp=P3;temp=temp&0x0f;//(temp!=0x0f)if(temp==tmp){temp=P3;temp=temp&0x0f;switch(temp){case 0x0e:key=4;break;case 0x0d:key=5;break;case 0x0b:key=6;break;case 0x07:key=7;break;}//speaker=~speaker; STH1=tab[key]/256; STL1=tab[key]%256;temp=P3;temp=temp & 0x0f; while(temp!=0x0f) {TR0=1;temp=P3;temp=temp & 0x0f;}TR0=0;speaker = 0;}}P3=0xff;P36=0;temp=P3;temp=temp&0x0f;tmp = temp;if(temp!=0x0f){for(i=50;i>0;i--)for(j=200;j>0;j--);temp=P3;temp=temp&0x0f;//(temp!=0x0f)if(temp==tmp){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;}//speaker=~speaker; STH1=tab[key]/256; STL1=tab[key]%256;temp=P3;temp=temp & 0x0f;while(temp!=0x0f){TR0=1;temp=P3;temp=temp & 0x0f;}TR0=0;speaker = 0;}}P3=0xff;P37=0;temp=P3;temp=temp&0x0f;tmp = temp;if(temp!=0x0f){for(i=50;i>0;i--)for(j=100;j>0;j--);temp=P3;temp=temp & 0x0f;//(temp!=0x0f)if(temp==tmp){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;}//speaker=~speaker;STH1=tab[key]/256;STL1=tab[key]%256;temp=P3;temp=temp & 0x0f;while(temp!=0x0f){TR0=1;temp=P3;temp=temp & 0x0f;}TR0=0;speaker = 0;}}}void timer0(void) interrupt 1 using 0 {if(sw==1){TH0=STH1;TL0=STL1;}else{TH0=STH0;TL0=STL0;}speaker=~speaker;}void delay(unsigned char t) {unsigned char t1;unsigned long t2;for(t1=0;t1<t;t1++){for(t2=0;t2<8000;t2++){;}}TR0=0;}void song(){TH0=STH0;TL0=STL0;TR0=1;delay(time);}void music(void){unsigned int cnt;m=0;time=1;sw=1;cnt = sizeof(sszymmh)/sizeof(char);while(time&&sw==0){if(sw){i=0;continue;}else{k=sszymmh[m]+7*sszymmh[m+1]-1;STH0=FREQH[k];STL0=FREQL[k];time=sszymmh[m+2];song();m=m+3;if(m > cnt) break;}}speaker = 0;}void main(){TMOD=0x01;ET0=1;TF0 = 1;EA=1;while(1){if(sw==1)key_music();else music();}}附录2系统原理图。