wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

標題: 六數(shù)碼管DS1302時鐘 [打印本頁]

作者: 1qaz2wsx77    時間: 2015-11-20 07:54
標題: 六數(shù)碼管DS1302時鐘
手上有幾個別的機器拆下來的數(shù)碼管,閑時沒事做了個數(shù)碼鐘,F(xiàn)發(fā)網(wǎng)上大家共同學習。數(shù)碼管共陽,用掃描方式,段碼用的74LS47,位碼用138。秒閃獨立控制。

DSC05440.JPG (829.16 KB, 下載次數(shù): 296)

DSC05440.JPG

作者: 1qaz2wsx77    時間: 2015-11-20 07:57
  1. /*-----------------------------------------------
  2.   名稱:DS1302時鐘數(shù)碼管顯示可調(diào)
  3.   編寫:LI
  4.   日期:2015.11
  5.   修改:無
  6.   內(nèi)容:DS1302實時時鐘數(shù)碼管顯示,時間和日期切換顯示 三按鍵控制
  7.         時間格式xx-xx-xx
  8.                 日期格式xx-xx-xx
  9.                 周秒格式-x-   xx
  10. ------------------------------------------------*/
  11. #include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
  12. #include "ds1302.h"
  13. #define DataPort P0 //定義數(shù)據(jù)端口 程序中遇到DataPort 則用P0 替換

  14. #define uchar unsigned char
  15. #define uint unsigned int
  16. sbit BEEP=P1^0;
  17. sbit led=P0^7;
  18. sbit SET=P3^5;
  19. sbit UP=P3^6;
  20. sbit DOWN=P3^7;
  21. unsigned char id=0,re_disp=0;  //定義用到的變量,id為調(diào)整模式用,不為0時表示調(diào)整模式,調(diào)整哪個量由id值確定
  22.            //時間到取反flag標志位,re_disp記數(shù)200次共10s,調(diào)整狀態(tài)下按鍵無操作10s自動返回正常顯示狀態(tài)
  23. bit hour,minute,second,flag,year,month,date,day;    //定義位變量,hour,minute,second分別為調(diào)整時閃爍標志位,flag 500ms取反一次,調(diào)整位閃爍及冒號閃爍用


  24. bit ReadTimeFlag;//定義讀時間標志

  25. unsigned char code dofly_DuanMa[10]={0xf0,0xf8,0xf1,0xf9,0xf2,0xfa,0xf3,0xfb,0xf4,0xfc};// 顯示段碼值0~9
  26. unsigned char code dofly_WeiMa[]={0xef,0xdf,0xcf,0xbf,0xaf,0x9f};//分別對應相應的數(shù)碼管點亮,即位碼
  27. unsigned char TempData[8]; //存儲顯示值的全局變量


  28. void Display(unsigned char FirstBit,unsigned char Num);//數(shù)碼管顯示函數(shù)
  29. void Scan_Key(void);//按鍵
  30. void Init_Timer0(void);//定時器0初始化
  31. void Init_Timer1(void);        //定時器1初始化
  32. void display8(void);//顯示方式
  33. void id_case1_key(void);//鍵值處理
  34. void Set_id(unsigned char ,unsigned char);        //加減變量函數(shù)
  35. unsigned char displaynum; //顯示方式標志
  36. /*------------------------------------------------
  37.                     主函數(shù)
  38. ------------------------------------------------*/
  39. void main ()
  40. {
  41.        
  42.         Init_Timer0();
  43.         Init_Timer1();
  44.         if(!UP&!DOWN)Ds1302_Init();   //如果同時按下UP和DOWN鍵則初始化1302,該語句在while(1)前,只執(zhí)行一次,需要復位,防止誤操作
  45.         Ds1302_Write_Time();

  46.         while (1)         //主循環(huán)
  47.           {
  48.       id_case1_key();
  49.       Scan_Key();

  50.           }

  51. }


  52. ------------------------------------------------*/
  53. /*------------------------------------------------
  54. 顯示函數(shù),用于動態(tài)掃描數(shù)碼管
  55. 輸入?yún)?shù) FirstBit 表示需要顯示的第一位,如賦值2表示從第三個數(shù)碼管開始顯示
  56. 如輸入0表示從第一個顯示。
  57. Num表示需要顯示的位數(shù),如需要顯示99兩位數(shù)值則該值輸入2
  58. ------------------------------------------------*/
  59. void Display(unsigned char FirstBit,unsigned char Num)
  60. {
  61.       static unsigned char i=0;
  62.           

  63.            DataPort=0;   //清空數(shù)據(jù),防止有交替重影

  64.       DataPort=dofly_WeiMa[i+FirstBit]&TempData[i];

  65.       
  66.            i++;
  67.        if(i==Num)
  68.               i=0;


  69. }
  70. /*------------------------------------------------
  71.                     定時器0初始化子程序
  72. ------------------------------------------------*/
  73. void Init_Timer0(void)
  74. {
  75. TMOD |= 0x01;          //使用模式1,16位定時器,使用"|"符號可以在使用多個定時器時不受影響                     
  76. //TH0=0x00;              //給定初值
  77. //TL0=0x00;
  78. EA=1;            //總中斷打開
  79. ET0=1;           //定時器中斷打開
  80. TR0=1;           //定時器開關(guān)打開
  81. }
  82. /*------------------------------------------------
  83.                     定時器1初始化子程序
  84. ------------------------------------------------*/
  85. void Init_Timer1(void)
  86. {
  87. TMOD |= 0x10;          //使用模式1,16位定時器,使用"|"符號可以在使用多個定時器時不受影響
  88. //TH1=0x00;              //給定初值,這里使用定時器最大值從0開始計數(shù)一直到65535溢出
  89. // TL1=0x00;
  90. EA=1;            //總中斷打開
  91. ET1=1;           //定時器中斷打開
  92. TR1=1;           //定時器開關(guān)打開
  93. }
  94. /*------------------------------------------------
  95.                  定時器0中斷子程序
  96. ------------------------------------------------*/
  97. void Timer0_isr(void) interrupt 1
  98. {
  99. static unsigned int num,a;
  100. TH0=(65536-2000)/256;                  //重新賦值 2ms
  101. TL0=(65536-2000)%256;

  102. Display(0,6);       // 調(diào)用數(shù)碼管掃描
  103. num++;
  104. if(num==50)        //大致100ms
  105.    {
  106.     num=0;
  107.     ReadTimeFlag=1; //讀標志位置1
  108.         }

  109.            a++;                                  //秒閃
  110.    if(a<=250)led=1;
  111.    if(a>250)led=0;
  112.    if(a==500)a=0;

  113. }
  114. /*------------------------------------------------
  115.                  定時器1中斷子程序
  116. ------------------------------------------------*/
  117. void Timer1_isr(void) interrupt 3 using 1   //中斷處理程序,主要用于取反標志位,返回正常顯示狀態(tài)
  118. {
  119.    unsigned char timecount;
  120.    TH1=(65535-50000)/256; //50ms定時
  121.    TL1=(65535-50000)%256;  
  122.    timecount++;re_disp++;
  123.           
  124.            if(timecount>9)
  125.              {
  126.            timecount=0;
  127.               flag=~flag;
  128.              }

  129.    if(re_disp>150){re_disp=0;if(id)id=0;}

  130. }
  131. /*---------------------------------------------------------
  132.           顯示方式
  133. ---------------------------------------------------------*/
  134. void display8(void)
  135. {
  136.   if(ReadTimeFlag==1)
  137.   {
  138.    ReadTimeFlag=0;
  139.    Ds1302_Read_Time();
  140.   }


  141.    if(displaynum==0) //顯示時間
  142.     {
  143.         if(flag&hour)       //如hour為1表示調(diào)整時,flag為1時不顯示
  144.           {
  145.            TempData[0]=0;   //這句中的0xff是數(shù)碼管的滅碼
  146.            TempData[1]=0;  
  147.           }
  148.           else         //flag為0時顯示,產(chǎn)生閃爍效果,下同
  149.           {
  150.           TempData[0]=dofly_DuanMa[time_buf1[4]/10];//時        //數(shù)據(jù)的轉(zhuǎn)換,
  151.           TempData[1]=dofly_DuanMa[time_buf1[4]%10];//因我們采用數(shù)碼管0~9的顯示,將數(shù)據(jù)分開
  152.           }

  153.         if(flag&minute)         //分
  154.           {
  155.            TempData[2]=0;   //這句中的0xff是數(shù)碼管的滅碼
  156.            TempData[3]=0;
  157.           }
  158.         else
  159.           {
  160.            TempData[2]=dofly_DuanMa[time_buf1[5]/10];//分
  161.            TempData[3]=dofly_DuanMa[time_buf1[5]%10];
  162.            }

  163.         if(flag&second)         //秒
  164.           {
  165.            TempData[4]=0;   //這句中的0xff是數(shù)碼管的滅碼
  166.            TempData[5]=0;  
  167.           }
  168.         else
  169.           {
  170.            TempData[4]=dofly_DuanMa[time_buf1[6]/10];//秒
  171.            TempData[5]=dofly_DuanMa[time_buf1[6]%10];       
  172.           }
  173.          }

  174.         if(displaynum==1)//顯示日期
  175.          {
  176.          led=0;
  177.          if(flag&year)
  178.          {
  179.           TempData[0]=0;   //這句中的0xff是數(shù)碼管的滅碼
  180.           TempData[1]=0;  
  181.          }
  182.          else
  183.          {
  184.          TempData[0]=dofly_DuanMa[time_buf1[1]/10];//年                       
  185.          TempData[1]=dofly_DuanMa[time_buf1[1]%10];
  186.          }
  187.          if(flag&month)
  188.          {
  189.           TempData[2]=0;   //這句中的0xff是數(shù)碼管的滅碼
  190.           TempData[3]=0;  
  191.      }
  192.          else
  193.          {                                                    
  194.          TempData[2]=dofly_DuanMa[time_buf1[2]/10];//月
  195.          TempData[3]=dofly_DuanMa[time_buf1[2]%10];
  196.          }
  197.          if(flag&date)
  198.          {
  199.           TempData[4]=0;   //這句中的0xff是數(shù)碼管的滅碼
  200.           TempData[5]=0;  
  201.          }
  202.          else
  203.          {
  204.          TempData[4]=dofly_DuanMa[time_buf1[3]/10];//日
  205.          TempData[5]=dofly_DuanMa[time_buf1[3]%10];       
  206.          }
  207.          }


  208.         if(displaynum==2)//顯示周  秒
  209.          {
  210.          led=1;
  211.          if(flag&day)
  212.          {
  213.          TempData[1]=0xff;
  214.          }
  215.          else
  216.          {
  217.          TempData[0]=0xff;                               
  218.          TempData[1]=dofly_DuanMa[time_buf1[7]%10];//周
  219.          TempData[2]=0xff;
  220.          TempData[3]=0xff;
  221.          TempData[4]=dofly_DuanMa[time_buf1[6]/10];//秒
  222.          TempData[5]=dofly_DuanMa[time_buf1[6]%10];       
  223.          }
  224.          }

  225. }

  226. /*------------------------------------------------
  227.             鍵盤檢測函數(shù)
  228. ------------------------------------------------*/
  229. void Scan_Key(void)    //鍵盤檢測函數(shù)
  230. {
  231.   display8();    //程序開頭調(diào)用顯示函數(shù)
  232.   if(!SET)   
  233.   {
  234.    while(!SET);display8(); //等待按鍵釋放,如一直按下一直調(diào)用顯示函數(shù),防止顯示中斷
  235.    re_disp=0;    //清除記數(shù),重新開始10s定時
  236.    id++;
  237.    if(id>7)id=0;  //id加1,后面根據(jù)id值對應調(diào)整項目
  238.   }
  239.   if(id==0){hour=0;minute=0;second=0;year=0;month=0;date=0;day=0;} //根據(jù)id值跳到相應處理函數(shù)
  240.   if(id==1){displaynum=0;hour=1;minute=0;second=0;year=0;month=0;date=0;day=0;id_case1_key();}  //id為1,選擇調(diào)整小時位,閃爍標志位置1,然后跳到鍵盤處理函數(shù),下同
  241.   if(id==2){displaynum=0;hour=0;minute=1;second=0;year=0;month=0;date=0;day=0;id_case1_key();}
  242.   if(id==3){displaynum=0;hour=0;minute=0;second=1;year=0;month=0;date=0;day=0;id_case1_key();}
  243.   if(id==4){displaynum=1;hour=0;minute=0;second=0;year=1;month=0;date=0;day=0;id_case1_key();}
  244.   if(id==5){displaynum=1;hour=0;minute=0;second=0;year=0;month=1;date=0;day=0;id_case1_key();}
  245.   if(id==6){displaynum=1;hour=0;minute=0;second=0;year=0;month=0;date=1;day=0;id_case1_key();}
  246.   if(id==7){displaynum=2;hour=0;minute=0;second=0;year=0;month=0;date=0;day=1;id_case1_key();}
  247. }

  248. /*-----------------------------------------------------
  249.                 鍵盤處理函數(shù)
  250. -----------------------------------------------------*/

  251. void id_case1_key(void)      //鍵盤處理函數(shù),只有按下set鍵時才會進入,
  252. {
  253.    display8();        
  254.    if (!DOWN) //減少
  255.        {
  256.          while(!DOWN)display8();   //等待按鍵釋放,如一直按下一直調(diào)用顯示函數(shù),防止顯示中斷
  257.          re_disp=0;      //清除記數(shù),重新開始10s定時
  258.          Set_id(id,0);     //跳到加減判斷函數(shù),下同,
  259.        }
  260.    
  261.     if (!UP)  //增加
  262.        {
  263.          while(!UP)display8();
  264.          re_disp=0;
  265.          Set_id(id,1);   
  266.        }

  267. }

  268. /*-------------------------------------------------------
  269. //根據(jù)選擇調(diào)整相應項目并寫入DS1302
  270. --------------------------------------------------------*/
  271. void Set_id(unsigned char sel,unsigned char sel_1)  //執(zhí)行調(diào)整項目的函數(shù)
  272. {
  273.            if(sel==0)         //時間、日期、周顯示選擇
  274.         {
  275.           if(sel_1==0)
  276.           {
  277.           displaynum++;
  278.       if(displaynum==3)
  279.       displaynum=0;
  280.           }
  281.           else
  282.           {
  283.           displaynum++;
  284.       if(displaynum==3)
  285.       displaynum=0;

  286.           }
  287.         }



  288.     if(sel==1)        //調(diào)時
  289.      {
  290.          if(sel_1==0)
  291.                  {
  292.                  time_buf1[4]--;if(time_buf1[4]==24)time_buf1[4]=0;
  293.                  }
  294.                  else
  295.                  {
  296.                  time_buf1[4]++;if(time_buf1[4]==24)time_buf1[4]=0;
  297.                  }
  298.          Ds1302_Write_Time();
  299.          }

  300.          if(sel==2)        //調(diào)分
  301.      {
  302.          if(sel_1==0)
  303.                  {
  304.                  time_buf1[5]--;if(time_buf1[5]==59)time_buf1[5]=0;
  305.                  }
  306.                  else
  307.                  {
  308.                  time_buf1[5]++;if(time_buf1[5]==59)time_buf1[5]=0;
  309.                  }
  310.          Ds1302_Write_Time();
  311.          }

  312.     if(sel==3)          //調(diào)秒
  313.      {
  314.          if(sel_1==0)
  315.                  {
  316.                  time_buf1[6]--;if(time_buf1[6]==0)time_buf1[6]=0;
  317.                  }
  318.                  else
  319.                  {
  320.                  time_buf1[6]++;if(time_buf1[6]==0)time_buf1[6]=0;
  321.                  }
  322.          Ds1302_Write_Time();
  323.          }

  324.              if(sel==4)          //調(diào)年
  325.      {
  326.          if(sel_1==0)
  327.                  {
  328.                  time_buf1[1]--;if(time_buf1[1]==99)time_buf1[1]=15;
  329.                  }
  330.                  else
  331.                  {
  332.                  time_buf1[1]++;if(time_buf1[1]==99)time_buf1[1]=15;
  333.                  }
  334.          Ds1302_Write_Time();
  335.          }

  336.              if(sel==5)          //調(diào)月
  337.      {
  338.          if(sel_1==0)
  339.                  {
  340.                  time_buf1[2]--;if(time_buf1[2]==13)time_buf1[2]=1;
  341.                  }
  342.                  else
  343.                  {
  344.                  time_buf1[2]++;if(time_buf1[2]==13)time_buf1[2]=1;
  345.                  }
  346.          Ds1302_Write_Time();
  347.          }

  348.              if(sel==6)          //調(diào)日
  349.      {
  350.          if(sel_1==0)
  351.                  {
  352.                  time_buf1[3]--;if(time_buf1[3]==32)time_buf1[3]=1;
  353.                  }
  354.                  else
  355.                  {
  356.                  time_buf1[3]++;if(time_buf1[3]==32)time_buf1[3]=1;
  357.                  }
  358.          Ds1302_Write_Time();
  359.          }
  360.             
  361.                
  362.                  if(sel==7)          //調(diào)周
  363.      {
  364.          if(sel_1==0)
  365.                  {
  366.                  time_buf1[7]--;if(time_buf1[7]==8)time_buf1[7]=1;
  367.                  }
  368.                  else
  369.                  {
  370.                  time_buf1[7]++;if(time_buf1[7]==8)time_buf1[7]=1;
  371.                  }
  372.          Ds1302_Write_Time();
  373.          }

  374. }
復制代碼

作者: 1qaz2wsx77    時間: 2015-11-20 07:59
上面是主程序,為了發(fā)著方便合一起了。下面是DS1032的C、H程序,網(wǎng)上多的是,在些也發(fā)了吧。
作者: 1qaz2wsx77    時間: 2015-11-20 08:00

  1. #include "ds1302.h"

  2. unsigned char time_buf1[8] = {20,15,10,1,8,8,8,6};//空年月日時分秒周
  3. unsigned char time_buf[8] ;                         //空年月日時分秒周
  4. /*------------------------------------------------
  5.            向DS1302寫入一字節(jié)數(shù)據(jù)
  6. ------------------------------------------------*/
  7. void Ds1302_Write_Byte(unsigned char addr, unsigned char d)
  8. {

  9.         unsigned char i;
  10.         RST_SET;       
  11.        
  12.         //寫入目標地址:addr
  13.         addr = addr & 0xFE;     //最低位置零
  14.         for (i = 0; i < 8; i ++)
  15.             {
  16.                 if (addr & 0x01)
  17.                     {
  18.                         IO_SET;
  19.                         }
  20.                 else
  21.                     {
  22.                         IO_CLR;
  23.                         }
  24.                 SCK_SET;
  25.                 SCK_CLR;
  26.                 addr = addr >> 1;
  27.                 }
  28.        
  29.         //寫入數(shù)據(jù):d
  30.         for (i = 0; i < 8; i ++)
  31.            {
  32.                 if (d & 0x01)
  33.                     {
  34.                         IO_SET;
  35.                         }
  36.                 else
  37.                     {
  38.                         IO_CLR;
  39.                         }
  40.                 SCK_SET;
  41.                 SCK_CLR;
  42.                 d = d >> 1;
  43.                 }
  44.         RST_CLR;                                        //停止DS1302總線
  45. }
  46. /*------------------------------------------------
  47.            從DS1302讀出一字節(jié)數(shù)據(jù)
  48. ------------------------------------------------*/

  49. unsigned char Ds1302_Read_Byte(unsigned char addr)
  50. {

  51.         unsigned char i;
  52.         unsigned char temp;
  53.         RST_SET;       

  54.         //寫入目標地址:addr
  55.         addr = addr | 0x01;//最低位置高
  56.         for (i = 0; i < 8; i ++)
  57.             {
  58.              
  59.                 if (addr & 0x01)
  60.                    {
  61.                         IO_SET;
  62.                         }
  63.                 else
  64.                     {
  65.                         IO_CLR;
  66.                         }
  67.                 SCK_SET;
  68.                 SCK_CLR;
  69.                 addr = addr >> 1;
  70.                 }
  71.        
  72.         //輸出數(shù)據(jù):temp
  73.         for (i = 0; i < 8; i ++)
  74.             {
  75.                 temp = temp >> 1;
  76.                 if (IO_R)
  77.                    {
  78.                         temp |= 0x80;
  79.                         }
  80.                 else
  81.                    {
  82.                         temp &= 0x7F;
  83.                         }
  84.                 SCK_SET;
  85.                 SCK_CLR;
  86.                 }
  87.        
  88.         RST_CLR;        //停止DS1302總線
  89.         return temp;
  90. }

  91. /*------------------------------------------------
  92.            向DS1302寫入時鐘數(shù)據(jù)
  93. ------------------------------------------------*/
  94. void Ds1302_Write_Time(void)
  95. {
  96.      
  97.     unsigned char i,tmp;
  98.         for(i=0;i<8;i++)
  99.             {                  //BCD處理
  100.                 tmp=time_buf1[i]/10;
  101.                 time_buf[i]=time_buf1[i]%10;
  102.                 time_buf[i]=time_buf[i]+tmp*16;
  103.             }
  104.         Ds1302_Write_Byte(ds1302_control_add,0x00);                        //關(guān)閉寫保護
  105.         Ds1302_Write_Byte(ds1302_sec_add,0x80);                                //暫停
  106.         //Ds1302_Write_Byte(ds1302_charger_add,0xa9);                        //涓流充電
  107.         Ds1302_Write_Byte(ds1302_year_add,time_buf[1]);                //年
  108.         Ds1302_Write_Byte(ds1302_month_add,time_buf[2]);        //月
  109.         Ds1302_Write_Byte(ds1302_date_add,time_buf[3]);                //日
  110.         Ds1302_Write_Byte(ds1302_day_add,time_buf[7]);                //周
  111.         Ds1302_Write_Byte(ds1302_hr_add,time_buf[4]);                //時
  112.         Ds1302_Write_Byte(ds1302_min_add,time_buf[5]);                //分
  113.         Ds1302_Write_Byte(ds1302_sec_add,time_buf[6]);                //秒
  114.         Ds1302_Write_Byte(ds1302_day_add,time_buf[7]);                //周
  115.         Ds1302_Write_Byte(ds1302_control_add,0x80);                        //打開寫保護
  116. }

  117. /*------------------------------------------------
  118.            從DS1302讀出時鐘數(shù)據(jù)
  119. ------------------------------------------------*/
  120. void Ds1302_Read_Time(void)  
  121. {
  122.                unsigned char i,tmp;
  123.         time_buf[1]=Ds1302_Read_Byte(ds1302_year_add);                //年
  124.         time_buf[2]=Ds1302_Read_Byte(ds1302_month_add);                //月
  125.         time_buf[3]=Ds1302_Read_Byte(ds1302_date_add);                //日
  126.         time_buf[4]=Ds1302_Read_Byte(ds1302_hr_add);                //時
  127.         time_buf[5]=Ds1302_Read_Byte(ds1302_min_add);                //分
  128.         time_buf[6]=(Ds1302_Read_Byte(ds1302_sec_add))&0x7F;//秒
  129.         time_buf[7]=Ds1302_Read_Byte(ds1302_day_add);                //周


  130.         for(i=0;i<8;i++)
  131.            {           //BCD處理
  132.                 tmp=time_buf[i]/16;
  133.                 time_buf1[i]=time_buf[i]%16;
  134.                 time_buf1[i]=time_buf1[i]+tmp*10;
  135.            }
  136. }

  137. /*------------------------------------------------
  138.                 DS1302初始化
  139. ------------------------------------------------*/
  140. void Ds1302_Init(void)
  141. {
  142.        
  143.         RST_CLR;                        //RST腳置低
  144.         SCK_CLR;                        //SCK腳置低
  145.     Ds1302_Write_Byte(ds1302_sec_add,0x00);                                 
  146. }
復制代碼

作者: 1qaz2wsx77    時間: 2015-11-20 08:00

  1. #ifndef __DS1302_H__
  2. #define __DS1302_H__

  3. #include <reg52.h>
  4. #include<intrins.h>

  5. sbit SCK=P1^4;               
  6. sbit SDA=P1^5;               
  7. sbit RST=P1^6;
  8. //復位腳
  9. #define RST_CLR        RST=0//電平置低
  10. #define RST_SET        RST=1//電平置高


  11. //雙向數(shù)據(jù)
  12. #define IO_CLR        SDA=0//電平置低
  13. #define IO_SET        SDA=1//電平置高
  14. #define IO_R        SDA  //電平讀取


  15. //時鐘信號
  16. #define SCK_CLR        SCK=0//時鐘信號
  17. #define SCK_SET        SCK=1//電平置高


  18. #define ds1302_sec_add                        0x80                //秒數(shù)據(jù)地址
  19. #define ds1302_min_add                        0x82                //分數(shù)據(jù)地址
  20. #define ds1302_hr_add                        0x84                //時數(shù)據(jù)地址
  21. #define ds1302_date_add                        0x86                //日數(shù)據(jù)地址
  22. #define ds1302_month_add                0x88                //月數(shù)據(jù)地址
  23. #define ds1302_day_add                        0x8a                //星期數(shù)據(jù)地址
  24. #define ds1302_year_add                        0x8c                //年數(shù)據(jù)地址
  25. #define ds1302_control_add                0x8e                //控制數(shù)據(jù)地址
  26. #define ds1302_charger_add                0x90                                          
  27. #define ds1302_clkburst_add                0xbe

  28. extern unsigned char time_buf1[8];//空年月日時分秒周
  29. extern unsigned char time_buf[8] ;//空年月日時分秒周
  30. /*------------------------------------------------
  31.            向DS1302寫入一字節(jié)數(shù)據(jù)
  32. ------------------------------------------------*/
  33. void Ds1302_Write_Byte(unsigned char addr, unsigned char d);
  34. /*------------------------------------------------
  35.            從DS1302讀出一字節(jié)數(shù)據(jù)
  36. ------------------------------------------------*/
  37. unsigned char Ds1302_Read_Byte(unsigned char addr) ;
  38. /*------------------------------------------------
  39.            向DS1302寫入時鐘數(shù)據(jù)
  40. ------------------------------------------------*/
  41. void Ds1302_Write_Time(void) ;
  42. /*------------------------------------------------
  43.            從DS1302讀出時鐘數(shù)據(jù)
  44. ------------------------------------------------*/
  45. void Ds1302_Read_Time(void)  ;
  46. /*------------------------------------------------
  47.                 DS1302初始化
  48. ------------------------------------------------*/
  49. void Ds1302_Init(void);

  50. #endif
