那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

DS1307與兼容8051的微控制器接口

星星科技指導員 ? 來源:ADI ? 作者:ADI ? 2023-03-01 13:52 ? 次閱讀

本應用筆記提供了如何將DS1307實時時鐘(RTC)連接至微控制器信息,并提供了一些訪問該器件的示例代碼。

介紹

DS1307串行實時時鐘集成了2線串行接口,可使用兼容8051的微控制器進行控制。本例中的DS1307直接連接到DS5000微控制器上的兩個I/O端口,2線握手由低電平驅動器處理,本應用筆記對此進行了討論。

DS1307 說明

DS1307串行實時時鐘為低功耗、全BCD時鐘/日歷外加56字節非易失性SRAM。地址和數據通過2線雙向總線串行傳輸。時鐘/日歷提供秒、分鐘、小時、星期、日期、月份和年份信息。對于少于 31 天的月份,月末日期會自動調整,包括對閏年的更正。時鐘以 24 小時制或 12 小時制運行,帶 AM/PM 指示器。DS1307內置電源檢測電路,可檢測電源故障并自動切換到電池供電。

DS1307 工作原理

DS1307作為串行總線上的從器件工作。通過實現 START 條件并提供設備標識碼后跟寄存器地址來獲取訪問權限。后續寄存器可以按順序訪問,直到執行 STOP 條件。啟動和停止條件是使用隨附的DS5000代碼中的低電平驅動器、SEND_START和SEND_STOP生成的。此外,子程序SEND_BYTE和READ_BYTE提供在DS2之間寫入和讀取8位字所需的1307線握手。

硬件配置

系統配置如圖 1 所示。DS1307的2線總線連接到DS5000的兩個I/O端口引腳:SCL - P1.0、SDA - P1.1。五世DD電壓為5V,RP= 5KΩ,DS5000采用12 MHz晶體。另一個外圍設備可以是識別2線協議的任何其他設備,例如DS1621數字溫度計和恒溫器。與D5000的接口是使用DS5000T套件硬件和軟件完成的。該開發套件允許將PC用作啞終端,使用DS5000的串行端口與鍵盤和顯示器進行通信。

poYBAGP-6CuAHol3AAAU6jDkQEc120.gif

圖1.典型的2線總線配置。

定義了以下總線協議(參見圖 2)。

在數據傳輸過程中,只要時鐘線為高電平,數據線必須保持穩定。時鐘線為高電平時數據線的變化將被解釋為控制信號

因此,定義了以下總線條件:

開始數據傳輸:當時鐘線為高電平時,數據線的狀態從高電平到低電平的變化定義了START條件。

停止數據傳輸:當時鐘線為高電平時,數據線的狀態從低到高的變化定義了 STOP 條件。

數據有效:當在START條件之后,數據線在時鐘信號的高周期內保持穩定時,數據線的狀態表示有效數據。線路上的數據必須在時鐘信號的低電平期間更改。每個數據位有一個時鐘脈沖。

每個數據傳輸都以 START 條件啟動,并以 STOP 條件終止。在 START 和 STOP 條件之間傳輸的數據字節數不受限制,由主設備決定。信息按字節傳輸,每個接收器用第九位確認。

確認:每個接收設備在尋址時,都必須在接收每個字節后生成確認。主設備必須生成與此應答位關聯的額外時鐘脈沖。

確認的器件必須在確認時鐘脈沖期間拉下SDA線,以使SDA線在確認相關時鐘脈沖的高電平期間穩定為低電平。當然,必須考慮設置和保持時間。主站必須通過不從站輸出的最后一個字節上生成應答位來向從站發出數據結束信號。在這種情況下,從機必須將數據線保持高電平,以使主站能夠產生STOP條件。

圖2詳細介紹了如何在2線總線上完成數據傳輸。根據 R/W位的狀態,可以進行兩種類型的數據傳輸:

主發射器到從接收器的數據傳輸。主站傳輸的第一個字節是從地址。接下來是一些數據字節。從站在每個接收到的字節后返回一個應答位。首先使用最高有效位 (MSB) 傳輸數據。

從發射器到主接收器的數據傳輸。第一個字節(從地址)為 由主人傳輸。然后,從站返回一個應答位。接下來是從站傳輸多個數據字節。主站在所有接收到的字節(最后一個字節除外)之后返回一個應答位。在最后一個接收的字節的末尾,返回不確認。

pYYBAGP-6CyACZgwAAAZW5Gygcs716.gif

圖2.2線串行總線上的數據傳輸。

主器件生成所有串行時鐘脈沖以及啟動和停止條件。傳輸以“停止”條件或重復的“開始”條件結束。由于重復的 START 條件也是下一次串行傳輸的開始,因此不會釋放總線。首先使用最高有效位 (MSB) 傳輸數據。

DS1307可以工作在以下兩種模式:

從接收模式(DS1307寫入模式):串行數據和時鐘通過SDA和SCL接收。接收到每個字節后,將發送一個應答位。啟動和停止條件被識別為串行傳輸的開始和結束。地址識別由硬件在接收到從地址和方向位后執行(參見圖3)。地址字節是主站生成啟動條件后收到的第一個字節。地址字節包含7位DS1307地址,即1101000,后跟方向位(R//W),對于寫入,方向位為0。接收并解碼地址字節后,DS1307在SDA線路上輸出應答。DS1307確認從地址+寫位后,主機向DS1307發送寄存器地址。這將設置DS1307上的寄存器指針。然后,主機開始發送每個字節的數據,DS1307確認接收到的每個字節。主站將生成停止條件以終止數據寫入。

poYBAGP-6C2AI-EaAAAVZ2tDnbQ143.gif

發送器模式(DS1307讀取模式):第一個字節的接收和處理方式與從機接收機模式相同。但是,在此模式下,方向位將指示傳遞方向相反。串行數據由DS1307在SDA上傳輸,而串行時鐘由SCL輸入。START 和 STOP 條件被識別為串行傳輸的開始和結束(請參閱圖 4)。地址字節是主站生成啟動條件后收到的第一個字節。地址字節包含7位DS1307地址,即1101000,后跟方向位(R/W),讀取時為1。接收并解碼地址字節后,DS1307在SDA線路上輸入確認。然后,DS1307從寄存器指針指向的寄存器地址開始發送數據。如果在啟動讀取模式之前未寫入寄存器指針,則讀取的第一個地址是寄存器指針中存儲的最后一個地址。DS1307必須由主機發送一個非應答位以終止讀操作。

pYYBAGP-6C6AfYw1AAAZWEhM7S0079.gif

圖4.數據讀取—從發送器模式。

軟件操作

DS5000 接口

附錄1中的軟件用于通過5000線接口將DS1307與DS2連接。DS5000使用達拉斯半導體公司的DS5000T評估板進行編程,該評估板允許將PC用作啞終端。DS5T評估套件隨附的KIT5000K軟件環境提供了一個高級接口,用于將應用軟件加載到DS5000或通過程序命令設置其配置參數。KIT5K軟件包括一個啞終端仿真器,允許用戶在DS5000中運行應用軟件,通過PC COM端口與用戶通信。

DS1307 源代碼

附錄中代碼的第一部分用于配置DS5000與PC進行串行通信。代碼的開頭還有用于控制演示軟件的MASTER_CONTROLLER子例程。

緊跟在MASTER_CONTROLLER子程序之后的子程序是用于控制2線接口的低級驅動器。它們不是DS1307特有的,但可以與任何2線兼容的從器件配合使用。這些子例程是:

SEND_START

此子例程用于在 2 線總線上生成啟動條件。

SEND_STOP

此子例程用于在 2 線總線上生成 Stop 條件。

SEND_BYTE

此子例程通過 8 線總線發送一個 2 位字 MSB,優先級為 9千確認脈沖的時鐘脈沖。

READ_BYTE

此子例程通過 8 線總線讀取 2 位字。它檢查要清除的 LASTREAD 標志,指示何時從從設備進行最后一次讀取。如果不是最后一次讀取,DS5000在9千時鐘,如果這是從設備最后一次讀取,DS5000發送“未確認”。

SCL_HIGH

此子例程將 SCL 線路從低到高轉換,并確保 SCL 線路在繼續之前處于高電平。

延遲和DELAY_4

包括這兩個子程序是為了確保保持2線總線時序。

附錄中的其余代碼專門用于演示DS1307的功能。演示的功能包括:

設置時間

時間從鍵盤讀入并存儲在DS5000暫存器存儲器中。然后通過2線接口傳輸到DS1307。

設置內存

從鍵盤讀入單個十六進制字節,并寫入DS1307的整個用戶RAM。

讀取日期/時間

日期和時間通過2線總線讀取,并存儲在DS5000暫存器存儲器中。然后將其寫入屏幕。這一直持續到按下鍵盤上的鍵為止。

讀取內存

DS1307的整個用戶RAM被讀入DS5000暫存器存儲器,然后寫入PC監視器。

OSC 開/關

DS1307時鐘振蕩器可以打開或關閉。

SQW/OUT On/ SQW/OUT Off

可以打開或關閉 SQW/OUT。它將以 1 Hz 切換。

結論

已經表明,將DS1307或任何其他2線從器件連接到8051兼容微控制器非常簡單。唯一需要注意的是,微控制器上的低電平驅動器不會違反2線定時規范。為此,已將延遲子例程插入到代碼中。表1中的值是在用于開發本應用筆記的硬件設置中觀察到的實際時序參數。

參數 象征 實際 單位
標準及校正實驗所時鐘頻率 fSCL 59 千 赫
停止和啟動條件之間的巴士空閑時間 tBUF 5.7 微秒
保持時間(重復)啟動條件 tHD:STA 6.2 微秒
標準及校正實驗所時鐘的低周期 tLOW 10.5 微秒
標準及校正實驗表時鐘的高周期 tHIGH 6.5米 微秒
重復啟動條件的設置時間 tSU:STA 5.3 微秒
數據保持時間 tHD:DAT 5.5 微秒
數據設置時間 tSU:DAT 3.1 微秒
停止條件的設置時間
tSU:STO
5.4 微秒

圖3.數據寫入—從接收機模式。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7649

    瀏覽量

    152104
  • 驅動器
    +關注

    關注

    53

    文章

    8271

    瀏覽量

    147056
  • 存儲器
    +關注

    關注

    38

    文章

    7528

    瀏覽量

    164340
收藏 人收藏

    評論

    相關推薦

    DS1307 PIC16f690

    控制器:PIC16F690RTC:DS1307IT對Proteus工作正常,但它不適用于我的實際硬件。以上來自于百度翻譯 以下為原文 Controller:-PIC16F690RTC:DS1307
    發表于 08-24 15:58

    怎么將ds1307與stm8s105c6接口

    你好,我正在嘗試將ds1307與我的stm8s105c6發現接口我無法從哪里開始。我不清楚rtc是如何工作的。我試圖為ds1307的stm8s找到任何庫。你可以幫幫我嗎以上來自于谷歌翻譯以下為原文
    發表于 02-27 16:33

    請問如何使定時DS1307的定時同步?

    我需要計算毫秒。我使用DS1307,所以它給了我HR,Min,SEC的精確值,但我也想要毫秒。我已經制定了一個程序,計時1ms定時。由于我也是計時的新手,我如何用DS1307定時
    發表于 09-10 08:08

    帶有ATtiny85/DS1307的時鐘開發板

    描述ATtiny85 TinyClock DS1307 DIP帶有 ATtiny85 微控制器、DS1307 實時時鐘和 2032 電池座的時鐘開發板。PCB+展示
    發表于 08-19 07:20

    DS1307 pdf datasheet (64 x 8,

    DS1307 pdf
    發表于 10-22 10:18 ?78次下載

    DS1307應用電路

    DS1307 pdf datasheet (64 x 8, Serial, I2C Real-Time Clock)
    發表于 10-22 18:26 ?3642次閱讀
    <b class='flag-5'>DS1307</b>應用電路

    DS1307接口的與8051兼容微控制器-Interfaci

    Abstract: This application note provides information on how to interface a DS1307 real-time clock
    發表于 04-21 11:04 ?1120次閱讀
    <b class='flag-5'>DS1307</b><b class='flag-5'>接口</b>的與<b class='flag-5'>8051</b><b class='flag-5'>兼容</b><b class='flag-5'>微控制器</b>-Interfaci

    DS1302 RTC與8051微控制器接口

    摘要:本應用筆記說明了DS1302 RTC通過3線接口8051微控制器的連接方式,設計實例包括電路原理圖和C語言接口程序。
    發表于 04-21 11:14 ?2342次閱讀
    <b class='flag-5'>DS</b>1302 RTC與<b class='flag-5'>8051</b><b class='flag-5'>微控制器</b>的<b class='flag-5'>接口</b>

    DS3231與8051微控制器接口

    摘要:本應用筆記提供了一個DS3231與8051微控制器接口的硬件電路和軟件例程。 圖1. DS3231引
    發表于 04-21 11:16 ?2074次閱讀
    <b class='flag-5'>DS</b>3231與<b class='flag-5'>8051</b><b class='flag-5'>微控制器</b>的<b class='flag-5'>接口</b>

    DS1305 RTC與8051微控制器接口

    摘要:本文介紹DS1305實時時鐘與8051微控制器DS2250的連接,所提供的基本接口程序用C語言編寫。
    發表于 04-21 11:16 ?1650次閱讀
    <b class='flag-5'>DS</b>1305 RTC與<b class='flag-5'>8051</b><b class='flag-5'>微控制器</b>的<b class='flag-5'>接口</b>

    DS13078051兼容微控制器接口

    硬件配置 系統配置如圖1所示。DS1307有相連的ds5000兩端口的I/O引腳2線總線:SCL - P1.0、P1.1 SDA -。VDD電壓為5V,RP = 5k和ds5000是使用一個12
    發表于 04-10 11:11 ?18次下載
    <b class='flag-5'>DS1307</b>與<b class='flag-5'>8051</b><b class='flag-5'>兼容</b>的<b class='flag-5'>微控制器</b><b class='flag-5'>接口</b>

    DS1307 時鐘/定時 - 實時時鐘

    電子發燒友網為你提供Maxim(Maxim)DS1307相關產品參數、數據手冊,更有DS1307的引腳圖、接線圖、封裝手冊、中文資料、英文資料,DS1307真值表,DS1307管腳等資
    發表于 11-21 21:25
    <b class='flag-5'>DS1307</b> 時鐘/定時 - 實時時鐘

    Arduino DS1307 RTC時鐘

    電子發燒友網站提供《Arduino DS1307 RTC時鐘.zip》資料免費下載
    發表于 11-22 09:15 ?5次下載
    Arduino <b class='flag-5'>DS1307</b> RTC時鐘

    DS1302與8051微控制器接口

    本應用介紹如何使用3線接口DS1302 RTC連接至8051微控制器。該示例包括用 C 語言編寫的原理圖和示例軟件。
    的頭像 發表于 01-09 17:01 ?896次閱讀
    <b class='flag-5'>DS</b>1302與<b class='flag-5'>8051</b>型<b class='flag-5'>微控制器</b><b class='flag-5'>接口</b>

    DS1620與DS5000/8051微控制器接口

    本應用筆記向用戶介紹DS5000(兼容8051微控制器DS1620數字溫度傳感
    的頭像 發表于 03-01 15:29 ?726次閱讀
    <b class='flag-5'>DS</b>1620與<b class='flag-5'>DS</b>5000/<b class='flag-5'>8051</b><b class='flag-5'>微控制器</b><b class='flag-5'>接口</b>
    全讯网bbin888.com| 百家乐官网21点德州扑克| 百家乐怎么玩| 百家乐体育nba| 真百家乐官网游戏| 澳门百家乐官网鸿福厅| 城口县| 365棋牌游戏| 大发888娱乐场下载专区| 西游记百家乐娱乐城| 百家乐澳门技巧| 百家乐赌博现金网平台排名| 百家乐赢的秘籍在哪| 真人百家乐平台排行| 百家乐网络投注| 真人百家乐官网游戏软件| 网页百家乐官网官网| 百家乐官网赌博技巧大全| 百家乐官网在线娱乐网| 网站百家乐官网假| 百家乐官网实时赌博| 百家乐官网7scs娱乐网| 云赢百家乐官网分析| 网上百家乐官网是真是假天涯论坛| 百家乐官网韩泰阁| 百家乐官网挂机软件| 至富百家乐官网的玩法技巧和规则| 百家乐官网几点不用补| 做生意佩戴什么纳财| 玩百家乐去哪个平台好| 电子百家乐打法| 全讯网新2网址| bet365金融| 新葡京| 大发888是什么软件| 云顶平台| 百家乐官网在线投注系统| 作弊百家乐官网赌具价格| 金钱豹百家乐官网的玩法技巧和规则 | 大发888促销活动| 易盈娱乐|