基于AT89C51单片机的电子琴设计与仿真

点击链接获取Keil源码与Project Backups仿真图:
https://download.csdn.net/download/qq_64505944/87765092?spm=1001.2014.3001.5503
在这里插入图片描述

源码获取
运用单片机,将音乐的大部分音符与相应按键相匹配,让音乐爱好者利用单片机也可以进行演奏。
基本要求:
1、认真完成系统需求分析,明确数据要求和处理要求;
2、设计出系统的概念模型,画出系统流程图;
3、设计的硬件电路图与程序流程图;
4、源程序代码;
5、系统运行结果符合课程设计要求;
主要参考资料:
[1]李广弟等编著,《单片机基础》,北京航空航天大学出版社,2001.
[2]周爱武,汪海威,肖云.数据库课程设计[M].北京:机械工业出版社,2016
[3]李光才,楼然笛《单片机课程设计实例指导》北京航空航天大学出版社,2017.

完 成 期 限
指 导 教师签名
课程负责人签名

摘要

随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中简易电子琴就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。
本设计所介绍的简易电子琴与平常电子琴相差不多,因为是简易的,所以音符数并不完全对应。
随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机的简易电子琴。

关 键 词: 单片机,电子琴

目录
一、概述 3
1、 课程设计目的 3
2、 功能说明 3
二、硬件电路 4
1、单片机概述 4
2、MCS-51 系列单片机介绍 4
三、系统设计 6
1、部分硬件及管脚的功能 6
2、成功图例 6
四、仿真现象记录 7
总结 10
参考文献 11

一、概述
1、 课程设计目的
鉴于日常生活中在学习时害怕乏味,所以制作一个简易电子琴丰富一下生活。
2、功能说明
运用单片机将电子琴的音符与单片机中的按键相对应,方便在学习单片机时一展歌喉,让大家欣赏。

在这里插入图片描述

二、硬件电路
1、单片机概述
单片机因将其主要组成部分集成在一个芯片上而得名,具体说就是把中央处理器CPU(Central processing unit)。随机存储器RAM(Random access memory)。只读存储器ROM(Read only memory)。 中断系统、定时器/计数器以及I\O(Input/output)接口电路等主要微型机部件集成在一个芯片上。虽然单片机只是一个芯片,但从组成和功能上看,它已具有了计算机系统的属性。为此,称它为单片微型计算机SCMC(Single chip micro computer),简称单片机。 单片机主要应用与控制领域,用以实现各种测试和控制功能,为了强调起控制属性,也可以把单片机称为微控制器MCU(Micro controller unit)。在国际上,“微控制器”的叫法似乎更通用一些,而在我国则比较习惯与“单片机”这一名称。 单片机在应用时,通常是处于控制系统的核心地位并融入其中,即以嵌入的方式进行使用,为了强调其"嵌入"的特点,也常常将单片机称为嵌入式微控制器EMCU(Embedded micro controller unit)。在单片机的电路和结构中,有许多嵌入式应用的特点。
2、MCS-51 系列单片机介绍
80C51 芯片介绍
MCS-51的原生产厂商是Intel公司,最早推出80C51芯片的也是Intel公司,并且作为MCS-51的一部分,按原MCS-51芯片的规则命名,例如80C31、80C51、87C51和89C51,这样我们就能很容易地认识80C51的系列芯片。 但是后来愈来愈多的厂商生产80C51的系列芯片,例如PHILIPS,ATMEL,LG,华邦等公司。这些芯片都是以80C51为核心并且与MCS-51芯片兼容,但它们又各具特点。然而由于生产厂家多,芯片的类型也很多,使芯片的命名无法再遵循统一的规律,造成我们辨认上的困难。例如PHILIPS公司生产的80C51系列芯片名称分别为:80CXXX(ROM Less型),83CXXX(Mask ROM型);Siemens公司命名为C500系列,芯片型号以”C5“打头;而华邦公司则命名为W77C51系列和W78C51系列等等。
新一代80C51的兼容芯片,还在芯片中增加了一些外部接口功能单元,例如数/模转换器,可编程计数器阵列,监视定时器,高速I/O口,计数器的俘获/比较逻辑等,有些还在总线结构上也做了重大改进,出现了廉价的非总线型单片机芯片…。所有这些使新一代的兼容芯片已远非原来意义上的80C51了。 目前这些80C51的兼容芯片已开始在我国使用,其中尤以 PHILIPS公司的同名芯片80C51及其派生产品最受欢迎,而ATMEL公司的闪速存储器型单片机芯片AT89C51等更是后来居上,大有取代传统EPROM型芯片之势。

