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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

對DS1302進行寫入和讀取操作的程序

查看數(shù): 7564 | 評論數(shù): 12 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2015-8-28 11:37

正文摘要:

這是我寫的,不知道為什么編譯之后不對呢????

回復

ID:309880 發(fā)表于 2018-5-5 20:22
Great88 發(fā)表于 2015-9-19 21:46
//********向1302寫數(shù)據(jù)*********
void Write1302(uchar dat)
{

謝謝您
ID:90563 發(fā)表于 2015-9-19 21:46
//********向1302寫數(shù)據(jù)*********
void Write1302(uchar dat)
{
  uchar i;
  SCLK=0;           //拉低SCLK,為脈沖上升沿寫入數(shù)據(jù)做好準備
  delay1(1);       //稍微等待,使硬件做好準備
  for(i=0;i<8;i++)      //連續(xù)寫8個二進制位數(shù)據(jù)
    {
   IO=dat&0x01;    //取出dat的第0位數(shù)據(jù)寫入1302
   delay(1);       //稍微等待,使硬件做好準備
   SCLK=1;           //上升沿寫入數(shù)據(jù)
   delay1(1);      //稍微等待,使硬件做好準備
   SCLK=0;           //重新拉低SCLK,形成脈沖
   dat>>=1;          //將dat的各數(shù)據(jù)位右移1位,準備寫入下一個數(shù)據(jù)位
   }
}

void WriteSet1302(uchar Cmd,uchar dat)
{
   RST=0;           //禁止數(shù)據(jù)傳遞
   SCLK=0;          //確保寫數(shù)居前SCLK被拉低
   RST=1;           //啟動數(shù)據(jù)傳輸
   delay1(1);     //稍微等待,使硬件做好準備
   Write1302(Cmd);  //寫入命令字
   Write1302(dat);  //寫數(shù)據(jù)
   SCLK=1;          //將時鐘電平置于已知狀態(tài)
   RST=0;           //禁止數(shù)據(jù)傳遞
}

uchar Read1302(void)
{
   uchar i,dat;
   delay(1);       //稍微等待,使硬件做好準備
   for(i=0;i<8;i++)   //連續(xù)讀8個二進制位數(shù)據(jù)
   {
    dat>>=1;       //將dat的各數(shù)據(jù)位右移1位,因為先讀出的是字節(jié)的最低位
    if(IO==1)    //如果讀出的數(shù)據(jù)是1
    dat|=0x80;    //將1取出,寫在dat的最高位
    SCLK=1;       //將SCLK置于高電平,為下降沿讀出
    delay1(1);  //稍微等待
    SCLK=0;       //拉低SCLK,形成脈沖下降沿
    delay1(1);  //稍微等待
    }  
  return dat;        //將讀出的數(shù)據(jù)返回
  }

uchar  ReadSet1302(uchar Cmd)
{
  uchar dat;
  RST=0;                 //拉低RST
  SCLK=0;                //確保寫數(shù)居前SCLK被拉低
  RST=1;                 //啟動數(shù)據(jù)傳輸
  Write1302(Cmd);       //寫入命令字
  dat=Read1302();       //讀出數(shù)據(jù)
  SCLK=1;              //將時鐘電平置于已知狀態(tài)
  RST=0;               //禁止數(shù)據(jù)傳遞
  return dat;          //將讀出的數(shù)據(jù)返回
}

void Init_DS1302(void)
{
WriteSet1302(0x8E,0x00);                 //根據(jù)寫狀態(tài)寄存器命令字,寫入不保護指令
WriteSet1302(0x80,((0/10)<<4|(0%10)));   //根據(jù)寫秒寄存器命令字,寫入秒的初始值
WriteSet1302(0x82,((45/10)<<4|(45%10)));   //根據(jù)寫分寄存器命令字,寫入分的初始值
WriteSet1302(0x84,((15/10)<<4|(15%10))); //根據(jù)寫小時寄存器命令字,寫入小時的初始值
WriteSet1302(0x86,((29/10)<<4|(29%10))); //根據(jù)寫日寄存器命令字,寫入日的初始值
WriteSet1302(0x88,((11/10)<<4|(11%10))); //根據(jù)寫月寄存器命令字,寫月的初始值
WriteSet1302(0x8c,((15/10)<<4|(15%10)));   //.....年.....................年.........
}
ID:84652 發(fā)表于 2015-9-6 14:33
本帖最后由 王朗的誘惑 于 2015-9-6 14:36 編輯
此者彼者 發(fā)表于 2015-9-6 11:47
大神,,,我這前兩天還行,但是今天就不行了,IO口換了還是不行,顯示就是8888,求指導

數(shù)據(jù)不能是88吧……會不會是顯示問題。數(shù)碼管顯示調(diào)好了么?話說這面包板……好眼熟呀……你也用面包板玩……
ID:62512 發(fā)表于 2015-8-29 12:52
王朗的誘惑 發(fā)表于 2015-8-28 23:52
搞定。~~不過我的電路不太一樣,但是發(fā)現(xiàn)DS1302連到P3那幾個口不好用,換到P2的就好了,估計是數(shù)碼管開關(guān) ...

恩恩,已經(jīng)可以了,真是太謝謝你啦~~~~~~
ID:62512 發(fā)表于 2015-8-29 12:51
王朗的誘惑 發(fā)表于 2015-8-28 23:52
搞定。~~不過我的電路不太一樣,但是發(fā)現(xiàn)DS1302連到P3那幾個口不好用,換到P2的就好了,估計是數(shù)碼管開關(guān) ...

恩恩,可以了,真是太謝謝你啦~~~~~~
ID:62512 發(fā)表于 2015-8-29 12:50
王朗的誘惑 發(fā)表于 2015-8-28 23:52
搞定。~~不過我的電路不太一樣,但是發(fā)現(xiàn)DS1302連到P3那幾個口不好用,換到P2的就好了,估計是數(shù)碼管開關(guān) ...

恩恩,搞定了,真是太謝謝你啦~~~
ID:84652 發(fā)表于 2015-8-28 23:52
此者彼者 發(fā)表于 2015-8-28 19:43
按照您說的,還是不行,您有時間幫我看看我的程序嗎??我使用keil4編寫的,麻煩您了,我編譯的結(jié)果是, ...

搞定。~~不過我的電路不太一樣,但是發(fā)現(xiàn)DS1302連到P3那幾個口不好用,換到P2的就好了,估計是數(shù)碼管開關(guān)的時候引腳控制牽連到DS1302了。現(xiàn)在DS1302通信和初始化都沒問題了(接在P2的時候)。但是因為數(shù)碼管電路不太一樣,所以最后具體的還要你自己試試。要是還不行……可以再來找我。

DS1302簡單時鐘.zip

30.11 KB, 下載次數(shù): 43

ID:62512 發(fā)表于 2015-8-28 19:43
王朗的誘惑 發(fā)表于 2015-8-28 17:25
把ACC=ACC>>1;放到前面,就是進了for以后的第一句。

按照您說的,還是不行,您有時間幫我看看我的程序嗎??我使用keil4編寫的,麻煩您了,我編譯的結(jié)果是,無論初始值是什么,數(shù)碼管顯示的都是0,并且不動,麻煩您了。

DS1302簡單時鐘.rar

26.35 KB, 下載次數(shù): 18

ID:84652 發(fā)表于 2015-8-28 17:25
此者彼者 發(fā)表于 2015-8-28 17:13
按照您的說法改正了,但還是不行

把ACC=ACC>>1;放到前面,就是進了for以后的第一句。
ID:62512 發(fā)表于 2015-8-28 17:13
王朗的誘惑 發(fā)表于 2015-8-28 17:00
ACC是累加器嗎?如果是的話在計數(shù)變量 i 自加的時候,就是 i++ 運算,會用到累加器,之前存的數(shù)據(jù)就沒了… ...

按照您的說法改正了,但還是不行
ID:84652 發(fā)表于 2015-8-28 17:00
ACC是累加器嗎?如果是的話在計數(shù)變量 i 自加的時候,就是 i++ 運算,會用到累加器,之前存的數(shù)據(jù)就沒了……正確的做法是for(i=8;i>0;i--)

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人国产免费观看 | 中文字幕日韩一区二区 | 欧美成人免费 | 成人黄色在线视频 | 日韩中文一区二区三区 | 国产成人精品一区二区三区 | 毛片视频网址 | 成人精品鲁一区一区二区 | 美女视频网站久久 | 免费a国产 | 成人免费一区二区三区视频网站 | 亚洲精品日本 | 中文字幕在线一区 | www.色.com| 中文在线观看视频 | 一级黄色夫妻生活 | 精品国产一区三区 | 欧美日韩专区 | 日韩和的一区二在线 | 国产在线中文字幕 | 欧美精品被 | 91传媒在线观看 | 国产传媒在线观看 | 久久精品国产免费看久久精品 | 福利网站导航 | 国产精品福利久久久 | 久久久xxx | 九九热国产视频 | 国产成人精品一区二区三区四区 | 九九国产在线观看 | 91久久视频 | 国产综合精品一区二区三区 | 一级免费a | 欧美手机在线 | 日韩欧美一区二区三区四区 | 免费亚洲成人 | 国产四虎 | 国产一在线观看 | 在线第一页 | 99国内精品久久久久久久 | 亚洲人人|