C51模拟I2C,音乐播放(记忆)

这篇博客介绍了如何使用C51模拟I2C协议,实现音乐播放的功能,包括音符、音阶和延时的设置,并且具有记忆功能。文章详细阐述了定时器中断服务程序、音乐播放流程以及I2C的相关操作,如启动、停止、应答和写读操作。此外,还提供了数码管显示音符和蜂鸣器控制的实现细节。
摘要由CSDN通过智能技术生成
#include <reg52.h>
#include <intrins.h>


#define	SA	(1 << 7)	
#define	SB	(1 << 6)	
#define	SC	(1 << 5)	
#define	SD	(1 << 4)	
#define	SE	(1 << 3)	
#define	SF	(1 << 2)	
#define	SG	(1 << 1)
#define	SH	(1 << 0)

typedef unsigned char uchar;
typedef unsigned int uint;


//led
const uchar LEDData[] =
{
	SA |SB |SC | SD |SE |SF,		//0
	SB |SC,						//01
	SA |SB |SG | SE | SD,			//02
	SA |SB |SC | SD | SG,			//03
	SB |SF | SG | SC,				//04
	SA |SF | SG |SC  | SD,		//05
	SA |SC |SD | SE | SG | SF,		//06
	SA | SB|SC,					//07
	SA |SB |SC | SD | SE | SF | SG,//08
	SA |SB |SC|SD | SF | SG	,	//09
	0,							//mask - 10	
	SG,							//minus - 11	
	SA |SB | SE | SF | SG			//P - 12			
};

sbit	music_note		= 	P0	^	0;
sbit	music_beat		=	P0	^	1;
sbit	mu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值