📄 ds1302+led-c51.lst
字号:
226 // 设定值写入DS1302
227 /**********************************************************/
228 void Set_W1302(uchar addr)
229 {
230 1 uchar temp;
231 1 write_ds1302(0x8e,0x00);
232 1 temp=(init1[0]<<4)+init1[1];
233 1 write_ds1302(addr,temp);
234 1 write_ds1302(0x8e,0x80);
235 1 beep();
236 1 }
237
238
239 /**********************************************************/
240 // 显示当前时间
241 /**********************************************************/
C51 COMPILER V7.50 DS1302_LED_C51 12/16/2007 13:49:27 PAGE 5
242
243 void Play_nowtime()
244 {
245 1 read_nowtime(0x81,init,7); //读出当前时间,读出7个字节
246 1
247 1 if(!K4)
248 1 {
249 2 //显示年
250 2 dula=0;
251 2 P0=table[init[6]>>4];
252 2 dula=1;
253 2 dula=0;
254 2
255 2 wela=0;
256 2 P0=0xfe;
257 2 wela=1;
258 2 wela=0;
259 2 delay();
260 2
261 2 dula=0;
262 2 P0=table[init[6]&0x0f];
263 2 dula=1;
264 2 dula=0;
265 2
266 2 wela=0;
267 2 P0=0xfd;
268 2 wela=1;
269 2 wela=0;
270 2 delay();
271 2
272 2 //显示月
273 2 dula=0;
274 2 P0=table[init[4]>>4];
275 2 dula=1;
276 2 dula=0;
277 2
278 2 wela=0;
279 2 P0=0xfb;
280 2 wela=1;
281 2 wela=0;
282 2 delay();
283 2
284 2 dula=0;
285 2 P0=table[init[4]&0x0f];
286 2 dula=1;
287 2 dula=0;
288 2
289 2 wela=0;
290 2 P0=0xf7;
291 2 wela=1;
292 2 wela=0;
293 2 delay();
294 2 //显示日
295 2 dula=0;
296 2 P0=table[init[3]>>4];
297 2 dula=1;
298 2 dula=0;
299 2
300 2 wela=0;
301 2 P0=0xef;
302 2 wela=1;
303 2 wela=0;
C51 COMPILER V7.50 DS1302_LED_C51 12/16/2007 13:49:27 PAGE 6
304 2 delay();
305 2
306 2 dula=0;
307 2 P0=table[init[3]&0x0f];
308 2 dula=1;
309 2 dula=0;
310 2
311 2 wela=0;
312 2 P0=0xdf;
313 2 wela=1;
314 2 wela=0;
315 2 delay();
316 2 //显示周
317 2 dula=0;
318 2 P0=table[init[5]>>4];
319 2 dula=1;
320 2 dula=0;
321 2
322 2 wela=0;
323 2 P0=0xbf;
324 2 wela=1;
325 2 wela=0;
326 2 delay();
327 2
328 2 dula=0;
329 2 P0=table[init[5]&0x0f];
330 2 dula=1;
331 2 dula=0;
332 2
333 2 wela=0;
334 2 P0=0x7f;
335 2 wela=1;
336 2 wela=0;
337 2 delay();
338 2 }
339 1 else
340 1 {
341 2 //显示时
342 2 dula=0;
343 2 P0=table[init[2]>>4];
344 2 dula=1;
345 2 dula=0;
346 2
347 2 wela=0;
348 2 P0=0xfb;
349 2 wela=1;
350 2 wela=0;
351 2 delay();
352 2
353 2 dula=0;
354 2 P0=table[init[2]&0x0f];
355 2 dula=1;
356 2 dula=0;
357 2
358 2 wela=0;
359 2 P0=0xf7;
360 2 wela=1;
361 2 wela=0;
362 2 delay();
363 2
364 2 //显示分
365 2 dula=0;
C51 COMPILER V7.50 DS1302_LED_C51 12/16/2007 13:49:27 PAGE 7
366 2 P0=table[init[1]>>4];
367 2 dula=1;
368 2 dula=0;
369 2
370 2 wela=0;
371 2 P0=0xef;
372 2 wela=1;
373 2 wela=0;
374 2 delay();
375 2
376 2 dula=0;
377 2 P0=table[init[1]&0x0f];
378 2 dula=1;
379 2 dula=0;
380 2
381 2 wela=0;
382 2 P0=0xdf;
383 2 wela=1;
384 2 wela=0;
385 2 delay();
386 2
387 2 //显示秒
388 2 dula=0;
389 2 P0=table[init[0]>>4];
390 2 dula=1;
391 2 dula=0;
392 2
393 2 wela=0;
394 2 P0=0xbf;
395 2 wela=1;
396 2 wela=0;
397 2 delay();
398 2
399 2 dula=0;
400 2 P0=table[init[0]&0x0f];
401 2 dula=1;
402 2 dula=0;
403 2
404 2 wela=0;
405 2 P0=0x7f;
406 2 wela=1;
407 2 wela=0;
408 2 delay();
409 2 }
410 1 }
411 /**********************************************************/
412 // 主函数
413 /**********************************************************/
414 void main()
415 {
416 1
417 1 P1=0xff;
418 1 TMOD=0x01;
419 1 TH0=0x4c; //50ms定时
420 1 TL0=0x00;
421 1 EA=1;
422 1 ET0=1;
423 1 TR0=1;
424 1
425 1 init_ds1302(); //初始化ds1302
426 1
427 1
C51 COMPILER V7.50 DS1302_LED_C51 12/16/2007 13:49:27 PAGE 8
428 1
429 1 while(1)
430 1 {
431 2 //---------------------------------------------------------
432 2 if(!K1 ||!K2 ||!K3)
433 2 {
434 3 set_ds1302(0x80,init2,7); //设置初始时间,日期,年月
435 3 beep();
436 3 }
437 2
438 2 Play_nowtime();
439 2 // Time_compare();
440 2 }
441 1 }
442
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 650 ----
CONSTANT SIZE = 24 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 72 10
IDATA SIZE = ---- ----
BIT SIZE = 9 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -