• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于單片機(jī)的日歷時鐘模塊設(shè)計

      2010-03-26 07:32:10汪川樊澤明
      電子設(shè)計工程 2010年12期
      關(guān)鍵詞:字節(jié)寄存器時序

      汪川,樊澤明

      (西北工業(yè)大學(xué)自動化學(xué)院,陜西西安710129)

      在實時監(jiān)控系統(tǒng)的設(shè)計中,要實時監(jiān)測各個控制信號,更重要的是在發(fā)生故障時能準(zhǔn)確記錄故障數(shù)據(jù),以便準(zhǔn)確分析排除錯誤。監(jiān)控系統(tǒng)中一般都要定時采集現(xiàn)場數(shù)據(jù),對某些重要的信息不僅要記錄其內(nèi)容,還要記錄下該信息發(fā)生的準(zhǔn)確時間,所記錄的實時時間信息應(yīng)長期保存,因此需要實時時鐘來實現(xiàn)。常用的單片機(jī)沒有實時時鐘,若需采用定時器實現(xiàn),一旦系統(tǒng)掉電,時鐘就不能運行,這是實時監(jiān)控系統(tǒng)不允許的,而采用獨立運行的實時時鐘便可實現(xiàn)。但一般的時鐘芯片在系統(tǒng)掉電時,其數(shù)據(jù)也會丟失,需提供備用電池。而時鐘芯片DS12887在系統(tǒng)掉電時數(shù)據(jù)不丟失,廣泛應(yīng)用于測量和控制系統(tǒng)。因此,這里給出了實時時鐘DS12887在單片機(jī)應(yīng)用系統(tǒng)中的應(yīng)用。

      1 主要器件造型

      1.1 DS12887的功能介紹

      DS12887是DALLAS公司推出的8位并行并自帶RAM的實時日歷時鐘芯片,內(nèi)部有14個時鐘控制寄存器,包括10個時標(biāo)寄存器,4個狀態(tài)寄存器和114 bit作掉電保護(hù)用的低功耗RAM。CPU通過讀DS12887的內(nèi)部時標(biāo)寄存器得到當(dāng)前的時間和日歷,也可通過選擇二進(jìn)制或BCD碼初始化芯片的10個時標(biāo)寄存器,其4個狀態(tài)寄存器用來控制和指出DS12887的當(dāng)前工作狀態(tài),114 bit非易失性靜態(tài)RAM可在掉電時保存一些重要數(shù)據(jù)。DS12887功能強(qiáng)大,應(yīng)用廣泛。其引腳功能如下[1-2]:

      GND,VCC:直流電源+5 V電壓。當(dāng)5 V電壓在正常范圍內(nèi)時,數(shù)據(jù)可讀寫;當(dāng)VCC低于4.25 V,讀寫禁止,計時功能仍繼續(xù);當(dāng)VCC下降到3 V以下時,RAM和計時器被切換到內(nèi)部鋰電池。

      MOT(模式選擇):MOT引腳接到VCC時,選擇MOTOROLA時序,當(dāng)接到GFND時,選擇INTEL時序。

      SQW(方波信號):SQW引腳能從實時時鐘內(nèi)部15級分頻器的13個抽頭中選擇一個作為輸出信號,其輸出頻率可通過對寄存器A編程改變。

      AD0~AD7(雙向地址/數(shù)據(jù)復(fù)用線):總線接口,可與MOTOROLA微機(jī)系列和INTEL微機(jī)系列接口。

      AS(地址選通輸入):用于實現(xiàn)信號分離,在AD/ALE的下降沿把地址鎖入DS12887。

      DS(數(shù)據(jù)選通或讀輸入):DS/RD有2種操作模式,取決于MOT引腳的電平,當(dāng)使用MOTOROLA時序時,DS是一正脈沖,出現(xiàn)在總線周期的后段,稱為數(shù)據(jù)選通;在讀周期,DS指示DS12887驅(qū)動雙向總的時刻;在寫周期,DS的后沿使DS12887鎖存寫數(shù)據(jù)。選擇INTEL時序時,DS稱作(RD),RD與典型存儲器的允許信號(OE)的定義相同。

      R/Wˉ(讀/寫輸入):也有兩種操作模式。選MOTOROLA時序時,R/ˉW是一電平信號,指示當(dāng)前周期是讀或?qū)懼芷?,DSO為高電平時,R/ˉW高電平指示讀周期,R/Wˉ低電平指示寫周期;選INTEL時序,R/Wˉ信號是一低電平信號,稱為WR。在此模式下,R/W與通用RAM的寫允許信號(WE)的含義相同。

      CS(片選輸入):在訪問DS12887的總線周期內(nèi),片選信號必須保持為低。

      IRQ(中斷申請輸入):低電平有效,可作微處理的中斷輸入。沒有中斷條件滿足時,IRQ處于高阻態(tài)。IRQ線是漏極開路輸入,要求外接上接電阻。

      RESET(復(fù)位輸出):當(dāng)保持低電平時間大于200 ms,保證DS12887有效復(fù)位。

      DS12887引腳如圖1所示。

      DS12887的內(nèi)部地址分配[3]:地址00H和03H單元取值范圍是00H~3BH(十進(jìn)制為0~59);04H~05H單元按12小時制取值范圍是上午(AM)0lH~0CH(十進(jìn)制為l~12),下午(PM)51H~5CH(十進(jìn)制為81~92),按24小時制取值范圍是00H~17H(十進(jìn)制為0~23);06H單元的取值范圍是01H~07H(十進(jìn)制為l~7);07H單元取值范圍01H~1FH(十進(jìn)制為l~31);08H單元取值范圍是0lH~0CH(十進(jìn)制為l~12);09H單元取值范圍是00H~63H(十進(jìn)制為0~99)。

      圖1 DS12887引腳圖Fig.1 Pins of DS12887

      1.2 單片機(jī)A789C52簡介

      AT89C52是一個低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含8 kB的可反復(fù)擦寫的Flash只讀程序存儲器和256字節(jié)的隨機(jī)存取數(shù)據(jù)存儲器(RAM)。該器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元。AT89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,內(nèi)含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲器可有效降低開發(fā)成本。廣泛應(yīng)用于智能儀器、儀表和低功耗電子產(chǎn)品[4]。

      2 系統(tǒng)硬件設(shè)計

      2.1 DS12887的工作原理

      DS12887采用8位地址/數(shù)據(jù)復(fù)用的總線方式,具有一個鎖存引腳,通過讀、寫、鎖存信號實現(xiàn)其內(nèi)部數(shù)據(jù)的輸入輸出,控制內(nèi)部的控制寄存器、讀取內(nèi)部的時間信息寄存器。DS12887的各種寄存器在其內(nèi)部空間都有相應(yīng)的固定地址,因此,單片機(jī)通過正確的尋址和寄存器操作就可以獲取需要的時間信息。DS12887有2種工作時序,即Motorola和Intel時序,由Mot引腳的電平指定。當(dāng)MOT引腳為高電平時選擇Motorola時序;為低電平時選擇Intel時序。除此之外DS12887內(nèi)部還有128字節(jié)的RAM的單元,其中前10個字節(jié)用于存放日歷時鐘信息,字節(jié)0為秒,字節(jié)2為分,字節(jié)4為時,字節(jié)6為星期,字節(jié)7為日,字節(jié)8為月,字節(jié)9為年,字節(jié)0AH~0DH用作控制和狀態(tài)寄存器,剩下的114字節(jié)為用戶RAM,所有的這128字節(jié)都是掉電非易失性的。

      2.2 DS12887與單片機(jī)的接口設(shè)計

      單片機(jī)的P0口用作地址/數(shù)據(jù)復(fù)用總線與實時時鐘DS12887的AD0~AD7引腳相連。單片機(jī)的ALE引腳和DS12887的鎖存輸入引腳直接相連,用作地址鎖存,實現(xiàn)數(shù)據(jù)和地址線的分時復(fù)用。DS12887的MOT引腳接地,用以選擇Intel總線時序模式,在Intel總線時序模式時,和51單片機(jī)的接口完全兼容,可以將其讀輸入DS、寫輸入R/Wˉ與單片機(jī)的相應(yīng)引腳直接連接。DS12887的RESET引腳對日歷時鐘和RAM沒有影響,但影響DS12887的命令和狀態(tài)寄存器的內(nèi)容。在電路中直接將RESET連至Vcc,這樣可以保證DS12887在進(jìn)入或退出電源失效狀態(tài)時,其工作狀態(tài)不受RESET引腳的影響[5]。DS12887的可編程輸出方波引腳SQW輸出頻率為2~256 Hz的方波,該系統(tǒng)則利用SQW引腳輸出周期為125 ms的方波作為單片機(jī)外部中斷/INT0的中斷源,實現(xiàn)周期性中斷。當(dāng)中斷發(fā)生時,單片機(jī)讀一次輸入口,檢查電表是否轉(zhuǎn)過一圈,整點時還要采一次三相電流和電壓。

      DS12887與單片機(jī)的硬件接口電路如圖2所示。

      圖2 DS12887與單片機(jī)的硬件接口圖Fig.2 Hardware circuit of DS12887 and MCU

      3 系統(tǒng)軟件設(shè)計

      3.1 主程序

      主程序主要包括:系統(tǒng)初始化、獲取串口數(shù)據(jù)、設(shè)置日歷時鐘芯片、獲取時鐘芯片的時間信息和時鐘校正、顯示等子程序。初始化子程序主要包括設(shè)置單片機(jī)的串口和定時器的初始化,日歷時鐘芯片初始參數(shù)和驅(qū)動芯片的初始化等。主程序流程圖如圖3所示。

      圖3 主程序流程圖Fig.3 Flow chart of main program

      3.2 設(shè)置日歷時鐘子程序

      在使用DS12887時,首先要初始化,主要是打開晶振、對控制寄存器A、B寫入控制字以及對日歷、時鐘各寄存器寫入初始值。除校時外,上電時不用再次初始化。第一次初始化時,應(yīng)禁止操作DS12887內(nèi)部更新周期,即先將寄存器B的SET位置“l(fā)”,然后初始化時標(biāo)寄存器(00H~09H)和狀態(tài)寄存器A,再通過讀寄存器C清除中斷標(biāo)志,讀寄存器D將VRT位置“1”,最后將寄存器B的SET位清零,DS12887開始計時。

      設(shè)置日歷時鐘,必須保證時鐘芯片DS12887處于設(shè)置狀態(tài),即SET=1,然后向DS12887的專用寄存器寫入時間信息,寫入完畢后,DS12887恢復(fù)正常數(shù)據(jù)更新狀態(tài),即SET=0。在讀取日歷時鐘芯片DS12887的時鐘信息時,必須保證UIP=0,然后讀取存儲其內(nèi)部寄存器的時鐘信息。

      為了能夠方便地顯示時間和校正時鐘[6],可在單片機(jī)中的用戶寄存器中開辟特殊的時間地址單元作為顯示緩沖區(qū),分別放置“年,月,日,時,分,秒”等值。此時只要將DS12887中的時間值讀入到用戶開辟的時間地址中,用戶就可以方便控制時間。

      DS12887的日歷時鐘通過中斷和查詢2種方法讀出。但在讀數(shù)據(jù)時,首先要判斷數(shù)據(jù)是否更新結(jié)束,只有在數(shù)據(jù)更新結(jié)束時數(shù)據(jù)讀出才有效。DS12887的時間讀取和時鐘校正子程序流程圖如圖4所示。

      4 結(jié)束語

      圖4 DS12887的時間讀取和校正子程序流程圖Fig.4 Flow chart of time reading and arrection subroutine of DS12887

      以日歷時鐘芯片DS12887為例,介紹了一種該器件與單片機(jī)AT89C52的簡單實用的硬件接口電路[7-8],該電路設(shè)計簡單可靠,性能穩(wěn)定,適用于那些對計時精度要求較高的系統(tǒng),例如在列車制動電子控制單元中,應(yīng)用DS12887提供準(zhǔn)確的時間來保存數(shù)據(jù),并安裝在制動控制裝置內(nèi),對列車制動和防滑控制。記錄、捕捉故障出現(xiàn)時間及了解故障發(fā)生時間前后信號變化的情況,并通過列車總線將故障信息傳送給監(jiān)控裝置,以便列車司機(jī)及時地采取相應(yīng)措施,這些對保障列車安全可靠運行有著重要意義。

      [1]彭冬明,韋友春.單片機(jī)實驗教程[M].北京:北京理工大學(xué)出版社,2007.

      [2]雷思孝.單片機(jī)原理及實用技術(shù)[M].西安:西安電子科技大學(xué)出版社,2005.

      [3]田富洋,李晉陽,李法德,等.DS12C887在單片機(jī)系統(tǒng)中的應(yīng)用[J].電測與儀表,2005,42(3):61-63.

      TIAN Fu-yang,LI Jin-yang,LI Fa-de,et al.The application of DS12C887 in SCM[J].Electrical Measurement and Instrumentation,2005,42(3):61-63.

      [4]戴佳,苗龍.51單片機(jī)應(yīng)用系統(tǒng)開發(fā)典型實例[M].北京:中國電力出版社,2005.

      [5]張康,郭育華,湯堅,等.基于DS12887的功率補(bǔ)償控制器設(shè)計[J].電子設(shè)計工程,2007(11):58-61.

      ZHANG Kang,GUO Yu-hua,TANG Jian,et al.Design of power factor compensation controller based on DS12887[J].Electronic Design Engineering,2007(11):58-61.

      [6]李根岱.可校準(zhǔn)實時時鐘芯片的研究和設(shè)計[D].武漢:華中科技大學(xué),2007.

      [7]姜書政,王桂海.基于AT89S52單片機(jī)的電機(jī)控制系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2010,33(7):138-140.

      JIANG Shu-zheng,WANG Gui-hai.Design of electric motor control system based on AT89S52 single chip computer[J].Modern Electronics Technique,2010,33(7):138-140.

      [8]余鳳翎,詹彤,蔡智圣.基于AT89C52網(wǎng)絡(luò)監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2009,32(1):135-138.

      YU Feng-ling,ZHAN Tong,CAI Zhi-sheng.Design and implementation network monitoring system based on AT89C52[J].Modern Electronics Technique,2009,32(1):135-138.

      猜你喜歡
      字節(jié)寄存器時序
      時序坐標(biāo)
      基于Sentinel-2時序NDVI的麥冬識別研究
      No.8 字節(jié)跳動將推出獨立出口電商APP
      Lite寄存器模型的設(shè)計與實現(xiàn)
      No.10 “字節(jié)跳動手機(jī)”要來了?
      簡談MC7字節(jié)碼
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      一種毫米波放大器時序直流電源的設(shè)計
      電子制作(2016年15期)2017-01-15 13:39:08
      DPBUS時序及其設(shè)定方法
      河南科技(2014年15期)2014-02-27 14:12:36
      高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
      中方县| 杭州市| 左贡县| 安西县| 凤城市| 武城县| 色达县| 青阳县| 融水| 松溪县| 微博| 西贡区| 河南省| 辉县市| 儋州市| 太湖县| 民县| 辛集市| 凤翔县| 张家港市| 海丰县| 沙坪坝区| 同心县| 伊川县| 邯郸县| 巴南区| 杂多县| 吉林省| 乌拉特后旗| 安岳县| 图木舒克市| 惠州市| 霍山县| 郴州市| 三河市| 义乌市| 济宁市| 镇宁| 松溪县| 准格尔旗| 安平县|