一、系统设计

8个按键可以弹奏8个音符,蜂鸣器可以播放按键弹奏的音乐,数码管会显示相应的音符,通过无线模块可以将按下的音阶数据上传到上位机端并进行显示,可以按照乐谱进行音乐演奏,在与上位机进行通信时会存在一定的数据传输延迟,因为上位机的显示较慢。

系统内使用的主控制器是STC89C52单片机,STC89C52单片机的发布时间较早,是市面上比较常见的控制器,STC89C52单片机本身的特性和51系列单片机类型,并且能使用MCS51指令系统进行系统控制,STC89C52单片机内集成的功能资源较为丰富,其中有8KB的FLASH能实现程序的快速存储,256KB的8位RAM能实现大量数据的存储。STC89C52单片机内还设置了许多的外设功能,其中主要包括定时器、计数器,以及可以实现数据传输的I/O、中断、串口。STC89C52单片机为了实现不同控制功能和适用不同的控制环境设置了多种工作模式,其中的工作模式包括有睡眠、待机、关机三种,设计者可以根据系统的功耗需求选择合适的工作模式。

二、硬件设计

电子琴电路中主要电路有以单片机为核心的最小系统电路,按键控制电路、蜂鸣器发声电路、数码管显示电路、无线通信电路等。

三、软件设计

电子琴系统的软件实现过程是,先进行初始化,初始化结束后就开始进行I/O状态的检测,根据检测到的I/O口将对应的音阶在数据官上进行显示,将检测到的数据通过WIFI传输到上位机端。

四、keil程序(部分程序)

硬件系统功能稳定实现是离不开一个逻辑严谨的软件程序的,尤其是对于一些功能比较复杂的系统,设计开发一个严谨的、逻辑性强的软件程序是非常重要的,现如今单片机控制程序的开发基本都是使用Keil实现的,而且该软件经过数十年的升级优化,现在无论是从操作舒适度还是功能方面,都是有非常大的优势。控制器的软件程序开发语言支持汇编语言和C语言,通过汇编语言进行软件程序的开发,对设计者的硬件功底要求比较高,因此现在很多的设计者普遍采用相对来说比较高级的C语言进行硬件系统的软件程序开发。但是在KEIL软件上这两种语言是都被支持的,这也是该开发软件深受设计者喜欢的一个重要特点。在KEIL上完成软件程序的开发,在软件调试方面来说对于设计者是非常方便的,Keil内自带了程序编译功能,在设计完程序后可以通过程序编译找到程序中存在语法以及逻辑问题,并且会将错误信息直接显示在下方窗口,大大提升了设计者开发软件程序的效率,然后就是该软件支持线上仿真,通过这个功能可以减少程序烧写的次数,大大提升系统的使用寿命,同时也加快了设计者进行软件程序逻辑功能调试的效率。

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit speaker=P3^2;//喇叭接30脚
uchar a,b;
uchar shu[10]=0;uchar code table[]={ 0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90};void check_key()
{P1=0xff;//先赋给P3组口高电平switch(P1)//按下一个键数码管显示相应的数{case 0xfe:P0=0x10;P2=table[0];a=0xfb;b=0xe9;EA=1;shu[0]=1;break;//P0组为发光二极管组 P2数码管case 0xfd:P0=0x10;P2=table[1];a=0xfc;b=0x5c;EA=1;shu[0]=2;break;//注意:EA不能改为TR0case 0xfb:P0=0x10;P2=table[2];a=0xfc;b=0xc1;EA=1;shu[0]=3;break;case 0xf7:P0=0x10;P2=table[3];a=0xfc;b=0xef;EA=1;shu[0]=4;break;case 0xef:P0=0x10;P2=table[4];a=0xfd;b=0x45;EA=1;shu[0]=5;break;case 0xdf:P0=0x10;P2=table[5];a=0xfd;b=0x92;EA=1;shu[0]=6;break;case 0xbf:P0=0x10;P2=table[6];a=0xfd;b=0xd0;EA=1;shu[0]=7;break;case 0x7f:P0=0x10;P2=table[7];a=0xfd;b=0xee;EA=1;shu[0]=8;break;default:EA=0;speaker=1;P0=0xff;P2=0xff;}
}void delayms(uint z)
{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);
}void sendByte(uchar b)
{ES = 0;TI=0;SBUF = b;while(!TI);TI=0;ES = 1;
}void sendString(uchar *s)
{while(*s != '\0') sendByte(*s);s++;}
}void main(){TMOD=0x01;TH0=a;TL0=b;ET0=1;//打开定时器,但是未允许中断TR0=1;while(1){check_key();}
}void time0() interrupt 1
{TH0=a;TL0=b;speaker=~speaker;
}

五、实物展示

六、资料链接

链接会跳转到主页  主页下方有资料链接

https://blog.csdn.net/XCHardware/article/details/127284945