復制代碼

作者: 1qaz2wsx77    時間: 2015-11-20 08:03
自我感覺還是較為詳實的,且有一定的可讀性。如果數(shù)碼管不一樣,可修改顯示方式及顯示函數(shù)兩個主程序中的內(nèi)容,其它的就不用動了。如哪個高手再給加個紅外控制進去,我也學習學習。先感謝了。
作者: 1qaz2wsx77    時間: 2015-11-20 20:28
我是一個初學者,興趣使然。從網(wǎng)上下來的程序,好多都不合適或是編不過。這是在多個網(wǎng)上程序的基礎(chǔ)上合一起的,挺費勁的,和初學者一起交流。感謝網(wǎng)上發(fā)程序的朋友,學習了。
作者: wc86110    時間: 2015-11-22 12:46
LZ 已經(jīng)很棒了,還那么謙虛。學這玩意不懂英文感覺太費勁了。
作者: 1qaz2wsx77    時間: 2015-11-23 18:14
是呀,可我是學俄語的,比不了你們現(xiàn)在的大學生了呀。不過這東西整著挺有意思,但得時間了。
作者: 素顏い如雪    時間: 2015-12-1 20:41
大神有電路圖嗎
作者: 1qaz2wsx77    時間: 2015-12-3 21:04
實在對不起,我沒有畫電路圖。畫那個還得安軟件,我只是平時玩玩,所以電腦上就沒有安。
作者: 木木木木木    時間: 2015-12-4 19:26
如何消抖?貌似你的顯示的很清楚
作者: 1qaz2wsx77    時間: 2015-12-4 19:38
消抖用的是延時。顯示用定時器控制。
作者: gonglong666    時間: 2016-4-7 19:54
好東西,好好研究一下




歡迎光臨 (http://www.izizhuan.cn/bbs/) Powered by Discuz! X3.1
午夜精品在线免费观看| 精品国产一区二区三区不卡在线 | 国产精品999久久久| 欧美另类videos死尸| av成人天堂| se01亚洲视频| 热re99久久国产精品| 曰本三级日本三级日本三级| 麻豆视频成人| 欧美激情综合亚洲一二区| 欧美视频中文字幕| 国产精品网站在线观看| 日一区二区三区| 国产精品探花在线观看| 国产在线自天天| 可骚可骚的黄视频网站| 蜜臀久久99精品久久久| 成人在线观看免费完整| 久久发布国产伦子伦精品| 中文字幕人成一区| 91日韩在线播放| 欧美成人免费观看| 亚洲国产高清福利视频| 菠萝蜜视频在线观看一区| 欧美国产日本| 四虎5151久久欧美毛片| 日韩在线免费| 91蜜桃在线视频| 中文字幕中文字幕在线中文字幕三区| 天天操夜夜操视频| 免费午夜视频在线观看| 日韩在线三区| 91gao视频| 51色欧美片视频在线观看| 亚洲精品国产福利| 欧美丰满美乳xxx高潮www| 亚洲欧美日韩精品久久久久| 99久久婷婷国产精品综合| 日韩综合在线视频| 亚洲国产一区二区在线观看 | 99精品老司机免费视频| 国产一级二级在线| 色视频免费观看| 伦理天堂电影| 黄色aaa大片| 黄色网址在线视频| 亚洲视频在线a| 免费高清一区二区三区| 亚洲一区精品视频| 日本欧美精品久久久| 风间由美久久久| 91九色视频导航| 国产精品旅馆在线| 欧美性一区二区三区| 久久久久久久久久久成人| 久久精品亚洲94久久精品| 一区二区三区四区精品| 狠狠综合久久av一区二区小说| 中文字幕免费观看一区| 欧美极品aⅴ影院| 久久久久久久综合| 香蕉国产精品偷在线观看不卡| 亚洲一区 二区 三区| 我不卡神马影院| 日本欧美视频| 久久精品影视| 国产真实久久| 在线视频观看日韩| 亚洲一区二区三区四区五区午夜 | 欧美大片aaa| 香蕉影院在线| www视频免费看| 小鲜肉gaygays免费动漫| 国产区卡一卡二卡三乱码免费| 久草在线免费资源| 欧美极度另类videos高清| 日韩欧美伦理电影院| 露脸国产精品自产在线播| 国产成人精品18| 中文字幕91爱爱| 曰批又黄又爽免费视频| 国产精品国产一区二区三区四区 | 日韩高清影视在线观看| 亚洲女娇小黑人粗硬| 免费视频亚洲| 久久久久久久久99精品大| 天天影视天天精品| 国产精品久久久久久久久久妞妞 | 爽爽爽爽爽爽爽成人免费观看| 久久亚洲精品视频| 97精品久久久| 国产欧洲精品视频| 国产另类自拍| 亚洲国产一区二区三区在线| 精品国产一区二区三区在线| 国产精品99久久久久久久 | 亚洲男人天堂手机在线| 久久精品2019中文字幕| 奇门遁甲1982国语版免费观看高清| 国产精品久久久久久久久久久久久| 亚洲自拍高清视频网站| 手机看片福利永久国产日韩| 男人草女人视频| 杨幂毛片午夜性生毛片| 亚洲最大的黄色网| 免费毛片在线播放免费| 国产情侣呻吟对白高潮| 天堂中文资源在线观看| 91av毛片| 一二三四社区在线视频| 国产一二区在线| 成人网ww555视频免费看| 99热99re6国产在线播放| 成人在线免费观看| 欧美激情喷水| 蜜桃一区二区三区| 欧美中文日韩| 91女厕偷拍女厕偷拍高清| 亚洲午夜久久久久中文字幕久| 在线综合亚洲欧美在线视频| 欧美日韩精品一区二区| 亚洲最新在线视频| 国产成人一区二| 欧美日韩系列| 亚洲成色www.777999| 亚洲一区二区三区日韩| 中文字字幕在线中文| 影音先锋男人资源站| 在线观看成人影院| 免费在线中文字幕| 国产福利电影在线播放| 97色成人综合网站| 亚洲精品男同| 国产拍揄自揄精品视频麻豆| 欧美少妇bbb| 色噜噜国产精品视频一区二区| 成人免费淫片视频软件| 欧美一区二区三区综合| 国产亚洲色婷婷久久99精品91| 国产婷婷色一区二区在线观看| 色吊丝中文字幕| 调教在线观看| 九色成人搞黄网站| 欧美va天堂| 国产欧美一区视频| 日韩精品中午字幕| 国产精品99蜜臀久久不卡二区| 尤物国产精品| 五月婷婷综合在线观看| 中文字幕乱码人妻二区三区| 色姑娘资源站| www在线观看播放免费视频日本| xxxxxhd亚洲人hd| 久久精品国产精品亚洲红杏| 亚洲成人资源在线| 久久天天躁狠狠躁夜夜av| 久久精品综合一区| 手机免费av片| 久久久成人免费视频| 91香蕉网站| 免费在线观看av电影| 国产精品99一区二区三区| 9人人澡人人爽人人精品| 91精品国产综合久久久久久久久久| 69av成年福利视频| 无码av天堂一区二区三区| 三上悠亚作品在线观看| 欧美艾v福利视频在线观看| 91caoporn在线| 欧美在线色图| 欧美韩日一区二区三区| 亚洲天堂免费观看| 日韩高清国产精品| 国产黄色大片免费看| www.男人天堂.com| www.天天操| 制服诱惑亚洲| 免费人成黄页网站在线一区二区 | 精选一区二区三区四区五区| 青娱乐精品在线| 国产精品亚洲欧美在线播放| 天天干狠狠干| 精品亚洲免a| 91啪亚洲精品| 亚洲美女动态图120秒| 欧美日韩国产一二| 久久视频一区二区三区| 另类free性欧美护士| 高清电影在线观看免费| 国产农村妇女精品一二区| 色狠狠一区二区三区香蕉| 在线日韩日本国产亚洲| 亚洲一区二区三区精品动漫| 狂野欧美性猛交| 一个人看的日本免费视频| 无码小电影在线观看网站免费| 亚洲一区二区伦理| 欧美日韩免费观看一区二区三区| 国产精品久久久久久久久久新婚| 天天综合网久久| 免费看黄色一级视频| 黄色片网站在线| 国产日韩亚洲欧美精品| 欧美手机在线视频| 不卡视频一区二区| 亚洲一区二区三区蜜桃| 国产成人亚洲综合小说区| 成人免费看视频网站| 极品少妇xxxx精品少妇| 欧美大片在线观看一区| 蜜桃成人在线| 久草视频免费播放| 成人网18免费网站在线| 精品国产乱子伦一区二区| 中文天堂在线一区| 国模视频一区二区| 手机在线视频一区| 国产香蕉视频在线| 91se在线观看| 天天综合精品| 国产激情视频在线播放| 在线观看免费国产成人软件| 乡村艳史在线观看| 国产精品小仙女| 丝袜亚洲欧美日韩综合| aaa毛片在线观看| 蜜桃91麻豆精品一二三区| 欧美卡一卡二| 国产成人在线看| 久久精品亚洲94久久精品| 波多野结衣天堂| 亚洲狠狠婷婷综合久久蜜桃| 日韩av电影资源网| 国产网站一区二区| 国产xxx69麻豆国语对白| 欧美国产日韩激情| 国产浮力第一页| 多野结衣av一区| 成人精品国产福利| 91精品国产91久久久久久吃药 | 色精品一区二区三区| 欧美成人黄色| 亚洲人成网站在线| 97se亚洲综合| 不卡的免费av| 亚洲s色大片| 99精品在线观看| 欧美日本一区二区三区| 伊人久久大香线蕉成人综合网| 在线视频你懂得| 少妇视频一区| 国产免费成人在线视频| 国产精品毛片a∨一区二区三区|国 | 羞羞视频在线观看欧美| 亚洲色图美腿丝袜| 日韩欧美国产片| 91av看片| 我不卡手机影院| 亚洲精品视频播放| 国产aⅴ爽av久久久久| 中出嫩模无套| 亚洲h色精品| 国产手机视频精品| 日韩成人av免费| 成人网址大全| 亚洲一区区二区| 九九久久久久99精品| 老牛影视av老牛影视av| 亚洲有码转帖| 久久精品国产久精国产爱| 国内偷自视频区视频综合| jizz18女人高潮| 成年人免费在线视频| 国产成人精品一区二区三区四区| 国产精品18久久久久久麻辣| 精品国产欧美日韩不卡在线观看| 麻豆自创视频在线观看| 午夜精品av| 久久激情视频久久| 东方伊人免费在线观看| 成人高清在线| 91丨porny丨户外露出| 99porn视频在线| 国产欧美日韩成人| 免费精品一区二区三区在线观看| 91官网在线观看| aⅴ在线免费观看| japanese日本护士撒尿| 美女诱惑黄网站一区| 欧美性做爰毛片| 精品人妻一区二区三区免费看| 日韩中文影院| 欧美中文字幕一区二区三区| aaa毛片在线观看| www.成人精品免费网站青椒| 国内成人免费视频| 91精品综合久久久久久五月天| 一区二区日韩在线观看| 亚洲91网站| 亚洲国产日韩欧美在线99| 欧美在线一级片| 成人午夜电影在线观看| 亚洲国产岛国毛片在线| 中文字幕在线观看一区二区三区| 欧美精品久久久久久久小说| 黄色综合网站| 2019中文在线观看| 亚洲av无码不卡| 99a精品视频在线观看| 精品免费国产二区三区| 亚洲天堂美女视频| 国产精品剧情| 欧美日韩国产精品一区| 午夜免费高清视频| 伪装者免费全集在线观看| 国产偷国产偷亚洲高清人白洁| 伊人狠狠色丁香综合尤物| 日本免费网站| 国产精品亚洲视频| 另类欧美小说| 国产成人精品实拍在线| 免费高清成人在线| 国产精品成人一区二区三区| 亚洲欧美日韩综合精品网| 国产欧美一区二区色老头 | 欧美日韩精品区| 日韩三级网址| 一区二区亚洲欧洲国产日韩| 日本少妇高清视频| 国产午夜亚洲精品一级在线| 亚洲高清一区二| 亚洲女人久久久| 未满十八勿进黄网站一区不卡| 亚洲精品在线三区| 午夜国产福利在线观看| 福利在线观看| 欧美色播在线播放| 日本在线视频播放| jizzjizz中国精品麻豆| 欧美一区二区成人| 天堂а√在线中文在线鲁大师| 欧美aaaaaa| 中文一区二区视频| jizz国产在线| 久久久久久久久久久久久久久久久久 | 伪装者在线观看完整版免费| 伊人色综合久久天天人手人婷| 国产肥臀一区二区福利视频| 污黄网站在线观看| 欧美日韩免费区域视频在线观看| 国产精品999.| 99爱在线观看| 亚洲国产一区二区三区四区| 日本一级黄色录像| 精品视频亚洲| 成人激情在线播放| 人操人爱免费视频| 久久亚洲精精品中文字幕早川悠里 | 久久高清无码视频| 综合伊思人在钱三区| 日本免费在线精品| 欧美另类videos粗暴黑人| 粉嫩蜜臀av国产精品网站| 97在线国产视频| 在线观看h片| 欧美大片一区二区| 99精品人妻国产毛片| 狠狠色狠狠色综合日日tαg| 久久成人资源| 天堂在线第六区| 欧美视频日韩视频| 久久免费公开视频| 欧美国产一级| 国产精品视频入口| 免费裸体视频网站| 99久久精品国产观看| 日韩中文字幕组| free性m.freesex欧美| 亚洲天堂精品在线| 国产高潮流白浆喷水视频| 日韩在线卡一卡二| 男女裸体影院高潮| 麻豆视频在线| 在线免费观看视频一区| 久久久久亚洲av片无码| 日韩国产在线| 韩国一区二区三区美女美女秀| 国产夫妻在线视频| 欧美性色黄大片| 久久久久无码国产精品不卡| 欧美1区2区视频| 欧美日韩亚洲一区二区三区四区| 中文字幕免费在线观看| 4438成人网| 国产精品xxxxxx| 日韩av不卡在线观看| 黄色av网址在线播放| 男人的天堂免费在线视频| 精品久久久91| 国产一级片网站|