单片机设计_电子琴音乐盒(AT89C51)

news/2024/10/23 7:20:31/

单片机设计 电子琴音乐盒(AT89C51)

想要更多项目私wo!!!

一、电路设计

此电路由AT89C51最小系统、按键模块、数码管显示和蜂鸣器组成。

实现功能:七个按键代表Do La Mi So Re La Si 最后一个按键代表切换音乐。

二、运行结果

 三、部分代码

#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
//#include "main.h"sbit BeepIO = P0^7; //定义音频输出管脚
sbit KEY1 = P1^0; //按键1 do
sbit KEY2 = P1^1; //按键2 re
sbit KEY3 = P1^2; //按键3 mi
sbit KEY4 = P1^3; //按键4 fa
sbit KEY5 = P1^4; //按键5 sol
sbit KEY6 = P1^5; //按键6 la
sbit KEY7 = P1^6; //按键7 si
sbit KEY8 = P1^7; //按键8 音乐切换
uchar music=0;
uchar n=0;
uchar n1=0;
uchar n2=0;
uchar n3=0;
uchar key=0;
char temp1,temp2; //存放初值的中间变量void main()
{BeepIO=0;systimer0_init();while(1){BeepIO=1;key_scan();if(music > 0){key = 0;if(music == 1) //判断按键是否按下{while(1){key_scan();if(key != 0){if(key != 8){music = 0;}break;}TH0=table1[music_dat[n][0]]/256; //赋初值TL0=table1[music_dat[n][0]]%256;TR0=1; //音乐开始delay100ms(music_dat[n][1]); //调用延时,用做节拍的发生n++; //下个音调开始if(music_dat[n][0]==0xff){n=0; //判断是否到最后一个音调TR0=0; //一个调放完,即将进行下一调}}}if(music == 4) //判断按键是否按下{while(1){key_scan();if(key != 0){if(key != 8){music = 0;}break;}TH0=table1[music_dat1[n1][0]]/256; //赋初值TL0=table1[music_dat1[n1][0]]%256;TR0=1; //音乐开始delay100ms(music_dat1[n1][1]); //调用延时,用做节拍的发生n1++; //下个音调if(music_dat1[n1][0]==0xff){n1=0; //判断是否到最后一个音调TR0=0; //一个调放完,即将进行下一调}}}if(music == 3) //判断按键是否按下{while(1){key_scan();if(key != 0){if(key != 8){music = 0;}break;}TH0=table1[music_dat2[n2][0]]/256; //赋初值TL0=table1[music_dat2[n2][0]]%256;TR0=1; //音乐开始delay100ms(music_dat2[n2][1]); //调用延时,用做节拍的发生n2++; //下个音调开始if(music_dat2[n2][0]==0xff){n2=0; //判断是否到最后一个音调TR0=0; //一个调放完,即将进行下一个调}}}if(music == 2) //判断按键是否按下{while(1){key_scan();if(key != 0){if(key != 8){music = 0;}break;}TH0=table1[music_dat3[n3][0]]/256; //赋初值TL0=table1[music_dat3[n3][0]]%256;TR0=1; //音乐开始delay100ms(music_dat3[n3][1]); //调用延时,用做节拍的发生n3++; //下个音调开始if(music_dat3[n3][0]==0xff){n3=0; //判断是否到最后一个音调TR0=0; //一个调放完,即将进行下一个调}}}}else{TR0=0;TR1=0;BeepIO = 1;}}
}


http://www.ppmy.cn/news/124739.html

相关文章

视易linux进图形界面,视易KTV点歌机系统安装说明.ppt

视易KTV点歌机系统安装说明 第几页 河北鼎杰科贸 河北鼎杰科贸 读者对象 内容提纲 一、星云KTV系统主要功能介绍 KTV系统主要功能 KTV系统功能看似复杂&#xff0c;其实我们只要抓住主要的功能模块入手学习&#xff0c;就能去繁就简&#xff0c;快速掌握系统运行的经脉。 选歌 …

点歌服务器工作原理,KTV点歌系统方案概述

《KTV点歌系统方案概述》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《KTV点歌系统方案概述(7页珍藏版)》请在人人文库网上搜索。 1、一)目前点歌系统的主流方式目前&#xff0c;可以实现的KTV系统的点歌方式很多&#xff0c;但是可以主要归类为以下两大方式&#x…

戴尔G3双系统安装

一、前言 为了玩ros&#xff0c;需要再装一个ubuntu系统 二、前期准备 本电脑是戴尔g3&#xff0c;一块500g的固态和一块1t的机械硬盘制作ubuntu系统盘时注意事项&#xff1a; 首先&#xff1a;由于戴尔g3采用的UEFI的启动方式&#xff0c;与传统legacy启动方式不同其次&#x…

基于单片机出租车计价器设计

功能介绍 以51单片机作为主控系统&#xff1b;1602液晶屏显示最初的起步价&#xff0c;里程收费&#xff0c;等待时间收费&#xff1b;按键调整起步价&#xff0c;里程收费&#xff0c;等待时间收费&#xff1b;电机旋转&#xff0c;通过霍尔传感器检测转速&#xff0c;来模拟出…

服务器价格和性能,戴尔PowerEdge R715 性能与价格的平衡

【IT168 评论】对于评测一台机架式服务器来说&#xff0c;如果单一的从表面上分析&#xff0c;是一件非常困难的事情&#xff0c;因为不同厂商的不同产品都有着特定的功能&#xff0c;如插座数量、最大内存、内部磁盘存储容量等等。随着近几年服务器市场的发展&#xff0c;服务…

​凌云KTV点歌系统功能简介

19级青鸟三班 凌云小组 指导老师&#xff1a;穆雄雄老师 班主任&#xff1a;王欣欣老师 小组成员&#xff1a; 组长&#xff1a;李磊 副组长&#xff1a;杨云浩 组员&#xff1a;高启航 朱齐 李欣然 高松 张方仪 王浩如 苏荟旭 贾增伟 制作周期&#xff1a;2020年9月25…

51单片机mp3音乐播放器设计

一.硬件方案 mp3音乐播放器是以51单片机为核心控制器&#xff0c;设计一个音乐播放器&#xff0c;主要完成TF卡存储的音频文件数据提取及播放任务。该播放器类似于个人计算机的音乐播放软件&#xff0c;可识别、提取TF卡所存储的WMA、MP3格式的文件并可自行完成音频解码数据处理…

基于51单片机带显示器的音乐盒设计

点击链接获取Keil源码与Project Backups仿真图&#xff1a; https://download.csdn.net/download/qq_64505944/87512938?spm1001.2014.3001.5503 源码获取 摘 要 单片微型计算机室大规模集成电路技术发展的产物&#xff0c;属于第四代电子计算机它具有高性能、高速度、体积小、…