51单片机电子琴设计
前言:单片机入门实践操作,本系统是以51系列单片机AT89C51为主控制器,附有独立阵键盘、LED显示管、扬声器组成。系统完成显示输入信息、播放相应音符等基本功能。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值
设计目标:设计一简易电子琴,要求能够发出1、2、3、4、5、6、7等八个音符。
使用元件:AT89C51、LM386,喇叭,按键等设计思路:程序设计的思路按以下顺序进行:
1. 分析与确定程序总体设计目标
2. 将总体目标划分为若干模块
3. 定义每个模块的具体任务,明确它与其他模块间的通信方式
4. 编写源程序,进行调试设计原理
对于单片机定时器来说,每给它装特定的初值就会相应的产生多长时间的中断,进而利用高低电平 在其输出端送到扬声器上即可产生正弦波。对于音乐,每个音阶都有确定的频率。 各音阶标称频率值如下:
由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。(实物焊接出来的频率稍微偏差,以实际为准调节)
系统硬件图
总结:
本次设计中单片机晶振为11.0592MHZ,那么定时器的计数周期为11.0592/12MHZ,假如选择工作方式1,那T值便为T= 216–5﹡105/相应的频率 ,那么根据不同的频率计算出应该赋给定时器的计数值即可。
(如果错误,欢迎批评指正,请大佬轻喷)
仿真图和代码在我的资源中下载即可,内附完整的报告和代码
51单片机电子琴设计相关推荐
- 51单片机用c语言写音符代码,51单片机电子琴设计C语言程序实例
51单片机C程序实例,电子琴设计 #define uchar unsigned char //定义一下方便使用 #define uint unsigned int #define ulong unsi ...
- 基于51单片机电子琴设计
1. 设计要求 设计一个电子琴.利用所给键盘的1,2,3,4,5,6,7,8八个键,能够发出8个不同的音调,并且要求按下按键发声,松开延时一段时间停止,中间再按别的键则发另一音调的声音. 2.Prot ...
- 51单片机硬件设计-最小系统(一)
51单片机硬件设计 很早之前就想编写一个51单片机的库,库中集成所有的电子小模块,可裁剪添加,到现在也算是实现了,为此写一个系列的文章以作记录. 电源部分 电源部分没什么东西,就是一个插针,四针脚的插 ...
- 51单片机系列(三)51 单片机游戏设计 —— 双人对战小游戏(石头剪刀布)
本博客51单片机实训系列,旨在记录本人在大学上单片机技术这门课时所做的课程实训内容,并与大家分享基于51单片的课程作业,如果作业中的某些细节和代码能给大家一点启发那就更好了,希望大家能用51单片机做出 ...
- 51单片机课程设计:基于DHT11的温湿度报警器
51单片机课程设计:基于DHT11的温湿度报警器 本程序适用于51系列单片机,主要用于读取DHT11温湿度模块数值,显示在数码管上,同时还具备温湿度报警功能,当超出预设值,蜂鸣器报警,可在吉林农业大学 ...
- 温度报警程序c语言设计,51单片机课程设计:基于DS18B20的温度报警器
51单片机课程设计:基于DS18B20的温度报警器 本程序用于读取DS18B20温度,同时具备报警功能,工程分为3个文件,main.c.temp.c.temp.h,经本人修改部分代码,适用于吉林农业大 ...
- 8155与单片机c语言设计,51单片机课程设计报告-基于8155的8LED显示电子码表设计.doc...
51单片机课程设计报告 --基于8155的8LED显示电子码表设计 实验目的 本次课程设计是基于51单片机在理论课程的基础上,通过电路设计.理论计算.实际编程.调试.测试.分析查找故障,解决在实际设计 ...
- 51单片机密码锁设计
51单片机密码锁设计 实现要求: 仿真图: 代码块: while(1){if(cmpflag==0){ if(P3^6==0) //function key{for(i=10;i>0;i--)f ...
- 51单片机课程设计《三路步进电机控制》
说明:最近抽出了几天时间完成了单片机的课程设计,用了51单片机做了三路步进电机控制器,美名其曰3d打印机控制器(其实是瞎搞的,与3D打印机毫无关系),因为单片机课程设计是在大四上学期,与考研复习时间冲 ...
- 51单片机:设计电子密码锁
文章目录 一.课程设计内容 功能阐述 二.开发板原理图与设计流程图 三.设计思路和方法 1.EEPROM初始化 2.LCD1602初始化 3.矩阵按键扫描 4.输入密码 5.密码比对 四.源代码附录 ...
最新文章
- 《电路分析导论(原书第12版)》一2.5.1 电池
- php 日志处理工具 SeasLog 的使用
- Hyperledger Fabric安装问题备忘(二)
- angularjs的双向绑定原理实现
- javascript返回上一页的三种写法
- 详细回复某个CSDN网友,对我的文章和技术实力以及CSDN的吐槽
- python 示例_Python中带有示例的关键字除外
- JS window事件全集解析 (转载)
- 学生成绩abcde怎样划分_同等教育下,学生成绩差距较大,怎样避免学习中的“马太效应”?...
- postgresql9.6 的安装
- 【洛谷P2872】道路建设(最小生成树prim/kruskal)
- Lamp兄弟连Linux视频教程
- Java程序员的第一个Python小程序:京东畅销书榜爬虫
- 彩色数字图像处理基础
- Mac火爆游戏---英雄联盟LOL
- 图计算库 igraph 在 windows 10 上的编译安装
- 互信息(Mutual Information)介绍
- python+flask+html/css+mysql+BAE 打造CSDN简历自动生成系统(附网站完全源码)
- 微信鼠标点击显示二维码代码
- uTorrent 2.2.1 高级参数设置详解及优化(转载)