📄 main.c
字号:
{
if(alarm_flag4 == 0)alarm_flag4 = 1;
else alarm_flag4 = 0;
}
void subn4(void)
{
if(brow6.top == 44) switch4();
else if(brow6.top == 60)
{
if(timen4.hour == 0) timen4.hour = 23;
else timen4.hour--;
}
else if(brow6.top == 92)
{
if(timen4.minute == 0) timen4.minute = 59;
timen4.minute--;
}
}
void leftn4(void)
{
LCD501_Bitmap(brow6.top,32,(unsigned int *)encoding_1f);//
if(brow6.top == 44) brow6.top = 92;
else if(brow6.top == 60) brow6.top = 44;
else if(brow6.top == 92) brow6.top = 60;
}
void rightn4(void)
{
LCD501_Bitmap(brow6.top,32,(unsigned int *)encoding_1f);//
if(brow6.top == 44) brow6.top = 60;
else if(brow6.top == 60) brow6.top = 92;
else if(brow6.top == 92) brow6.top = 44;
}
void returnn4(void)
{
alarm_flag41 = 0;
LCD501_ClrScreen(0);
}
void displayn1(void)
{
LCD501_Bitmap(brow3.top,32,(unsigned int *)encoding_1d);//↑
LCD501_Bitmap(4,16,(unsigned int *)encoding_0b);//闹
LCD501_Bitmap(20,16,(unsigned int *)encoding_0c);//钟
LCD501_PutString(36,16,(unsigned int *)"1"); //1
if(alarm_flag1 == 1)
{
LCD501_Bitmap(44,16,(unsigned int *)encoding_1f); //
LCD501_Bitmap(44,16,(unsigned int *)encoding_0d); //开
}
else
{
LCD501_Bitmap(44,16,(unsigned int *)encoding_1f); //
LCD501_Bitmap(44,16,(unsigned int *)encoding_0e); //关
}
LCD501_PutString(60,16,aa[timen1.hour]); //
LCD501_Bitmap(76,16,(unsigned int *)encoding_03); //时
LCD501_PutString(92,16,aa[timen1.minute]);
LCD501_Bitmap(108,16,(unsigned int *)encoding_04);//分
*P_Watchdog_Clear = 0x0001;
}
void displayn2(void)
{
LCD501_Bitmap(brow4.top,32,(unsigned int *)encoding_1d);//↑
LCD501_Bitmap(4,16,(unsigned int *)encoding_0b);//闹
LCD501_Bitmap(20,16,(unsigned int *)encoding_0c);//钟
LCD501_PutString(36,16,(unsigned int *)"2"); //2
if(alarm_flag2 == 1)
{
LCD501_Bitmap(44,16,(unsigned int *)encoding_1f); //
LCD501_Bitmap(44,16,(unsigned int *)encoding_0d); //开
}
else
{
LCD501_Bitmap(44,16,(unsigned int *)encoding_1f); //
LCD501_Bitmap(44,16,(unsigned int *)encoding_0e); //关
}
LCD501_PutString(60,16,aa[timen2.hour]); //
LCD501_Bitmap(76,16,(unsigned int *)encoding_03); //时
LCD501_PutString(92,16,aa[timen2.minute]);
LCD501_Bitmap(108,16,(unsigned int *)encoding_04);//分
*P_Watchdog_Clear = 0x0001;
}
void displayn3(void)
{
LCD501_Bitmap(brow5.top,32,(unsigned int *)encoding_1d);//↑
LCD501_Bitmap(4,16,(unsigned int *)encoding_0b);//闹
LCD501_Bitmap(20,16,(unsigned int *)encoding_0c);//钟
LCD501_PutString(36,16,(unsigned int *)"3"); //2
if(alarm_flag3 == 1)
{
LCD501_Bitmap(44,16,(unsigned int *)encoding_1f); //
LCD501_Bitmap(44,16,(unsigned int *)encoding_0d); //开
}
else
{
LCD501_Bitmap(44,16,(unsigned int *)encoding_1f); //
LCD501_Bitmap(44,16,(unsigned int *)encoding_0e); //关
}
LCD501_PutString(60,16,aa[timen3.hour]); //
LCD501_Bitmap(76,16,(unsigned int *)encoding_03); //时
LCD501_PutString(92,16,aa[timen3.minute]);
LCD501_Bitmap(108,16,(unsigned int *)encoding_04);//分
*P_Watchdog_Clear = 0x0001;
}
void displayn4(void)
{
LCD501_Bitmap(brow6.top,32,(unsigned int *)encoding_1d);//↑
LCD501_Bitmap(4,16,(unsigned int *)encoding_0b);//闹
LCD501_Bitmap(20,16,(unsigned int *)encoding_0c);//钟
LCD501_PutString(36,16,(unsigned int *)"4"); //2
if(alarm_flag4 == 1)
{
LCD501_Bitmap(44,16,(unsigned int *)encoding_1f); //
LCD501_Bitmap(44,16,(unsigned int *)encoding_0d); //开
}
else
{
LCD501_Bitmap(44,16,(unsigned int *)encoding_1f); //
LCD501_Bitmap(44,16,(unsigned int *)encoding_0e); //关
}
LCD501_PutString(60,16,aa[timen4.hour]); //
LCD501_Bitmap(76,16,(unsigned int *)encoding_03); //时
LCD501_PutString(92,16,aa[timen4.minute]);
LCD501_Bitmap(108,16,(unsigned int *)encoding_04);//分
*P_Watchdog_Clear = 0x0001;
}
void display5(void)
{
LCD501_Bitmap(4,browl.left,(unsigned int *)encoding_1c);//→
LCD501_Bitmap(20,0,(unsigned int *)encoding_0b);//闹
LCD501_PutString(36,0,(unsigned int *)"1"); //1
if(alarm_flag1 == 1)
{
LCD501_Bitmap(44,0,(unsigned int *)encoding_1f); //
LCD501_Bitmap(44,0,(unsigned int *)encoding_0d); //开
}
else
{
LCD501_Bitmap(44,0,(unsigned int *)encoding_1f); //
LCD501_Bitmap(44,0,(unsigned int *)encoding_0e); //关
}
LCD501_PutString(60,0,aa[timen1.hour]); //
LCD501_Bitmap(76,0,(unsigned int *)encoding_03); //时
LCD501_PutString(92,0,aa[timen1.minute]);
LCD501_Bitmap(108,0,(unsigned int *)encoding_04);//分
LCD501_Bitmap(20,16,(unsigned int *)encoding_0b);//闹
LCD501_PutString(36,16,(unsigned int *)"2"); //1
if(alarm_flag2 == 1)
{
LCD501_Bitmap(44,16,(unsigned int *)encoding_1f); //
LCD501_Bitmap(44,16,(unsigned int *)encoding_0d); //开
}
else
{
LCD501_Bitmap(44,16,(unsigned int *)encoding_1f); //
LCD501_Bitmap(44,16,(unsigned int *)encoding_0e); //关
}
LCD501_PutString(60,16,aa[timen2.hour]); //1
LCD501_Bitmap(76,16,(unsigned int *)encoding_03); //时
LCD501_PutString(92,16,aa[timen2.minute]);
LCD501_Bitmap(108,16,(unsigned int *)encoding_04);//分
*P_Watchdog_Clear = 0x0001;
LCD501_Bitmap(20,32,(unsigned int *)encoding_0b);//闹
LCD501_PutString(36,32,(unsigned int *)"3"); //1
if(alarm_flag3 == 1)
{
LCD501_Bitmap(44,32,(unsigned int *)encoding_1f); //
LCD501_Bitmap(44,32,(unsigned int *)encoding_0d); //开
}
else
{
LCD501_Bitmap(44,32,(unsigned int *)encoding_1f); //
LCD501_Bitmap(44,32,(unsigned int *)encoding_0e); //关
}
LCD501_PutString(60,32,aa[timen3.hour]); //1
LCD501_Bitmap(76,32,(unsigned int *)encoding_03); //时
LCD501_PutString(92,32,aa[timen3.minute]);
LCD501_Bitmap(108,32,(unsigned int *)encoding_04);//分
LCD501_Bitmap(20,48,(unsigned int *)encoding_0b);//闹
LCD501_PutString(36,48,(unsigned int *)"4"); //1
if(alarm_flag4 == 1)
{
LCD501_Bitmap(44,48,(unsigned int *)encoding_1f); //
LCD501_Bitmap(44,48,(unsigned int *)encoding_0d); //开
}
else
{
LCD501_Bitmap(44,48,(unsigned int *)encoding_1f); //
LCD501_Bitmap(44,48,(unsigned int *)encoding_0e); //关
}
LCD501_PutString(60,48,aa[timen4.hour]); //1
LCD501_Bitmap(76,48,(unsigned int *)encoding_03); //时
LCD501_PutString(92,48,aa[timen4.minute]);
LCD501_Bitmap(108,48,(unsigned int *)encoding_04);//分
*P_Watchdog_Clear = 0x0001;
}
void display4(void)
{
LCD501_Bitmap(20,8,(unsigned int *)encoding_05);//秒
LCD501_Bitmap(44,8,(unsigned int *)encoding_0a);//表
LCD501_Bitmap(68,8,(unsigned int *)encoding_17);//显
LCD501_Bitmap(92,8,(unsigned int *)encoding_18);//示
LCD501_PutString(24,32,aa[times.minute]);
LCD501_Bitmap(40,32,(unsigned int *)encoding_04);//分
LCD501_PutString(56,32,aa[times.second]);
LCD501_Bitmap(72,32,(unsigned int *)encoding_05);//秒
LCD501_PutString(88,32,aa[times.hsecond]);
*P_Watchdog_Clear = 0x0001;
}
void display3(void)
{
LCD501_Bitmap(brow2.top,brow2.bottom,(unsigned int *)encoding_1d);//↑
LCD501_PutString(16,0,aa[timeb.year]);
LCD501_Bitmap(32,0,(unsigned int *)encoding_00);//年
LCD501_PutString(48,0,aa[timeb.month]);
LCD501_Bitmap(64,0,(unsigned int *)encoding_01);//月
LCD501_PutString(80,0,aa[timeb.day]);
LCD501_Bitmap(96,0,(unsigned int *)encoding_02);//日
LCD501_PutString(16,32, aa[timeb.hour] );
LCD501_Bitmap(32,32,(unsigned int *)encoding_03);//时
LCD501_PutString(48,32,aa[timeb.minute]);
LCD501_Bitmap(64,32,(unsigned int *)encoding_04);//分
LCD501_PutString(80,32,aa[timeb.second]);
LCD501_Bitmap(96,32,(unsigned int *)encoding_05);//秒
*P_Watchdog_Clear = 0x0001;
}
void display2(void)
{
LCD501_Bitmap(12,browl.right,(unsigned int *)encoding_1c);//→
LCD501_PutString(36,8,(unsigned int *)"1"); //1
LCD501_Bitmap(52,8,(unsigned int *)encoding_03); //时
LCD501_Bitmap(68,8,(unsigned int *)encoding_07); //间
LCD501_Bitmap(84,8,(unsigned int *)encoding_08); //调
LCD501_Bitmap(100,8,(unsigned int *)encoding_09); //整
LCD501_PutString(36,24,(unsigned int *)"2"); //2
LCD501_Bitmap(52,24,(unsigned int *)encoding_17);//显
LCD501_Bitmap(68,24,(unsigned int *)encoding_18);//示
LCD501_Bitmap(84,24,(unsigned int *)encoding_05);//秒
LCD501_Bitmap(100,24,(unsigned int *)encoding_0a);//表
LCD501_PutString(36,40,(unsigned int *)"3"); //3
LCD501_Bitmap(52,40,(unsigned int *)encoding_19);//设
LCD501_Bitmap(68,40,(unsigned int *)encoding_1a);//置
LCD501_Bitmap(84,40,(unsigned int *)encoding_0b);//闹
LCD501_Bitmap(100,40,(unsigned int *)encoding_0c);//钟
*P_Watchdog_Clear = 0x0001;
}
void display1(void)//主屏显示程序
{
LCD501_Bitmap(0,0,(unsigned int *)encoding_0b);//闹
LCD501_Bitmap(16,0,(unsigned int *)encoding_0c);//钟
LCD501_PutString(32,0,(unsigned int *)"("); //(
if(alarm_flag1 ==1) LCD501_Bitmap(40,0,(unsigned int *)encoding_0f);//一
else LCD501_Bitmap(40,0,(unsigned int *)encoding_1f);//
if(alarm_flag2 == 1) LCD501_Bitmap(56,0,(unsigned int *)encoding_10);//二
else LCD501_Bitmap(56,0,(unsigned int *)encoding_1f);//
if (alarm_flag3 == 1) LCD501_Bitmap(72,0,(unsigned int *)encoding_11);//三
else LCD501_Bitmap(72,0,(unsigned int *)encoding_1f);//
if(alarm_flag4 == 1) LCD501_Bitmap(88,0,(unsigned int *)encoding_12);//四
else LCD501_Bitmap(88,0,(unsigned int *)encoding_1f);//
LCD501_PutString(104,0,(unsigned int *)")");// )
LCD501_Bitmap(112,0,(unsigned int *)encoding_0d);//开
LCD501_PutString(8,16,(unsigned int *)"20");
LCD501_PutString(24,16,aa[timeb.year]);
LCD501_Bitmap(40,16,(unsigned int *)encoding_00);//年
LCD501_PutString(56,16,aa[timeb.month]);
LCD501_Bitmap(72,16,(unsigned int *)encoding_01);//月
LCD501_PutString(88,16,aa[timeb.day]);
LCD501_Bitmap(104,16,(unsigned int *)encoding_02);//日
LCD501_PutString(16,32, aa[timeb.hour] );
LCD501_Bitmap(32,32,(unsigned int *)encoding_03);//时
LCD501_PutString(48,32,aa[timeb.minute]);
LCD501_Bitmap(64,32,(unsigned int *)encoding_04);//分
LCD501_PutString(80,32,aa[timeb.second]);
LCD501_Bitmap(96,32,(unsigned int *)encoding_05);//秒
LCD501_Bitmap(40,48,(unsigned int *)encoding_15);//星
LCD501_Bitmap(56,48,(unsigned int *)encoding_16);//期
week();
*P_Watchdog_Clear = 0x0001;
}
unsigned char weekflag(void)//星期标志
{
unsigned int days;
unsigned char leap;
unsigned char weekflag;
if((timeb.year%4 == 0&&timeb.year%100 !=0) || (timeb.year%400 == 0))
leap = 1;
else
leap = 0;
days = timeb.day;
switch(timeb.month-1)
{
case 12:days+= 31;
case 11:days+= 30;
case 10:days+= 31;
case 9:days+= 30;
case 8:days+= 31;
case 07:days+= 31;
case 06:days+= 30;
case 05:days+= 31;
case 04:days+= 30;
case 03:days+= 31;
case 02:if(leap == 1)
days += 29;
else
days += 28;
case 01:days+= 31;
}
if(leap == 1)
{
days += timeb.year/4*366+(timeb.year-timeb.year/4)*365+5;
}
else
{
days += (timeb.year/4+1)*366+(timeb.year-timeb.year/4-1)*365+5;
}
weekflag = days%7;
return weekflag;
}
void week(void)//星期显示程序
{
unsigned char i;
i = weekflag();
switch(i)
{
case 0:LCD501_Bitmap(72,48,(unsigned int *)encoding_02);break;
case 1:LCD501_Bitmap(72,48,(unsigned int *)encoding_0f);break;
case 2:LCD501_Bitmap(72,48,(unsigned int *)encoding_10);break;
case 3:LCD501_Bitmap(72,48,(unsigned int *)encoding_11);break;
case 4:LCD501_Bitmap(72,48,(unsigned int *)encoding_12);break;
case 5:LCD501_Bitmap(72,48,(unsigned int *)encoding_13);break;
case 6:LCD501_Bitmap(72,48,(unsigned int *)encoding_14);break;
}
}
//************************播放提示语音******** *************//
//input: 播放序号
//*********************************************************//
/*
PlaySpeakYear(unsigned int YearTemp) //*************年
{
PlayRespond((YearTemp/1000)+C_T00);
PlayRespond((YearTemp%1000)/100+C_T00);
PlayRespond((YearTemp%100)/10+C_T00);
PlayRespond((YearTemp%10)+C_T00);
PlayRespond(C_YEAR);
}
//input:月------16进制
PlaySpeakMonth(unsigned int MonthTemp) //*************月
{
if(MonthTemp<10) PlayRespond(MonthTemp+C_T00);
else if(MonthTemp==10) PlayRespond(C_T10);
else if(MonthTemp==11) PlayRespond(C_T11);
else if(MonthTemp==12) PlayRespond(C_T12);
PlayRespond(C_MONTH);
}
//input:日 ------16进制
PlaySpeakDay(unsigned int DayTemp) //*************日
{ if((DayTemp/10)> 1) PlayRespond(DayTemp/10+C_T00); //十位>1报
if((DayTemp/10)>0) PlayRespond(C_T10); //报十,十位为1不报1
if((DayTemp%10)!= 0) PlayRespond(DayTemp%10+C_T00);
PlayRespond(C_DAY);
}
//input: 时------16进制
PlaySpeakHour(unsigned int DayTemp) //*************时
{
if(DayTemp>=0 && DayTemp<=7)
{ PlayRespond(C_LINGCHEN); //0—7 凌晨
if(DayTemp==2) PlayRespond(C_S02); //两
else PlayRespond(DayTemp+C_T00);
}
else if(DayTemp>=8 && DayTemp<=12)
{ PlayRespond(C_NOON); //8--12 上午
switch(DayTemp)
{ case 10:PlayRespond(C_T10); break; //十点
case 11:PlayRespond(C_T11); break; //十一点
case 12:PlayRespond(C_T12); break; //十二点
default: PlayRespond(DayTemp+C_T00);break;
}
}
else if(DayTemp>=13 && DayTemp<=19)
{ PlayRespond(C_AFTERNOON); //13--19 下午1--7
if(DayTemp==14) PlayRespond(C_S02); //两
else PlayRespond(DayTemp-12+C_T00);
}
else if(DayTemp>=20 && DayTemp<=23)
{ PlayRespond(C_NIGHT); //20--24 晚上8--12
switch(DayTemp)
{ case 22:PlayRespond(C_T10); break; //十点
case 23:PlayRespond(C_T11); break; //十一点
// case 24:PlayRespond(C_T12); break; //十二点
default: PlayRespond(DayTemp-12+C_T00);break;
}
}
PlayRespond(C_DIAN); //点
}
//input: 分 ------16进制
PlaySpeakMinute(unsigned int MinTemp) //*************分
{
if(MinTemp==0) PlayRespond(C_ZHENG); //正点
else
{ if((MinTemp/10)>1) PlayRespond(MinTemp/10+C_T00); //分的十位
if((MinTemp/10) >0) PlayRespond(C_T10); //分的十位大于1报,为1不报1
if((MinTemp%10)!=0) PlayRespond(MinTemp%10+C_T00); //分的个位不为0则报
PlayRespond(C_MIN); //分
}
}
//input:秒------16进制
PlaySpeakSecond(unsigned int SecondTemp) //*************秒
{ if(SecondTemp == 0) PlayRespond(SecondTemp + C_T00); //0秒
if((SecondTemp/10)>1) PlayRespond(SecondTemp/10+C_T00); //秒的十位大于1报,为1只报十
if((SecondTemp/10)> 0) PlayRespond(C_T10);
if((SecondTemp%10)!= 0) PlayRespond(SecondTemp%10+C_T00);
PlayRespond(C_SECOND);
}
//input:1 ----- 报年、月、日
// 0 ----- 报时、分、秒
void SpeakTime(void)
{
PlayRespond(C_BELL); //报时声
asm("int irq"); //开中断
*P_INT_Ctrl=0x0010; //1kHZ定时中断
PlayRespond(C_NOW); //现在时刻
PlaySpeakYear( 2000+timeb.year); //年
PlaySpeakMonth(timeb.month); //月
PlaySpeakDay(timeb.day); //日
PlaySpeakHour(timeb.hour); //时
PlaySpeakMinute(timeb.minute); //分
asm("int irq"); //开中断
*P_INT_Ctrl=0x0010; //1kHZ定时中断
}
*/
void PlayRespond(unsigned int uiSndIndex)
{
asm("fiq on"); //开中断
SACM_A2000_Initial(1); //初始化语音播放,自动方式
SACM_A2000_Play(uiSndIndex,1,3); //播放语音
while((SACM_A2000_Status() & 0x0001) != 0) //判断当前是否在播放?返回最低位为1则表示当前在播放
{
SACM_A2000_ServiceLoop(); //服务程序
*P_Watchdog_Clear = 0x0001;
}
SACM_A2000_Stop(); //停止
asm("irq on"); //开中断
*P_INT_Ctrl&=0x0010; //1kHZ定时
asm("int irq"); //开中断
*P_INT_Ctrl=0x0010; //1kHZ定时中断
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -