




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机应用及原理实践报告题 目 简易电子琴设计 专 业 电子工程 学生姓名 林 新 准考证号 036813200024 指导教师 宗接华 2015 年 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”音符时,变调键,产生相应的变调,使用LED数码管显示变调情况。 6)其它功能 3.软硬件描述 该课题主要由软件及其硬件两个基本部分共同完成。硬件主要部分:4x44 矩阵式键盘(主要用于音符的输入以及变调的键值输入,其与单片机的P0口连接). MCS51-AT89单片机芯片. 两位LED数码管显示器.以及一些基本外围电路。软件主要部分:运用c语言进行相应的编程,其主要包括控制按键扫描程序,发声主程序,以及显示程序。 4.模块描述 总体方案:本系统采用单片机AT89C51为电子琴的控制核心,系统主要包括播放模块.按键控制模块以及显示模块。 电路设计总体框图:2.步骤: A. 根据设计题目的具体要求及题目的设计提示。 B. 利用Proteus软件来画原理图(硬件)。 C. 利用Keil软件进行程序的编写,执行,及仿真。从而生成HEX文件调。 D. 将HEX文件导入原理图的AT89C51中进行仿真 AT89C51。 E. 试并实现相应的功能。2、 实训过程内容:总体原理图:14x4矩阵键盘控制模块其与单片机的具体连接方式如下:(1)矩阵式键盘的结构与工作原理 在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口P1就可以构成4*4=16个按键。矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。具体的识别及编程方法如下述。 (2)矩阵式键盘的按键识别方法 行扫描法 行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如上图所示键盘,介绍过程如下。 a.判断键盘中有无键按下 将全部行线置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。 b.判断闭合键所在的位置 在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。 程序扫描法就是调用键盘扫描程序,查询键盘并给予处理的方法。 1) 查询是否有键盘按下 2) 延时去除抖动 3) 确定下来按键所在的行. 列位置 具体框图如下2. 发声模块 扬声器与单片机的连接方式如图:扬声器连接在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重要程序及源代码 /* 程序功能 : 对44矩阵键盘进行扫描,显示键值和输出声音 */ #include #include #define uint unsigned int #define uchar unsigned char sbit SPK = P30; /P3.0外接扬声器 uint FreqTemp; unsigned int code Key= 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71; unsigned int code Freqtab = /定时半周期的初始值 64021,64103,64260,64400, /低音3 4 5 6 64524,64580,64684,64777, /低音7,中音1 2 3 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 = 0xfe, 0xfd, 0xfb, 0xf7; for(j = 0; j 4 j+) /循环四次,扫描四行 P1 = Bufferj; /在低四位分别输出一个低电平 temp = 0x80; /计划先读出P1.7位 for(i = 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 = 0x01; /T0定时方式1 ET0 = 1; /允许T0中断 EX0 = 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; /启动定时器,发音 while (Keyscan() 8; SPK = SPK; /发音 三、硬件的调试过程及调试方法: 1. 由于本次设计并没有进行实际硬件的实做,所以我们本次对硬件的调试过程仅仅局限于电路图的修改调试。一开始仿照题目进行画图仿真,我们并没得到相应的结果。 2.对于软件我们便是不断检查并修改C程序,从而形成合格的HEX文件。驱动单片机实现相应的功能。 4、 实训心得和体会:特别感谢学校和老师给我们安排了这次课程设计,通过这次实训我们发现现在书本上的知识与实际的应用存在着不小的差距,书本上的知识很多都是理想化后的结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年烘焙师初级考试必-备知识点梳理
- 2025年医学行业招聘面试预测题解析及备考指南
- 2025年计算机等级考试题库及解析含编程与设计
- 申请书课件教学课件
- 2025年物资供应链安全管理面试技巧与模拟题
- 创意英语教学课件
- 包耳旁教学课件
- 创意教学课件制作教程
- 江苏苏州2020-2024年中考满分作文67篇
- 儿童教学互动课件制作
- 附件3:公司境外突发事件应急预案
- 3.1平均数(教学课件)五年级数学上册 沪教版
- 《车路协同系统装调与测试》 课件全套 吕丕华 任务1-10 装调工作方案制定- 绿波车速引导系统测试与设置
- 高端案场物业服务方案
- 初中英语比较级和最高级专项练习题含答案
- 光伏焊带完整版本
- 双镜联合手术案例分享
- 质量通病案例课件
- 南航SVC大数据支撑案例
- 2024新课标《义务教育数学课程标准(2022年版)》测试题(含答案)
- 35kV高压开关柜的检修和维护
评论
0/150
提交评论