⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 读SD卡用SST单片机与tlc5620播放音乐程序
💻 C
字号:
#include "HAL.H"
#include "SMC162.h"
#include "tlc5620.h"
#include "main.h"


#define TIMERH	0xff
#define TIMERL	0xa3
#define ADDR	0x00050200
sbit SDCS1=P0^4;
sbit SDCS2=P0^5;	//1的时候开启   0的时候关闭

unsigned char idata SdReadBuf;
unsigned char idata PreSdReadBuf;
unsigned long Addr=ADDR;
void Beep(void);
void InitPort(void);
void DelayNTime(unsigned char);
unsigned char check=0;
void Timer0Init(void);
unsigned short jishu=0;
void Ex1Init(void);
void Ex0Init(void);

void main()
{
	Beep();
	InitPort();
	SdInit();
	TLC5620_Init();
	Timer0Init();
	TR0=1;
	EX0=1;
	EX1=1;
	while(1)
	{
		if(SDCS1==0)
		{
			while(SDCS2==0);
		}
		else if(SDCS2==0)
		{
			while(SDCS1==0);
		}
		if (jishu==0)
		{
			ET0=0;
			SD_CS=0;
			SdWrite(0x11|0x40);
 			SdWrite(((unsigned char *)&Addr)[0]);
 			SdWrite(((unsigned char *)&Addr)[1]);
  			SdWrite(((unsigned char *)&Addr)[2]);
  			SdWrite(((unsigned char *)&Addr)[3]);
  			SdWrite(0x95);
			SdResponse();
			SdRead();
			jishu++;
			ET0=1;
		}
		else if(jishu==513)
		{
			ET0=0;
			SdRead();
    		SdRead();
   	 		SD_CS=1;
    		SdRead();
			jishu=0;
			Addr+=512;
			ET0=1;
		}
	}
}

void Timer0ISR(void) interrupt 1
{
	TH0=TIMERH;
	TL0=TIMERL;
	PreSdReadBuf=SdReadBuf;
	if(jishu>0&&jishu<513)
	{
		SdReadBuf=SdRead();
		jishu++;
	}
	if (SdReadBuf>253||SdReadBuf<2)
		SdReadBuf=PreSdReadBuf;
	TLC5620_SetOutput(CHL0,SdReadBuf);
}

void Beep()
{
	unsigned char i,m;
	for (i=0;i<50;i++)
	{
	P14=0;
	DelayNTime(1);
	P14=1;
	DelayNTime(1);
	}
	for (m=0;m<10;m++)
		DelayNTime(10);
}
void DelayNTime(unsigned char dly)
{
	unsigned char j;
	unsigned char i;
	for (i=0;i<2*dly;i++)
		for (j=219;j>0;j--);	
}

void InitPort()
{
	SD_CS=0;
	SD_DI=0;
	SD_DO=0;
	SD_CLK=0;
}

void Timer0Init()
{
	TMOD=0X00;
	TH0=TIMERH;
	TL0=TIMERL;
	EA=1;
	ET0=1;
	P30=1;
	P31=1;
	SDCS2=0;
	SDCS1=0;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -