亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于DS12C887時鐘芯片的電子萬年歷設(shè)計

        2018-06-11 10:07:13徐錦銅康晴茜
        絲路視野 2018年31期
        關(guān)鍵詞:單片機(jī)

        徐錦銅 康晴茜

        【摘要】本文闡述了一種基于DS12C887時鐘芯片的電子萬年歷軟硬件設(shè)計方法,使用proteus軟件設(shè)計和繪制了電子萬年歷的電路連接圖,并通過1602液晶屏顯示時鐘信息,驗證了電子萬年歷電路及其程序設(shè)計的正確性,并給出了部分C程序代碼。

        【關(guān)鍵詞】DS12C887;時鐘芯片;單片機(jī)

        在需要時間信息的電路設(shè)計中,設(shè)計人員通常采用時鐘芯片獲取時間信息。目前,市場中的時鐘芯片種類多樣,比如DS12C887、PCF8485、SB2068、DS1302等。其中DS12C887具有價格低、功耗小、易操作等優(yōu)點,本文選用DS12C887作為設(shè)計電子萬年歷的時鐘芯片。

        一、電路連接

        電路原理圖如圖1所示,主要包括AT89C52單片機(jī)、DS12C887、1602液晶屏和3個獨立按鍵等元器件,通過仿真,從圖1中可以看到日歷信息是2018年9月12日,星期三,17點16分3秒,說明本文設(shè)計的電子萬年歷軟硬件設(shè)計正確,功能正常。

        (一)DS12C887介紹及其與單片機(jī)的接口電路

        DS12C887是DALLAS公司推出的涓流充電時鐘芯片,可計時到2100年前的年、月、日、時、分、秒、星期七種日歷時間信息并自帶閏年補償功能;自帶晶體振蕩器并內(nèi)置鋰電池,在沒有外部電源的情況下可工作長達(dá)10年之久;有12小時制和24小時制兩種計時模式。其中在12小時制模式中,用A.M.和RM.區(qū)分上午和下午;可選用夏令時模式;時間表示方法有兩種:一種用二進(jìn)制數(shù)表示,一種用BCD碼表示;內(nèi)部帶有128字節(jié)RAM,其中11字節(jié)用來存儲時間信息,4字節(jié)RAM用來存儲DS12C887的控制信息,113字節(jié)RAM供用戶使用;數(shù)據(jù)/地址總線復(fù)用,具有MOTOROLA和INTEL兩種總線時序,本文在設(shè)計時采用的是INTEL總線。

        下面闡述DS12C887的電路連接問題:DS12C887一共有24個管腳,其中6個管腳為NC(懸空管腳,不連接),有效管腳為18個。第1腳MOT懸空不接,選擇INTEL總線時序;4腳-11腳(AD0-AD7)為數(shù)據(jù)端,接至單片機(jī)P0口,和單片機(jī)做數(shù)據(jù)交互;12腳GND接地;13腳CS為片選端,接至單片機(jī)P2.3口,在INTEL總線時序中的DS和RW信號工作期間,CS必須保持低電平;14腳AS為地址選通輸入端,在AS信號的下降沿,地址鎖存待DS12C887中,無論CS信號是否有效,AS的下一個上升沿都將清除地址,地址選通信號必須先于每個讀或?qū)懺L問。15腳RW接至單片機(jī)P2.5口,在INTEL總線時序中,RW腳與普通RAM的寫使能信號工作方式類似,在寫數(shù)據(jù)時需要將RW腳電平拉低,寫完之后數(shù)據(jù)在RW信號的上升沿鎖存。17腳DS接至單片機(jī)P2.4口,在讀周期中,DSl2C887于DS信號的后期(INTEL時序中DS為低、RW為高)將數(shù)據(jù)發(fā)送到總線上,讀周期結(jié)束后,總線恢復(fù)到高狀態(tài),同時DS變高。18腳RESET為復(fù)位輸入端,低電平時復(fù)位,本設(shè)計中將RESET端固定接高電平,意即讓DSl2C887一直正常工作,不進(jìn)行復(fù)位操作。19腳[RQ為中斷請求輸出端,可用作處理器的中斷申請輸入端子,實現(xiàn)諸如鬧鐘之類的功能,本設(shè)計不涉及鬧鐘,故IRQ腳懸空不接;23腳SQW為方波輸出端,本設(shè)計不使用,懸空不接。24腳VCC為電源端,接+5V。

        (二)獨立按鍵接口電路

        我們在設(shè)計電路時使用了3個獨立按鍵,一端共同接地,另一端分別接至單片機(jī)的P3.0、P3.1、P3.2口。當(dāng)按鍵被按下時,單片機(jī)對應(yīng)的端口將出現(xiàn)低電平,單片機(jī)通過判斷該低電平信號來獲知相應(yīng)按鍵被按下,本文通過按下這3個按鍵來手動設(shè)置時間。

        (三)1602液晶屏接口電路

        1602液晶屏接口一共有16個管腳,1腳接電源地,2腳為液晶內(nèi)部驅(qū)動芯片電源端;3腳為液晶屏幕電源輸入端,在實際使用時,該端口須經(jīng)1個10K可調(diào)電阻接至5V電源端,當(dāng)改變可調(diào)電阻大小時,3腳將獲得不同的電壓,從而起到調(diào)節(jié)屏幕對比度的作用,本設(shè)計采用仿真模擬器件,因此直接將3腳接高電平;4腳RS、5腳RW、6腳EN為液晶的三個控制端,其中RS為并行數(shù)據(jù)/指令選擇端,接至單片機(jī)的P2.0口,當(dāng)RS為低電平時,寫入的是命令,當(dāng)RS為高電平時,寫入的是數(shù)據(jù);RW為液晶讀/寫選擇端,由于對液晶的操作通常是只讀不寫,將該腳直接拉高,意即對液晶只做寫操作;EN為使能端,接至單片機(jī)的P2.1口,高電平有效;7腳—14腳(D0—D7)為液晶的數(shù)據(jù)端,接至單片機(jī)的P0口,與單片機(jī)做數(shù)據(jù)交互;15腳為液晶背光正極,接+5V;16腳為液晶背光負(fù)極,接地。

        二、DS12C887內(nèi)部寄存器分析

        DSl2C887內(nèi)部共有14個寄存器,地址編號為0-13。0號寄存器為SECONDS秒寄存器,用戶要調(diào)節(jié)秒時,將要設(shè)定的秒數(shù)寫入該寄存器中就可以實現(xiàn)調(diào)節(jié)秒的功能;將秒寄存器里的值讀出并顯示出來就是我們所看到時間里的秒數(shù)。2號分寄存器、4號時寄存器、6號星期寄存器、7號日期寄存器功能可以類比秒寄存器。10號A寄存器—13號D寄存器為控制寄存器,這4個寄存器各8bit,通過修改或讀取這些寄存器,可以對DS12C887做不同的配置,以實現(xiàn)不同的功能需求。下面介紹本設(shè)計用到的A、B控制寄存器的功能和配置操作。

        (1)A寄存器

        UIP:時鐘更新配置位,UP為1時,立即進(jìn)行更新傳輸;UIP為0時,至少244us內(nèi)不會進(jìn)行更新傳輸。本設(shè)計將UP位設(shè)置為1,這樣DS12C887在上電初始化后會立即更新時間。

        DV2、DV1、DV0位:這3位組合配置后用來啟動或關(guān)閉DSl2C887的內(nèi)部晶體振蕩器。本設(shè)計將這3位配置為010,意即打開內(nèi)部晶體振蕩器,允許RTC計時。另外,若是長期不使用DS12C887,為了使其鋰電池節(jié)能,可以通過程序?qū)⑦@3位配置為010之外的其他值,比如000。

        RS3、RS2、RS1、RS0:速率選擇位,這4位組合賦予不同的值,可以使得SWQ管腳對外輸出不同頻率的方波或者使得內(nèi)部產(chǎn)生相應(yīng)周期的周期中斷。比如賦值0001時,可使SWQ腳輸出256Hz的方波,中斷周期為3.90625ms。本設(shè)計沒有使用這4位,故將這4位設(shè)置為0000,意即無中斷周期,SWQ無方波輸出。

        (2)B寄存器

        SET:當(dāng)SET位設(shè)置為0時,芯片更新正常進(jìn)行;當(dāng)SET位設(shè)置為1時,芯片更新被禁止。本設(shè)計將SET位設(shè)置為0。

        PIE:當(dāng)PIE位設(shè)置為0時,禁止周期中斷輸出至IRQ;當(dāng)PIE位設(shè)置為1時,允許周期中斷輸出至IRQ。本設(shè)計未使用周期中斷功能,故將PIE位設(shè)置為0。

        AIE:當(dāng)AIE位設(shè)置為0時,禁止鬧鐘中斷輸出至IRQ;當(dāng)AIE位設(shè)置為1時,允許鬧鐘中斷輸出至IRQ。本設(shè)計未使用鬧鐘中斷功能,故將AIE位設(shè)置為0。

        UIE:當(dāng)UIE位設(shè)置為0時,禁止更新結(jié)束中斷輸出至IRQ;當(dāng)UIE位設(shè)置為1時,允許更新結(jié)束中斷輸出至IRQ。本設(shè)計未使用更新結(jié)束中斷功能,故將UIE位設(shè)置為0。

        SQWE:SQW方波輸出使能位,當(dāng)SQWE位設(shè)置為0時,SQW腳輸出低電平;當(dāng)SQWE位設(shè)置為1時,SQW腳輸出設(shè)定頻率的方波。本設(shè)計未使用SQW方波輸出,故將SQWE位設(shè)置為0。

        DM:時鐘信息格式選擇位,當(dāng)DM=0時,采用二進(jìn)制表示時鐘信息;當(dāng)DM=1時,采用BCD碼表示時鐘信息。本設(shè)計將DM設(shè)置為1,采用BCD碼表示時鐘信息。

        24/12:時制選擇位,當(dāng)這位為0時,12小時制;當(dāng)這位為1時,24小時制;本設(shè)計將這位設(shè)置為1,采用24小時制。

        DSE:夏令時使能位,本設(shè)計不采用夏令時,故將DSE位設(shè)置為0。

        三、DS12C887讀寫操作時序分析

        DS12C887有Motorola和INTEL兩種讀寫操作時序,下面分析常用的INTEL時序。

        (一)INTEL讀時序

        讀操作是指單片機(jī)從DS12C887某個地址的寄存器里讀出數(shù)據(jù)(時、分、秒數(shù)等),包括寫地址和讀數(shù)據(jù)兩部分。首先將CS置低讓DS12C887正常工作,然后將AS、DS、RW置高,此時將待讀取的寄存器地址通過單片機(jī)P0口寫入DS12C887,接著將AS拉低,這樣就將待讀取的寄存器地址鎖存住了。接著讀取數(shù)據(jù),在讀取數(shù)據(jù)之前先將DS拉低,此時就將待讀取的數(shù)據(jù)通過單片機(jī)P0口讀出來了。最后將AS、DS、CS都置高,以便為下一次讀取新的數(shù)據(jù)做準(zhǔn)備。

        (二)INTEL寫時序

        寫操作是指單片機(jī)向DS12C887某個地址的寄存器里寫入數(shù)據(jù)(時、分、秒數(shù)等),因此包括寫地址和寫數(shù)據(jù)兩部分。首先將CS置低讓DS12C887正常工作,然后將AS、DS、RW置高,此時將待寫入的寄存器地址通過單片機(jī)P0口寫入DS12C887,接著將AS拉低,這樣就將待操作的寄存器地址鎖存住。接著寫數(shù)據(jù),在寫數(shù)據(jù)之前先將RW拉低,此時就將待寫入的數(shù)據(jù)通過單片機(jī)P0口寫入DS12C887。地址和數(shù)據(jù)都寫入至DS12C887之后,最后將AS、RW、CS都置高,以便為下一次寫入新的數(shù)據(jù)和地址做準(zhǔn)備。

        四、程序編寫

        讀操作和寫操作是DS12C887最關(guān)鍵的兩個操作,根據(jù)上文中對讀寫操作時序的分析,本文編寫了完整的DS12C887讀、寫操作函數(shù)以及初始化時鐘數(shù)值函數(shù),如下文所述,并給出相應(yīng)的程序注釋。

        (一)DS12C887讀操作函數(shù)

        uchar read(uchar add)∥讀數(shù)據(jù)

        {

        uchar dat;∥定義dat保存讀取的數(shù)據(jù)值

        cs=0;∥片選有效

        as=1;∥先將AS、DS、RW置高

        ds=1;

        rw=1;

        P0=add;

        as=0;∥此時地址寫入了時鐘芯片

        ds=0;∥將DS拉低,為讀取數(shù)據(jù)做準(zhǔn)備

        dat=P0;∥將讀取的數(shù)據(jù)存入dat變量

        ds=1;∥最后將DS、AS、CS置高,準(zhǔn)備下次讀數(shù)據(jù)

        as=1;

        cs=1;

        return(dat):∥將讀取的數(shù)據(jù)返回

        }

        (二)DSl2C887寫操作函數(shù)

        void write(uchar add,uchardat)∥寫數(shù)據(jù)

        {

        cs=0;∥片選有效

        as=1;∥先將AS、DS、RW置高

        ds=1;

        rw=1;

        P0=add;

        as=0;∥此時地址寫入了時鐘芯片

        rw=0;∥將RW拉低,為寫數(shù)據(jù)做準(zhǔn)備

        P0=dat;∥將數(shù)據(jù)dat通過P0口寫入時鐘芯片

        rw=1;∥最后將RW、AS、CS置高,準(zhǔn)備下次寫數(shù)據(jù)

        as=1;

        cs=1;

        }

        五、結(jié)語

        本文闡述了使用單片機(jī)和DS12C887設(shè)計電子萬年歷的方法,描述了DS12C887的特點、寄存器配置、讀寫操作時序,給出了完整的DS12C887讀寫操作程序代碼,并做了較為詳細(xì)的注釋。另外,由于1602液晶顯示操作和按鍵操作相對比較簡單,所以本文未予闡述。通過電子萬年歷的軟硬件設(shè)計和仿真,為以后在單片機(jī)設(shè)計領(lǐng)域開展更為深入地研究打下了基礎(chǔ)。

        猜你喜歡
        單片機(jī)
        基于單片機(jī)的SPWM控制逆變器的設(shè)計與實現(xiàn)
        電子制作(2019年13期)2020-01-14 03:15:28
        基于單片機(jī)的層次漸變暖燈的研究
        電子制作(2019年15期)2019-08-27 01:12:10
        基于單片機(jī)的多功能智能插排
        電子制作(2019年11期)2019-07-04 00:34:48
        基于單片機(jī)的便捷式LCF測量儀
        電子制作(2019年9期)2019-05-30 09:42:02
        小議PLC與單片機(jī)之間的串行通信及應(yīng)用
        電子制作(2018年12期)2018-08-01 00:48:04
        MSP430單片機(jī)在仿真中要注意的幾點問題
        電子制作(2017年9期)2017-04-17 03:00:53
        基于單片機(jī)的平衡控制系統(tǒng)設(shè)計
        電子制作(2017年19期)2017-02-02 07:08:27
        基于單片機(jī)的三維LED點陣設(shè)計
        電子制作(2016年21期)2016-05-17 03:52:51
        Microchip推出兩個全新PIC單片機(jī)系列
        基于Proteus的單片機(jī)控制系統(tǒng)的仿真設(shè)計
        久久综合九色综合97婷婷| 欧美一区二区午夜福利在线yw| 亚洲国产成人精品无码区二本| 亚洲成a人片在线观看天堂无码| 国内自拍偷拍亚洲天堂| 国产一区二区三区av观看| 一本久久a久久免费综合| 激性欧美激情在线| 国产一毛片| yw193.can尤物国产在线网页| 女优av福利在线观看| 日本高清在线播放一区二区| а天堂中文在线官网在线| 好大好深好猛好爽视频免费 | 人妻中文字幕乱人伦在线| 国产av人人夜夜澡人人爽| 中文字幕亚洲人妻系列| 国产另类人妖在线观看| 成人免费看aa片| 精品久久久久久无码国产| 亚洲日韩精品欧美一区二区三区不卡 | 成人欧美一区二区三区黑人| 毛片24种姿势无遮无拦| 亚洲欧美日韩高清一区二区三区| 日本一区二区三区在线视频播放| 亚洲精品久久久久久久蜜桃| 亚洲女人被黑人巨大进入| 久久婷婷免费综合色啪| 国产黑色丝袜在线看片| 精精国产xxxx视频在线播放| 久久精品免费无码区| 国产我不卡在线观看免费| 国产精品视频一区二区三区不卡| 精品一区二区三区在线观看| 色综合久久五月天久久久| 国产一区二区三区四色av| 精品无码一区在线观看| 久久99精品久久久久九色| 久亚洲精品不子伦一区| 亚洲裸男gv网站| 色爱无码A V 综合区|