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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6982|回復: 7
打印 上一主題 下一主題
收起左側

基于DS1307的可調實時時鐘系統(tǒng)設計

[復制鏈接]
跳轉到指定樓層
樓主
ID:275438 發(fā)表于 2018-2-6 02:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
利用實時時鐘芯片 DS1307 設計一個能夠調節(jié)時間的實時時鐘。 介紹采用 I2C 總線接口實時時鐘芯片 DS1307 進行準確定時的設計原理, 提出實時時鐘芯片 DS1307 與單片機接口電路的設計方法,同時給出幾個典型程序實例,通過 Proteus 軟件進行仿真實現。
先來說實時時鐘DS1307的使用!
DS1307 是一款十分常用的實時時鐘芯片,它可以記錄年、月、日、時、分、秒等信息,提供至2100年的記錄?墒褂秒姵毓╇姡簿褪钦f,即使Arduino 在斷電狀態(tài)下,時鐘芯片仍然是在運行的。它使用十分常用的兩線式串行總線(I2C),只要兩根線即可和Arduino 通信。
電控單元的時鐘基準通?衫 CPU 內部定時器作為時鐘基準,并通過軟件編程和 CPU 時鐘中斷來構造一個軟時鐘。 這種方法的優(yōu)點是無需額外硬件支持,但缺點是時鐘的計時精度受 CPU 主晶振以及與其相連的起振電容的影響而無法做到很高, 因此累積誤差較大。同時在主電源掉電時為了維持時鐘不停擺,系統(tǒng)必須由備用電源給整個 CPU 供電,這將導致功耗增大。
I2C總線虛擬技術
DS1307是一款具有I2C總線接口的實時時鐘芯片,要驅動具有I2C總線接口的DS1307芯片,一種辦法是選擇一款帶有I2C總線接口的高檔單片機,然而,在很多小型儀器儀表中以及在單片機的教學環(huán)境中,使用帶有I2C總線接口的高檔單片機在經濟上是不合算的,在這種情況下,可以采用I2C總線虛擬技術,選用普遍使用的51單片機,利用單片機的通用I/O端口模擬實現I2C總線接口。
硬件接口電路設計
本系統(tǒng)的電路由單片機AT89C51、日歷時鐘芯片DS1307、獨立按鍵及顯示電路組成。
DS1307與AT89C51的接口
為了使AT89C51單片機能夠驅動DS1307芯片,本文采用了I2C總線虛擬技術,將單片機P2.6口和P2.7口來虛擬I2C總線接口。I2C總線是同步串行數據傳輸總線,其內部為雙向傳輸電路,端口輸出為開漏結構,故總線上必須有上拉電阻,通常可取5~10kΩ。因單片機P2口內部有上拉電阻,故DS1307芯片的SCL引腳與SDA引腳與單片機接口時,不需再添加上拉電阻。此外,按照DALLAS公司推薦的硬件接法,往往需要精度很高的晶體,為了提高其可靠性并節(jié)約成本,可將DS1307的X2引腳添加上拉電阻,從而可以克服使用普通晶振時DS1307不起振的問題,進而保證了DS1307的起振。日歷時鐘芯片DS1307與AT89C51的接口電路如圖1所示。         
時鐘顯示電路
為了將系統(tǒng)時間實時顯示出來,本系統(tǒng)沒有采用常用的數碼管作為顯示方式,而是采用1602LCD液晶實時顯示時間,這樣電路的設計就會相對簡單一些,所用到的I/O口也較少。1602液晶的接口電路如圖2所示。
時鐘調節(jié)電路
為了能夠及時對時間進行調節(jié),本系統(tǒng)設計了時鐘調節(jié)電路,由K0、K1、K2三個按鍵組成,且分別由單片機的P2.0、P2.1和P2.2口控制。其中,K0做為時鐘調節(jié)的菜單鍵,第一次按下表示可以調節(jié)時間秒,第二次可以調節(jié)時間分,第三次按下調節(jié)時,第四次按下退出調時菜單,時鐘繼續(xù)開始走動。K1和K2分別是時分秒調節(jié)的加減鍵。在本電路中,根據經驗總結,額外添加三個上拉電阻,以保證在沒有按鍵按下時,進入單片機三個I/O口的按鍵均處于高電平狀態(tài),防止干擾產生。時鐘調節(jié)電路如圖3所示。
接口程序設計
軟件程序設計采用模塊化設計思想,包括主程序、初始化子程序、時鐘運行子程序,按鍵掃描子程序。其中,初始化子程序主要工作有:初始化I2C總線,使總線處于備用狀態(tài);初始化LCD液晶顯示器讓其正常顯示;初始化定時器0并開啟定時器0中斷。時鐘運行子程序主要負責讓DS1307芯片更新時間并在LCD上顯示。按鍵掃描子程序負責檢測按鍵的狀態(tài)并將更改后的時間顯示出來。主程序主要負責初始化及鍵盤掃描工作。本系統(tǒng)主程序的流程圖如圖4所示。
在本系統(tǒng)中,因采用了I2C總線虛擬技術,需嚴格按照時序圖的要求進行操作,因此,在程序設計當中,分別添加了幾個子程序,用于實現單片機與DS1307進行通信。下面是根據本文電路對I2C總線上的信號進行模擬的幾個子程序:
void start() //模擬 I2C 啟動信號
{
SDA = 1;
Nop ();
SCL = 1;
Nop ();
SDA = 0;
Nop ();
SCL = 0;
}
void stop() //模擬 I2C 停止信號
{
SDA = 0;
Nop ();
SCL = 1;
Nop ();
SDA = 1;
Nop ();
}
void ack() //模擬 I2C 應答信號
{
SDA = 1;
Nop ();
SCL = 1;
Nop ();
SCL = 0;
}
void un_ack() //模擬 I2C 非應答信號
{
uchar i;
i=0;
SCL=1;
while(SDA==1&&i《200) i++;
Nop ();
SCL = 0;
}
需要注意的是,DS1307的各類時間數據均以BCD碼的格式存儲在相應的時間寄存器中,而1602液晶顯示器只能識別字符碼,即ASCLL碼,因而1602在向DS1307讀取或寫入時間數據時,需要進行數據類型轉換。本文采用以下兩個子程序用來完成上述功能:
uchar dec_to_bcd (uchar dec) //ASCLL 碼 (十 進 制 )轉BCD 碼
{
Uchar x, y;
x=dec/10;
y=dec%10;
y=(x《《4)|y;
return y;
}
uchar bcd_to_dec(uchar bcd) //BCD 碼 轉 ASCLL 碼(十進制)
{
Uchar x, y;
y=bcd/16;
x=bcd % 16;
y=y*10+x;
return y;
}
仿真分析
本文最后使用Proteus軟件對本實時時鐘系統(tǒng)進行仿真,將代碼下載到單片機當中并啟動Proteus后,液晶顯示器與DS1307時鐘顯示模塊同時顯示初始時間并開始計時, 適當調節(jié)三個獨立按鍵 K0~K2 后,液晶顯示器顯示調整后的 時間并且把新的 時間寫入DS1307,DS1307 從新的時間開始計時。 仿真效果如圖5 所示。
本文設計了一個基于 DS1307 可調實時時鐘系統(tǒng),提出了實時時鐘芯片 DS1307 與單片機接口電路的設計方法,因本系統(tǒng)采用了 I2C 總線虛擬技術,需嚴格按照 I2C 總線時序圖的要求對 DS1307 進行操作,本文給出了對I2C 總線上的信號進行模擬的幾個典型程序實例,最后通過 Proteus 軟件成功仿真實現。

基于DS1307的可調實時時鐘系統(tǒng)設計.doc

335.43 KB, 下載次數: 82, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:290299 發(fā)表于 2018-3-12 20:39 | 只看該作者
感謝 。。。。。。。。。。。
回復

使用道具 舉報

板凳
ID:311501 發(fā)表于 2018-4-24 19:47 | 只看該作者
請問你有完整的代碼嗎?
回復

使用道具 舉報

地板
ID:393699 發(fā)表于 2018-12-16 16:13 | 只看該作者
準備用STM32搞個時鐘,樓主的有參考意義,感謝
回復

使用道具 舉報

5#
ID:448951 發(fā)表于 2018-12-18 15:17 | 只看該作者
感謝樓主
回復

使用道具 舉報

6#
ID:448951 發(fā)表于 2018-12-18 16:07 | 只看該作者
請問您有完整程序嗎
回復

使用道具 舉報

7#
ID:290380 發(fā)表于 2020-6-16 19:13 | 只看該作者

請問您有完整程序嗎
回復

使用道具 舉報

8#
ID:748788 發(fā)表于 2020-8-16 17:59 | 只看該作者
可惜沒有完整程序
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: av免费在线观看网站 | 日韩精品一区二区三区在线观看 | 亚洲综合99 | 欧美性猛交一区二区三区精品 | 日韩中文字幕 | 日产精品久久久一区二区福利 | 久久大陆| 91国内精精品久久久久久婷婷 | 精品在线一区 | 中文字幕国产一区 | 亚洲理论在线观看电影 | 成人不卡 | 久久久美女 | 国产亚洲精品久久久久动 | 在线一区二区三区 | 日韩欧美国产精品一区 | 能看的av| 中文字幕亚洲视频 | 日本一区二区高清不卡 | 国产精品视频入口 | 国产精品美女久久久 | 久久久久久久久久久久一区二区 | 中文字幕 视频一区 | 成人深夜福利 | 人操人免费视频 | 成人午夜激情 | 欧美一页| 国产欧美一区二区精品忘忧草 | 亚洲国产高清高潮精品美女 | 天天干天天爱天天操 | 欧美激情一区二区 | 波多野结衣一二三区 | 噜久寡妇噜噜久久寡妇 | 成人久久久| 日韩毛片中文字幕 | 欧美日韩亚洲系列 | av特级毛片 | 日韩成人免费av | 亚洲一区国产 | 成人一区二| 欧美一级片在线看 |