最小系统:
最小系统就是单片机在发挥具体测控功能时所必须的组成部分。如下图所示为最小系统方框图:





复位电路
输入、输出设备

振荡电路

电源

在这里插入图片描述

图2-1 最小系统方框图

三、系统设计
1、部分硬件及管脚的功能
(1)蜂鸣器 SOUNDER
通过在某一接脚接高电压使线圈产生电流从而产生电磁场。产生磁场后将振动膜片吸附到中间的铁柱上,然后在此接脚接低电压,电流断开,磁场消失,振动膜片回弹。有振荡器的蜂鸣器为有源蜂鸣器,它可以直接将输入的高电压转换为一定频率的方波。无源蜂鸣器则没有振荡器需自己设计频率。

在这里插入图片描述

上面两图作用相同
(2)按键 BUTTON
与电子琴的音符相对应。

2、成功图例

在这里插入图片描述

四、仿真现象记录
由于所作项目是音乐,无法演示,大致是与电子琴的音符相对应。
在这里插入图片描述

具体代码:
//51头文件,使用51特殊功能寄存器

#include <reg51.h>
sbit SOUNDER = P3^7;
//声音的频率数据
unsigned int SoundFeqInit[]={64260,64400,64524,//低音5、6、7
							64580,64684,64777,64820,64898,64968,65030,//中音 1-7
							65058,65110,65157,65178,65218};//高音1、2、3、4、5

unsigned char Musical_note;	  //全局变量,存放音符对应的数组中的元素号

void delayms(unsigned char t);//延时函数声明

void main(void)
{
	
				}
			}
		} 
		if(0xf0 == P2)
		{
			TR0 = 0;
			SOUNDER = 1;
		}
	}
}

void T0Sev(void) interrupt 1
{
	TH0 =  SoundFeqInit[Musical_note] / 256;
	TL0 =  SoundFeqInit[Musical_note] % 256;
	SOUNDER = ~SOUNDER;		 //反转引脚,输出方波,即输出频率不同的音符
}

//函数定义 1次
void delayms(unsigned char t)
{
	unsigned int	i,k;
	for(k=0;k<t;k++)
	{
		for(i=0;i<500;i++){;}	 //	500*2us= 1ms
	}
}

总结
在本次课程设计中,加强了对手能力,相比起上学期,更多是靠自己,去查阅资料,去寻找解决办法,还有就是和同学们互相帮助学习。我们这次课题虽然不难,但要去做好它,让它实现正确的功能,也少不了不断的研究和探索,可能废痘忘食,可能绞尽脑汁。不仅是现在的学习,在以后的生活中工作也,以这样一种态度和精神去完成自己的梦想,实现自己的价值。
回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,能够说得是苦多于甜,但是能够学到很多很多的东西,同时不但能够巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提升自己的实际动手水平和独立思考的水平。
参考文献
[1]刘守义等.单片机技术基础[M].西安电子科技大学出版社,2007.
[2]王东峰等.单片机C语言应用100例[M].电子工业出版社,2009.
[3]马忠梅等.单片机的C语言应用程序设计.北京航空航天大学出版社,2003.
[4]王晋凯.简简单单学通51单片机开发[II].清华大学出版社,2014.
[5]刘守义等.单片机技术基础[M].西安电子科技大学出版社,2007.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/20268.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端架构师-week6- ejs源码讲解

ejs 源码详解——彻底搞懂模版动态渲染原理 ejs 执行流程 源码实现思路非常有趣&#xff0c;实现难度实现流程不如前几章源码复杂。但是思路完全不同&#xff0c;用了一套新的思路来实现 ejs 模版渲染。重要的是通过这种思路开阔自己的眼界。ejs 的思路在 vue 中也有用到。 核…

VMware安装Ubuntu系统

VMware安装Ubuntu系统 1.首先选择文件&#xff0c;点击新建虚拟机 2.选择自定义&#xff0c;点击下一步 3.点击下一步 4.选择稍后安装操作系统&#xff0c;点击下一步 5.选择Linus操作系统&#xff0c;版本选择Ubuntu64位&#xff0c;点击下一位 6.自己看图 7. 这里根据自…

Leetcode50. Pow(x, n)

Every day a Leetcode 题目来源&#xff1a;50. Pow(x, n) 解法1&#xff1a;递归 代码&#xff1a; /** lc appleetcode.cn id50 langcpp** [50] Pow(x, n)*/// lc codestart class Solution { public:double myPow(double x, int n){if (n 0)return 1.0;if (n < 0)re…

必定收藏:国内免费可用 ChatGPT 网页版

ChatGPT是一个基于人工智能的聊天机器人&#xff0c;它可以与用户进行自然语言交互。ChatGPT使用了最新的自然语言处理技术&#xff0c;包括深度学习和神经网络&#xff0c;以便更好地理解用户的意图和回答用户的问题。 ChatGPT可以回答各种问题&#xff0c;包括但不限于常见问…

让chatGPT给我写一个CSS,我太蠢了

前言 CSS这东西&#xff0c;让AI写的确有点难度&#xff0c;毕竟它写出来的东西&#xff0c;没办法直接预览&#xff0c;这是其次。重要的是CSS这东西怎么描述&#xff0c;不好描述啊&#xff0c;比如我让他给我制作一个这样的效果出来&#xff0c;没办法描述&#xff0c;所以…

5.13下周黄金最新行情走势分析及多空交易策略

近期有哪些消息面影响黄金走势&#xff1f;下周黄金多空该如何研判&#xff1f; ​黄金消息面解析&#xff1a;周五(5月12日)美市尾盘&#xff0c;现货黄金收报2010.23美元/盎司&#xff0c;下跌4.57美元或0.23%&#xff0c;日内最高触及2022.59美元/盎司&#xff0c;最低触及…

小程序组件

swiper swiper 和 swiper-item 结合使用&#xff0c;&#xff0c; swiper有默认高度 300rpx 属性&#xff1a; autoplay &#xff1a; 自动播放circular &#xff1a; 循环播放indicator-dots &#xff1a; 显示指示点indicator-active-color &#xff1a; 轮播选中的颜色 &…

cookie、session、token的区别是什么

前言 今天就来说说session、cookie、token这三者之间的关系&#xff01;最近这仨玩意搞得头有点大&#x1f923; 1.为什么会有它们三个&#xff1f; 我们都知道 HTTP 协议是无状态的&#xff0c;所谓的无状态就是客户端每次想要与服务端通信&#xff0c;都必须重新与服务端链接…

空调群控、智能报警,这些设备有点牛

空调绝对是夏季使用率高的电器之一&#xff0c;尤其是今年全国各地高温不断&#xff0c;说“命都是空调给的”都不为过...... 在家的时候&#xff0c;我们可以随手开关空调&#xff0c;非常方便&#xff0c;如果是学校教学楼、工厂宿舍、银行网点、办公大楼、机房等地的管理者…

一个打通基于XML管理Bean

目录 准备工作 添加依赖 引入配置文件 获取bean ①方式一&#xff1a;根据id获取 ②方式二&#xff1a;根据类型获取 ③方式三&#xff1a;根据id和类型 ④注意的地方 ⑤扩展知识 依赖注入之setter注入 ①创建学生类Student ②配置bean时为属性赋值 ③测试 依赖注…

ChatGPT搭建AI网站实战

