找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1975|回復(fù): 10
收起左側(cè)

有關(guān)DS1302外部上拉電阻的問(wèn)題

[復(fù)制鏈接]
回帖獎(jiǎng)勵(lì) 200 黑幣 回復(fù)本帖可獲得 20 黑幣獎(jiǎng)勵(lì)! 每人限 1 次
ID:1091773 發(fā)表于 2024-3-3 17:24 | 顯示全部樓層 |閱讀模式
1. 請(qǐng)問(wèn)為什么ds1302需要外接上拉電阻?
2. 請(qǐng)問(wèn)為什么io口沒(méi)有接上拉電阻時(shí),需要在讀取字節(jié)后加上DS1302_IO = 0;DS1302_IO = 1;
3. 請(qǐng)問(wèn)為什么要先DS1302_IO = 0再DS1302_IO = 1,而不是直接DS1302_IO = 1;

以上三個(gè)問(wèn)題是我在解決這個(gè)帖子(51單片機(jī)開(kāi)發(fā)板ds1302+lcd1602出現(xiàn)問(wèn)號(hào),不能正確計(jì)時(shí),困擾很久了,求一下解... - 24小時(shí)必答區(qū) (51hei.com))后想到的,解決問(wèn)題的代碼如下:
  1. unsigned char DS1302SingleRead(unsigned char reg)
  2. {
  3.     unsigned char dat;

  4.     DS1302_CE = 1;
  5.     delay();
  6.     DS1302ByteWrite((reg << 1) | 0x81);
  7.     dat = DS1302ByteRead();
  8.     DS1302_CE = 0;
  9.     delay();
  10.     // 請(qǐng)注意這里
  11.     DS1302_IO = 0;
  12.     delay();
  13.     DS1302_IO = 1;

  14.     return dat;
  15. }
復(fù)制代碼



回復(fù)

使用道具 舉報(bào)

ID:1091773 發(fā)表于 2024-3-3 21:57 | 顯示全部樓層
稍微頂一下
回復(fù)

使用道具 舉報(bào)

ID:1109793 發(fā)表于 2024-3-4 07:23 | 顯示全部樓層
不加上拉這樣能用?哪天翻出來(lái)舊板子試試。
回復(fù)

使用道具 舉報(bào)

ID:149759 發(fā)表于 2024-3-4 11:03 | 顯示全部樓層
51單片機(jī)io準(zhǔn)雙向口,有弱上拉,“DS1302_IO = 0再DS1302_IO = 1“”,這句是一個(gè)上升沿,你要看看這個(gè)DS1302的規(guī)格書(shū)
回復(fù)

使用道具 舉報(bào)

ID:1010435 發(fā)表于 2024-3-4 12:39 | 顯示全部樓層
第一個(gè),第二個(gè)問(wèn)題,上拉電阻不是絕對(duì)的,只是更能確保信號(hào)的正確性。
DS1302我沒(méi)試過(guò),但是18B20我試過(guò),同樣的18B20,直接用stc8H驅(qū)動(dòng),不用加上拉電阻就可以,但是接在ESP8266上面,必須加上拉電阻。
第三個(gè)問(wèn)題,先DS1302_IO = 0再DS1302_IO = 1是由于數(shù)據(jù)使通過(guò)IO口上升沿鎖存的,多看設(shè)備手冊(cè)。如果某個(gè)芯片是下降沿鎖存的,就是先IO = 1再IO =0了。
回復(fù)

使用道具 舉報(bào)

ID:619259 發(fā)表于 2024-3-4 12:39 | 顯示全部樓層
DS1302_IO = 0再DS1302_IO = 1,模擬輸出上升沿
回復(fù)

使用道具 舉報(bào)

ID:453974 發(fā)表于 2024-3-4 14:56 | 顯示全部樓層
數(shù)據(jù)手冊(cè)上確實(shí)沒(méi)要求有上拉電阻
回復(fù)

使用道具 舉報(bào)

ID:453974 發(fā)表于 2024-3-4 15:06 | 顯示全部樓層
有測(cè)試過(guò)刪除之后不行嗎?管數(shù)據(jù)的應(yīng)該什么狀態(tài)都行才對(duì);測(cè)之前看看你的硬件連接是不是好的
回復(fù)

使用道具 舉報(bào)

ID:453974 發(fā)表于 2024-3-4 15:32 | 顯示全部樓層
mtt661 發(fā)表于 2024-3-4 12:39
第一個(gè),第二個(gè)問(wèn)題,上拉電阻不是絕對(duì)的,只是更能確保信號(hào)的正確性。
DS1302我沒(méi)試過(guò),但是18B20我試過(guò) ...

我看數(shù)據(jù)手冊(cè)單字節(jié)讀時(shí)序沒(méi)寫(xiě)上升沿鎖存吧?是不是有IO電平跳變就行呢?
回復(fù)

使用道具 舉報(bào)

ID:1034262 發(fā)表于 2024-3-4 16:39 | 顯示全部樓層
DS1302的數(shù)據(jù)腳內(nèi)有下拉電阻,所以MCU的IO要接上拉電阻(或啟動(dòng)內(nèi)部的上拉電阻),51的準(zhǔn)雙向口不足以拉高,所以要外接上拉電阻,對(duì)于STC8系列、STC32系列的可以啟動(dòng)內(nèi)部的4K上拉電阻。
回復(fù)

使用道具 舉報(bào)

ID:1010435 發(fā)表于 2024-3-5 13:25 | 顯示全部樓層
累不死的狗 發(fā)表于 2024-3-4 15:32
我看數(shù)據(jù)手冊(cè)單字節(jié)讀時(shí)序沒(méi)寫(xiě)上升沿鎖存吧?是不是有IO電平跳變就行呢?

手冊(cè)上有時(shí)序圖的
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表