電子大賽29店主制作protues仿真系統(tǒng)6套_第1頁
電子大賽29店主制作protues仿真系統(tǒng)6套_第2頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、.DS1302 的性能特性(1)實時時鐘,可以對秒 分 時 日 周 月以及帶潤年補償?shù)哪赀M行計算(2)用于高速數(shù)據(jù)暫存的 310*8位RAM(3)最少引腳的串行I/O(4)2.55.5V 電壓的工作范圍(5)在 2.5V 是耗電小于 300nA(6)用于時鐘或RAM 數(shù)據(jù)讀/寫的單字節(jié)或多字節(jié)數(shù)據(jù)轉(zhuǎn)送方式(7)簡單的 3 線接口(8)可選的慢速充電的能力DS1302 時鐘包括實時時鐘/日歷和 31 字節(jié)的靜態(tài) RAM 。它經(jīng)過一個簡單的串行接口與微處理器通信。實時時鐘/日歷提供秒 分 時 日 周 月和年等信息。對小于 31 天的月和月末的日期會自動進行調(diào)整,還包括閏年校正的功能。時鐘的運行可以

2、采用 24H 或帶 AM(上午)/PM(下午)的 12H 格式。采用 3 線接口與 CPU 進行同步通信,并可以采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或 RAM 數(shù)據(jù)。DS1302 有主要電源/后備電源雙電源引腳:Vcc1 在單電源與電池供 的系統(tǒng)中提供低電源,并提供低功率的電池備份; Vcc2 在雙電源系統(tǒng)中提供主電源,在這中運用方式中,Vcc1 連接到備份電,以便在沒有主電源的情況下能保存時間信息以及數(shù)據(jù)。DS1302 由 Vcc1 或 Vcc2 中較大的供電。當(dāng) Vcc2 大于 Vcc1+0.2V 時,Vcc2 給 DS1302 供電;當(dāng)Vcc2 小于 Vcc1 時,DS1302 由Vc

3、c1 供電。2. DS1302 數(shù)據(jù)操作原理DS1302 在任何傳送時必須先初始化,把 RST 腳置為高點平,然后把 8 位地址和命令字裝入移位寄存器,數(shù)據(jù)在SCLK 的上升沿被輸入。無論是讀周期還是寫周期,開始 8 位指令外的時鐘周期在讀操作時輸出數(shù)據(jù),把命令字節(jié)裝入移位寄存器之后,另外的時鐘周期在讀操作數(shù)撕輸出據(jù)。在寫操作時寫入數(shù)據(jù)。時鐘脈沖的個數(shù)在單字節(jié)方式下為 8 加 8,在多字節(jié)方式下為 8 加字節(jié)數(shù),最大可以達 248 字節(jié)數(shù)。如果在傳送過程中置 RST 腳為低電平,則會終止本次數(shù)據(jù)傳送,并且 I/O 引腳變?yōu)閼B(tài)。上電運行時,在 Vcc22.5V 之前,RST 腳必須保持低電平。只

4、有在SCLK 為低電平時,才能將 RST 置為。DS1302 的引腳及必須保持結(jié)構(gòu)圖如圖 3 所示,表 1 為各引腳的功能DS1302 的控制字如圖 4 所示??刂谱止?jié)的最高有效位必須是邏輯 1;如果它為 0,則不能把數(shù)據(jù)寫入到DS1302 中。位 6 如果為 0,則表示存取日歷時鐘數(shù)據(jù);為 1 表示存取RAM 數(shù)據(jù)。為 51(A4A0)指示操作單元的地址。最低有效位(位 0)如為 0,表示要進行寫操作;為 1 表示進行讀操作。控制字節(jié)總是從低位開始輸入/輸出。圖 4 DS1302 控制字復(fù)位和時鐘控制:數(shù)據(jù)傳輸?shù)膯邮怯?/RST 置為開始的,/RST 啟動控制邏輯,允許地址 / 命令序列進

5、入移位寄存器,一個時鐘周期是一個下降沿跟隨一個上升沿 。數(shù)據(jù)輸入時,在時鐘上升沿數(shù)據(jù)必須有效,如果/RST變低,所有數(shù)據(jù)傳送即被終止,I/O 引腳到一個狀態(tài)。 在電源充電過程中,/RST 必須保持邏輯 0,直到 Vcc2 大于 2.0V 在 /RST 由 0 變 1 的過程中,SCLK 必須是邏輯 0。數(shù)據(jù)輸入:輸入寫命令字節(jié) 8 個時鐘周期之后,在下 8 個時鐘周期的上升沿輸入數(shù)據(jù),若有額外的SCLK 周期是不予理睬的,數(shù)據(jù)輸入開始位是位 0。數(shù)據(jù)輸出:輸入讀命令字節(jié) 8 個時鐘周期之后,在下 8 個時鐘周期的下降沿數(shù)據(jù)被送出 。 注意:第一個數(shù)據(jù)位被送出發(fā)生在寫命令字節(jié)最后一位的第一個下降

6、沿,數(shù)據(jù)輸出開始位為位 0。為了提高對 32 位地址的尋址能力(地址/命令位 15=邏輯 1)可以把時鐘/日歷或 RAM 寄存器規(guī)定為多字節(jié)方式。位 6 規(guī)定時鐘或RAM,而位 0 規(guī)定讀或?qū)憽T跁r鐘/日歷寄存器中的地址 931 或RAM 寄存器中的地址 31 不能數(shù)據(jù)。早多字節(jié)方式中,讀或?qū)憦牡刂?0 的位 0 開始。必須按數(shù)據(jù)傳輸?shù)拇涡驅(qū)懽钕鹊?8 個寄存器。但是,當(dāng)以多字節(jié)方式寫RAM 時,為了傳輸數(shù)據(jù)不必寫所以的 31 字節(jié)。不管是否寫了全部 31 字節(jié),所寫的每一字節(jié)都將傳送至RAM。DS1302 共有 12 個寄存器,其中有 7 個寄存器與日歷 時鐘相關(guān),存放的數(shù)據(jù)位為 BCD 碼

7、形式。其日歷、時間寄存器及控制字見表 2,其中奇數(shù)為讀操作,偶數(shù)為寫操作。時鐘暫停:秒寄存器的位 7 定義時鐘暫停位。當(dāng)他為 1 時,DS1302 停止振蕩,進入低功耗的備份方式。通常在對DS1302 進行寫操作時(如進行時鐘調(diào)整程序),停止振蕩。當(dāng)它為 0 時,時鐘將開始啟動。M/12-24 小時方式;時寄存器的位 7 定義為 12 或 24 小時方式選擇位。它為時,選擇 12小時方式。在此方式下,位 5 是M 位,此位是時表示 PM,低電平時表示 AM。在 2 小時方式下,位 5 第二個 10小時位(2023h)。DS1302 的晶振選用 32.768kHz,電容值為 6Pf,因為振蕩頻率

8、較低,也可以不接電容,對計時精度影響不大。;AT89S52 主控器總線發(fā)送接受數(shù)據(jù)程序頭文件;內(nèi)存數(shù)據(jù)定義;*tEQU 30h ; 數(shù)據(jù)位計數(shù)器t EQU 31h ; 數(shù)據(jù)字節(jié)計數(shù)器d EQU 32h ; 命令字節(jié)地址RcvDat EQU 40H ; 接收數(shù)據(jù)緩沖區(qū)XmtDat EQU 50H ; 發(fā)送數(shù)據(jù)緩沖區(qū);端口位定義IO_DATA EQU P1.3 ; 數(shù)據(jù)傳送總線SCLK EQU P1.4 ; 時鐘控制總線RST EQU P1.2 ; 復(fù)位總線;*;主程序部分;* *0000HAJMPMAIN 0030HMAIN:LCALL Write_Enable LCALLWrite_Multi

9、pyte ; 時間 初始化 寫入 1302 的寄存器后 只要不斷電這些寄存器會自動 以后只要 就可以了LCALLOsc_Enable ; 時間開始運行LCALL READ_Enable LOOP:LCALLRead_Multip yte ;讀出時間 這里如果循環(huán)顯示時間日期和 容易顯示亂碼 最好一直顯示分 0 秒程序設(shè)置如下;* * Write_Multipyte:MOVd,#0BEh ;命令字節(jié)為BEhMOVt,#8 ;多字節(jié)寫入模式此模塊為 8 個MOV R0,#XmtDat ;數(shù)據(jù)地址覆給 R0MOV XmtDat,#00h ;秒單元內(nèi)容為 59hMOV XmtDat+1,#00h ;分

10、單元內(nèi)容為 10hMOV XmtDat+2,#00h ;時單元內(nèi)容為 09hMOV XmtDat+3,#11h ;日期單元內(nèi)容為 09hMOV XmtDat+4,#11h ;月單元內(nèi)容為 11hMOV XmtDat+5,#04h ;單元內(nèi)容為 03hMOV XmtDat+6,#0 ;年單元內(nèi)容為 05hMOV XmtDat+7,#0 ;寫保護單元內(nèi)容為 00hACALL Send_Byte ;調(diào)用寫入數(shù)據(jù)子程序RET ;返回調(diào)用本子程序處 Read_Multipyte:MOVd,#0BFh ;命令字節(jié)為BFhMOVt,#8 ;多字節(jié)讀出模式此模塊MOV R1,#RcvDat ;數(shù)據(jù)地址覆給 R

11、1ACALL Receive_Byte ;調(diào)用讀出數(shù)據(jù)子程序RET ;返回調(diào)用本子程序處;*;發(fā)送數(shù)據(jù)程序;名稱:Send_Byte描述 發(fā)送t 個字節(jié)給被控器DS1302CLR C ;清進位位CMOVt,#08h ;接收位數(shù)為 8 R_Byte2:NOPMOV C,IO_DATA ;數(shù)據(jù)總線上的數(shù)據(jù)傳送給 CRRC A ;從最低位接收數(shù)據(jù)SETB SCLK;SCLK 時鐘總線置高NOPCLR SCLK ;時鐘下降沿接收數(shù)據(jù)有效 DJNZt,R_Byte2 ;位接收未完畢則繼續(xù)MOV R1,A;接收到的完整數(shù)據(jù)字節(jié)放入接收內(nèi)存緩沖區(qū)INC R1 ;接收數(shù)據(jù)的內(nèi)存地址加 1DJNZt,R_Byt

12、e1 ;字節(jié)接收未完畢則繼續(xù)NOPCLR RST ;邏輯操作完畢清RST RET;* *;顯示程序;* DISTIME:MOV A,40H ANL A,#0FH MOV 61H,A MOV A,40H ANL A,#0F0H SWAP A MOV 62H,A MOV A,41H ANL A,#0FH MOV 63H,A MOV A,41H ANL A,#0F0H SWAP A MOV 64H,AACALL DISPLAY RETDISPLAY: MOV R0,#61HMOV DPTR,#TABLOP:LCALLDISTIME ;顯示時間(00:00)AJMPLOOP;*;當(dāng)寫保護寄存器的最為

13、0 時允許數(shù)據(jù)寫入寄存器;當(dāng)寫保護寄存器的最為 1 時數(shù)據(jù)寫入寄存器;寫保護寄存器可以通過命令字節(jié) 8E/8F 來規(guī)定寫入/讀出;* Write_Enable:MOVd,#8Eh ;命令字節(jié)為 8EMOV ByteCnt,#1 ;單字節(jié)傳送模式MOV R0,#XmtDat ;數(shù)據(jù)地址覆給 R0MOV XmtDat,#00h ; 數(shù)據(jù)內(nèi)容為 0 寫入允許 ACALL Send_Byte ; 調(diào)用寫入數(shù)據(jù)子程序RET ;返回調(diào)用本子程序處 READ_Enable:MOVd,#8Fh ; 命令字節(jié)為 8EMOV ByteCnt,#1; 單字節(jié)傳送模式MOV R0,#XmtDat ;數(shù)據(jù)地址覆給 R0

14、MOV XmtDat,#00h ; 數(shù)據(jù)內(nèi)容為 0 寫入允許 ACALL Send_Byte ; 調(diào)用寫入數(shù)據(jù)子程序RET ;返回調(diào)用本子程序處;*;當(dāng)把秒寄存器的第 7 位時鐘停止位設(shè)置為 0 時起動時鐘開始;當(dāng)把秒寄存器的第 7 位; 命令字節(jié)地址在d中; 所 發(fā)送 數(shù)據(jù) 的字 節(jié)數(shù) 在 ByteCnt 中 發(fā) 送 的 數(shù) 據(jù) 在 XmtDat 緩沖區(qū)中;* Send_Byte:CLR RST ;復(fù)位引腳為低電平所有數(shù)據(jù)傳送終止NOPCLR SCLK ;清時鐘總線 NOPSETB RST ;復(fù)位引腳為高電平邏輯控制有效NOPMOV A,d ;準(zhǔn)備發(fā)送命令字節(jié)MOV BitCnt,#08h

15、;傳送位數(shù)為 8S_Byte0:RRC A ;將最低位傳送給進位位CMOV IO_D;位傳送至數(shù)據(jù)總線NOPSETB SCLK ;時鐘上升沿發(fā)送數(shù)據(jù)有效NOPCLR SCLK ;清時鐘總線 DJNZ BitCnt,S_Byte0 ;位傳送未完畢則繼續(xù)NOPS_Byte1: ;準(zhǔn)備發(fā)送數(shù)據(jù) MOV A,R0 ;傳送數(shù)據(jù)過程與傳送命令相同MOV BitCnt,#08h S_Byte2:RRC A MOV IO_D NOPSETB SCLK NOPCLR SCLKDJNZ BitCnt,S_Byte2MOV A,R0MOVC A,TR MOV R4,#08LOP0:RRC A MOV P1.6,C

16、SETB P1.7 CLR P1.7DJNZ R4,LOP0 INC R0CJNE R0,#65H,LOP RETTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,7 1HEND時鐘停止位設(shè)置為 1 時時鐘振蕩器停止 HT1380 進入低功耗方式;* Osc_Enable:MOVd,#80h ; 命令字節(jié)為 80MOVt,#1 ; 單字節(jié)傳送模式MOV R0,#XmtDat ;數(shù)據(jù)地址覆給 R0MOV XmtDat,#00h ; 數(shù)據(jù)內(nèi)容為 0 振蕩器ACALL Send_Byte ; 調(diào)用寫入數(shù)據(jù)子程序RET

17、 ;返回調(diào)用本子程序處;* *;當(dāng)命令字節(jié)為 BE 或 BF時 DS1302 工作在多字節(jié)傳送模式 8 個時鐘/日歷寄存器從寄存器 0 地址開;始連續(xù)讀寫從 0 位開始的數(shù)據(jù)當(dāng)命令字節(jié)為 FE或 FF 時 DS1302 工作在多字節(jié) RAM 傳送模式 31個;RAM 寄存器從 0 地址開始連續(xù)讀寫從 0 位開始的數(shù)據(jù);例如寫入 05 年 11 月 09日三 00 時 00INC R0 ;發(fā)送數(shù)據(jù)的內(nèi)存地址加 1DJNZt,S_Byte1 ;字節(jié)傳送未完畢則繼續(xù)NOPCLR RST; 邏輯操作完畢清RST RET;*;接收數(shù)據(jù)程序;名稱:Receive_Byte;描述:從被控器 DS1302 接收t 個字節(jié)數(shù)據(jù); 命令字節(jié)地址在d中; 所 接收 數(shù)據(jù) 的字 節(jié)數(shù) 在t 中 接 收 的 數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論