1.概述 ChatGPT是一款基于GPT-3.5架构的大型语言模型&#xff0c;它能够进行自然语言处理和生成对话等任务。作为一款智能化的聊天机器人&#xff0c;ChatGPT有着广泛的应用场景&#xff0c;如在线客服、智能助手、个性化推荐等。今天笔者给大家分享一下如何使用ChatGPT的API模…

开发环境搭建和创建STM32工程

目录 一、开发环境搭建 1. STM32CubeMX 2.Keil安装 二、创建STM32工程 一、开发环境搭建 1. STM32CubeMX ST公司出品 工具链接 https://www.st.com/zh/development-tools/stm32cubemx.html STM32CubeMX是一种图形工具&#xff0c;通过分步过程可以非常轻松地配置STM32微控制器和…

【IIS搭建网站】如何使用本地电脑做服务器搭建web站点并公网访问

目录 前言 Windows网页设置 Windows IIS功能设置 IIS网页访问测试 Cpolar内网穿透 下载安装Cpolar Cpolar云端设置 3.3 Cpolar本地设置 公网访问测试 结语 前言 在网上各种教程和介绍中&#xff0c;搭建网页都会借助各种软件的帮助&#xff0c;比如网页运行的Apache…

字节面试挂在2面,复盘总结了经验,决定再战一次.....

先说下我基本情况&#xff0c;本科不是计算机专业&#xff0c;现在是学通信&#xff0c;然后做图像处理&#xff0c;可能面试官看我不是科班出身没有问太多计算机相关的问题&#xff0c;因为第一次找工作&#xff0c;字节的游戏专场又是最早开始的&#xff0c;就投递了&#xf…

算法修炼之练气篇——练气十八层

博主&#xff1a;命运之光 专栏&#xff1a;算法修炼之练气篇 前言&#xff1a;每天练习五道题&#xff0c;炼气篇大概会练习200道题左右&#xff0c;题目有C语言网上的题&#xff0c;也有洛谷上面的题&#xff0c;题目简单适合新手入门。&#xff08;代码都是命运之光自己写的…

轻松搭建冒险岛服务器-冒险岛私服搭建详细教程

想要拥有一个属于自己的冒险岛世界吗&#xff1f;想要一步步学习如何架设冒险岛服务器吗&#xff1f;本文将从如何选择服务器、安装系统、配置环境、搭建数据库、部署网站、上传文件、启动服务等8个方面&#xff0c;一步步为大家详细讲解冒险岛架设教程。让你轻松打造属于自己的…

Git常用操作:基础命令、生成公钥、webhook同步

这里写目录标题 下载安装GIT基础命令克隆初始化与仓库建立连接下拉代码提交代码清空本地缓存 本地生成GIT公钥webhook&#xff08;本地-码云-服务器代码同步&#xff09; 下载安装GIT 此处只介绍windows系统下的安装&#xff0c;linux一般都是自带git&#xff08;自行百度&…

Centos7安装Docker

0.安装Docker Docker 分为 CE 和 EE 两大版本。CE 即社区版&#xff08;免费&#xff0c;支持周期 7 个月&#xff09;&#xff0c;EE 即企业版&#xff0c;强调安全&#xff0c;付费使用&#xff0c;支持周期 24 个月。 Docker CE 分为 stable test 和 nightly 三个更新频道…

Java设计模式 14-访问者模式

访问者模式 这个模式用的很少&#xff0c;《设计模式》的作者评价为&#xff1a; 大多情况下&#xff0c;你不需要使用访问者模式&#xff0c;但是一旦需要使用它时&#xff0c;那就真的需要使用了 一、测评系统的需求 1)将观众分为男人和女人&#xff0c;对歌手进行测评&…

多态与虚函数

多态与虚函数 多态的引入多态与虚函数多态编译时多态运行时多态 多态的原理静态联编和动态联编 多态的引入 学过C继承的话应该都知道在继承中存在一种菱形继承&#xff0c;假设存在一个类&#xff08;person&#xff09;&#xff0c;其派生出两个子类&#xff0c;分别是studen…