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

📄 main.c

📁 本程序是用51单片机设计的一个时钟程序,对于想了解单片机的C语言和汇编语言的开发人员是一个不错的例程.
💻 C
📖 第 1 页 / 共 2 页
字号:
							}
							else
							{
								flash=1;
								Disp_array[2]=16;
								Disp_array[3]=16;
							}
						}
						Disp_array[0]=mon/10;
						Disp_array[1]=mon-10*(mon/10);
						break;
					case	3:
						if (Time250msFlag==1)
						{
							Time250msFlag=0;
							if (flash==1)
							{
								flash=0;
								Disp_array[4]=hou/10;
								Disp_array[5]=hou-10*(hou/10);
							}
							else
							{
								flash=1;
								Disp_array[4]=16;
								Disp_array[5]=16;
							}
						}
						Disp_array[2]=dat/10;
						Disp_array[3]=dat-10*(dat/10);
						break;
					case	4:
						if (Time250msFlag==1)
						{
							Time250msFlag=0;
							if (flash==1)
							{
								flash=0;
								Disp_array[6]=min/10;
								Disp_array[7]=min-10*(min/10);
							}
							else
							{
								flash=1;
								Disp_array[6]=16;
								Disp_array[7]=16;
							}
						}
						Disp_array[4]=hou/10;
						Disp_array[5]=hou-10*(hou/10);
						break;
					default:
						segflag=0;
						break;
				}
				break;
			case	1:							//显示定时界面
				switch(segflag)
				{
					case	0:
						Disp_array[0]=17;			//TIMER
						Disp_array[1]=18;
						Disp_array[2]=19;
						Disp_array[3]=20;
						Disp_array[4]=21;
						Disp_array[5]=22;
						Disp_array[6]=16;
						Disp_array[7]=(char)TimeOpenflag;
						break;
					case	1:
						if (Time250msFlag==1)
						{
							Time250msFlag=0;
							if (flash==1)
							{
								flash=0;
								Disp_array[7]=(char)TimeOpenflag;
							}
							else
							{
								flash=1;
								Disp_array[7]=16;
							}
						}
						break;
					default:
						segflag=0;
						break;
				}
				break;
			case	2:
				switch(segflag)
				{
					case	0:
						TimerFlag=(bit)TimerArray[Timer][2];
						hout=TimerArray[Timer][0];
						mint=TimerArray[Timer][1];
						Disp_array[0]=10;
						Disp_array[1]=Timer/10;
						Disp_array[2]=Timer-10*(Timer/10);
						Disp_array[3]=(char)TimerFlag;
						Disp_array[4]=hout/10;
						Disp_array[5]=hout-10*(hout/10);
						Disp_array[6]=mint/10;
						Disp_array[7]=mint-10*(mint/10);
						break;
					case	1:
						if (Time250msFlag==1)
						{
							Time250msFlag=0;
							if (flash==1)
							{
								flash=0;
								TimerFlag=(bit)TimerArray[Timer][2];
								hout=TimerArray[Timer][0];
								mint=TimerArray[Timer][1];
								Disp_array[0]=10;
								Disp_array[1]=Timer/10;
								Disp_array[2]=Timer-10*(Timer/10);
								Disp_array[3]=(char)TimerFlag;
								Disp_array[4]=hout/10;
								Disp_array[5]=hout-10*(hout/10);
								Disp_array[6]=mint/10;
								Disp_array[7]=mint-10*(mint/10);
							}
							else
							{
								flash=1;
								Disp_array[1]=16;
								Disp_array[2]=16;
							}
						}
						break;
					case	2:
						Disp_array[1]=Timer/10;
						Disp_array[2]=Timer-10*(Timer/10);
						TimerArray[Timer][2]=(char)TimerFlag;
						if (Time250msFlag==1)
						{
							Time250msFlag=0;
							if (flash==1)
							{
								flash=0;
								Disp_array[3]=(char)TimerFlag;
							}
							else
							{
								flash=1;
								Disp_array[3]=16;
							}
						}
						break;
					case	3:
						Disp_array[3]=(char)TimerFlag;
						TimerArray[Timer][0]=hout;
						if (Time250msFlag==1)
						{
							Time250msFlag=0;
							if (flash==1)
							{
								flash=0;
								Disp_array[4]=hout/10;
								Disp_array[5]=hout-10*(hout/10);
							}
							else
							{
								flash=1;
								Disp_array[4]=16;
								Disp_array[5]=16;
							}
						}
						break;
					case	4:
						Disp_array[4]=hout/10;
						Disp_array[5]=hout-10*(hout/10);
						TimerArray[Timer][1]=mint;
						if (Time250msFlag==1)
						{
							Time250msFlag=0;
							if (flash==1)
							{
								flash=0;
								Disp_array[6]=mint/10;
								Disp_array[7]=mint-10*(mint/10);
							}
							else
							{
								flash=1;
								Disp_array[6]=16;
								Disp_array[7]=16;
							}
						}
						break;
					default:
						segflag=0;
						break;
				}
				break;
			case	3:
				switch(segflag)
				{
					case	0:
						Disp_array[0]=11;
						Disp_array[1]=song/10;
						Disp_array[2]=song-10*(song/10);
						Disp_array[3]=16;
						Disp_array[4]=16;
						Disp_array[5]=16;
						Disp_array[6]=16;
						Disp_array[7]=(char)SongCirFg;
						break;
					case	1:
						if (Time250msFlag==1)
						{
							Time250msFlag=0;
							if (flash==1)
							{
								flash=0;
								Disp_array[1]=song/10;
								Disp_array[2]=song-10*(song/10);
							}
							else
							{
								flash=1;
								Disp_array[1]=16;
								Disp_array[2]=16;
							}
						}
						break;
					case	2:
						Disp_array[1]=song/10;
						Disp_array[2]=song-10*(song/10);
						if (Time250msFlag==1)
						{
							Time250msFlag=0;
							if (flash==1)
							{
								flash=0;
								Disp_array[7]=(char)SongCirFg;
							}
							else
							{
								flash=1;
								Disp_array[7]=16;
							}
						}
						break;
					default:
						segflag=0;
						break;
				}
				break;
			case	4:
				switch(segflag)
				{
					case	0:
						Disp_array[0]=24;			//TIMER
						Disp_array[1]=25;
						Disp_array[2]=2;
						Disp_array[3]=RcapCnt;
						Disp_array[4]=UpDownFlag;
						Disp_array[5]=16;
						Disp_array[6]=HL2[RcapCnt]>>4;
						Disp_array[7]=HL2[RcapCnt]&0x0F;
						break;
					case	1:
						Disp_array[6]=HL2[RcapCnt]>>4;
						Disp_array[7]=HL2[RcapCnt]&0x0F;
						if (Time250msFlag==1)
						{
							Time250msFlag=0;
							if (flash==1)
							{
								flash=0;
								Disp_array[3]=RcapCnt;
							}
							else
							{
								flash=1;
								Disp_array[3]=16;
							}
						}
						break;
					case	2:
						Disp_array[3]=RcapCnt;
						if (Time250msFlag==1)
						{
							Time250msFlag=0;
							if (flash==1)
							{
								flash=0;
								Disp_array[4]=(char)UpDownFlag;
							}
							else
							{
								flash=1;
								Disp_array[4]=16;
							}
						}
						break;
					case	3:
						Disp_array[4]=(char)UpDownFlag;
						RCAP2L = HL2[1];
						RCAP2H = HL2[0];
						if (Time250msFlag==1)
						{
							Time250msFlag=0;
							if (flash==1)
							{
								flash=0;
								Disp_array[6]=HL2[RcapCnt]>>4;
								Disp_array[7]=HL2[RcapCnt]&0x0F;
							}
							else
							{
								flash=1;
								Disp_array[6]=16;
								Disp_array[7]=16;
							}
						}
						break;
					default:
						segflag=0;
						break;
				}
				break;
			default:
				formflag=0;
				break;
		}
		i = (i+1)%20;								//循环扫描20个定时器组
		if (TimeOpenflag==1)
		{
			delay1min=0;
			Time250msFlag1=0;
			if (TimerArray[i][0]==hou)
			{
				if (TimerArray[i][1]==min)
				{
					if(TimerArray[i][2]==1)
					{
						if (TaskTable[i].pFcnt)
						{
							TaskTable[i].pFcnt();
						}
						//Speaker=0;
					}
				}
			}
		}
		else
		{
			if (Time250msFlag1==1)
			{
				Time250msFlag1=0;
				delay1min++;
				if (delay1min>240)
				{
					delay1min=0;
					TimeOpenflag=1;
				}
			}
			CloseSpeaker();
			//Speaker=1;
		}
		RedLight = Dot_Value;
		GreenLight = ~Dot_Value;
	}
}

⌨️ 快捷键说明

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