单片机按键切换下一首歌

发布者:代码漫游者最新更新时间:2020-12-24 来源: 51hei关键字:单片机  按键  切换 手机看文章 扫描二维码
随时随地手机看文章

#include "at89x51.h"

#define uchar unsigned char

#define uint unsinged int


sbit speaker=P1^5;//蜂鸣器。按键默认的是P3.2脚(外部中断0)

uchar t0h,t0l,time,flag;

//--------------------------------------

//单片机晶振采用12MHz

// 频率-半周期数据表 高八位  本软件共保存了四个八度的28个频率数据

uchar code FREQH[]={0x01,                                                                         //0的时候没有音符

                                        0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,                //低音1234567

                                        0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC,//1,2,3,4,5,6,7,i

                                        0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,                  //高音 234567

                                        0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF};         //超高音 1234567

//-----------------------------------------

// 频率-半周期数据表 低八位

uchar code FREQL[]={0x01,                                                                         //0的时候没有音符

                                        0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,                //低音1234567

                                        0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F,//1,2,3,4,5,6,7,i

                                        0xEE,0x44,0x6B,0xB4,0xF4,0x2D,                   //高音 234567

                                        0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16};        //超高音 1234567

//--------------------------------------

//一个音符有三个数字。前为第几个音、中为第几个八度、后为时长(以1/4拍为单位)。

//6,2,6 分别代表:6,中音,6个1/4拍;

//5,2,2 分别代表:5,中音,2个1/4拍;

//3,2,4 分别代表:3,中音,4个1/4拍;

//5,2,4 分别代表:5,中音,4个1/4拍;

//1,3,4 分别代表:1,高音,4个1/4拍;

//低音为1,中音为2,高音为3,超高音为4;

//////////////////////////////////////////////////////////

/********************世上只有妈妈好*********************/

uchar code sszymmh[]={

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

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

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

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

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

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

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

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

                                                5,1,16,0,0,0};

/**********************两只耗子**********************/

uchar code TwoMouse[]={

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

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

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

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

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

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

                                                6,2,2,2,2,2,5,2,4,6,2,2,2,2,2,5,2,4,

                                                0,0,0};

/***********************两只蝴蝶**********************/

uchar code TwoButterfly[]={

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

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

                                                2,2,2,1,2,2,6,1,2,1,2,2,5,1,12,3,2,2,

                                                2,2,2,3,2,8,3,2,2,2,2,2,3,2,2,3,2,2,

                                                1,2,12,6,1,2,1,2,2,2,2,4,2,2,2,3,2,2,

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

                                                2,2,2,3,2,8,3,2,2,2,2,2,3,2,2,2,2,2,

                                                1,2,12,6,1,2,1,2,2,2,2,4,2,2,2,3,2,2,

                                                2,2,2,1,2,2,6,1,2,1,2,2,5,2,12,3,2,2,

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

                                                3,2,12,2,2,2,3,2,2,2,2,4,2,2,2,3,2,2,

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

                                                1,2,1,1,2,12,0,0,4,5,2,2,5,2,2,6,2,2,

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

                                                2,2,2,3,2,2,3,2,8,3,2,2,3,2,2,

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

                                                2,2,12,3,2,2,5,2,2,5,2,2,3,2,2,5,2,4,

                                                1,3,4,7,2,2,6,2,2,7,2,2,3,2,4,

[1] [2]
关键字:单片机  按键  切换 引用地址:单片机按键切换下一首歌

上一篇:AT89C52单片机Proteus仿真音乐播放器操作步骤
下一篇:51单片机十进制整数与二进制整数转换汇编语言子程序

推荐阅读最新更新时间:2024-11-13 16:50

单片机——ds18b20——代码
#include #include ../delay/delay.h #include lcd.h /*==================================================== 判断写入命令/数据函数 =====================================================*/ void lcd_write(unsigned char byte, unsigned char flag) { if(flag) { RS = 1; //选择数据寄存器
[单片机]
7.STC15W408AS单片机串口通信
STC15W408AS只有一个串口,串口1,有4种工作方式,其中两种方式的波特率是可变的,另两种是固定的,以供不同应用场合选用。 一、串口1相关寄存器 下面只把接下来我需要的寄存器和寄存器的位说明一下。 1.1 控制寄存器SCON 其中SM0、SM1按下列组合确定串行口1的工作方式: REN:允许/禁止串行接收控制位。由软件置位REN,即REN=1为允许串行接收状态,可启动串行接收器RxD,开始接收信息。软件复位REN,即REN=0,则禁止接收。 TI: 发送中断请求标志位。在方式0,当串行发送数据第8位结束时,由内部硬件自动置位,即TI=1,向主机请求中断,响应中断后TI必须用软件清零,即TI=0。在其他方式
[单片机]
7.STC15W408AS<font color='red'>单片机</font>串口通信
芯旺微电子发布符合ASIL-B汽车功能安全等级的MCU KF32A158
六十载栉风沐雨风雪载途,甲子间踔厉奋发笃行不怠。10月25日,第30届中国汽车工程学会六十周年年会暨展览会(SAECCE 2023)在北京·北人亦创国际会展 中心 盛大开幕,芯旺微 电子 携底盘动力、 智能 座舱、 电机 电源 和车身控制四大域几十款车规展品出席活动现场,并在会上重磅发布符合ASIL-B汽车功能安全等级的32位车规级 MCU KF32A158。 凭借在汽车市场十余年的深厚积累与技术沉淀,芯旺微电子已于2022年获得ISO26262 ASIL-D流程 认证 和IATF16949汽车质量管理体系认证证书,今年上半年部分核心MCU 产品 获得ISO26262 ASIL-B产品认证证书,稳扎稳打,持续进化,为KF32A
[汽车电子]
实现5V单片机与3.3V器件实现电平兼容
51单片机的P0口开漏极输出,不仅可以方便驱动LED(LED与电阻串联后直接接在P0口开漏极输出处,另一端要接电源正极),而且更重要的是可以实现电平兼容,比如说,5V的单片机要和3.3V的元件相连接,例如STC89C52RC单片机(5V)要与LT8900无线模块(3.3V)实现通信,那么,我们可以将LT8900无线模块的通信端口接在51单片机的P0口开漏极输出处,不过P0口要接上拉电阻(一般选择10K的上拉电阻),接下来就要特别注意了,上拉电阻的电源端引脚要接到3.3V,而不是像平常的应用那样直接与单片机供电的5V电源相连接。当然,可以这样做的前提是你的板子上要有5V转3.3V的电压转换电路。这样,就可以实现电平兼容了。以下是测试验
[单片机]
单片机的指令系统和寻址方式
  单片机要正常运作,事先需编制程序,再把程序放入存贮器中,然后由CPU执行该程序。程序是由指令组成的,指令的基本组成是操作码和操作数。单片机的品种很多,设计时怎样表示操作码和操作数,都有各自的规定,再有指令代码也各不相同,因此,必须对所选单片机的全部指令,也就是所谓“指令系统”,有足够的了解。各个系列的单片机虽然有不同的指令系统,但也有其共同性。掌握一种单片机的指令系统,对其它系列单片机可以起到触类旁通的作用。MCS-51单片机应用广泛,派生品种多,具有代表性,所以,这里以MCS-51系列的指令系统为例说明“指令”的组成和应用。   1、MOVA,#20H   这条指令表示把20H这个数送入累加器A中(一个特殊功能寄存器)。
[单片机]
51单片机学习笔记———8.点亮流水灯的一种奇葩算法
最近学习51单片机的过程发现了一种脑洞大开点亮流水灯的方法,于此分享一下源码: #include reg52.h sbit LED0 = P0^0; sbit LED1 = P0^1; sbit LED2 = P0^2; sbit LED3 = P0^3; sbit LED4 = P0^4; sbit LED5 = P0^5; sbit LED6 = P0^6; sbit LED7 = P0^7; sbit ADDR0 = P1^0; sbit ADDR1 = P1^1; sbit ADDR2 = P1^2; sbit ADDR3 = P1^3; sbit ENLED = P1^4; void Delay2000ms()
[单片机]
51<font color='red'>单片机</font>学习笔记———8.点亮流水灯的一种奇葩算法
基于STM32单片机的DLP驱动电路研究
DLP投影技术是应用美国德州仪器公司开发的数字微镜元件--DMD(Digital Micromirror Device)作为主要关键处理元件以实现数字光学处理过程的技术。DLP显示的色彩清晰度高、艳丽、细腻、逼真,且为全数字显示即可靠性极高,能在各类产品(如大屏幕数字电视、公司/家庭/专业会议投影机和数码相机(DLP Cinema))中提供最佳图像效果。目前,大部分的家用或商用DLP投影机都采用了单片结构,使得其便于移动携带,因而得到越来越广泛的应用。在目前应用发展的基础上,又对其结构的精简性、携带的方便性提出了更高的要求。传统的DLP投影仪是通过DVI接口接收外部信号,并且经过信号转换传送给DLP控制器来控制DLP的显示,占用的
[单片机]
基于STM32<font color='red'>单片机</font>的DLP驱动电路研究
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved