📄 time.lst
字号:
C51 COMPILER V7.07 TIME 08/03/2005 11:35:48 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE TIME
OBJECT MODULE PLACED IN time.OBJ
COMPILER INVOKED BY: K:\Keil\C51\BIN\C51.EXE time.c BROWSE DEBUG OBJECTEXTEND CODE SYMBOLS
stmt level source
1 /*
2 **********************************************************************************
3 * 此模块为0.5s定时程序,每隔0.5sDot_Value值变一次 *
4 **********************************************************************************
5 */
6 #include <reg668.h>
7 #include <constant.h>
8
9 extern bit Adjust;
10 extern bit Dot_Value;
11 extern bit Time250msFlag;
12 extern bit Time250msFlag1;
13 extern unsigned char formflag;
14 //extern bit timerflag,songflag;
15 //extern unsigned char segflag;
16 extern unsigned char CountTime0;
17 //extern unsigned char Disp_array[Eight];
18 //extern unsigned char hout,mint;
19 unsigned char mon,dat,hou,min,sec;
20 unsigned int yea;
21 //bit flash250ms=0;
22
23 void Time_Half_Second (void) interrupt 7 using 0 //使用Timer0产生10ms中断。
24 {
25 1 //TL0=0x38; //40 加快3min per day
26 1 //TH0=0x88;
27 1 TF2 = 0;
28 1 if (CountTime0%25==0)
29 1 {
30 2 Time250msFlag=1;
31 2 Time250msFlag1=1;
32 2 }
33 1 CountTime0 += 1;
34 1 if (CountTime0==50) //50次10ms中断,产生0.5s信号
35 1 {
36 2 Dot_Value =~ Dot_Value;
37 2 CountTime0 = 0x00;
38 2 if (Dot_Value==1 && Adjust==0) //校时时计时器停止计时
39 2 {
40 3 sec++; //秒计数器加"1"
41 3 if (sec>=60)
42 3 {
43 4 sec=0x00;
44 4 min++;
45 4 if (min>=60)
46 4 {
47 5 min=0x00;
48 5 hou++;
49 5 if (hou>=24)
50 5 {
51 6 hou=0x00;
52 6 dat++;
53 6 switch (mon)
54 6 {
55 7 case 1:
C51 COMPILER V7.07 TIME 08/03/2005 11:35:48 PAGE 2
56 7 case 3:
57 7 case 5:
58 7 case 7:
59 7 case 8:
60 7 case 10:
61 7 case 12:
62 7 if (dat>31)
63 7 {
64 8 dat=0x01;
65 8 mon++;
66 8 if (mon>12)
67 8 {
68 9 mon=0x01;
69 9 yea++;
70 9 }
71 8 }
72 7 break;
73 7 case 4:
74 7 case 6:
75 7 case 9:
76 7 case 11:
77 7 if (dat>30)
78 7 {
79 8 dat=0x01;
80 8 mon++;
81 8 }
82 7 break;
83 7 case 2:
84 7 if (yea%4==0&&yea%100!=0||yea%400==0)
85 7 {
86 8 if (dat>29)
87 8 {
88 9 dat=0x01;
89 9 mon++;
90 9 }
91 8 }
92 7 else
93 7 {
94 8 if (dat>28)
95 8 {
96 9 dat=0x01;
97 9 mon++;
98 9 }
99 8 }
100 7 break;
101 7 default:
102 7 mon=0x01;
103 7 break;
104 7 }
105 6 }
106 5 }
107 4 }
108 3 }
109 2 }
110 1 }
C51 COMPILER V7.07 TIME 08/03/2005 11:35:48 PAGE 3
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION Time_Half_Second (BEGIN)
0000 C0E0 PUSH ACC
0002 C0F0 PUSH B
0004 C083 PUSH DPH
0006 C082 PUSH DPL
0008 C0D0 PUSH PSW
000A 75D000 MOV PSW,#00H
; SOURCE LINE # 23
; SOURCE LINE # 27
000D C2CF CLR TF2
; SOURCE LINE # 28
000F E500 E MOV A,CountTime0
0011 75F019 MOV B,#019H
0014 84 DIV AB
0015 E5F0 MOV A,B
0017 7004 JNZ ?C0001
; SOURCE LINE # 29
; SOURCE LINE # 30
0019 D200 E SETB Time250msFlag
; SOURCE LINE # 31
001B D200 E SETB Time250msFlag1
; SOURCE LINE # 32
001D ?C0001:
; SOURCE LINE # 33
001D 0500 E INC CountTime0
; SOURCE LINE # 34
001F E500 E MOV A,CountTime0
0021 6432 XRL A,#032H
0023 6003 JZ $ + 5H
0025 020000 R LJMP ?C0030
; SOURCE LINE # 35
; SOURCE LINE # 36
0028 B200 E CPL Dot_Value
; SOURCE LINE # 37
002A F500 E MOV CountTime0,A
; SOURCE LINE # 38
002C 200003 E JB Dot_Value,$ + 6H
002F 020000 R LJMP ?C0030
0032 300003 E JNB Adjust,$ + 6H
0035 020000 R LJMP ?C0030
; SOURCE LINE # 39
; SOURCE LINE # 40
0038 0500 R INC sec
; SOURCE LINE # 41
003A E500 R MOV A,sec
003C C3 CLR C
003D 943C SUBB A,#03CH
003F 5003 JNC $ + 5H
0041 020000 R LJMP ?C0030
; SOURCE LINE # 42
; SOURCE LINE # 43
0044 750000 R MOV sec,#00H
; SOURCE LINE # 44
0047 0500 R INC min
; SOURCE LINE # 45
0049 E500 R MOV A,min
004B 943C SUBB A,#03CH
004D 5003 JNC $ + 5H
004F 020000 R LJMP ?C0030
C51 COMPILER V7.07 TIME 08/03/2005 11:35:48 PAGE 4
; SOURCE LINE # 46
; SOURCE LINE # 47
0052 750000 R MOV min,#00H
; SOURCE LINE # 48
0055 0500 R INC hou
; SOURCE LINE # 49
0057 E500 R MOV A,hou
0059 9418 SUBB A,#018H
005B 5003 JNC $ + 5H
005D 020000 R LJMP ?C0030
; SOURCE LINE # 50
; SOURCE LINE # 51
0060 750000 R MOV hou,#00H
; SOURCE LINE # 52
0063 0500 R INC dat
; SOURCE LINE # 53
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -