历史上的今天
返回首页

历史上的今天

今天是:2024年12月10日(星期二)

正在发生

2019年12月10日 | 51单片机电子琴制作

2019-12-10 来源:51hei

一款简单的单片机DIY小制作
仿真原理图如下 
51hei.png?imageView2/2/w/550

制作出来的实物图如下:
IMG_1665.JPGIMG_1666.JPGIMG_1667.JPGIMG_1668.JPG 

单片机源程序如下:

#include

#include  

#include  

#include                  //头文件        

#define uchar unsigned char 

#define uint unsigned int          //宏定义

uchar STH0;                                  //定时器变量

uchar STL0;                                  //定时器变量

bit FY=0;                                         //模式变量,为0时弹奏模式,为1时播放模式

uchar Song_Index=0,Tone_Index=0;//单首歌曲音符数  

uchar k, key;                                         //k:按键数值变量。key:按键的键值(也就是有按键按下时的P0口状态)

sbit SPK=P3^7 ;                                 //定义喇叭的接口

sbit LED1=P3^5; 

sbit LED2=P3^4;                                 //定义两个LED的接口

uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,//数码管显示的数组(1 2 3 4 5 6 7 8 9)

                                                0x88,0x83,0xc6,0xa1,0x86,0x8e,0x89,0xa3,0x8c,0xc8};        //(A B C D E F H O P N)

unsigned char code num1[]=                        "   Music:       ";

uchar code Song[][100]=         //内置音乐数组,song【歌曲序号】【音符顺序】

{

        //        1        2        3        4        5        6        7

        //        8        9        10        11        12        13        14

        //        15        16        17        18        19        20        21


        {12,10,9,9,10,8,9,10,

        12,10,9,9,5,10,11,10,

        10,10,14,10,9,8,7,8,

        9,10,13,6,8,10,9,6,

        8,7,5,6,12,10,9,9,

        9,10,8,9,10,12,10,9,

        9,9,5,10,11,10,10,10,

        14,10,9,8,7,8,9,10,

        13,6,8,10,9,6,8,7,

        5,6,-1},                                 //烟花易冷


        {13,12,10,12,15,13,

        12,13,10,12,13,12,10,8,6,12,

        10,9,9,10,12,12,13,10,9,

        8,12,10,9,8,6,8,5,-1},//世上只有妈妈好


        {10,10,11,10,9,8,9,12,9,9,

        8,8,9,8,7,6,7,10,7,7,

        6,9,10,9,8,6,5,9,10,9,

        8,6,6,9,10,9,8,6,7,8,-1}, //当你孤单你会想起谁

         

        {5,3,5,8,6,8,

        5,5,1,2,3,2,1,2,5,

        3,5,8,7,6,8,5,5,2,

        3,4,0,1,6,8,8,7,6,

        7,8,6,7,8,6,6,5,3,

        1,2,5,3,5,8,7,6,8,

        5,5,2,3,4,0,1,-1},                 //送别


        {5,6,8,6,6,5,6,5,3,5,

        5,6,8,6,6,5,6,5,6,1,

        1,2,3,2,2,2,1,2,1,6,

        3,2,5,6,8,6,6,5,6,5,

        6,1,1,2,3,4,4,5,6,6,

        5,6,8,6,8,6,5,5,1,6,

        5,5,6,8,3,2,3,1,-1},           //最浪漫的事


        {5,9,10,9,10,12,13,12,8,9,

        10,13,12,10,12,12,13,15,13,12,

        10,12,10,8,9,10,8,6,10,9,

        12,9,10,9,10,12,13,12,8,9,

        10,13,12,12,13,15,13,

        12,10,12,10,8,6,10,9,8,6,

        8,9,9,8,-1},                                //发如雪

         

        {5,8,9,10,9,10,11,12,12,12,

        11,10,9,5,8,9,10,11,12,12,

        12,13,12,9,10,8,8,6,9,9,

        10,10,8,12,8,12,8,7,8,8,6,

        9,9,10,10,12,12,

        12,13,12,9,10,8,

        5,8,9,10,9,10,11,12,12,12,

        11,10,9,5,8,9,10,9,10,11,

        12,12,12,9,10,8,8,6,9,9,

        10,10,8,12,8,12,12,7,8,-1},        //简单爱


        {8,9,10,8,8,9,10,8,10,11,12,10,11,12,

        12,13,12,11,10,8,12,13,12,11,10,8,8,5,8,8,5,8,-1},        //两只老虎

        

        {5,5,6,5,8,7,

        5,5,6,5,9,8,

        5,5,12,10,8,7,6,

        11,11,10,8,9,8,-1},                        //生日快乐


        {6,8,9,10,12,10,8,9,6,8,9,10,

        12,12,13,9,10,10,12,13,

        12,13,15,14,13,12,13,10,8,9,10,12,8,6,

        8,9,10,13,12,10,13,13,

        12,11,10,9,10,12,6,8,9,8,9,

        10,12,13,15,14,13,12,10,13,-1},        //让我们荡起双桨


        {8,8,12,12,13,13,12,

        11,11,10,10,9,9,8,

        12,12,11,11,10,10,9,

        12,12,11,11,10,10,9,

        8,8,12,12,13,13,12,

        11,11,10,10,9,9,8,-1},                        //小星星


        {12,10,12,10,12,10,8,9,11,10,9,12,

        12,10,12,10,12,10,8,9,11,10,9,8,

        9,9,11,11,10,8,12,9,11,10,9,12,

        12,10,12,10,12,10,8,9,11,10,9,8,-1}, //粉刷匠


        {8,9,10,11,12,12,12,11,10,

        11,11,11,10,9,8,10,12,

        8,9,10,11,12,12,12,11,10,

        11,11,11,10,9,8,10,8,

        13,13,13,12,11,12,12,12,11,10,

        11,11,11,10,9,8,10,12,

        13,13,13,12,11,12,12,12,11,10,

        11,11,11,10,9,8,10,8,-1},                        //洋娃娃和小熊跳舞


        {12,10,12,13,15,16,17,16,15,13,12,15,

        17,16,15,12,17,16,15,12,

        10,12,13,15,16,17,15,13,15,16,

        13,13,14,13,13,17,15,14,15,13,

        12,10,12,13,15,16,17,16,15,13,12,15,

        17,17,17,17,15,16,16,16,16,12,

        12,10,12,13,15,16,17,16,15,13,12,

        15,15,-1},                                                           //小红花


        {8,9,10,11,12,10,8,15,13,11,12,12,10,

        8,9,10,11,12,10,9,8,9,10,9,12,

        8,9,10,11,12,10,8,15,13,11,12,10,

        8,9,10,11,12,10,9,8,9,10,8,8,

        15,13,11,12,12,8,15,13,11,12,10,

        8,9,10,11,12,10,9,8,9,10,8,8,

        15,13,11,12,12,8,15,13,11,12,10,

        8,9,10,11,12,10,9,8,9,10,8,8,-1},        //小红帽

        

        {10,12,16,15,12,11,10,10,10,11,12,

        13,12,10,12,16,15,12,11,

        10,12,12,13,14,15,15,16,12,12,14,13,12,

        10,12,15,13,15,16,15,14,12,10,12,

        16,15,12,11,10,12,12,13,14,15,15,-1},        //雪绒花

};

uchar code Len[][100]= //内置音乐对应的节拍(音符持续时间)

{

        {1,1,2,4,1,1,1,4,

        1,1,2,2,1,1,1,4,

        1,1,1,1,2,1,1,1,

        1,1,3,1,1,1,1,1,

        1,1,1,6,1,1,2,1,

        1,1,1,1,4,1,1,2,

        1,1,1,1,1,4,1,1,

        3,1,2,1,1,1,1,1,

        3,1,1,1,1,1,1,2,

        2,6,-1}, 


        {3,1,2,2,2,1,

        1,4,2,1,1,2,2,1,1,1,

        1,4,3,1,2,1,1,2,2,

        4,3,1,1,1,1,1,6,-1},


        {2,1,1,2,1,1,2,2,2,3,

        2,1,1,2,1,1,2,2,2,3,

        2,1,1,1,1,2,2,1,1,1,

        1,2,2,1,1,1,1,1,1,6,-1},

         

推荐阅读

史海拾趣

睿赫(crechip)公司的发展小趣事

作为一家有社会责任感的企业,睿赫公司始终关注环境保护和可持续发展。公司在产品研发和生产过程中,积极采用环保材料和绿色生产工艺,减少对环境的影响。同时,公司还积极参与公益事业,为社会做出了积极的贡献。

在可持续发展方面,睿赫公司致力于推动电子行业的绿色化和智能化发展。公司不断加强技术研发和创新,推出了一系列符合环保要求和高性能要求的产品,为电子行业的可持续发展做出了积极的贡献。

Amphion Semiconductor Ltd公司的发展小趣事

在公司的快速发展过程中,睿赫公司高度重视团队建设和人才培养。公司建立了一套完善的人才选拔和培养机制,吸引了一批优秀的电子工程师和技术人才加入。同时,公司还注重员工的职业发展和福利待遇,为员工提供了广阔的发展空间和良好的工作环境。

通过团队建设和人才培养,睿赫公司的研发团队逐渐壮大,创新能力也得到了极大的提升。这使得公司能够在激烈的市场竞争中保持领先地位,不断推出具有竞争力的新产品。

Alan Industries Inc公司的发展小趣事

随着国内市场的饱和,Alan Industries Inc.开始将目光投向海外市场。公司制定了国际化发展战略,通过设立海外分公司、参加国际展会等方式,积极开拓国际市场。同时,公司还加强了对国际市场的调研和分析,根据不同地区的市场需求和文化特点,推出了针对性的产品和服务。这些努力使得公司在国际市场上也取得了不俗的成绩。

Broadcom(博通)公司的发展小趣事

1991年,加州大学洛杉矶分校的工程学教授亨利·山缪利和他的博士班学生亨利·尼古拉斯,以各出资5000美元的方式,在美国加州尔湾小镇共同创立了博通公司。初创时期,博通主要致力于开发机顶盒的宽带通信芯片。随着技术的不断进步和市场需求的增长,博通的产品逐渐受到业界的认可,销售额稳步上升。

Computer Conversions Corp公司的发展小趣事

随着公司技术的成熟和知名度的提升,Computer Conversions Corp开始将目光投向国际市场。公司派出专业的市场拓展团队,深入欧洲、亚洲等多个地区进行市场调研。经过一系列精准的市场分析和产品定位,公司成功地将产品推向了全球市场。这一过程中,他们不仅赢得了众多国际客户的信赖,还通过与当地企业的合作,进一步提升了品牌的影响力和市场份额。

Dawn Electronics Inc公司的发展小趣事

随着市场的不断发展,Dawn Electronics Inc公司意识到技术创新的重要性。公司加大了研发投入,成立了专门的研发团队,积极探索新的技术方向。经过不懈的努力,公司成功研发出了一种新型的智能传感器,具有更高的精度和更低的功耗,这一创新技术迅速被市场接受,为公司带来了可观的收益。

问答坊 | AI 解惑

伟福,没礼貌!

本人想买一台仿真器,打电话到南京公司,一男的接电话 以下是对话内容: \"我想买一台仿真器\" \"说\" \"我想买一台51的仿真器,哪里能买到?\" \"你是哪里的?\" \"深圳\" \"你找我们代理商吧\" \"好的,他们电话是多少呢?\" \"8XXX......\" .. ...…

查看全部问答>

低电压PLD/FPGA的供电设计

由于半导体制造工艺的原因,低电压器件的成本比传统5V器件更低,性能更优,加上多数器件的I/O脚可以兼容5v/3.3v TTL电平,可以直接使用在原有系统中,所以各大半导体公司都将3.3v,2.5v等低电压集成电路作为推广重点,如高端的DSP,PLD/FPGA产品已广 ...…

查看全部问答>

大家来找茬儿之——PLI程序编译装载后modelsim崩溃

今天写了个pli程序,编译、生成dll文件都没有问题,就是仿真装载过程中,modelsim崩溃,请大家给分析一下,这是什么病,怎么治!源码如下: top.v `timescale 1ns/1ns module top(clk,AM,AS,WRITE,IACK,LWORD,DS0,DS1,DTACK,BERR,RETRY,AB,DB,SY ...…

查看全部问答>

求TC35外围电路连接图及收发短信源代码 !!

求TC35外围电路连接图及收发短信源代码 !! 各位大虾帮帮忙吧,刚接触这东西,急需这些来熟悉熟悉,买了个TC35模块,想自己焊个板子玩下。 如果有的话,麻烦发我邮箱forjobforlife@163.com 谢谢了~ …

查看全部问答>

GPRS拨号,SOCKET能连通,IE及其它程序无法上网

HI,各位 最近在做一个WINCE5的项目,需要用到GPRS,使用SIM300模块做MODEM,设置都OK了 现在的问题是,使用我自己写的小程序,程序使用的是SOCKET,可以正常通讯,但是用IE不能上网 在CE下,所有IP都ping不通,但是用自己写的小程序连接过某个IP以后,就可 ...…

查看全部问答>

請USB高手推荐比較好的USB HOST 開發板

如題,我要用8051讀取USB 鼠標的數據,請USB高手推荐比較好的USB HOST 開發板,要有齊全的相關資料和詳細的原代碼說明,最好是中文的.…

查看全部问答>

请教完成如下的功能使用什么CPU

1、连接4个串口 2、用220V供电 3、访问桌面SQL Server数据库 操作系统采用windows ce请问使用什么CPU的嵌入式主板?相应厂家的联系方式?…

查看全部问答>

STM32在ucLinux环境中,能流畅驱动600*480彩屏么

                                  …

查看全部问答>