昨天 近五点的时候播报了一下四点的音乐 (其余时间正常) 今天又上演了这一幕 我是截取的部分用的到的代码
请大神帮我看看
void Read_Data(void)
{
Hour = BCD_16((Read_DS1302(0x85) & 0x3f)); //读小时
Minute = BCD_16((Read_DS1302(0x83) & 0x7f)); //读分钟
Second = BCD_16((Read_DS1302(0x81) & 0x7f)); //读分钟
Year = BCD_16((Read_DS1302(0x8D)));
Month = BCD_16((Read_DS1302(0x89) & 0x1f));
Day = BCD_16((Read_DS1302(0x87) & 0x3f));
}
/**************************************************************************/
////////函数:Read_DS1302;
////////内容:读DS1302指定地址数据
/**************************************************************************/
unsigned char Read_DS1302(unsigned char Add)
{
unsigned char Data;
OUT_SCLK; //时钟和数据控制引脚输出
OUT_SDATA;
OUT_CE;
asm("nop"); //延迟
asm("nop");
CE_0;
SCLK_0;
CE_1;
Write_Ds_Byte(Add); //写地址
Data = Read_Ds_Byte(); //读数据
SCLK_1;
CE_0;
return Data;
}
//读取时间 并给语音模块发送命令
void Time_read(void)
{
Read_Data(); //读取时间
if(Hour == 9 && Minute == 0 && Second == 0)
{
if(Flag==1)
{
Flag=0;
Play_music(1); //指定Flash 文
}
}
else if(Hour == 11 && Minute ==59 && Second ==30)
{
if(Flag==1)
{
Flag=0;
Play_music(2); //指定Flash 文件
}
}
else if(Hour == 13 && Minute == 0 && Second == 0)
{
if(Flag==1)
{
Flag=0;
Play_music(3); //指定Flash 文件
}
}
else if(Hour == 16 && Minute == 0 && Second == 0)
{
if(Flag==1)
{
Flag=0;
Play_music(4); //指定Flash 文件
}
}
else if(Hour == 18 && Minute == 30 && Second == 0)
{
if(Flag==1)
{
Flag=0;
Play_music(5); //指定Flash 文件夹内播放
}
}
else
{
Flag=1;
}
}
int main(void)
{
Init();
while(1)
{
Time_read();
if(SetTime_flag==1)
{
SetTime_flag=0;
DS1302_Init();
}
if(Copy_flag==1)
{
Copy_flag=0;
UART0_SendStr(Ta_1,5); //复制SD卡
}
}
}
|