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

3 下载量 131 浏览量 更新于2024-06-28 2 收藏 665KB DOC 举报
"基于单片机的电子琴设计" 这篇文档主要介绍了基于单片机的电子琴设计,由XX航空工业管理学院14届电子信息工程专业的学生完成,涉及到电子琴的基本原理、硬件设计、软件设计以及课程设计的总结。电子琴作为一种结合了现代电子科技与音乐的乐器,其设计的核心是利用单片机进行控制。 电子琴的基本原理部分,设计内容包括使用键盘上的特定按键(16,15,14,13,12,11,10,9)来产生7个不同的音调,并且8,7,6三个键用于自动播放预设的歌曲。当按键被按下时,单片机会检测到并启动定时器,生成对应频率的脉冲,经过扬声器驱动电路放大滤波后,产生相应的音调。此外,设计还加入了数码管显示功能,当发出1至7的音调时,数码管会显示对应的数字。 硬件设计部分,主要涵盖了以下几个方面: 1. 硬件原理图:详细展示了电子琴的电路布局和连接方式。 2. 键盘设计:描述了如何通过键盘输入产生不同音调的信号。 3. 时钟电路:确保系统准确计时,可能使用了晶体振荡器等组件。 4. 复位电路:提供系统的初始化功能,确保单片机在启动或异常后能正确复位。 5. 元件清单:列出了所有必要的电子元件,如电阻、电容、集成电路等。 6. 数码管显示局部:用于显示当前音调或播放状态。 7. 发音局部设计:包含了音频信号的生成和放大电路。 8. 硬件调试:讲述了如何测试和调整硬件以达到最佳性能。 软件设计部分,主要程序包括: 1. 键盘扫描程序:持续检测键盘输入,识别按下的按键。 2. 功能转移程序:根据按键输入,切换到相应的功能模式。 3. 琴键处理程序:处理按键输入,生成对应的音调信号。 4. 自动播放歌曲程序:预设了音乐序列,实现自动播放功能。 5. 程序流程图:用图形表示了程序的执行顺序。 6. 设计源程序:提供了完整的单片机程序代码。 课程设计总结与指导教师评语部分,作者回顾了设计过程中的挑战和收获,而指导教师可能给出了对学生工作表现的评价和改进建议。 这个基于AT89S51单片机的电子琴设计项目,旨在通过简单的硬件电路和精心编写的软件程序,实现模拟传统钢琴的演奏功能,同时加入了一些附加特性,如自动播放和数码管显示,以提升用户体验。这样的设计不仅锻炼了学生的实践能力,也为单片机应用开发提供了一个生动的教学实例。
2023-02-27 上传
基于单片机电子琴设计全文共6页,当前为第1页。基于单片机电子琴设计全文共6页,当前为第1页。 基于单片机电子琴设计全文共6页,当前为第1页。 基于单片机电子琴设计全文共6页,当前为第1页。 基于单片机的简易电子琴设计 基于单片机电子琴设计全文共6页,当前为第2页。基于单片机电子琴设计全文共6页,当前为第2页。设计目的 基于单片机电子琴设计全文共6页,当前为第2页。 基于单片机电子琴设计全文共6页,当前为第2页。 本方案设计数码管显示音符的实验,使用基于AT89C51单片机,在数码管上显示按键所代表音符的数字,通过键盘可以调节低音,中音,高音的音符,按下数据蜂鸣器会发出相应音符发出的声音。 摘要:通过数码管显示音符的数字,按下键盘,蜂鸣器会发出声音进行提示 关键词:单片机,键盘,蜂鸣器,数码管 硬件电路设计 单片机模块设计 本次设计采用的是单片机AT89C51。芯片共有40个引脚,引脚的排列顺序为从靠芯片的缺口,如图3.1所示。左边那列逆时针数起,依次为1,2,3.....40,其中芯片的1脚顶上有一个凹点。在单片机的40个引脚中,电源引脚2根,外接晶体振荡器引脚2根,控制引脚4根以及4组8位可编程I/O引脚32根。 图 AT89C51管脚图 AT89C51单片机共有4组8位可编程I/O口,分别为P0、P1、P2、P3口,每个口有8位,共32根。每一根引脚都可以编程,比如用来控制电机、交通灯等,开发产品时就是利用这些可编程引脚来实现我们想要的功能。 P0口:8位双向I/O口线,名称为P0.0-P0.7; P1口:8位准双向I/O口线,名称为P1.0-P1.7; P2口:8位准双向I/O口线,名称为P2.0-P2.7; P3口:8位准双向I/O口线,名称为P3.0-P3.7。 本文单片机模块如图所示,主要是由单片机芯片与晶振和复位电路组成的。是由单片机来控制整个系统,让我们的系统可以正常的运行。 基于单片机电子琴设计全文共6页,当前为第3页。基于单片机电子琴设计全文共6页,当前为第3页。 基于单片机电子琴设计全文共6页,当前为第3页。 基于单片机电子琴设计全文共6页,当前为第3页。 数码管显示模块设计 LED(Light Emitting Diode)发光二极管缩写。LED数码管是由发光二极管构成的。 常见的LED数码管为"8"字型的,共计8段。它由七个条形发光二极管和一个小圆点发光二极管组成,每一段对应一个发光二极管。一般来说分共阳极和共阴极两种接法,如图4所示为八段LED数码管结构及外形。共阳极LED数码管的发光二极管的阳极连接在一起,公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。反之,共阴极发光二极管的阴极连在一起,通常公共阴极接地。当阳极为高电平时,发光二极管点亮。 LED数码管的a至g七个发光二极管因接得电压不同而导致不同亮暗的组合就能形成不同的字形,这种组合称之为字形码,如表3所示为八段LED数码管的字形码表。 键盘与蜂鸣器系统 基于单片机电子琴设计全文共6页,当前为第4页。基于单片机电子琴设计全文共6页,当前为第4页。 基于单片机电子琴设计全文共6页,当前为第4页。 基于单片机电子琴设计全文共6页,当前为第4页。 键盘接口 蜂鸣器接口 程序的软件设计 #include<reg51.h> #define uchar unsigned char #define uint unsigned char sbit beep=P2^0; uchar code sch[3][7]={{0xf1,0xf2,0xf4,0xf4,0xf6,0xf7,0xf8},{0xf8,0xf9,0xfa,0xfa,0xfb,0xfb,0xfc},{0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfe}};//低音,中音,高音的1,2,3,4,5,6,7 uchar code scl[3][7]={{0x17,0xb7,0x2a,0xcf,0x09,0x20,0x18},{0x88,0x59,0x13,0x68,0x04,0x90,0x0c},{0x44,0xad,0x09,0x35,0x82,0xc8,0x04}}; uchar code smg[7]={0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8}; uchar line=0,note; void delay(uchar i) { uchar j; while(i--) { 基于单片机电子琴设计全文共6页,当前为第5页。基于单片机电子琴设计全文共6页,当前为第5页。 for(j=0;j<110;j++); 基于单片机电子琴设计全文共6页,当前为第5页。 基于单片机电子琴设计全文共6页,当前为第5页。 } } void