📄 main.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 + -