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

📄 sky_main.lst

📁 公共广播系统:定时开机,定时广播,定时关机
💻 LST
📖 第 1 页 / 共 5 页
字号:
1150   2      		if(i%4==0)
1151   2      			w+=2;
1152   2      		else
1153   2      			w+=1;
1154   2      	}
1155   1      	for(i=1;i<m;i++)
1156   1      	{
1157   2      		if(i==4 || i==6 || i==9 || i==11)
1158   2      			w+=2;
1159   2      		else if(i==2)
1160   2      			{
1161   3      				if(y%4==0)
1162   3      					w+=1;
1163   3      			}
1164   2      			else
1165   2      				w+=3;
1166   2      	}
1167   1      	w+=d;
1168   1      	w-=1;
1169   1      	w%=7;
1170   1      	return(w);
1171   1      }
1172          void DateTimeSet(void)//日期时间设置
1173          {
1174   1      	data UINT8 temp,num,week1,year1,month1,date1,hour1,minute1,second1;
1175   1      	bit flag;
1176   1      
1177   1      	flag=1;
1178   1      	num=0;
1179   1      	year1=Year;
1180   1      	month1=Month;
1181   1      	date1=Date;
1182   1      	hour1=Hour;
1183   1      	minute1=Minute;
1184   1      	second1=Second;
1185   1      	week1=Week;
C51 COMPILER V6.14  SKY_MAIN                                                               12/30/2004 22:34:59 PAGE 21  

1186   1      	while(1)
1187   1      	{
1188   2      		temp=KeyScan();
1189   2      		if(count2>2400)
1190   2      		{
1191   3      			Function=0;
1192   3      			clearRAM(0,8);
1193   3      			return;
1194   3      		}
1195   2      		ClearWatchDog();
1196   2      		switch(temp)
1197   2      		{
1198   3      			case MOVE:
1199   3      				num++;
1200   3      				if(num>5)
1201   3      					num=0;
1202   3      				flag=1;
1203   3      				break;
1204   3      			case UP:
1205   3      				switch(num)
1206   3      				{
1207   4      					case 0:
1208   4      						year1+=1;
1209   4      						year1%=100;
1210   4      						flag=2;
1211   4      						break;
1212   4      					case 1:
1213   4      						month1+=1;
1214   4      						if(month1>12)
1215   4      							month1=1;
1216   4      						flag=2;
1217   4      						break;
1218   4      					case 2:
1219   4      						date1+=1;
1220   4      						flag=2;
1221   4      						break;
1222   4      					case 3:
1223   4      						hour1+=1;
1224   4      						if(hour1>23)
1225   4      							hour1=0;
1226   4      						flag=1;
1227   4      						break;
1228   4      					case 4:
1229   4      						minute1+=1;
1230   4      						if(minute1>59)
1231   4      							minute1=0;
1232   4      						flag=1;
1233   4      						break;
1234   4      					case 5:
1235   4      						second1+=1;
1236   4      						if(second1>59)
1237   4      							second1=0;
1238   4      						flag=1;
1239   4      						break;
1240   4      				}
1241   3      				if(flag==2)
1242   3      				{
1243   4      					if(month1==4 || month1== 6 || month1==9 || month1==11)
1244   4      					{
1245   5      						if(date1>30)
1246   5      							date1=1;
1247   5      					}
C51 COMPILER V6.14  SKY_MAIN                                                               12/30/2004 22:34:59 PAGE 22  

1248   4      					else if(month1==2)
1249   4      						{
1250   5      							if(year1 %4==0)
1251   5      							{
1252   6      								if(date1>29)
1253   6      									date1=1;
1254   6      							}
1255   5      							else if(date1>28)
1256   5      								{
1257   6      									date1=1;
1258   6      								}
1259   5      						}
1260   4      						else
1261   4      						{
1262   5      							if(date1>31)
1263   5      								date1=1;
1264   5      						}
1265   4      					week1=Weekjs(year1,month1,date1);
1266   4      				}
1267   3      				flag=1;
1268   3      				break;
1269   3      			case DOWN:
1270   3      				switch(num)
1271   3      				{
1272   4      					case 0:
1273   4      						if(year1==0)
1274   4      							year1=99;
1275   4      						else
1276   4      						{
1277   5      							year1-=1;
1278   5      						}
1279   4      						flag=2;
1280   4      						break;
1281   4      					case 1:
1282   4      						if(month1==1)
1283   4      							month1=12;
1284   4      						else
1285   4      							month1-=1;
1286   4      						flag=2;
1287   4      						break;
1288   4      					case 2:
1289   4      						if(date1==1)
1290   4      							date1=28;
1291   4      						else
1292   4      							date1-=1;
1293   4      						flag=2;
1294   4      						break;
1295   4      					case 3:
1296   4      						if(hour1==0)
1297   4      							hour1=23;
1298   4      						else
1299   4      							hour1-=1;
1300   4      						flag=1;
1301   4      						break;
1302   4      					case 4:
1303   4      						if(minute1==0)
1304   4      							minute1=59;
1305   4      						else
1306   4      							minute1-=1;
1307   4      						flag=1;
1308   4      						break;
1309   4      					case 5:
C51 COMPILER V6.14  SKY_MAIN                                                               12/30/2004 22:34:59 PAGE 23  

1310   4      						if(second1==0)
1311   4      							second1=59;
1312   4      						else
1313   4      							second1-=1;
1314   4      						flag=1;
1315   4      						break;
1316   4      				}
1317   3      				if(flag==2)
1318   3      				{
1319   4      					if(month1==4 || month1== 6 || month1==9 || month1==11)
1320   4      					{
1321   5      						if(date1>30)
1322   5      							date1=1;
1323   5      					}
1324   4      					else if(month1==2)
1325   4      						{
1326   5      							if(year1 %4==0)
1327   5      							{
1328   6      								if(date1>29)
1329   6      									date1=1;
1330   6      							}
1331   5      							else if(date1>28)
1332   5      								{
1333   6      									date1=1;
1334   6      								}
1335   5      						}
1336   4      						else
1337   4      						{
1338   5      							if(date1>31)
1339   5      								date1=1;
1340   5      						}
1341   4      					week1=Weekjs(year1,month1,date1);
1342   4      				}
1343   3      				flag=1;
1344   3      				break;
1345   3      			case ENTER:
1346   3      				Year=year1;
1347   3      				Month=month1;
1348   3      				Date=date1;
1349   3      				Hour=hour1;
1350   3      				Minute=minute1;
1351   3      				Second=second1;
1352   3      				Week=week1;
1353   3      				Beep1(3);
1354   3      				Function=0;
1355   3      				return;
1356   3      			case ESC:
1357   3      			 	 Function=0;
1358   3      				 return;
1359   3      		}
1360   2      		if(flag==1)
1361   2      		{
1362   3      			flag=0;
1363   3      			if(num<3)
1364   3      			{
1365   4      				Date_display(week1,year1,month1,date1,num);
1366   4      				Time_display(5,hour1,minute1,second1,3);
1367   4      			}
1368   3      			else
1369   3      			{
1370   4      				Date_display(week1,year1,month1,date1,3);
1371   4      				Time_display(5,hour1,minute1,second1,num-3);
C51 COMPILER V6.14  SKY_MAIN                                                               12/30/2004 22:34:59 PAGE 24  

1372   4      			}
1373   3      		}
1374   2      	}
1375   1      }
1376          
1377          void ClockTimeset(void)//定时时间设置ok
1378          {
1379   1      	data UINT8 temp,num=0,lu=1,date,no=1,sh=23,sm=59,ss=59,eh=23,em=59,es=59;
1380   1      	bit flag1=1,flag=0;
1381   1      	data UINT16 addr;
1382   1      
1383   1      	clearRAM(0,8);
1384   1      	date=Week;
1385   1      	Display_Line(9,0,6,0);
1386   1      	Display_Line(10,2,3,0);
1387   1          HzDisplay(system[0],4,112,0);
1388   1          HzDisplay(system[1],6,112,0);
1389   1      	addr=(date*900+(lu-1)*60+(no-1))*6+0x80;
1390   1      	sh=EEPROMByteRead0(addr);
1391   1      	Delay1(100);
1392   1      	sm=EEPROMByteRead0(addr+1);
1393   1      	Delay1(100);
1394   1      	ss=EEPROMByteRead0(addr+2);
1395   1      	Delay1(100);
1396   1      	eh=EEPROMByteRead0(addr+3);
1397   1      	Delay1(100);
1398   1      	em=EEPROMByteRead0(addr+4);
1399   1      	Delay1(100);
1400   1      	es=EEPROMByteRead0(addr+5);
1401   1      	Delay1(100);
1402   1      	while(1)
1403   1      	{
1404   2      		temp=KeyScan();
1405   2      		if(count2>2400)
1406   2      			return;
1407   2      		ClearWatchDog();
1408   2      		switch(temp)
1409   2      		{
1410   3      			case ENTER:
1411   3      				addr=(date*900+(lu-1)*60+(no-1))*6+0x80;
1412   3      				Delay1(2000);
1413   3      				EEPROMByteWrite0(addr,sh);
1414   3      				Delay1(2000);
1415   3      				EEPROMByteWrite0(addr+1,sm);
1416   3      				Delay1(2000);
1417   3      				EEPROMByteWrite0(addr+2,ss);
1418   3      				Delay1(2000);
1419   3      				EEPROMByteWrite0(addr+3,eh);
1420   3      				Delay1(2000);
1421   3      				EEPROMByteWrite0(addr+4,em);
1422   3      				Delay1(2000);
1423   3      				EEPROMByteWrite0(addr+5,es);
1424   3      				Delay1(2000);
1425   3      				Display_Save(2,80);
1426   3      				Beep1(3);
1427   3      				break;
1428   3      			case ESC:
1429   3      				return;
1430   3      			case MOVE:
1431   3      				num++;
1432   3      				if(num==9)
1433   3      					num=0;
C51 COMPILER V6.14  SKY_MAIN                                                               12/30/2004 22:34:59 PAGE 25  

1434   3      				flag1=1;
1435   3      				break;
1436   3      			case UP:
1437   3      				switch(num)
1438   3      				{
1439   4      					case 1:
1440   4      						date++;
1441   4      						if(date==7)
1442   4      							date=0;
1443   4      						addr=(date*900+(lu-1)*60+(no-1))*6+0x80;
1444   4      						sh=EEPROMByteRead0(addr);
1445   4      						Delay1(100);
1446   4      						sm=EEPROMByteRead0(addr+1);
1447   4      						Delay1(100);
1448   4      						ss=EEPROMByteRead0(addr+2);
1449   4      						De

⌨️ 快捷键说明

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