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

📄 main.c

📁 基于SPCE061A单片机的语音电子时钟,液晶显示,语音控制,汉语报时(课程设计题目)
💻 C
📖 第 1 页 / 共 3 页
字号:
	}
	else if(brow2.top == 48 && brow2.bottom == 48)
	{
		if(timeb.minute == 0)  timeb.minute = 59;
		else  timeb.minute--;
	}
	else if(brow2.top == 80 && brow2.bottom == 48)
	{
		
		if(timeb.second == 0)  timeb.second = 59;
    	else  timeb.second--;
	}
}
void day_change2(void)
{
	if(timeb.month == 1 || timeb.month == 3 || timeb.month == 5 || timeb.month == 7 || 
	   timeb.month == 8|| timeb.month == 10 || timeb.month == 12)
	{
		if(timeb.day == 0)
		{
			timeb.day = 31;
		}
	}
	else if(timeb.month == 4 || timeb.month == 6 || timeb.month == 9 || timeb.month == 11)
	{
		if(timeb.day == 0)
		{
			timeb.day = 30;
		}
	}	
	else if(timeb.month == 2)
	{
		unsigned char leap;
		if((timeb.year%4 == 0&&timeb.year%100 !=0)  || (timeb.year%400 == 0)) leap = 1;
		else    leap = 0;
		if(leap ==1)
		{
			if(timeb.day == 0)
			{
				timeb.day = 29;
			}
		}
		else
		{
			if(timeb.day == 0)
			{
				timeb.day = 28;
			}
		}
	}
}

void left1(void)
{
	LCD501_Bitmap(brow2.top,brow2.bottom,(unsigned int *)encoding_1f);//
	if(brow2.top == 16 && brow2.bottom == 16)
	{
		 brow2.top = 80; brow2.bottom = 48;
	}
	else if(brow2.top == 16 && brow2.bottom == 48)
	{
		brow2.top = 80 ; brow2.bottom = 16;
	}
	else brow2.top-=32;
}

void right1(void)
{
	LCD501_Bitmap(brow2.top,brow2.bottom,(unsigned int *)encoding_1f);//
	if(brow2.top == 80 && brow2.bottom == 48)
	{
		 brow2.top = 16 ; brow2.bottom = 16;
	}
	else if(brow2.top == 80 && brow2.bottom == 16)
	{
		brow2.top = 16 ; brow2.bottom = 48;
	}
	else brow2.top+=32;
}

void return2(void)
{
	adjust_flag = 0;
	asm("int irq");
	LCD501_ClrScreen(0);
}	

void second_clock(void)
{
	second_flag = 1;
	second_flag1 = 1;
	LCD501_ClrScreen(0);
	while(second_flag1)
	{
		display4();
		scan_key4();
	}
}

void scan_key4(void)
{
	unsigned int key;
	key = key_code();//取得键值	
	if(key == 0x0020) sure3();	
}

void sure3(void)
{
	while(second_flag1)
	{
		second_flag = 0;
		display4();
		scan_key5();		
	}
}


void scan_key5(void)
{
	unsigned int key;
	key = key_code();//取得键值	
	if(key == 0x0040) return3();	
}


void return3(void)
{
	second_flag1 = 0;
	times.minute = 0;
	times.second = 0;
	times.hsecond = 0;
	LCD501_ClrScreen(0);
}
void alarm_clock(void)//闹钟
{
	alarm_flag = 1;
	LCD501_ClrScreen(0);
	while(alarm_flag)
	{
		display5();
		scan_key6();
	}
}
	
void scan_key6(void)
{
	unsigned int key;
	key = key_code();//取得键值
	
	switch(key)
	{
		case 0x0002:topa();break;//向上
		case 0x0004:bottoma();break;//向下
		case 0x0020:surea();break;//确定
		case 0x0040:returna();break;//返回
		default:break;
	}
}

void topa(void)
{
	LCD501_Bitmap(4,browl.left,(unsigned int *)encoding_1f);//
	if( browl.left == 0) 
	browl.left = 48;
	else 
	browl.left -= 16;
}
void bottoma(void)
{
    LCD501_Bitmap(4,browl.left,(unsigned int *)encoding_1f);//
	if( browl.left == 48)
		browl.left = 0;
	else
	    browl.left += 16;
}
void returna(void)
{
	alarm_flag = 0;
	LCD501_ClrScreen(0);
}
void surea(void)
{
	if(browl.left == 0)
		alarm_clock1();//闹钟1
	else if(browl.left == 16)
		alarm_clock2();//闹钟2
	else if(browl.left == 32)
		alarm_clock3();//闹钟3
	else if(browl.left == 48)
		alarm_clock4();//闹钟4
}

void alarm_clock1(void)
{
	alarm_flag11 = 1;
	brow3.top = 44;
	LCD501_ClrScreen(0);
	while(alarm_flag11)
	{
		displayn1();
		scan_keyn1();
	}
}

void scan_keyn1(void)
{
	unsigned int key;
	key = key_code();//取得键值
	
	switch(key)
	{
		case 0x0002:addn1();break;//加一
		case 0x0004:subn1();break;//减一
		case 0x0008:leftn1();break;//左移
    	case 0x0010:rightn1();break;//右移
		case 0x0040:returnn1();break;//返回
		default:break;
	}
}

void addn1(void)
{
	if(brow3.top == 44) switch1();
	else if(brow3.top == 60) 
	{
		timen1.hour++;
		if(timen1.hour == 24) timen1.hour = 0;
	}
	else if(brow3.top == 92)
	{
		timen1.minute++;
		if(timen1.minute == 60) timen1.minute = 0;
	}
}
void switch1(void)
{
	if(alarm_flag1 == 0)alarm_flag1 = 1;
	else  alarm_flag1 = 0; 
}

void subn1(void)
{
	if(brow3.top == 44) switch1();
	else if(brow3.top == 60) 
	{	
		if(timen1.hour == 0) timen1.hour = 23;
		                else timen1.hour--;
	}
	else if(brow3.top == 92)
	{
		
		if(timen1.minute == 0) timen1.minute = 59;
		timen1.minute--;
	}
}

void leftn1(void)
{
	LCD501_Bitmap(brow3.top,32,(unsigned int *)encoding_1f);//	
	if(brow3.top == 44)      brow3.top = 92;
	else if(brow3.top == 60) brow3.top = 44;
	else if(brow3.top == 92) brow3.top = 60;
}
void rightn1(void)
{
	LCD501_Bitmap(brow3.top,32,(unsigned int *)encoding_1f);//
	if(brow3.top == 44)      brow3.top = 60;
	else if(brow3.top == 60) brow3.top = 92;
	else if(brow3.top == 92) brow3.top = 44;
}

void returnn1(void)
{
	alarm_flag11 = 0;
	LCD501_ClrScreen(0);
}	
	
void alarm_clock2(void)
{
	alarm_flag21 = 1;
	brow4.top = 44;
	LCD501_ClrScreen(0);
	while(alarm_flag21)
	{
		displayn2();
		scan_keyn2();
	}
}

void scan_keyn2(void)
{
	unsigned int key;
	key = key_code();//取得键值
	
	switch(key)
	{
		case 0x0002:addn2();break;//加一
		case 0x0004:subn2();break;//减一
		case 0x0008:leftn2();break;//左移
    	case 0x0010:rightn2();break;//右移
		case 0x0040:returnn2();break;//返回
		default:break;
	}
}

void addn2(void)
{
	if(brow4.top == 44) switch2();
	else if(brow4.top == 60) 
	{
		timen2.hour++;
		if(timen2.hour == 24) timen2.hour = 0;
	}
	else if(brow4.top == 92)
	{
		timen2.minute++;
		if(timen2.minute == 60) timen2.minute = 0;
	}
}
void switch2(void)
{
	if(alarm_flag2 == 0)alarm_flag2 = 1;
	else  alarm_flag2 = 0; 
}

void subn2(void)
{
	if(brow4.top == 44) switch2();
	else if(brow4.top == 60) 
	{	
		if(timen2.hour == 0) timen2.hour = 23;
		                else timen2.hour--;
	}
	else if(brow4.top == 92)
	{
		
		if(timen2.minute == 0) timen2.minute = 59;
		timen2.minute--;
	}
}

void leftn2(void)
{
	LCD501_Bitmap(brow4.top,32,(unsigned int *)encoding_1f);//	
	if(brow4.top == 44)      brow4.top = 92;
	else if(brow4.top == 60) brow4.top = 44;
	else if(brow4.top == 92) brow4.top = 60;
}
void rightn2(void)
{
	LCD501_Bitmap(brow4.top,32,(unsigned int *)encoding_1f);//
	if(brow4.top == 44)      brow4.top = 60;
	else if(brow4.top == 60) brow4.top = 92;
	else if(brow4.top == 92) brow4.top = 44;
}

void returnn2(void)
{
	alarm_flag21 = 0;
	LCD501_ClrScreen(0);
}

void alarm_clock3(void)
{
	alarm_flag31 = 1;
	brow5.top = 44;
	LCD501_ClrScreen(0);
	while(alarm_flag31)
	{
		displayn3();
		scan_keyn3();
	}
}

void scan_keyn3(void)
{
	unsigned int key;
	key = key_code();//取得键值
	
	switch(key)
	{
		case 0x0002:addn3();break;//加一
		case 0x0004:subn3();break;//减一
		case 0x0008:leftn3();break;//左移
    	case 0x0010:rightn3();break;//右移
		case 0x0040:returnn3();break;//返回
		default:break;
	}
}

void addn3(void)
{
	if(brow5.top == 44) switch3();
	else if(brow5.top == 60) 
	{
		timen3.hour++;
		if(timen3.hour == 24) timen3.hour = 0;
	}
	else if(brow5.top == 92)
	{
		timen3.minute++;
		if(timen3.minute == 60) timen3.minute = 0;
	}
}
void switch3(void)
{
	if(alarm_flag3 == 0)alarm_flag3 = 1;
	else  alarm_flag3 = 0; 
}

void subn3(void)
{
	if(brow5.top == 44) switch3();
	else if(brow5.top == 60) 
	{	
		if(timen3.hour == 0) timen3.hour = 23;
		                else timen3.hour--;
	}
	else if(brow5.top == 92)
	{
		
		if(timen3.minute == 0) timen3.minute = 59;
		timen3.minute--;
	}
}

void leftn3(void)
{
	LCD501_Bitmap(brow5.top,32,(unsigned int *)encoding_1f);//	
	if(brow5.top == 44)      brow5.top = 92;
	else if(brow5.top == 60) brow5.top = 44;
	else if(brow5.top == 92) brow5.top = 60;
}
void rightn3(void)
{
	LCD501_Bitmap(brow5.top,32,(unsigned int *)encoding_1f);//
	if(brow5.top == 44)      brow5.top = 60;
	else if(brow5.top == 60) brow5.top = 92;
	else if(brow5.top == 92) brow5.top = 44;
}

void returnn3(void)
{
	alarm_flag31 = 0;
	LCD501_ClrScreen(0);
}	

void alarm_clock4(void)
{
	alarm_flag41 = 1;
	brow6.top = 44;
	LCD501_ClrScreen(0);
	while(alarm_flag41)
	{
		displayn4();
		scan_keyn4();
	}
}

void scan_keyn4(void)
{
	unsigned int key;
	key = key_code();//取得键值
	
	switch(key)
	{
		case 0x0002:addn4();break;//加一
		case 0x0004:subn4();break;//减一
		case 0x0008:leftn4();break;//左移
    	case 0x0010:rightn4();break;//右移
		case 0x0040:returnn4();break;//返回
		default:break;
	}
}

void addn4(void)
{
	if(brow6.top == 44) switch4();
	else if(brow6.top == 60) 
	{
		timen4.hour++;
		if(timen4.hour == 24) timen4.hour = 0;
	}
	else if(brow6.top == 92)
	{
		timen4.minute++;
		if(timen4.minute == 60) timen4.minute = 0;
	}
}
void switch4(void)

⌨️ 快捷键说明

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