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

📄 system.c

📁 基于凌阳单片机数字电子钟的C语言源代码 基于凌阳单片机数字电子钟的C语言源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
    LCD501_Bitmap(10,35,(unsigned int*)encoding_xing);
    LCD501_Bitmap(30,35,(unsigned int*)encoding_qi);
    LCD501_Bitmap(0,50,(unsigned int*)encoding_nong);
    LCD501_Bitmap(12,50,(unsigned int*)encoding_li);
    LCD501_Bitmap(20,18,(unsigned int*)encoding_maohao);
    LCD501_Bitmap(48,18,(unsigned int*)encoding_maohao);
    LCD501_Bitmap(48,50,(unsigned int*)encoding_month);
    LCD501_Bitmap(72,50,(unsigned int*)encoding_day);
    LCD501_Bitmap(90,50,(unsigned int*)encoding_nao);
    LCD501_Bitmap(102,50,(unsigned int*)encoding_zhong);
    LCD501_Bitmap(90,10,(unsigned int*)BMP_Cartoon[counter]);
    if((nmonth==(glunarmonthday[year-2001] & 0x000f)) && runflag==1)
    	LCD501_Bitmap(24,50,(unsigned int*)encoding_run);  		 //如果是当年的闰月,则显示闰字,否则不显示。
    else
        LCD501_Bitmap(24,50,(unsigned int*)encoding_offempty);
}
//===============================================================//
//语法格式: void display()
//实现功能:显示正常运行界面
//参数    :
//返回值  :无
//==============================================================//
void display()
{
    openshow();                                                 //在屏幕上显示固定的单元
	showsec(sec);                                               //调用显示秒单元子函数
 	showmin(min);                                               //调用显示分单元子函数
 	showhour(hour);                                             //调用显示小时单元子函数
    showyear(year);                                             //调用显示年单元子函数
 	showgmonth(gmonth);                                         //调有显示公历月单元子函数
 	showgday(gday);                                             //调用显示公历日单元子函数
 	showxq(xqvalue);                                            //调用显示星期单元子函数
 	shownmonth(nmonth);                                         //调用显示农历月单元子函数
 	shownday(nday);                                             //调用显示农历日单元子函数
 	switch(onoff)                                               //显示闹钟的开关
 	{   
 		case 1: 
 			LCD501_Bitmap(114,50,(unsigned int*)encoding_offempty);
 		    LCD501_Bitmap(114,50,(unsigned int*)encoding_off);
 		    break;
 		
 		case 0: 
 			LCD501_Bitmap(114,50,(unsigned int*)encoding_offempty);
 		    LCD501_Bitmap(114,50,(unsigned int*)encoding_on);
 		    break;
 	}
}
//===============================================================//
//语法格式: void displaymodify(keynowvalue)
//实现功能:时间日期调整界面
//参数    :keynowvalue当前闪烁
//返回值  :无
//==============================================================//
void displaymodify(keynowvalue)
{
	openshow();                                                 //在屏幕上显示固定的单元
	showxq(xqvalue);                                            //调用显示星期单元子函数
 	switch(onoff)                                               //判断当前的闹钟的开关,如果开,则在屏幕上显示开
 	{                                                           //否则显示关。
 		case 1: 
 			LCD501_Bitmap(114,50,(unsigned int*)encoding_offempty);
 		    LCD501_Bitmap(114,50,(unsigned int*)encoding_off);
 		    break;
 		
 		case 0: 
 			LCD501_Bitmap(114,50,(unsigned int*)encoding_offempty);
 		    LCD501_Bitmap(114,50,(unsigned int*)encoding_on);
 		    break;
 	}
 	switch(keynowvalue)
 	{
 		case 0:
 			if(int2hz==0)
 				showyear(year);
 			else
 			{
 				LCD501_PutChar(18,2,' ');
 				LCD501_PutChar(12,2,' ');
 				LCD501_PutChar(6,2,' ');
 			}
 			showsec(sec);                                               //调用显示秒单元子函数
 			showmin(min);                                               //调用显示分单元子函数
 			showhour(hour);                                             //调用显示小时单元子函数
 			showgmonth(gmonth);                                         //调有显示公历月单元子函数
 			showgday(gday);                                             //调用显示公历日单元子函数
 			shownmonth(nmonth);                                         //调用显示农历月单元子函数
 			shownday(nday);                                             //调用显示农历日单元子函数
 			break;
		case 2:
 			if(int2hz==0)
 				showgmonth(gmonth);
 			else
 			{
 				LCD501_PutChar(42,2,' ');
 				LCD501_PutChar(36,2,' ');
 			}
 			showsec(sec);                                               //调用显示秒单元子函数
 			showmin(min);                                               //调用显示分单元子函数
 			showhour(hour);                                             //调用显示小时单元子函数
 			showyear(year);                                             //调有显示公历月单元子函数
 			showgday(gday);                                             //调用显示公历日单元子函数
 			shownmonth(nmonth);                                         //调用显示农历月单元子函数
 			shownday(nday);                                             //调用显示农历日单元子函数
 			break;
 		case 4:
 			if(int2hz==0)
 				showgday(gday);
 			else
 			{
 				LCD501_PutChar(66,2,' ');
 				LCD501_PutChar(60,2,' ');
 			}
 			showsec(sec);                                               //调用显示秒单元子函数
 			showmin(min);                                               //调用显示分单元子函数
 			showhour(hour);                                             //调用显示小时单元子函数
 			showgmonth(gmonth);                                         //调有显示公历月单元子函数
 			showyear(year);                                             //调用显示公历日单元子函数
 			shownmonth(nmonth);                                         //调用显示农历月单元子函数
 			shownday(nday);                                             //调用显示农历日单元子函数
 			break;
 		case 6:
 			if(int2hz==0)
 				showhour(hour);
 			else
 			{
 				LCD501_PutChar(12,20,' ');
 				LCD501_PutChar(6,20,' ');
 			}
 			showsec(sec);                                               //调用显示秒单元子函数
 			showmin(min);                                               //调用显示分单元子函数
 			showyear(year);                                             //调用显示小时单元子函数
 			showgmonth(gmonth);                                         //调有显示公历月单元子函数
 			showgday(gday);                                             //调用显示公历日单元子函数
 			shownmonth(nmonth);                                         //调用显示农历月单元子函数
 			shownday(nday);                                             //调用显示农历日单元子函数
 			break;
 		case 8:
 			if(int2hz==0)
 				showmin(min);
 			else
 			{
 				LCD501_PutChar(40,20,' ');
 				LCD501_PutChar(34,20,' ');
 			}
 			showsec(sec);                                               //调用显示秒单元子函数
 			showyear(year);                                             //调用显示分单元子函数
 			showhour(hour);                                             //调用显示小时单元子函数
 			showgmonth(gmonth);                                         //调有显示公历月单元子函数
 			showgday(gday);                                             //调用显示公历日单元子函数
 			shownmonth(nmonth);                                         //调用显示农历月单元子函数
 			shownday(nday);                                             //调用显示农历日单元子函数
 			break;
 		case 10:
 			if(int2hz==0)
 				showsec(sec);
 			else
 			{
 				LCD501_PutChar(66,20,' ');
 				LCD501_PutChar(60,20,' ');
 			}
 			showyear(year);                                             //调用显示秒单元子函数
 			showmin(min);                                               //调用显示分单元子函数
 			showhour(hour);                                             //调用显示小时单元子函数
 			showgmonth(gmonth);                                         //调有显示公历月单元子函数
 			showgday(gday);                                             //调用显示公历日单元子函数
 			shownmonth(nmonth);                                         //调用显示农历月单元子函数
 			shownday(nday);                                             //调用显示农历日单元子函数
 			break;
 		case 12:
 			if(int2hz==0)
 				shownmonth(nmonth);
 			else
 			{
 				LCD501_PutChar(42,52,' ');
 				LCD501_PutChar(36,52,' ');
 			}
 			showsec(sec);                                               //调用显示秒单元子函数
 			showmin(min);                                               //调用显示分单元子函数
 			showhour(hour);                                             //调用显示小时单元子函数
 			showgmonth(gmonth);                                         //调有显示公历月单元子函数
 			showgday(gday);                                             //调用显示公历日单元子函数
 			showyear(year);                                             //调用显示农历月单元子函数
 			shownday(nday);                                             //调用显示农历日单元子函数
 			break;
 		case 14:
 			if(int2hz==0)
 				shownday(nday);
 			else
 			{
 				LCD501_PutChar(66,52,' ');
 				LCD501_PutChar(60,52,' ');
 			}
 			showsec(sec);                                               //调用显示秒单元子函数
 			showmin(min);                                               //调用显示分单元子函数
 			showhour(hour);                                             //调用显示小时单元子函数
 			showgmonth(gmonth);                                         //调有显示公历月单元子函数
 			showgday(gday);                                             //调用显示公历日单元子函数
 			shownmonth(nmonth);                                         //调用显示农历月单元子函数
 			showyear(year);                                             //调用显示农历日单元子函数
 			break;
 	}
}
//===============================================================//
//语法格式: void nextdisplay() 
//实现功能:显示时间日期调整及功能选择界面
//参数    :无
//返回值  :无
//==============================================================//
void nextdisplay()                                              //显示时间日期调整子程序
{
	LCD501_Bitmap(28,0,(unsigned int*)encoding_shi);            //时
	LCD501_Bitmap(40,0,(unsigned int*)encoding_jian);           //间
	LCD501_Bitmap(52,0,(unsigned int*)encoding_day);            //日
	LCD501_Bitmap(64,0,(unsigned int*)encoding_qi);             //期
	LCD501_Bitmap(76,0,(unsigned int*)encoding_tiao);           //调
	LCD501_Bitmap(88,0,(unsigned int*)encoding_zheng);          //整
	LCD501_Bitmap(28,15,(unsigned int*)encoding_nao);           //闹
	LCD501_Bitmap(40,15,(unsigned int*)encoding_zhong);         //钟
	LCD501_Bitmap(52,15,(unsigned int*)encoding_she);           //设
	LCD501_Bitmap(64,15,(unsigned int*)encoding_zhi);           //置
	LCD501_Bitmap(28,45,(unsigned int*)encoding_fan);           //返
	LCD501_Bitmap(40,45,(unsigned int*)encoding_hui);           //回
    LCD501_Bitmap(28,30,(unsigned int*)encoding_miao);          //秒
	LCD501_Bitmap(40,30,(unsigned int*)encoding_biao);          //表
	LCD501_Bitmap(52,30,(unsigned int*)encoding_gong);          //功
	LCD501_Bitmap(64,30,(unsigned int*)encoding_neng);          //能
}
//===============================================================//
//语法格式:  void setday() 
//实现功能:显示时间日期调整界面
//参数    :无
//返回值  :无
//==============================================================//
void setday()
{   
	int j = 0;
    LCD501_ClrScreen(0);                                        //调用清屏函数
	keyflag3 = 1;                                               //置位键按下标志                                         
	while(keyflag3==1)
	{
		keyscan();                                              //键盘扫描
		if(keyvalue!=0)
			display();
		else
			displaymodify(j);                                   //调用时间日期显示界面
		switch(keyvalue)
		{
			case 0x0001:
				if(j==14)                                       //如果光标已经到了最后的一个位置
			    {                                               //则退出调整界面
			     	keyflag3 = 0;
			        LCD501_ClrScreen(0);                        // 退出循环,清屏
				}
			    else                                            //根据按键修改光标的位置                    
			    	j = j+2;
				break;
			case 0x0002:                                        //如果是KEY2按下,那么光标所对应的值进行加操作
				switch(j)
	            {
	            	case 0:
	                  	if(year>=2100)
	                		year = 2001;
	                    else
	                    	year = ++year;
	                    break;
					case 2:
                    	if(gmonth==12)
                        	gmonth = 1;
                        else
                        	gmonth = ++gmonth;
                        break;
					case 4:
                    	if(gday==31)
                        	gday = 1;
                        else
                        	gday = ++gday;
                        break;                             
					case 6:        
                        if(hour==24)
                        	hour = 0;
                        else
               	        	hour = ++hour;
                        break;
					case 8:
                    	if(min==60)
                        	min = 0;
                        else
                        	min = ++min;	 
                        break;
					case 10:
                    	if(sec==60)
                        	sec = 0;
                        else
                        	sec = ++sec;
                        break;
					case 12:
                   		if(nmonth==12)
                        	nmonth = 1;
                        else
                        	nmonth = ++nmonth;
                        break;
					case 14:
                    	if(nday==30)
                        	nday = 0;
                        else 
                        	nday = ++nday;
	                    break;
	            }
	                    break;
			case 0x0004:                                         //如果是KEY3按下,那么光标所对应的值进行减操作
	        	switch(j)
	            	{
	                	case 0:
	                    	if(year<=2001)
	                        	year = 2100;
	                        else
	                        	year = --year;
							break;
                        case 2:
							if(gmonth==1)
                        		gmonth = 12;
                        	else
                        		gmonth = --gmonth;
							break;
                        case 4:
							if(gday==1)
                            	gday = 31;
                            else
                            	gday = --gday;
							break;
                        case 6:
							if(hour==0)
                            	hour = 23;
                            else
                            	hour = --hour;
							 break;
                        case 8:
							if(min==0)
                             	min = 59;
                            else
                            	min = --min;	
                            break;
                        case 10:
							if(sec==0)
								sec = 60;
                            else
                            	sec = --sec;
							break;
                        case 12:
                        	if(nmonth==1)
                            	nmonth = 12;
                            else
                            	nmonth = --nmonth;
							break;
                         case 14:
                         	if(nday==1)
                            	nday = 30;
                            else
                            	nday = --nday;
                            break; 
	            	}
                    break;
	          
		}
	}
}
//===============================================================//
//语法格式:void naoclockshow1(shownhour,shownmin,keynow)
//实现功能:显示闹钟调整界面
//参数    :shownhour,shownmin,keynow,闹钟的小时,分钟,当前光标
//返回值  :无
//==============================================================//
void naoclockshow1(shownhour,shownmin,keynow)                   //显示闹钟调整界面
{
	int clockhourshi=0;
    int clockhourge=0;
    int clockminshi=0;
    int clockminge=0;
	LCD501_Bitmap(37,20,(unsigned int*)encoding_nao);           //闹
	LCD501_Bitmap(49,20,(unsigned int*)encoding_zhong);         //钟
	LCD501_Bitmap(61,20,(unsigned int*)encoding_she);           //设
	LCD501_Bitmap(73,20,(unsigned int*)encoding_zhi);           //置

⌨️ 快捷键说明

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