📄 closetest.lst
字号:
260 2 lcddata=0x20;
261 2 write_data();
262 2 datadr=0x47;//写入新的次数个位
263 2 write_dr();
264 2 lcddata=0x30+*(TIMES+1)%10;
265 2 write_data();
266 2
267 2 datadr=0x4b;//清除以前的小时纪录十位
268 2 write_dr();
269 2 lcddata=0x20;
270 2 write_data();
271 2 datadr=0x4b;//写入新的小时纪录十位
272 2 write_dr();
273 2 lcddata=0x30+(*(TIMES+2)>>4);
274 2 write_data();
275 2
276 2 datadr=0x4c;//清除以前的小时记录个位
277 2 write_dr();
278 2 lcddata=0x20;
279 2 write_data();
280 2 datadr=0x4c;//写入新的小时记录个位
281 2 write_dr();
282 2 lcddata=0x30+*(TIMES+2)&0x0f;
283 2 write_data();
284 2
285 2 datadr=0x4e;//清除以前的分钟记录十位
286 2 write_dr();
287 2 lcddata=0x20;
288 2 write_data();
289 2 datadr=0x4e;//写入新的分钟记录十位
290 2 write_dr();
291 2 lcddata=0x30+(*(TIMES+3)>>4);
292 2 write_data();
293 2
294 2 datadr=0x4f;//清除以前的分钟记录个位
295 2 write_dr();
296 2 lcddata=0x20;
297 2 write_data();//写入新的分钟记录个位
298 2 datadr=0x4f;
299 2 write_dr();
300 2 lcddata=0x30+*(TIMES+3)&0x0f;
301 2 write_data();
302 2 close_flag=1;
C51 COMPILER V7.05 CLOSETEST 11/25/2003 23:29:19 PAGE 6
303 2 }
304 1 }
305 void start_initstat(){//时钟芯片初始化
306 1 byte a;
307 1 MCA=0x20;
308 1 ACC=MCC;
309 1 ACC=MCB;
310 1 MCB=0x80;//时钟芯片时钟存储区处理
311 1 if((SECOND>>4)>=6)SECOND=SECOND&0x0f;
312 1 if((SECOND&0x0f)>9)SECOND=((SECOND>>4)<<4);
313 1 if((MINUTE>>4)>=6)MINUTE=MINUTE&0x0f;
314 1 if((MINUTE&0x0f)>9)MINUTE=((MINUTE>>4)<<4);
315 1 if(((HOUR>>4)==2)&&((HOUR&0x0f)>3))HOUR=0x00;
316 1 else if((HOUR>>4)>0x02)HOUR=(HOUR&0x0f);
317 1 else if((HOUR&0x0f)>9)HOUR=(HOUR&0xf0);
318 1 if((DAY>>4)>3)DAY=0x10;
319 1 if((DAY&0x0f)>9)DAY=1;
320 1 if(WEEK>=8)WEEK=1;
321 1 if((MONTH>>4)>1)MONTH=1;
322 1 if((MONTH&0x0f)>9)MONTH=1;
323 1 if((YEAR>>4)>9)YEAR=0;
324 1 if((YEAR&0x0f)>9)YEAR=0;
325 1 for(a=0;a<=113;a++){//数据改变否?
326 2 if(*(TIMES+a)==0xff)
327 2 *(TIMES+a)=0;
328 2 }
329 1 //ACC=MCC;
330 1 //ACC=MCD;
331 1 MCB=0x02;
332 1 }
333 void main_face(){//通常显示主界面
334 1 read_initstat();
335 1 datadr=0x00;
336 1 write_dr();
337 1 lcddata=0x30+(YEAR>>4);
338 1 write_data();
339 1
340 1 datadr=0x01;
341 1 write_dr();
342 1 lcddata=0x30+(YEAR&0x0f);
343 1 write_data();
344 1
345 1 datadr=0x02;//连接符
346 1 write_dr();
347 1 lcddata=0xb0;
348 1 write_data();
349 1
350 1 datadr=0x03;//月
351 1 write_dr();
352 1 lcddata=0x30+(MONTH>>4);
353 1 write_data();
354 1
355 1 datadr=0x04;
356 1 write_dr();//;
357 1 lcddata=0x30+(MONTH&0x0f);
358 1 write_data();
359 1
360 1 datadr=0x05;
361 1 write_dr();
362 1 lcddata=0xb0;//连接符
363 1 write_data();
364 1
C51 COMPILER V7.05 CLOSETEST 11/25/2003 23:29:19 PAGE 7
365 1 datadr=0x06;//日
366 1 write_dr();//read_initstat();
367 1 lcddata=0x30+(DAY>>4);
368 1 write_data();
369 1
370 1 datadr=0x07;
371 1 write_dr();//read_initstat();
372 1 lcddata=0x30+(DAY&0x0f);
373 1 write_data();
374 1
375 1 datadr=0x09;//小时
376 1 write_dr();
377 1 lcddata=0x30+(HOUR>>4);
378 1 write_data();
379 1
380 1 datadr=0x0a;
381 1 write_dr();//read_initstat();
382 1 lcddata=0x30+(HOUR&0x0f);
383 1 write_data();
384 1
385 1 datadr=0x0b;//冒号
386 1 write_dr();
387 1 if(flash_flag)lcddata=0x3a;
388 1 else lcddata=0x20;
389 1 write_data();
390 1
391 1 datadr=0x0c;//分
392 1 write_dr();//read_initstat();
393 1 lcddata=0x30+(MINUTE>>4);
394 1 write_data();
395 1
396 1 datadr=0x0d;
397 1 write_dr();//read_initstat();
398 1 lcddata=0x30+(MINUTE&0x0f);
399 1 write_data();
400 1
401 1 datadr=0x0f;//星期
402 1 write_dr();
403 1 lcddata=0x30+WEEK;
404 1 write_data();
405 1
406 1 datadr=0x40;//T
407 1 write_dr();
408 1 lcddata=0x54;
409 1 write_data();
410 1
411 1 datadr=0x41;//I
412 1 write_dr();
413 1 lcddata=0x49;
414 1 write_data();
415 1
416 1 datadr=0x42;//M
417 1 write_dr();
418 1 lcddata=0x4d;
419 1 write_data();
420 1
421 1 datadr=0x43;//E
422 1 write_dr();
423 1 lcddata=0x45;
424 1 write_data();
425 1
426 1 datadr=0x44;//S
C51 COMPILER V7.05 CLOSETEST 11/25/2003 23:29:19 PAGE 8
427 1 write_dr();
428 1 lcddata=0x53;
429 1 write_data();
430 1
431 1 datadr=0x45;//冒号
432 1 write_dr();
433 1 lcddata=0x3a;
434 1 write_data();
435 1
436 1 if(*(TIMES+1)!=0){
437 2 datadr=0x46;//次数10位
438 2 write_dr();
439 2 lcddata=0x30+((*(TIMES+1))/10);
440 2 write_data();
441 2 datadr=0x47;//次数个位
442 2 write_dr();
443 2 lcddata=0x30+((*(TIMES+1))%10);
444 2 write_data();
445 2 }
446 1 else{
447 2 datadr=0x46;//次数百位位置在闭合次数为0时写入0
448 2 write_dr();
449 2 lcddata=0x30;
450 2 write_data();
451 2 }
452 1 datadr=0x49;//L:表示上次按下键时间
453 1 write_dr();
454 1 lcddata=0x4c;
455 1 write_data();
456 1
457 1 datadr=0x4a;//冒号
458 1 write_dr();
459 1 lcddata=0x3a;
460 1 write_data();
461 1
462 1 datadr=0x4b;//小时
463 1 write_dr();
464 1 lcddata=0x30+((*(TIMES+(2*(*DAY_SUM))))>>4);
465 1 write_data();
466 1 datadr=0x4c;
467 1 write_dr();
468 1 lcddata=0x30+((*(TIMES+(2*(*DAY_SUM))))&0x0f);
469 1 write_data();
470 1
471 1 datadr=0x4d;//冒号
472 1 write_dr();
473 1 lcddata=0x3a;
474 1 write_data();
475 1
476 1 datadr=0x4e;//分钟
477 1 write_dr();
478 1 lcddata=0x30+((*(TIMES+(2*(*DAY_SUM))+1))>>4);
479 1 write_data();
480 1 datadr=0x4f;
481 1 write_dr();
482 1 lcddata=0x30+((*(TIMES+(2*(*DAY_SUM))+1))&0x0f);
483 1 write_data();
484 1 }
485 void sqw_place(){//2s中断处理
486 1 byte n,l,p,x,y;
487 1 //read_initstat();
488 1 if(!key_flag){
C51 COMPILER V7.05 CLOSETEST 11/25/2003 23:29:19 PAGE 9
489 2 if(*CUR_DAY!=DAY){
490 3 if((2*(*PRESS_SUM)+2*(*DAY_SUM))>=110){
491 4 for(n=0;n<108;n++){
492 5 *(TIMES+109-n)=*(TIMES+109-n-2);
493 5 }
494 4 l=*(TIMES+2*(*DAY_SUM)+1);
495 4 if(l>1){
496 5 l--;
497 5 *(TIMES+2*(*DAY_SUM)+1)=l;
498 5 *TIMES=0;
499 5 *(TIMES+1)=0;
500 5 y=*DAY_SUM;
501 5 y--;
502 5 *DAY_SUM=y;
503 5 x=*PRESS_SUM;
504 5 x--;
505 5 *PRESS_SUM=x;
506 5
507 5 }
508 4 else if(l==1){
509 5 for(p=0;p<*PRESS_SUM-2;p++){
510 6 *(TIMES+2*(*DAY_SUM)+2)=*(TIMES+2*(*DAY_SUM)+4);
511 6 }
512 5 l--;
513 5 *(TIMES+2*(*DAY_SUM)+1)=l;
514 5 *TIMES=0;
515 5 *(TIMES+1)=0;
516 5 y=*DAY_SUM;
517 5 y--;
518 5 *DAY_SUM=y;
519 5 x=*PRESS_SUM;
520 5 x--;
521 5 *PRESS_SUM=x;
522 5 }
523 4 else if(l==0){
524 5 for(p=0;p<*PRESS_SUM-2;p++){
525 6 *(TIMES+2*(*DAY_SUM)+2)=*(TIMES+2*(*DAY_SUM)+4);
526 6 }
527 5 l--;
528 5 *(TIMES+2*(*DAY_SUM)+1)=l;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -