久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3889|回復: 3
收起左側

DS1302應用成功

[復制鏈接]
ID:55874 發表于 2013-10-16 00:49 | 顯示全部樓層 |閱讀模式
下面是讀取1302與寫數據的程序:
//從1302讀取一個字節
uchar read(uchar address)
{
uchar i;
dsclk=0;
dsdata=0;
dsret=0;
dsret=1;//ret處于高電平時可對1302進行讀操作
for(i=0;i<8;i++)
{
  dsclk=0;//上升沿時進行寫數據
  dsdata=address&0x01;//數據傳送都是從低位開始
  address=address>>1;//右移一位
  dsclk=1;//上升沿寫數據
}
for(i=0;i<8;i++)
{
  dsclk=0;//上升沿動作
  address=address>>1;
  if(dsdata)
  address=address|0x80;
  dsclk=1;//上升沿動作
  dsclk=1;//等待
}
dsclk=1;//時鐘置高
dsret=0;//片選無效
return (address);
}
//向1302寫一個字節
void write(uchar address,uchar number)
{
uchar i; dsclk=0;//清零時鐘總線
dsdata=0;//清零數據總線
dsret=0;//片選端無效
dsret=1;//邏輯控制有效,可對1302操作
for(i=0;i<8;i++)
{
  dsclk=0;
  dsdata=address&0x01;//低地址輸入
  address=address>>1;//地址數據右移一位
  dsclk=1;
}
for(i=0;i<8;i++)
{
  dsclk=0;
  dsdata=number&0x01;//進行數據傳送
  number=number>>1;//數據右移一位
  dsclk=1;
}
dsclk=1;//上升沿動作
dsret=0;//片選無效,不可進行操作
}

    DS1302是美國DALLAS公司推出的一種高性能、低功耗的實時時鐘芯片,附加31字節靜態RAM,采用SPI三線接口與CPU進行同步通信,并可采用突發方式一次傳送多個字節的時鐘信號和RAM數據。實時時鐘可提供秒、分、時、日、星期、月和年,一個月小與31天時可以自動調整,且具有閏年補償功能。工作電壓寬達2.55.5V。采用雙電源供電(主電源和備用電源),可設置備用電源充電方式,提供了對后背電源進行涓細電流充電的能力。DS1302用于數據記錄,特別是對某些具有特殊意義的數據點的記錄上,能實現數據與出現該數據的時間同時記錄,因此廣泛應用于測量系統中。

評分

參與人數 1黑幣 +8 收起 理由
wrty0 + 8 贊一個!

查看全部評分

回復

使用道具 舉報

ID:55611 發表于 2013-10-21 21:56 | 顯示全部樓層
好好學習,天天向上
回復

使用道具 舉報

ID:110866 發表于 2016-4-12 18:23 | 顯示全部樓層
啥啊,為啥不顯示電腦時間
回復

使用道具 舉報

ID:123526 發表于 2016-5-27 15:45 | 顯示全部樓層
本帖最后由 whlove1314 于 2016-5-27 16:13 編輯

我的讀程序為什么隔一秒顯示一次,這一秒顯示正常,下一秒就讀到8個一(就是0x80),再下一秒就正常,然后又是8個一,搞了一早上了,現在都懷疑芯片壞了如果說程序有問題,那什么還能讀到數據,若說沒問題,為什么隔一秒無效一次
我現在觀察到的現象是,正常顯示時,數據輸出穩定(每次讀IO口數據一致,比如說,0s-1s期間程序多次讀IO,每次數據都是0s)不正常時(8個一..)程序每讀一次IO得到的數據都會從8個一跳變到8個0,非常奇怪
后來我在主函數只寫了一個讀取函數,去掉其他干擾項,用8個LED連接到P0口顯示讀到的BCD碼,在讀取程序后加了10ms循環延遲,發現不正常顯示時,IO口讀到數據會在8個1和8個0之間循環跳變,讀一次變一次就是(0000 0001{此為正常顯示,值為1}然后{1111 1111,0000 0000,1111 1111,0000 0000.....}一直這樣循環,循環時間為1s)到了下一秒顯示正常0000 0011(此值為3)但是中間丟失了一秒,那一秒剛才在那里亂蹦
我自己的理解是在:程序每個機器周期都會去讀取ds1302的IO口,IO口的值在1s內應該是不變的,雖然多次讀取,但是每次的值一樣,機器周期非常短暫,人是無法察覺到的,給人的感覺就是數據是連續輸出的(其實實在一遍一遍掃描的),每次寫入的地址都是一樣的,讀到的值只跟ds1302有關,出現這個問題我實在找不到跟程序有關的地方,
所以,現在懵逼了......
剛才有點新發現,每次在亂蹦時,上一秒的數值不動,剛才延遲太短沒看清,現在加大延遲,就看見了,比如說上秒顯示(0000 0011)這一秒就是
(0000 0011,1111 1111,0000 0011,1111 1111.......)一直這樣蹦,直到下一秒恢復正常,來位大神救命啊.....
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: www.一级毛片| 成人午夜免费福利视频 | 午夜视频在线观看视频 | 国产69精品久久久久777 | 国产无人区一区二区三区 | 久久草视频 | 免费一级做a爰片久久毛片潮喷 | 成人一区二区三区 | 国产精品久久久久一区二区三区 | 在线观看毛片网站 | 国产精品夜夜夜一区二区三区尤 | 亚洲一区二区免费看 | 日韩一级黄色毛片 | 国产精品一级在线观看 | 国产乱码精品一区二区三区忘忧草 | 成人美女免费网站视频 | 亚洲午夜精品一区二区三区 | 一级毛片成人免费看a | 97操操| 日韩中文字幕一区二区 | 天天艹天天干天天 | 亚洲不卡在线观看 | 久草中文在线 | 毛片一级电影 | 久久久久久亚洲国产精品 | 国产精品影视在线观看 | 国产精品久久一区二区三区 | 欧美簧片 | 天天射视频 | 精品国产一区二区国模嫣然 | 午夜免费网站 | 精品日韩| 最新超碰 | 久久看片 | 亚洲天堂久久 | 日韩成年人视频在线 | 国产精品视频500部 a久久 | 日韩在线中文 | 欧美色性| 国产精品一区二区久久 | 精品乱码一区二区 |