版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业 滨江学院 微机原理与接口技术综合实验报告 题 目 简易电子琴设计 学 号 学生姓名 王兴江 院 系 滨江学院专 业指导教师二一二 年 月 日 TOC o 1-3 h z u 【摘要】由于音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用单片定时/计数器T产生不同的频率的组合,从而构成音乐。本次设计实现的大体功能:当系统扫描到键盘上有键子被按下,则快速检测出是那一个键子,然后单片机的定时就会发出相应的音调。定时器被启动,发出一定频率的脉冲,该频率
2、的脉冲通过P3串口并驱动喇叭发音。同时键值显示在LED显示器上。【关键词】 单片机 电子琴 AT89C51一、引言1.1 电子琴设计的背景随着电子科技的飞速发展,电子技术正在逐渐改善着人们的学习、生活、工作,因此开发本系统希望能够给人们多带来一点生活上的乐趣。基于当前市场上的玩具市场需求量大,其中电子琴就是一个很好的应用方面。单片机技术使我们可以利用软硬件实现电子琴的功能,从而实现电子琴的微型化,可以用作玩具琴、音乐转盘以及音乐童车等等。并且可以进行一定的功能扩展。鉴于传统电子琴可以用键盘上的“k0”到“k16”键演奏从低So到高DO等16个音,从而可以用来弹奏喜欢的乐曲。1.2 电子琴设计的
3、意义该设计具有以下优点:(1)可以随意弹奏想要表达的音乐;(2)制作简单,成本低。 (3)比传统电子琴功能更完善。1.3 电子琴设计的目标由于本设计主要用于人们娱乐方面,因此在设计上尽量使其安全以及简单易操作。其次,在这次设计可行性上进行分析如下:1、经济可行性:所谓经济可行性,即在这次设计上需要投入资金的多少,由于课程设计是提高我们的动手能力以及资金有限。因此在经济上必须能够承受,比较理想化的对于我们课程设计来说是不可行的。通过分析后,无论是在器件价格或是常见度上均是可行的。2、技术可行性:技术可行性主要是分析技术条件上是否能够顺利开展并完成课程设计的主要问题,硬件、软件能否满足设计者的需要
4、等。通过分析各种软件环境,硬件仿真环境等均已经具备。综上所述,本系统设计目标已经明确,在经济与技术上均可行,因此本系统的开发是完全可行的。二系统整体设计1.设计任务基于MCS系列单片机AT89C51。设计一个简易电子琴2.功能描述1)利用所给键盘的1,2,3,4,5,6,7,8八键,能够发出8个不同的音符。2)并且要求按下按键发声,松开延时一段时间停止,中间再按别的键则发出另一音符的声音。3)使用LED数码管显示8个不同的音调。4)如果在一个按下的键发声的同时有另一键被按下,前面键的发音停止,转到后按的键的发音。5)增加变调钮“UP1”,“UP2”,“DN1”,“DN2”,在按下“08”音符时
5、,变调键,产生相应的变调,使用LED数码管显示变调情况。6)其它功能3.软硬件描述该课题主要由软件及其硬件两个基本部分共同完成。硬件主要部分:4x4矩阵式键盘(主要用于音符的输入以及变调的键值输入,其与单片机的P0口连接). MCS51-AT89单片机芯片. 两位LED数码管显示器.以及一些基本外围电路。软件主要部分:运用c语言进行相应的编程,其主要包括控制按键扫描程序,发声主程序,以及显示程序。4.模块描述总体方案:本系统采用单片机AT89C51为电子琴的控制核心,系统主要包括播放模块.按键控制模块以及显示模块。电路设计总体框图AT89C51矩阵式按键输入电路LED数码管扬声器电源时钟电路2
6、步骤:根据设计题目的具体要求及题目的设计提示,利用Proteus软件来画原理图(硬件)。利用Keil软件进行程序的编写,执行,及仿真。从而生成HEX文件调将HEX文件导入原理图的AT89C51中进行仿真试并实现相应的功能三 . 硬件电路设计及描述总体原理图:1 4x4矩阵键盘控制模块其与单片机的具体连接方式如下:(1)矩阵式键盘的结构与工作原理在中按键数量较多时,为了减少I/O口的占用,通常将按键排列成形式,如图所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口P1就可以构成4*4=16个按键。矩阵式结构的键盘显然比直接法要复杂一些,识别也要复
7、杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。具体的识别及方法如下所述。 (2)矩阵式键盘的按键识别方法行扫描法 行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如上图所示键盘,介绍过程如下。 a.判断键盘中有无键按下 将全部行线置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个
8、按键之中。若所有列线均为高电平,则键盘中无键按下。 b.判断闭合键所在的位置 在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。 程序扫描法就是调用键盘扫描程序,查询键盘并给予处理的方法。 1)查询是否有键盘按下2)延时去除抖动3)确定下来按键所在的行. 列位置具体框图如下开始判断是否有键按下?确定按下哪个键否是确定键值调用显示程序调用发声程序2. 发声模块扬声器与单片机的连接方式如图扬声器连接在P3
9、.0口,当有键盘按下时候,单片机会通过程序调用相应键值,由P3.0输出对应的频率信号,从而驱动扬声器发声。具体框图如下:P3.0检测到频率信号扬声器发声驱动3. 显示模块2位LED数码管与单片机的连接图图中:1、2是公共端,控制位码,控制那个数码管亮(左右),如果是共阴的则接低电平,若为供阳的则相反。,a-g、dp是控制断码,控制9个二极管的亮暗,可以直接接51的输出口(P0要加上拉电阻),如果是共阴的则接高电平来使数码管亮,若为供阳的则相反。用8位码控制,用16进制表示!二极管从最上面顺时针分别为a,b,c,d,e,f中间横线为g,点为dp。4 设计的核心部件及其外围基本电路AT89C51简
10、介AT89C51是一种带4K字节FLASH(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称。AT89C2051是一种带2K字节闪存可编程可擦除的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多提供了一种灵活性高且价廉的方案。外
11、形及引脚排列VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2
12、口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被
13、内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 AL
14、E/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访
15、问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。四. 软件设计思想及流程在程序中根据相应的音符只做一个频率表,当单片机检测到键值的时候,主程序将自动调用表格中的程序,发出相应的信号驱动扬声器发声,同时LED数码管显示其键值
16、(音调)。本设计的题目包括,按键程序,主程序等几个部分组成。具体流程图如下:执行程序扫描P1外接的键盘程序调用主程序发声显示返回开始是否有按键按下?YN放开按键五硬件的调试过程及调试方法1)由于本次设计并没有进行实际硬件的实做,所以我们本次对硬件的调试过程仅仅局限于电路图的修改调试。一开始仿照题目进行画图仿真,我们并没得到相应的结果。2)对于软件我们便是不断检查并修改C程序,从而形成合格的HEX文件。驱动单片机实现相应的功能。六重要程序及源代码/*程序功能 : 对44矩阵键盘进行扫描,显示键值和输出声音*/ #include #include #define uint unsigned int
17、 #define uchar unsigned charsbit SPK = P30; /P3.0外接扬声器uint FreqTemp;unsigned int code Key= 0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71;unsigned int code Freqtab = /定时半周期的初始值 64021,64103,64260,64400, /低音3 4 5 6 64524,64580,64684,64777, /低音7,中音1 2 3
18、64820,64898,64968,65030, /中音4 5 6 7 65058,65110,65157,65178; /高音1 2 3 4/* * 函数功能 : 用扫描法读 P1 外接 44 键盘* 函数返回 : 按下键:返回015、如无键按下:返回0*/ uchar Keyscan(void) uchar i, j, temp, Buffer4 = 0 xfe, 0 xfd, 0 xfb, 0 xf7; for(j = 0; j 4 ; j+) /循环四次,扫描四行 P1 = Bufferj; /在低四位分别输出一个低电平 temp = 0 x80; /计划先读出P1.7位 for(i
19、= 0; i = 1; /换右边一位 return 16; /没有键按下就返回16作为误判动作 /* * 名称: Display(uchar k) * 功能:显示键值(音调或者音符)* 输入: k (键盘数值) * 输出: P0口输出七段码,P2口输出位选码(根据要求这里只输出一位)*/ void Display(uchar k) P0 = Keyk;/* * 主函数 */ void Main(void) uchar Key_Value = 16, Key_Temp1, Key_Temp2;/读出的键值 TMOD = 0 x01; /T0定时方式1 ET0 = 1; /允许T0中断 EX0 =
20、 1; /允许X0中断 EA = 1; while(1) TR0 = 0; /暂不发音 Key_Temp1 = Keyscan(); /读入按键 if(Key_Temp1 != 16) /有键按下 Display(Key_Value); /显示键值、延时消抖 Key_Temp2 = Keyscan(); /再读一次 if (Key_Temp1 = Key_Temp2) /两次相等 Key_Value = Key_Temp1; /就确认下来 FreqTemp = FreqtabKey_Value; /根据键值,取出定时半周期的初始值 Display(Key_Value); /显示 TR0 = 1; /启动定时器,发音 whi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (高考英语作文炼句)第24篇译文老师笔记
- 开题报告:指向完整儿童发展的形成性评价研究
- 开题报告:粤港澳跨境就读青少年的国家认同研究
- 《货物运输实务》课件 6.3危险货物的运输组织
- 开题报告:新时代中小学“大先生”的素养结构、成长轨迹及支持政策研究
- 开题报告:新时代爱国主义教育长效机制研究
- 2024年化工原料购销协议范本版
- (银行培训课件)单位定期存款运营管理部贾光普 (村镇银行)
- 2024年专业羽毛球场租赁合同指南版
- 2024年事业单位管理岗位劳动协议
- 节粮减损提升方案
- 广东省深圳市2023-2024学年八年级上册期末考试物理模拟试题(附答案)
- 广州市普通高中、初中、小学教育装备配置指南
- 《物流网络规划》课件
- 高渗性昏迷护理查房
- 提升自我领导力培训
- 电梯维保公告栏表格
- 江西省-三新-协同教研共同体2023-2024学年高二上学期12月联考英语试卷
- 直播电商基地推动城乡经济融合发展
- 三层电梯PLC控制系统设计(S7-200)含程序
- 机场安全管理体系-安机场安全管理手册2
评论
0/150
提交评论