📄 ds1302+lcd1602-c51.lst
字号:
227 /**********************************************************/
228 // 设定值写入DS1302
229 /**********************************************************/
230 void Set_W1302(uchar addr)
231 {
232 1 uchar temp;
233 1 write_ds1302(0x8e,0x00);
234 1 temp=(init1[0]<<4)+init1[1];
235 1 write_ds1302(addr,temp);
236 1 write_ds1302(0x8e,0x80);
237 1 beep();
238 1 }
239
240
241 /**********************************************************/
C51 COMPILER V7.50 DS1302_LCD1602_C51 11/26/2007 14:43:04 PAGE 5
242 // 显示当前时间
243 /**********************************************************/
244
245 void Play_nowtime()
246 {
247 1 read_nowtime(0x81,init,7); //读出当前时间,读出7个字节
248 1
249 1 if(!K4)
250 1 {
251 2 //显示年
252 2 dula=0;
253 2 P0=~table[init[6]>>4];
254 2 dula=1;
255 2 dula=0;
256 2
257 2 wela=0;
258 2 P0=0x01;
259 2 wela=1;
260 2 wela=0;
261 2 delay();
262 2
263 2 dula=0;
264 2 P0=~table[init[6]&0x0f];
265 2 dula=1;
266 2 dula=0;
267 2
268 2 wela=0;
269 2 P0=0x02;
270 2 wela=1;
271 2 wela=0;
272 2 delay();
273 2
274 2 //显示月
275 2 dula=0;
276 2 P0=~table[init[4]>>4];
277 2 dula=1;
278 2 dula=0;
279 2
280 2 wela=0;
281 2 P0=0x04;
282 2 wela=1;
283 2 wela=0;
284 2 delay();
285 2
286 2 dula=0;
287 2 P0=~table[init[4]&0x0f];
288 2 dula=1;
289 2 dula=0;
290 2
291 2 wela=0;
292 2 P0=0x08;
293 2 wela=1;
294 2 wela=0;
295 2 delay();
296 2 //显示日
297 2 dula=0;
298 2 P0=~table[init[3]>>4];
299 2 dula=1;
300 2 dula=0;
301 2
302 2 wela=0;
303 2 P0=0x10;
C51 COMPILER V7.50 DS1302_LCD1602_C51 11/26/2007 14:43:04 PAGE 6
304 2 wela=1;
305 2 wela=0;
306 2 delay();
307 2
308 2 dula=0;
309 2 P0=~table[init[3]&0x0f];
310 2 dula=1;
311 2 dula=0;
312 2
313 2 wela=0;
314 2 P0=0x20;
315 2 wela=1;
316 2 wela=0;
317 2 delay();
318 2 //显示周
319 2 dula=0;
320 2 P0=~table[init[5]>>4];
321 2 dula=1;
322 2 dula=0;
323 2
324 2 wela=0;
325 2 P0=0x40;
326 2 wela=1;
327 2 wela=0;
328 2 delay();
329 2
330 2 dula=0;
331 2 P0=~table[init[5]&0x0f];
332 2 dula=1;
333 2 dula=0;
334 2
335 2 wela=0;
336 2 P0=0x80;
337 2 wela=1;
338 2 wela=0;
339 2 delay();
340 2 }
341 1 else
342 1 {
343 2 //显示时
344 2 dula=0;
345 2 P0=~table[init[2]>>4];
346 2 dula=1;
347 2 dula=0;
348 2
349 2 wela=0;
350 2 P0=0x04;
351 2 wela=1;
352 2 wela=0;
353 2 delay();
354 2
355 2 dula=0;
356 2 P0=~table[init[2]&0x0f];
357 2 dula=1;
358 2 dula=0;
359 2
360 2 wela=0;
361 2 P0=0x08;
362 2 wela=1;
363 2 wela=0;
364 2 delay();
365 2
C51 COMPILER V7.50 DS1302_LCD1602_C51 11/26/2007 14:43:04 PAGE 7
366 2 //显示分
367 2 dula=0;
368 2 P0=~table[init[1]>>4];
369 2 dula=1;
370 2 dula=0;
371 2
372 2 wela=0;
373 2 P0=0x10;
374 2 wela=1;
375 2 wela=0;
376 2 delay();
377 2
378 2 dula=0;
379 2 P0=~table[init[1]&0x0f];
380 2 dula=1;
381 2 dula=0;
382 2
383 2 wela=0;
384 2 P0=0x20;
385 2 wela=1;
386 2 wela=0;
387 2 delay();
388 2
389 2 //显示秒
390 2 dula=0;
391 2 P0=~table[init[0]>>4];
392 2 dula=1;
393 2 dula=0;
394 2
395 2 wela=0;
396 2 P0=0x40;
397 2 wela=1;
398 2 wela=0;
399 2 delay();
400 2
401 2 dula=0;
402 2 P0=~table[init[0]&0x0f];
403 2 dula=1;
404 2 dula=0;
405 2
406 2 wela=0;
407 2 P0=0x80;
408 2 wela=1;
409 2 wela=0;
410 2 delay();
411 2 }
412 1 }
413 /**********************************************************/
414 // 主函数
415 /**********************************************************/
416 void main()
417 {
418 1
419 1 P1=0xff;
420 1 TMOD=0x01;
421 1 TH0=0x4c; //50ms定时
422 1 TL0=0x00;
423 1 EA=1;
424 1 ET0=1;
425 1 TR0=1;
426 1
427 1 init_ds1302(); //初始化ds1302
C51 COMPILER V7.50 DS1302_LCD1602_C51 11/26/2007 14:43:04 PAGE 8
428 1
429 1
430 1
431 1 while(1)
432 1 {
433 2 //---------------------------------------------------------
434 2 if(!K1 ||!K2 ||!K3)
435 2 {
436 3 set_ds1302(0x80,init2,7); //设置初始时间,日期,年月
437 3 beep();
438 3 }
439 2
440 2 Play_nowtime();
441 2 // Time_compare();
442 2 }
443 1 }
444
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 662 ----
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 + -