基于单片机的简易电子琴 - 图文
更新时间:2023-10-06 11:09:01 阅读量: 综合文库 文档下载
物理与电子工程学院
本科生课程设计报告
题 目 基于单片机的电子琴设计 专 业 电子信息科学与技术 学生姓名 学 号 年 级 班级 指导教师 职称
2012 年 6 月 1 日
摘要:随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。我们都会抽空欣赏世界名曲,作为对精神的洗礼。本论文设计一个基于单片机的简易电子琴。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本系统是以51系列单片机80C51为主控制器,附有矩阵键盘、LED显示管、扬声器组成。系统完成显示输入信息、播放相应音符等基本功能。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。
关键词:80C51,矩阵键盘,LED显示管,扬声器。
1 引言
1.1 目的和意义
单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。
电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用80C51单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。
本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。本系统是简易电子琴的设计,按下键盘矩阵中的按键会使数码管显示当前按键,扬声器播放器对应的音符。通过设计本系统可了解单片机的基本功能。对单片机的了解有一个小的飞跃。
1.2 本系统主要研究内容
本系统设计制作一个可演奏的电子琴。综合应用了两项设计。 (1)键盘矩阵识别。即矩阵扫描,显示当前按键。 (2)不同频率音符播放。可以通过按键控制16种发音。
1.3 主要芯片简介
80C51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器
件采用ATMEL公司的高密度、非易失性存储技术制造,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的80C51可为许多嵌入式控制应用系统提供高性价比的解决方案。
80C51具有如下特点:40个引脚(引脚图如图1-2所示),4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外,80C51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
2 系统分析
2.1 系统组成
本系统只要以51单片机为主控核心,与矩阵键盘、扬声器、LED显示管模块一起组合而成。具体如下:
2.2 系统工作原理
本系统扫描键盘矩阵、显示按键、扬声器发出对应音符。 4X4行列式键盘识别及显示原理如下:
组成键盘的按键有机械式、电容式、导电橡胶式、薄膜式多种,但不管什么形式,其作用都是一个使电路接通与断开的开关。目前微机系统中使用的键盘按其功能不同,通常可分为编码键盘和非编码键盘两种基本类型。 编码键盘:键盘本身带有实现接口主要功能所需的硬件电路。不仅能自动检测被按下的键,并完成去抖动、防串键等功能,而且能提供与被按键功能对应的键码(如ASCII码)送往CPU。所以,编码键盘接口简单、使用方便。但由于硬
件电路较复杂,因而价格较贵。
非编码键盘:键盘只简单地提供按键开关的行列矩阵。有关按键的识别、键码的确定与输入、去抖动等功能均由软件完成。目前微机系统中,一般为了降低成本大多数采用非编码键盘。
键盘接口必须具有去抖动、防串键、按键识别和键码产生4个基本功能。 (1)去抖动:每个按键在按下或松开时,都会产生短时间的抖动。抖动的持续时间与键的质量相关,一般为5—20mm。所谓抖动是指在识别被按键是必须避开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。去抖问
题可通过软件延时或硬件电路解决。
(2)防串键:防串键是为了解决多个键同时按下或者前一按键没有释放又有新的按键按下时产生的问题。常用的方法有双键锁定和N键轮回两种方法。双键锁定,是当有两个或两个以上的按键按下时,只把最后释放的键当作有效键并产生相应的键码。N键轮回,是当检测到有多个键被按下时,能根据发现它们的顺序依次产生相应键的键码。
(3)被按键识别:如何识别被按键是接口解决的主要问题,一般可通过软硬结合的方法完成。常用的方法有行扫描法和线反转法两种。行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此,需要设置入口、输出口一个,该方法在微机系统中被广泛使用。线反转法的基本思想是通过行列颠倒两次扫描来识别闭合键,为此需要提供两个可编程的双向输入/输出端口。
(4)键码产生:为了从键的行列坐标编码得到反映键功能的键码,一般在内存区中建立一个键盘编码表,通过查表获得被按键的键码。
用80C51的并行口P1接4×4矩阵键盘,以P1.0-P1.3作输入线,以P1.4-P1.7作输出线;在数码管上显示每个按键的“0-F”序号。
总体电路具体原理如下:
3 系统硬件设计
3.1 系统硬件总体设计
本系统由键盘矩阵、LED显示管、扬声器这几个部分组成,LED显示管显示当前按键,扬声器发出对应音符。硬件总体设计图如下:
3.2子系统(模块)一
LED显示模块如图2-2所示,利用80C51单片机的P0端口的P0.0-P0.7连接到一个七段数码管的a-h的笔段上,数码管的公共端接电源。
矩阵扫描显示当前按键模块如下:
3.3子系统(模块)二
矩阵扫描扬声器发出对应音符模块如下:
3.4子系统(模块)三
矩阵键盘模块图如下:
4 系统软件设计
4.1 系统软件总体设计
本系统的软件流程图如下:
4.2 子系统一
七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,
根据各管的极管的接线形式,可分成共阴极型和共阳极型。 LED数码管的g~a七个发光二极管因加正电压而发亮,因加零电压而不以发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码。
本系统按键显示模块软件流程图如下:
4.3子系统二
一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。 利用80C51的内部定时器使其工作计数器模式(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
例如:设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
本系统按键发出对应音符模块软件流程图如下:
附录
本系统总体代码如下: #include
#define uchar unsigned char #define uint unsigned int uchar code DSY_Table[]=
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80, 0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xBF}; uint code Tone_Delay_Table[]=
{64021,64103,64260,64400,64524,64580,64684,64777,
64820,64898,64968,65030,65058,65110,65157,65178}; sbit BEEP=P3^0;
uchar KeyNo;
void DelayMS(uchar x) {
uchar i;
while(x--) for(i=0;i<120;i++); }
void Keys_Scan() {
uchar Tmp,k; P1=0x0F; DelayMS(2); Tmp=P1^0x0F; switch(Tmp) { case 1:k=0;break; case 2:k=1;break; case 4:k=2;break; case 8:k=3;break; default:return; }
P1=0xF0; DelayMS(2);
Tmp=(P1>>4)^0x0F; switch(Tmp) { case 1:k+=0;break; case 2:k+=4;break; case 4:k+=8;break; case 8:k+=12;break; default:return; }
KeyNo=k; }
void play_Tone() interrupt 1 {
TH0=Tone_Delay_Table[KeyNo]/256; TL0=Tone_Delay_Table[KeyNo]%6; BEEP=~BEEP; }
void main() {
}
P0=0xBF; TMOD=0x01; IE=0x82; while(1) { P1=0xF0; if(P1!=0xF0) { Keys_Scan(); P0=DSY_Table[KeyNo]; TR0=1; } else { TR0=0; } DelayMS(2); }
}
P0=0xBF; TMOD=0x01; IE=0x82; while(1) { P1=0xF0; if(P1!=0xF0) { Keys_Scan(); P0=DSY_Table[KeyNo]; TR0=1; } else { TR0=0; } DelayMS(2); }
正在阅读:
基于单片机的简易电子琴 - 图文10-06
鹬蚌相争后续三年级400字06-16
2022年大连工业大学生物工程学院706微生物学之微生物学教程考研04-20
财务报表阅读分析讲义03-17
第六课《平等对待你我他》10-02
2015-2016年湖南省郴州市初三上学期期末数学试卷及参考答案08-29
平阳县2012年初中数学学业考试基础训练-综合练习10含答案和评分04-27
“十三五”规划重点-骨科用中药项目建议书(立项报告)08-25
收音机参数及测试方法05-27
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 电子琴
- 单片机
- 简易
- 基于
- 图文
- 基于WEB的商场管理系统的设计与实现 初稿(1) 111
- 老挝矿山资料
- 江苏技术师范学院标准的个人简历表格
- 新房地产估价规范知识竞赛题1
- 年产10万吨二甲醚初步工艺设计
- 小学英语教学反思
- 金山路土方方案
- 塑胶模具设计(初级) - 图文
- HARVARD ManageMentor
- 任正非讲话读后感
- 汉语拼音复习资料
- 公司安全生产委员会机构设置与职责
- 2011执业护士 习题 第2章 循环系统疾病病人的护理 - 图文
- 要想做好网络推广你必须得做的几件事
- 中国新闻事业史教学大纲第5章民国初年的新闻事业
- 四川什邡七一中学第一次月考语文试题
- 2017年重庆市第四届生态文明知识竞赛题库带答案
- 2012年公职人员网上学法考试练习题
- 2018年中国皮革箱包市场研究分析报告目录
- 安全文明校园申报材料