欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2248|回復: 0
收起左側

1302高精度讀寫數據,讀寫時間 函數(不可調節時鐘)

[復制鏈接]
ID:236307 發表于 2017-9-28 13:10 | 顯示全部樓層 |閱讀模式
全部資料下載地址:
1302高精度不可調節時鐘.zip (40.5 KB, 下載次數: 8)



  1. 2017年9月7日
  2. 21:07

  3. //DS1302寫入數據
  4. void writebety_ds(uchar dat)
  5. {
  6.         uchar i;
  7.         SCLK=0;                                 //初始時鐘線置為 0
  8.         delayus(2);
  9.         for(i=0;i<8;i++)                //開始傳輸8個字節的數據
  10.                 {
  11.                 SDA=dat&0x01;                // 取最低位,注意DS1302的數據和地址都是從最低位開始傳輸的
  12.                 delayus(2);
  13.                 SCLK=1;                         // 時鐘線拉高,制造上升沿,SDA的數據被傳輸
  14.                 delayus(2);
  15.                 SCLK=0;                        // 時鐘線拉低,為下一個上升沿做準備
  16.                 dat>>=1;                // 數據右移一位,準備傳輸下一位數據
  17.                 }

  18. }
  19. //DS1302讀出數據
  20. uchar readbety_ds()
  21. {
  22.                 uchar i,dat;
  23.                 delayus(2);
  24.                 for(i=0;i<8;i++)
  25.                 {
  26.                 dat>>=1;                // 要返回的數據右移一位
  27.                 if(SDA==1)                // 當數據線為高時,證明該位數據為 1
  28.                 dat|=0x80;                // 要傳輸數據的當前值置為1
  29.                 SCLK=1;                        //拉高時鐘線
  30.                 delayus(2);
  31.                 SCLK=0;                        // 制造下降沿
  32.                 delayus(2);
  33.                 }
  34.                 return dat;                // 返回讀取出的數據
  35. }

  36. //DS1302寫入單個時間

  37. void dswrite_data(uchar add,uchar dat)
  38.           {
  39.          
  40.                   RST=0;                         // 初始  CE  線置為 0
  41.                 SCLK=0;                        // 初始時鐘線置為 0
  42.                 RST=1;                        // 初始  CE  置為 1  ,傳輸開始
  43.                 writebety_ds(add);  
  44.                 writebety_ds(dat);         // 寫入要修改的時間,日期
  45.                 SCLK=1;            // 時鐘線拉高
  46.                 RST=0;   //
  47.                 }

  48. //DS1302讀出單個時間
  49. uchar        dsread_data(uchar add)
  50.       {

  51.                 uchar temp_date;
  52.                 RST=0;                // 初始  CE  線置為 0 0 0 0
  53.                 SCLK=0;                // 初始時鐘線置為 0 0 0 0
  54.                 RST=1;                // 初始  CE  置為 1 1 1 1 ,傳輸開始
  55.                 writebety_ds(add);                // 傳輸命令字,要讀取的時間 日歷地址
  56.                 temp_date=readbety_ds();                // 讀取要得到的時間/ / / / 日期
  57.                 SCLK=1;                // 時鐘線拉高
  58.                 RST=0;                // 讀取結束, CE 置為 0 0 0 0 ,結束數據的傳輸
  59.                 return temp_date;      //返回得到的時間/ / / /
  60.            
  61.          
  62.   }  
復制代碼


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表