


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、工程12簡(jiǎn)易萬(wàn)年歷學(xué)習(xí)目標(biāo)1、 通過對(duì)萬(wàn)年歷的設(shè)計(jì),進(jìn)一步熟練掌握單片機(jī)編程的方法和思想;2、 通過對(duì)萬(wàn)年歷的設(shè)計(jì),掌握時(shí)鐘芯片DS1302的使用方法;3、 通過對(duì)萬(wàn)年歷的設(shè)計(jì),增強(qiáng)對(duì)單片機(jī)的興趣及動(dòng)手能力, 并在此過程中學(xué)會(huì)對(duì)程序的 逐步調(diào)試;工程導(dǎo)入t:Stc89c51圖1總體框架圖8位8段數(shù)碼管作為顯利用DS1302芯片進(jìn)行計(jì)時(shí),并且可以與單片機(jī)進(jìn)行數(shù)據(jù)交換;示局部。相關(guān)知識(shí)DS1302是DALLAS公司推出的涓流充電時(shí)鐘芯片,內(nèi)含有一個(gè)實(shí)時(shí)時(shí)鐘、日歷和 31字 節(jié)靜態(tài)RAM,通過簡(jiǎn)單的串行接口與單片機(jī)進(jìn)行通信實(shí)時(shí)時(shí)鐘/日歷電路。提供秒分時(shí)日日,僅需用期?月年的信息,每月的天數(shù)和閏年的天
2、數(shù)可自動(dòng)調(diào)整時(shí)鐘操作可通過AM/PM指示決定采用 24或12小時(shí)格式。DS1302與單片機(jī)之間能簡(jiǎn)單地米用同步串行的方式進(jìn)行通信到三個(gè)口線:1-RES復(fù)位,2-I/O數(shù)據(jù)線,3-SCLK串行時(shí)鐘。時(shí)鐘/RAM的讀/寫數(shù)據(jù)以一 個(gè)字節(jié)或多 達(dá)31個(gè)字節(jié)的字符組方式通信。DS1302應(yīng)用原理圖如圖2所示:GNDvccS1 mAI I1%ll 1Il J 節(jié)Y1If7 pdJ扌of P3.64* PJRST圖2DS1302原理圖各引腳功能如下:Vcc1 :主電源;Vcc2 :備份電源。當(dāng) Vcc2Vcc1+0.2V 時(shí),由 Vcc2 向 DS1302 供電,當(dāng) Vcc2 Vcc1 時(shí),由Vcc1向D
3、S1302供電;SCLK :串行時(shí)鐘,輸入,控制數(shù)據(jù)的輸入與輸出;I/O:三線接口時(shí)的雙向數(shù)據(jù)線;CE :輸入信號(hào),在讀、寫數(shù)據(jù)期間,必須為高。該引腳有兩個(gè)功能:第一,CE開始控制字訪問移位存放器的控制邏輯;其次,CE提供結(jié)束單字節(jié)或多字節(jié)數(shù)據(jù)傳輸?shù)姆椒?。?1 DS1302管腳X1 X232.758KHZ晶振管腳GND地RST復(fù)位I/O數(shù)據(jù)輸入/輸出引腳SCLK串行時(shí)鐘Vcc1 Vcc2電源供電管腳(1)時(shí)鐘芯片DS1302的工作原理:DS1302在每次進(jìn)行讀、寫程序前都必須初始化,先把SCLK端置 “ C接著把RST端置“1最后才給予SCLK脈沖;讀/寫時(shí)序如下列圖所示。為DS1302的控
4、制字,此控制字的位7必須置1,假設(shè)為0那么不能把對(duì)DS1302進(jìn)行讀寫數(shù)據(jù)。對(duì)于位 6,假設(shè)對(duì)程序進(jìn)行讀/寫時(shí)RAM=1 ,對(duì)時(shí)間進(jìn)行讀/ 寫時(shí),CK=0。位1至位5指操作單元的地址。位 0是讀/寫操作位, 進(jìn)行讀操作時(shí),該位為 1;該位為0 那么表示進(jìn)行的是寫操作??刂谱止?jié)總是從最低位開始輸入/輸出的。表6為DS1302的日歷、時(shí)間存放器內(nèi)容:“ CH是時(shí)鐘暫停標(biāo)志位,當(dāng)該位為1時(shí),時(shí)鐘振蕩器停止,DS1302處于低功耗狀態(tài);當(dāng)該位為0時(shí),時(shí)鐘開始運(yùn)行?!?WP是寫保護(hù)位,在任何的對(duì)時(shí)鐘和 RAM的寫操作之前, WP必須為0。當(dāng)“ WP為1時(shí),寫保護(hù)位防止對(duì)任一存放器的寫操作。DS1302的
5、控制字節(jié)DS1302的控制字如表-1所示??刂谱止?jié)的高有效位位7必須是邏輯1 ,如果它為0,那么不能把數(shù)據(jù)寫入 DS1302中,位6如果0,那么表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位位0如為0表示要進(jìn)行寫操作,為3數(shù)據(jù)輸入輸出I/O在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開始輸出8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出從低位即位0開始。同樣,在緊跟DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位到高位7。如下列圖1所示単字節(jié)諛d5CJUE.小TLrJ bJJTLTL
6、T VI/OAO-A2A3MDID2年字節(jié)寫h.i b| “ u I m_rJ1/3/MJALA2A3A4丄乂。ClDZ圖3DS1302讀/寫時(shí)序圖DS1302的存放器BCDDS1302有12個(gè)存放器,其中有 7個(gè)存放器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為碼形式,其日歷、時(shí)間存放器及其控制字見表-3。表-3 DS1302的日歷、時(shí)間存放器寫寄存器讀寄存器Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit080H81HCH10秒秒82H83H10分分84H85H12 / 24010時(shí)時(shí)AM /PM86H87H0010日日88H89H00010月月8AH8BH00000星期8CH8DH10
7、年年8EH8FHWP0000000此外,DS1302還有年份存放器、控制存放器、充電存放器、時(shí)鐘突發(fā)存放器及與RAM相關(guān)的存放器等。時(shí)鐘突發(fā)存放器可一次性順序讀寫除充電存放器外的所有存放器內(nèi)容。DS1302與RAM相關(guān)的存放器分為兩類:一類是單個(gè)RAM單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為COH- FDH其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM存放器,此方式下可一次性讀寫所有的RAM的31個(gè)字節(jié),命令控制字為FEH 寫、FFH 讀。任務(wù)實(shí)施1硬件設(shè)計(jì)工作原理最根本局部是利用DS1302芯片的時(shí)鐘功能,單片機(jī)只需要給DS1302初值,然后不斷的從DS130
8、2中讀取數(shù)據(jù)并在數(shù)碼管中顯示,減少了單片機(jī)內(nèi)部資源的占用卜narkTT圖4系統(tǒng)硬件原理圖(2)軟件設(shè)計(jì)程序文件1 : / 1)-DS1302.H#ifndef DS1302 H #define DS1302 H/-包含頭文件-/#in clude#in clude/-重定義關(guān)鍵詞-/#if ndef uchar#defi ne uchar un sig ned char#en dif#if ndef uint#defi ne uint un sig ned int#en dif/-定義 ds1302 使用的 10 口 -/sbit DSIO=P3 A4;sbit RST=P3A5;sbit S
9、CLK=P3A6;/- 定義全局函數(shù) -/void Ds1302Write(uchar addr, uchar dat); uchar Ds1302Read(uchar addr);void Ds1302Init();void Ds1302ReadTime();/- 參加全局變量 -/ extern uchar TIME7; / 參加全局變量#endif程序文件 2 :/ 2)-DS1302.c#includeds1302.h/-DS1302 寫入和讀取時(shí)分秒的地址命令-/- 秒分時(shí)日月周年 最低位讀寫位 ; /uchar codeuchar code READ_RTC_ADDR7 = 0x8
10、1, 0x83, 0x85, 0x87, 0x89, 0x8b, 0x8d; WRITE_RTC_ADDR7 = 0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c;-/-DS1302 時(shí)鐘初始化 2021 年 1 月 1 日星期二 12 點(diǎn) 00 分 00 秒。 - - 存儲(chǔ)順序是秒分時(shí)日月周年 ,存儲(chǔ)格式是用 BCD 碼 -/ uchar TIME7 = 0, 0, 0x12, 0x01, 0x01, 0x02, 0x13;* 函 數(shù) 名: Ds1302Write* 函數(shù)功能: 向 DS1302 命令地址 +數(shù)據(jù)* 輸 入: addr , dat* 輸 出:
11、無(wú)*void Ds1302Write(uchar addr , uchar dat) uchar n;RST = 0;_nop_();SCLK = 0;/先將SCLK置低電平 _nop_();RST = 1; /然后將RST(CE置高電平 _nop_();for (n=0; n= 1;SCLK = 1;/數(shù)據(jù)在上升沿時(shí),DS1302讀取數(shù)據(jù)_nop_(); SCLK = 0;_nop_();for (n=0; *8; n+)/ 寫入 8 位數(shù)據(jù)DSIO = dat & 0x01;dat = 1;SCLK = 1;/數(shù)據(jù)在上升沿時(shí),DS1302讀取數(shù)據(jù)_nop_();SCLK = 0;_nop_
12、();RST = 0;/傳送數(shù)據(jù)結(jié)束_nop_();* 函數(shù)名:Ds1302Read*函數(shù)功能:讀取一個(gè)地址的數(shù)據(jù)*輸入:addr*輸出:dat* /uchar Ds1302Read(uchar addr)uchar n ,dat,dat1;RST = 0;_nop_();SCLK = 0;/先將SCLK置低電平。_nop_();RST = 1;/然后將RST(CE置高電平。_nop_();for(n=0; *8; n+)/ 開始傳送八位地址命令DSIO = addr & 0x01 ;/數(shù)據(jù)從低位開始傳送 addr = 1; SCLK = 1;/數(shù)據(jù)在上升沿時(shí),DS 1 302讀取數(shù)據(jù)_nop
13、_();SCLK = 0;/DS1302 下降沿時(shí),放置數(shù)據(jù)_nop_();_nop_();for(n=0; *8; n+) 讀取 8 位數(shù)據(jù)datl = DSIO;/從最低位開始接收dat = (dat1) | (dat17);SCLK = 1;_nop_();SCLK = 0;/DS1302 下降沿時(shí),放置數(shù)據(jù) _nop_();RST = 0;_nop_(); /以下為DS1302復(fù)位的穩(wěn)定時(shí)間,必須的SCLK = 1;_nop_();DSIO = 0;_nop_();DSIO = 1;_nop_();return dat;*函數(shù)名Ds1302l nit函數(shù)功能初始化DS1302*void
14、 Ds1302l nit()uchar n;Ds1302Write(0x8E,0X00);/禁止寫保護(hù),就是關(guān)閉寫保護(hù)功能for (n=0; *7; n+) 寫入7個(gè)字節(jié)的時(shí)鐘信號(hào):分秒時(shí)日月周年Ds1302Write(WRITE_RTC_ADDR n,TIME n );/翻開寫保護(hù)功能Ds1302Write(0x8E,0x80);*函數(shù)名函Ds1302ReadTime數(shù)功能輸讀取時(shí)鐘信息*/void Ds1302ReadTime()uchar n;for (n=0; *7; n+) 讀取7個(gè)字節(jié)的時(shí)鐘信號(hào):分秒時(shí)日月周年TIME n = Ds1302Read(READ_RTC_ADDR n)
15、;程序文件3 :/ 2)-mai n.c*實(shí)驗(yàn)名:DS1302時(shí)鐘顯示試驗(yàn)*實(shí)驗(yàn)說明:數(shù)碼管顯示時(shí)鐘信息*連接方式:見連接圖*注意:*#in clude#i ncludeds1302.h/-定義使用的10-/#defi ne GPI0_DIG P0 sbit LSA=P2 A2;sbit LSB=P2A3;sbit LSC=P2A4;/-定義全局變量 -/un sig ned char code DIG_CODE17= 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; 0、1、2、3
16、、4、5、6、7、8、9、A b、C、d、E、F 的顯示碼 unsigned char DisplayData8;/用來存放要顯示的8位數(shù)的值 /-聲明全局變量-/ void DigDisplay();*函數(shù)名:mai n*函數(shù)功能:主函數(shù)*輸入:無(wú)*輸出:無(wú)*void mai n()Ds1302I ni t(); while(1)Ds1302ReadTime();DisplayData0DIG_CODETIME2/16;/時(shí)= DisplayData1DIG_CODETIME2&0x0f;= DisplayData20x40;= DisplayData3DIG_CODETIME1/16;/分
17、= DisplayData4DIG_CODETIME1&0x0f;DisplayData5 = 0x40;DisplayData6 = DIG_CODETIME0/16;/ 秒DisplayData7 = DIG_CODETIME0&0x0f;DigDisplay();* 函 數(shù) 名* 函數(shù)功能* 輸入* 輸出: DigDisplay: 使用數(shù)碼管顯示: 無(wú): 無(wú)*void DigDisplay()unsigned char i;unsigned int j; for(i=0;i8;i+)switch(i) / 位選,選擇點(diǎn)亮的數(shù)碼管,case(0):LSA=O;LSB=O;LSC=O; br
18、eak; 顯示第 0 位 case(1):LSA=1;LSB=0;LSC=0; break;顯示第1 位case(2):LSA=0;LSB=1;LSC=0; break;顯示第2 位case(3):LSA=1;LSB=1;LSC=0; break;顯示第3 位case(4):LSA=0;LSB=0;LSC=1; break;顯示第4 位case(5):LSA=1;LSB=0;LSC=1; break;顯示第5 位case(6):LSA=0;LSB=1;LSC=1; break;顯示第6 位case(7):LSA=1;LSB=1;LSC=1; break;顯示第7 位GPIO_DIG=Displ
19、ayDatai; 發(fā)送段碼j=50;/ 掃描間隔時(shí)間設(shè)定while(j-);GPIO_DIG=0x00; 消隱知識(shí)拓展DS12887 是美國(guó)達(dá)拉斯半導(dǎo)體公司推出的并行時(shí)鐘芯片,采用 片所需的晶振和外部鋰電池相關(guān)電路集于芯片內(nèi)部,同時(shí)它與目前 鐘芯片 MC146818B 和 DS1287 管腳兼容,可直接替換。采用CMOS 技術(shù)制成,把時(shí)鐘芯IBM AT 計(jì)算機(jī)常用的時(shí)DS12887 芯片設(shè)計(jì)的時(shí)鐘電路勿需任何外圍電路并具有良好的微機(jī)接口DS12887 芯片具有微功耗、外圍接口簡(jiǎn)單、精度高、工作穩(wěn)定可靠等優(yōu)點(diǎn),可廣泛用于各種需要較高精度的實(shí)時(shí)時(shí)鐘場(chǎng)合中。其主要功能如下:(1) 內(nèi)含一個(gè)鋰電池,斷電情況
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)校點(diǎn)對(duì)點(diǎn)管理制度
- 學(xué)校英語(yǔ)組管理制度
- 學(xué)生資助政管理制度
- 安全督察與管理制度
- 完善倉(cāng)儲(chǔ)及管理制度
- 實(shí)訓(xùn)室雙人管理制度
- 審批服務(wù)局管理制度
- 客用品收發(fā)管理制度
- 家具廠生產(chǎn)管理制度
- 家庭服務(wù)與管理制度
- 眩暈綜合癥的護(hù)理查房
- 海洋法知到智慧樹章節(jié)測(cè)試課后答案2024年秋中國(guó)海洋大學(xué)
- 2025魯教版高中地理必修一知識(shí)點(diǎn)歸納總結(jié)(復(fù)習(xí)必背)
- 2025年上半年廣東汕尾市城區(qū)招聘政府聘員69人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025版MCN公司藝人合作簽約合同范本3篇
- 《玻璃體腔注射治療》課件
- GB/T 45098-2024營(yíng)運(yùn)純電動(dòng)汽車換電服務(wù)技術(shù)要求
- 2025年中考英語(yǔ)話題作文范文20篇
- 政府經(jīng)濟(jì)學(xué)-電大易考通考試題目答案 (一)
- 公交車駕駛員安全培訓(xùn)
- 山西省云時(shí)代技術(shù)有限公司筆試題庫(kù)
評(píng)論
0/150
提交評(píng)論