51单片机开发设计 基于52单片机的电子琴相关推荐

  1. 51单片机开发实例 基于52单片机的智能温湿控制

    一.系统设计 智能温湿度控制系统内使用DHT11数字温湿度传感器实现温湿度的采集,采集的温湿度数据会在LCD1602显示屏上显示,通过按键可以设定温湿度的阈值,当实际的温湿度超过阈值,系统会通过继电器 ...

  2. 51单片机开发实例 基于52单片机的远程开锁系统

    一.系统设计 按下开锁按键,HC-12发射端就会将开锁指令上传到HC-12接收端,接收端会将数据传输到单片机中,单片机会控制继电器开锁.同理按下关锁按键,通过两个远程通信模块和关锁按键就能实现远程关锁 ...

  3. 51单片机开发实例 基于52单片机的简易温度采集系统

    一.系统设计 通过DS18B20温度采集模块进行环境温度数据的采集,并在数码管上对实时温度进行显示. 二.硬件设计 三.软件设计 四.实物展示 五.资料内容 六.资料链接 资料链接:https://p ...

  4. STM32单片机开发实例 基于STM32单片机的智能行李箱

    一.系统设计 本次设计的是基于STM32F103C8T6单片机设计的一款智能行李箱,系统内使用HX711压力传感器模块采集行李箱内的重量数据,使用ULN2003电机驱动模块来驱动两个步进电机 以此来模 ...

  5. 52单片机课程设计——利用52单片机的智能窗帘设计论文+源码

    计科在读,分享自己做过的作业,欢迎指正,有需要课程设计论文的可以私信我 摘要:随着社会信息化的加快,人们的工作.生活和通讯.信息的日益紧密.智能家居 以住宅为平台,兼备建筑.网络通信.信息家电.设备自 ...

  6. STM32单片机开发实例 基于STM32单片机的温室大棚监测系统

    一.系统设计 通过STM32单片机进行主控,通过光敏电阻模块进行大棚内的光照强度的采集,通过DHT11数字温湿度传感器进行温湿度的采集,通过气压模块进行大棚气压强度的采集,通过水滴模块进行土壤湿度的采 ...

  7. STM32单片机开发实例 基于STM32单片机的智能血压计

    一.系统设计 通过单片机32作为主控制器,完成对人体血压的测量,主要方式是通过气压模块来模拟完成对血压的采集,同时将采集到的血压数据在显示屏上进显示.同时可以通过按键对整个血压上下限值进行设定,一旦超 ...

  8. 基于52单片机的简易感应开关垃圾桶

    一.基于52单片机的简易开关垃圾桶,感应,震动,按键开盖 1.使用超声波模块,设置10cm感应范围,进入范围开盖 2.使用震动传感器,检测到震动开盖 3.使用蜂鸣器,开盖同时伴随滴滴声 4.实验视频- ...

  9. 电影数据库开发设计——基于jsp(使用eclipse-jee,mysql-front)

    电影数据库开发设计--基于jsp(使用eclipse-jee,mysql-front) 本次系统实现了一个在线电影管理的功能,仿照猫眼设计的,主题色彩动漫比较强烈hhhh(因为很喜欢<你的名字& ...

最新文章

  1. 修改cpu型号重启不变_猫头鹰展示D系列新款140毫米CPU散热器:更大散热片,能压400瓦...
  2. java 基础面试 英文_[Java面试] 面试java基础总结大全
  3. 记一道面试题:STL两个栈实现一个队列。
  4. 《Pytorch - 逻辑回归模型》
  5. 【Daily Scrum】12-25
  6. abap捕获当前功能键sy_abap 当前用户 sy
  7. DSP重新上电程序不能运行
  8. 共享计算机后无法访问磁盘,win7局域网怎么共享整个硬盘,如D盘E盘F盘等等-win7怎么共享磁盘,win7共享后无权限访问...
  9. 《零边际成本社会》书中的精髓:零边际成本所引发的共享经济,将颠覆资本主义和社会主义。
  10. Dexpot 虚拟桌面软件(推荐)
  11. 数据库连接报错代码-08S01
  12. postgresql兼容MySQL on update current_timestamp
  13. 文本框导入图片并显示到页面上
  14. vue的五个小实例解析其基础功能
  15. 第七届蓝桥杯 2016年省赛真题(Java 大学C组)
  16. CAD软件如何合并区间
  17. 记一次fastadmin图片上传大小受限制的修改
  18. 1.Containerd容器运行时初识与尝试
  19. win7语言栏或输入法图标不见了
  20. mc服务器修改世界边境,[转载插件] [安全]WorldBorder——限制世界边界范围大小【1.0.1 - 1.7.9】...

热门文章

  1. 月鸟的成功你不可复制
  2. 计算机还原桌面后黑屏,电脑桌面休眠后黑屏进入不了桌面,开机有时也黑屏。...
  3. 自助柜员机属于微型计算机吗,银行自助柜员机语音提示很给力
  4. a disk read error occurred——展开windows文件99%——解决办法
  5. htc g1usb驱动
  6. 【耻辱Dishonored】一场刀光剑影与暗杀的第九艺术
  7. 华为任正非:从两万到千亿的创业故事
  8. 在英文操作系统上如何用中文?
  9. 【DDD】领域驱动设计实践 —— UI层实现
  10. 项目管理类证书有哪些?