標(biāo)題: 單片機(jī)DS1302中文手冊及仿真程序?qū)嵗?[打印本頁]

作者: wione1979    時(shí)間: 2024-3-10 10:31
標(biāo)題: 單片機(jī)DS1302中文手冊及仿真程序?qū)嵗?br />仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


DS1302中文手冊:



單片機(jī)源程序如下:
  1. //-----------------------main.c------------------------
  2. //DS1302實(shí)時(shí)時(shí)鐘顯示程序
  3. //-----------------------------------------------------
  4. #include<reg51.h>
  5. #include<intrins.h>
  6. #include<string.h>
  7. #define UCHAR unsigned char
  8. #define UINT unsigned int
  9. #include <lcd1602.h>
  10. #include <ds1302.h>

  11. UCHAR *WEEK[] = {"SUN","MON","TUS","WEN","THU","FRI","SAT"};
  12. //1-7對應(yīng)SUN TO SAT
  13. UCHAR code inittime[] ={0x00,0x00,0x12,0x01,0x01,0x07,0x22};
  14. //以上七個(gè)初始值對應(yīng)于0秒,0分,12點(diǎn),1號,1月,周六,22年)
  15. //即2022年1月1日12點(diǎn)00分00秒周日
  16. UCHAR Dis_Buf1[] = "Date 00-00-00   ";
  17. UCHAR Dis_Buf2[] = "Time 00:00:00   ";

  18. //-----------------------------------------------------------
  19. //初始化日期和時(shí)間
  20. //------------------------------------------------------------
  21. void InitDateTime()
  22. {
  23.         UCHAR i, addr = 0x80;
  24.         Write_1302(0x8E,0x00); //取消寫保護(hù)


  25.         for(i = 0; i < 7; i++ ,addr += 2)
  26.         {
  27.                 Write_1302(addr,inittime[i]);
  28.         }
  29.     Write_1302(0x8E,0x80); //取消寫保護(hù)
  30. }
  31. //-----------------------------------------------------------
  32. //日期與時(shí)間轉(zhuǎn)換為數(shù)字字符
  33. //-----------------------------------------------------------
  34. void Format_DateTime(UCHAR d,UCHAR *a)
  35. {
  36.         *a = (d>>4)+'0';
  37.         *(a+1) = (d & 0x0F) + '0';
  38. }
  39. void main()
  40. {
  41.         Initialize_LCD1602();
  42.         InitDateTime();
  43.         while(1)
  44.         {
  45.             ReadDateTime(); //從1302讀取日期和時(shí)間
  46.                 Format_DateTime(DateTime[6],Dis_Buf1+5);
  47.                 Format_DateTime(DateTime[4],Dis_Buf1+8);
  48.                 Format_DateTime(DateTime[3],Dis_Buf1+11);
  49.                 //格式化年月日
  50.                 strcpy(Dis_Buf1+13,WEEK[DateTime[5] - 1]);
  51.                 //格式化時(shí)星期
  52.                 Format_DateTime(DateTime[2],Dis_Buf2+5);
  53.                 Format_DateTime(DateTime[1],Dis_Buf2+8);
  54.                 Format_DateTime(DateTime[0],Dis_Buf2+11);
  55.                 //格式化時(shí)分秒
  56.                 LCD1602_Display(0,0,Dis_Buf1);
  57.                 LCD1602_Display(0,1,Dis_Buf2);                               
  58.         }
  59. }
復(fù)制代碼

仿真程序資料51hei附件下載:
DS1302.zip (1.57 MB, 下載次數(shù): 23)

DS1302中文手冊及實(shí)例
DS1302中文手冊.pdf
DS1302時(shí)鐘電路.pdsprj




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1