国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

單片機(jī)DS1302時(shí)鐘的Protues仿真

2019-07-11 11:06:38缐磊王毓謙
卷宗 2019年18期
關(guān)鍵詞:時(shí)鐘單片機(jī)

缐磊 王毓謙

摘 要:本文利用單片機(jī)和DS1302時(shí)鐘芯片設(shè)計(jì)一個(gè)簡易的時(shí)鐘裝置,闡述了該裝置的硬件組成、軟件實(shí)現(xiàn)、程序流程圖及程序說明,并在在Protues仿真軟件中進(jìn)行仿真。仿真結(jié)果表明該電子鐘具有工作可靠、結(jié)構(gòu)簡單的特點(diǎn),有很大的擴(kuò)展空間。

關(guān)鍵詞:DS1302;Protues;單片機(jī);時(shí)鐘

一般情況下,可通過單片機(jī)的定時(shí)器功能模擬一個(gè)簡單的電子時(shí)鐘,但是此種方法不僅時(shí)間誤差大,耗費(fèi)單片機(jī)的內(nèi)部資源,而且不可保存時(shí)間,一旦系統(tǒng)斷電,時(shí)鐘及恢復(fù)到復(fù)位值。本文選用專門的時(shí)鐘芯片DS1302,仿真設(shè)計(jì)結(jié)構(gòu)簡單,調(diào)試方便,成本低,設(shè)計(jì)開發(fā)周期短,有很大的擴(kuò)展空間。

1 時(shí)鐘芯片DS1304簡介

DS1302是美國 DALLAS公司推出的一種高性能、低功耗、帶RAM的低功耗實(shí)時(shí)時(shí)鐘芯片,它可以對年、月、日、周、日、時(shí)、分、秒進(jìn)行計(jì)時(shí),并能夠?qū)γ吭碌奶鞌?shù)和閏年的天數(shù)進(jìn)行自動調(diào)整,時(shí)鐘可以采用24小時(shí)制,也可以采用12小時(shí)制。DS1302功耗很低,保持?jǐn)?shù)據(jù)和時(shí)鐘信息時(shí)功率小于1uW,在沒有電源供電的情況下,可以工作長達(dá)10年的時(shí)間。

具體各管腳功能如下:X1和X2為晶振接入引腳,接入的晶振為32.768kHz;SCLK為串行時(shí)鐘引腳;I/O為數(shù)據(jù)輸入與輸出引腳;CE為復(fù)位引腳;VCC1和VCC2為點(diǎn)源供電引腳,且VCC1為主電源,VCC2為備份點(diǎn)源,當(dāng)VCC2>VCC1+0.2V時(shí),由VCC2向DS1302供電,否則由VCC1供電。DS1302與單片機(jī)等微處理器接口時(shí),可以采用簡單的同步串行工作方式,僅需要三個(gè)口線與單片機(jī)相連:1)CE管腳、2)I/O管腳、3)串行時(shí)鐘SCLK管腳。

DS1302內(nèi)部有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼,其日歷、時(shí)間寄存器及其控制字如表1所示。

此外DS1302內(nèi)部還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。對于開發(fā)者來說,主要使用DS1302內(nèi)部的這12個(gè)寄存器。如果在開發(fā)系統(tǒng)中,微處理器的RAM空間不夠等也可以使用DS1302內(nèi)部的RAM空間。DS1302內(nèi)部還有31RAM單元,每個(gè)單元為8位。31個(gè)單元對應(yīng)著62個(gè)命令控制字:C0H~FDH,共62個(gè),其中奇數(shù)為讀操作,偶數(shù)為寫操作。當(dāng)然,也可以一次性地讀寫這31個(gè)單元,命令控制字分別為FEH(寫)、FFH(讀),這種方式稱為突發(fā)方式。

2 DS1302的讀寫時(shí)序

對DS1302進(jìn)行讀寫操作時(shí),數(shù)據(jù)總是從最低位開始傳動,通過一個(gè)SCLK時(shí)鐘的下降/上升沿該位數(shù)據(jù)寫入芯片,整個(gè)過程中控制器一直主導(dǎo)著時(shí)序,而時(shí)鐘芯片則處于被動狀態(tài)。

DS1302寫1位邏輯電平值的步驟為:

①控制器拉高RST引腳,引入邏輯控制模式;

②控制器清零時(shí)鐘線SCLK;

③將需要寫入的數(shù)據(jù)置于數(shù)據(jù)線I/O上;

④控制器拉高時(shí)鐘線SCLK,形成一個(gè)時(shí)鐘上升沿,則DS1302讀入I/O引腳上的電平值,從而完成了1位邏輯電平的寫操作;

DS1302讀1位邏輯電平值的步驟為:

①控制器拉高CE引腳,進(jìn)入邏輯控制模式;

②控制器拉高時(shí)鐘線SCLK,此時(shí)DS1302將1位數(shù)據(jù)置于數(shù)據(jù)線I/O上;

③將I/O引腳的電平值讀入控制器內(nèi)部寄存器暫存;

④控制器拉低時(shí)鐘線SCLK,形成一個(gè)時(shí)鐘下降沿,則控制器完成對I/O引腳上的電平值的讀取,從而完成了1位邏輯電平的讀操作。

3 硬件設(shè)計(jì)

實(shí)現(xiàn)DS1302時(shí)鐘功能的主體原件是AT89C51單片機(jī),需在Protues電路窗口中繪制所示的單片機(jī)DS1302時(shí)鐘仿真電路圖。

4 軟件設(shè)計(jì)

系統(tǒng)通過串行讀寫DS1302時(shí)鐘芯片,完成時(shí)鐘信息顯示。采用8位的數(shù)碼管顯示時(shí)間或日期,數(shù)碼管的位選通過譯碼器選擇;時(shí)鐘芯片與單片機(jī)三線相連,對時(shí)鐘操作分讀寫字節(jié)、讀寫命令和初始化等部分實(shí)現(xiàn)。讀者可根據(jù)實(shí)際情況自行編寫代碼,本程序源代碼不詳細(xì)說明。

5 仿真運(yùn)行

在電路圖中選中AT89C51并單擊,打開“Edit Component”對話窗口,在“Program File”欄中,選擇用keil生成的“.HEX”文件,單擊Protues ISIS界面左下角開始按鈕,進(jìn)入程序調(diào)試狀態(tài),結(jié)果如圖4所示。

6 結(jié)語

在本項(xiàng)目中,設(shè)計(jì)了基于DS1302時(shí)鐘芯片的時(shí)鐘,可以看出,該系統(tǒng)結(jié)構(gòu)簡單,成本低,運(yùn)行穩(wěn)定精確。另外可以考慮增加按鍵,即增加按鍵用來調(diào)整時(shí)間和日期,這需要用到DS1302的寫時(shí)序,其操作過程和讀時(shí)序非常類似,可見其具有很大的擴(kuò)展空間。

參考文獻(xiàn)

[1]李偉躍.基于時(shí)鐘芯片DS1302的萬年歷的設(shè)計(jì)[J].科技創(chuàng)新導(dǎo)報(bào),2012(09):20-21.

[2]李芝浩,朱爾隆.基于protues仿真的自動售貨機(jī)的實(shí)現(xiàn)[J].電子技術(shù)與軟件工程,2014(16):147

[3]劉春燕,晁勤,袁鐵江,魏麗麗.多功能數(shù)字萬年歷的設(shè)計(jì)[J].自動化應(yīng)用,2013(01):39-41.

[4]李秀麗,雷晨,孫藝玫,徐倩.基于Protues的GPS守時(shí)授時(shí)時(shí)鐘裝置的設(shè)計(jì)與仿真[J].防災(zāi)減災(zāi)學(xué)報(bào),2011,27(01):74-78.

[5]曲立國,黃友銳,唐超禮,徐善永.Protues在電子課程設(shè)計(jì)中的應(yīng)用[J].科技視界,2012(14):96-98.

[6]田清華.單片機(jī)流水燈的Protues仿真[J].科技傳播,2013,5(06):202-203.

作者簡介

缐磊(1998-),男,漢,河南省南陽市臥龍區(qū)人,本科在讀,鄭州大學(xué) 過程裝備與控制工程。

王毓謙(1997-),男,漢,黑龍江省齊齊哈爾市人,本科在讀,鄭州大學(xué) 過程裝備與控制工程。

猜你喜歡
時(shí)鐘單片機(jī)
別樣的“時(shí)鐘”
古代的時(shí)鐘
基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機(jī)的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機(jī)的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
這個(gè)時(shí)鐘一根針
小議PLC與單片機(jī)之間的串行通信及應(yīng)用
電子制作(2018年12期)2018-08-01 00:48:04
有趣的時(shí)鐘
基于單片機(jī)的平衡控制系統(tǒng)設(shè)計(jì)
電子制作(2017年19期)2017-02-02 07:08:27
時(shí)鐘會開“花”
汝南县| 巍山| 东明县| 江北区| 铅山县| 巴楚县| 河源市| 满洲里市| 潮安县| 安岳县| 昌图县| 台前县| 即墨市| 井冈山市| 尉氏县| 宜丰县| 济源市| 南雄市| 北宁市| 扬中市| 康平县| 临漳县| 略阳县| 秦安县| 饶阳县| 开远市| 宁化县| 嘉峪关市| 泰安市| 改则县| 仙居县| 洛浦县| 武胜县| 鹤岗市| 米林县| 阳泉市| 池州市| 安丘市| 莲花县| 嘉定区| 武强县|