📄 time.lst
字号:
C51 COMPILER V7.50 TIME 07/19/2006 10:05:17 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE TIME
OBJECT MODULE PLACED IN time.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE time.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "SM89516A.h"
2 #include "process.h"
3 #include "io.h"
4 #include "time.h"
5 #include "datasvr.h"
6 #include "ioport.h"
7 #include "recframe.h"
8 #include "common.h"
9
10 //uchar idata delay_1ms;
11 uchar idata delay_10ms;
12 uchar idata delay_20ms;
13 uchar idata delay_25ms;
14 uchar idata delay_30ms;
15 //uchar idata delay_100ms;
16 uint idata delay_1s;
17 uint idata delay_10s;
18 unsigned long idata delay_10min;
19
20
21 uchar bdata alarm0;
22 sbit cut=alarm0^6;
23 sbit open=alarm0^7;
24 uchar bdata alarm1;
25 uchar bdata alarm2;
26 uchar bdata alarm3;
27
28
29 uchar xdata Curtime[6]; //校时
30
31 /************************************************************/
32 /*函数名:time_svr2
33 /*描述:定时2中断,25ms为一个时隙
34 /*输入:
35 /*输出:无
36 /************************************************************/
37 void time_svr2(void) interrupt 5
38 {
39 1 static uchar i;
40 1 TF2=0; // 溢出标志必须由软件清零
41 1 EXF2=0; // 捕获标志必须由软件清零
42 1 i++;
43 1 if(i==h_value)
44 1 {
45 2 i=0;
46 2 TR2=0;
47 2 TI=1;
48 2 }
49 1
50 1 }
51
52
53 /************************************************************/
54 /*函数名:time_svr0
55 /*描述:定时0中断,定时1ms
C51 COMPILER V7.50 TIME 07/19/2006 10:05:17 PAGE 2
56 /*输入:
57 /*输出:无
58 /************************************************************/
59 void time_svr0(void) interrupt 1
60 {
61 1 static uchar i=0;
62 1 static unsigned int j=0;
63 1
64 1
65 1 TH0=0xfc;
66 1 TL0=0x18;
67 1 if(TimeStart)
68 1 delay_30ms++;
69 1 // delay_1ms++;
70 1 delay_10ms++;
71 1 delay_20ms++;
72 1 delay_25ms++;
73 1 delay_1s++;
74 1 delay_10s++;
75 1 delay_10min++;
76 1 j++;
77 1
78 1
79 1 if(j>500)
80 1 {
81 2 j=0;
82 2 P3_3=!P3_3;
83 2 }
84 1 switch(i)
85 1 {
86 2 case 0:
87 2 sccode=0xFE;
88 2 port1=sccode;
89 2 i++;
90 2 break;
91 2 case 1:
92 2 io_Scan1();
93 2 io_process(0);
94 2 i++;
95 2 break;
96 2 case 2:
97 2 sccode=0xFd;
98 2 port1=sccode;
99 2 i++;
100 2 break;
101 2 case 3:
102 2 io_Scan2();
103 2 io_process(4);
104 2 i++;
105 2 break;
106 2 case 4:
107 2 sccode=0xFb;
108 2 port1=sccode;
109 2 i++;
110 2 break;
111 2 case 5:
112 2 io_Scan3();
113 2 io_process(8);
114 2 i++;
115 2 break;
116 2 case 6:
117 2 sccode=0xF7;
C51 COMPILER V7.50 TIME 07/19/2006 10:05:17 PAGE 3
118 2 port1=sccode;
119 2 i++;
120 2 break;
121 2 case 7:
122 2 io_Scan4();
123 2 io_process(12);
124 2 i=0;
125 2 break;
126 2 }
127 1
128 1 }
129
130 /************************************************************/
131 /*函数名:extern_in0
132 /*描述:外部中断0
133 /*输入:
134 /*输出:无
135 /************************************************************/
136 void extern_in0() interrupt 0
137 {
138 1 uchar radd_end;
139 1 cut=1;
140 1 //data_sav();
141 1 R_block(WPAGE0,RPAGE0,i2c_addr_addflag,&radd_end,1);
142 1
143 1 switch(radd_end)
144 1 {
145 2 case 0:
146 2 W_block(WPAGE0,i2c_addr_data,&sum[0][0],96);
147 2 break;
148 2 case 1:
149 2 W_block(WPAGE1,i2c_addr_data,&sum[0][0],96);
150 2 break;
151 2 }
152 1 }
153
154 /************************************************************/
155 /*函数名:time_svr
156 /*描述:定时进行数据处理
157 /*输入:
158 /*输出:无
159 /************************************************************/
160 void time_svr()
161 {
162 1 uchar time_end;
163 1
164 1 if(delay_20ms>=24)
165 1 {
166 2 delay_20ms=0;
167 2
168 2 WDTKEY=0x1E;
169 2 WDTKEY=0xE1;
170 2 WDTC|=0x20;
171 2 WDTKEY=0xE1;
172 2 WDTKEY=0x1E;
173 2
174 2 }
175 1 /*
176 1 if(delay_100ms>=105)
177 1 {
178 1 delay_100ms=0;
179 1
C51 COMPILER V7.50 TIME 07/19/2006 10:05:17 PAGE 4
180 1 brary07=P0_0;
181 1 brary06=P0_1;
182 1 brary05=P0_2;
183 1 brary04=P0_3;
184 1 brary03=P0_4;
185 1 brary02=P0_5;
186 1 brary01=P0_6;
187 1 brary00=P0_7;
188 1
189 1 brary17=P2_0;
190 1 brary16=P2_1;
191 1 brary15=P2_2;
192 1 brary14=P2_3;
193 1 brary13=P2_4;
194 1 brary12=P2_5;
195 1 brary11=P2_6;
196 1 brary10=P2_7;
197 1
198 1 //ioscan();
199 1
200 1 }
201 1 */
202 1
203 1 if(delay_1s>=1007)
204 1 {
205 2 delay_1s=0;
206 2
207 2 ds1302read();
208 2 R_block(WPAGE0,RPAGE0,i2c_addr_timeflag,&time_end,1);
209 2
210 2 if(time_end)
211 2 R_block(WPAGE0,RPAGE0,i2c_addr_time,Curtime,6);
212 2 else
213 2 R_block(WPAGE1,RPAGE1,i2c_addr_time,Curtime,6);
214 2 /*
215 2 if(rdtime[0]<Curtime[0]||rdtime[1]<Curtime[1]||rdtime[2]<Curtime[2])
216 2 open=1;
217 2 else
218 2 open=0;
219 2 */
220 2 if(rdtime[0]>Curtime[0])
221 2 {
222 3 open=0;
223 3 alarm_ac=0;
224 3 }
225 2 else if(rdtime[0]<Curtime[0])
226 2 open=1;
227 2 else
228 2 {
229 3 if(rdtime[1]>Curtime[1])
230 3 {
231 4 open=0;
232 4 alarm_ac=0;
233 4 }
234 3 else if(rdtime[1]<Curtime[1])
235 3 open=1;
236 3 else
237 3 {
238 4 if(rdtime[2]>Curtime[2])
239 4 {
240 5 open=0;
241 5 alarm_ac=0;
C51 COMPILER V7.50 TIME 07/19/2006 10:05:17 PAGE 5
242 5 }
243 4 else if(rdtime[2]<Curtime[2])
244 4 open=1;
245 4 else
246 4 {
247 5 open=0;
248 5 alarm_ac=0;
249 5 }
250 4 }
251 3 }
252 2
253 2 }
254 1
255 1
256 1 if(delay_10s>=10009)
257 1 {
258 2 delay_10s=0;
259 2
260 2 data_sav();
261 2
262 2 }
263 1
264 1
265 1
266 1 }
267
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 651 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 6 ----
PDATA SIZE = ---- ----
DATA SIZE = 8 2
IDATA SIZE = 12 ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -