📄 temp.lst
字号:
200 3 _nop_();
201 3 _nop_();
202 3
203 3 }
204 2 watchdog=(!watchdog);
205 2 RESET=0;
206 2
207 2 //延时10ms
208 2 DelayMs(1);
209 2 break;
210 2 case (WRITE_TH||WRITE_TL):
211 2 for(i=0;i<9;i++)
212 2 {
213 3 CLK=0;
214 3 _nop_();
215 3 _nop_();
216 3 _nop_();
217 3 _nop_();
218 3 DQ=(bit)(t&0x01);
219 3 _nop_();
220 3 _nop_();
221 3 _nop_();
222 3 _nop_();
223 3 CLK=1;
224 3 t>>=1;
225 3 _nop_();
226 3 _nop_();
227 3 _nop_();
228 3 _nop_();
229 3
230 3 }
231 2 RESET=0;
232 2 watchdog=(!watchdog);
233 2 //延时10ms
234 2 DelayMs(1);
235 2 break;
236 2
237 2 }
238 1 RESET=0;
239 1
240 1 //延时10ms
241 1 DelayMs(1);
C51 COMPILER V8.02 TEMP 07/25/2007 14:04:26 PAGE 5
242 1 return;
243 1
244 1 }
245 void init_ds1620()
246 {
247 1 float f=0;
248 1 int k=0;
249 1
250 1 //set the continous wok mode
251 1 write(WRITE_CONFIG,0);
252 1
253 1 //set the high temperatrue
254 1 f=40;
255 1 k=((int)f*2)&0x01ff;
256 1 write(WRITE_TH,0x0050);
257 1
258 1 //set the low temperatrue
259 1 f=-10;
260 1 k=((int)f*2)&0x01ff;
261 1 write(WRITE_TH,0x01ce);
262 1 }
263
264 unsigned int CRC16(unsigned char *dt, int length)
265 {
266 1 unsigned int crc = 0xffff, i, j, flag;
267 1 for (i=0; i<length; i++)
268 1 {
269 2
270 2 crc = crc^dt[i];
271 2 for (j=0; j<8; j++)
272 2 {
273 3 flag = crc&1;
274 3 crc = crc>>1;
275 3 if (flag)
276 3 crc = crc^0xa001;
277 3 }
278 2 }
279 1 watchdog=(!watchdog);
280 1 return crc;
281 1 }
282
283
284 void send()
285 {
286 1 /*wr_combuf[0]=frame.addr;
287 1 wr_combuf[1]=frame.rorw;
288 1 wr_combuf[2]=frame.instruction;
289 1 wr_combuf[3]=(unsigned char )(frame.info>>8);
290 1 wr_combuf[4]=(unsigned char )(frame.info&0x00FF);
291 1 wr_combuf[5]=0x0;
292 1 frame.crc16=CRC16(wr_combuf,6);
293 1 wr_combuf[6]=(unsigned char )(frame.crc16>>8);
294 1 wr_combuf[7]=(unsigned char )(frame.crc16&0x00ff);*/
295 1
296 1 combuf[0]=frame.addr;
297 1 combuf[1]=frame.rorw;
298 1 combuf[2]=frame.instruction;
299 1 combuf[3]=(unsigned char )(frame.info>>8);
300 1 combuf[4]=(unsigned char )(frame.info&0x00FF);
301 1 combuf[5]=0x0;
302 1 frame.crc16=CRC16(combuf,6);
303 1 combuf[6]=(unsigned char )(frame.crc16&0x00ff);
C51 COMPILER V8.02 TEMP 07/25/2007 14:04:26 PAGE 6
304 1 combuf[7]=(unsigned char )(frame.crc16>>8);
305 1 watchdog=(!watchdog);
306 1 spi_send(combuf,8);
307 1
308 1
309 1 }
310
311 init_main()
312 {
313 1
314 1 frame.addr=0x1;
315 1 frame.rorw=0x1;
316 1 frame.instruction=READ_TEMP;
317 1 frame.info=0;
318 1 frame.seq=0;
319 1 frame.crc16=0;
320 1 }
321 void main()
322 {
323 1 bit flag=0;
324 1 int t=0;
325 1 int backup=0;
326 1 unsigned char lasttime=0;
327 1 unsigned char curtime=0;
328 1 init_main();
329 1 init_spi();
330 1 init_ds1620();
331 1 //send(); //for debug
332 1 watchdog=(!watchdog);
333 1 DelayMs(100);
334 1 while(1)
335 1 {
336 2 write(START,0);
337 2 read(0xAA);
338 2 backup=frame.info; //this is very important
339 2
340 2 if(timeover_flag==1)
341 2 {
342 3 DelayMs(5);
343 3 if(counter>0)
344 3 {
345 4 //combuf[0]=counter;
346 4 //spi_send(combuf,1);
347 4 counter=0;
348 4 }
349 3 }
350 2 watchdog=(!watchdog);
351 2 if(receive_ren)
352 2 {
353 3 flag=0;
354 3 frame.crc16=CRC16(combuf,6);
355 3 if(combuf[6]==(unsigned char )(frame.crc16&0x00ff))
356 3 {
357 4 if(combuf[7]==(unsigned char )(frame.crc16>>8))
358 4 {
359 5 if(combuf[0]==0x01)
360 5 {
361 6 frame.rorw=combuf[1];
362 6 frame.instruction=combuf[2];
363 6 frame.info=combuf[3]*256+combuf[4];
364 6 flag=1;
365 6 }
C51 COMPILER V8.02 TEMP 07/25/2007 14:04:26 PAGE 7
366 5 }
367 4 if(flag)
368 4 {
369 5 switch(frame.rorw)
370 5 {
371 6 case 0x01: //上位机读取ds1620中的数据
372 6 if(frame.instruction==0xAA)
373 6 {
374 7 frame.info=backup;
375 7 send();
376 7 break;
377 7 }
378 6 read(frame.instruction);
379 6 send();
380 6 break;
381 6 case 0x02:
382 6 write(frame.instruction,frame.info);
383 6 break;
384 6
385 6 }
386 5 }
387 4 receive_ren=0;
388 4 }
389 3 }
390 2
391 2 }
392 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 789 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 8 16
IDATA SIZE = ---- ----
BIT SIZE = ---- 3
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -