




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、“可校準(zhǔn)實(shí)時(shí)時(shí)鐘”設(shè)計(jì)說明1 程序設(shè)計(jì)框架說明本案例程序設(shè)計(jì)主要分為:DS1302、按鍵掃描三個(gè)模塊。1.1宏定義#define uchar unsigned char /宏定義#define uint unsigned int#define ADC_CHS1_7 0X07/*時(shí)分秒寫寄存器*/#define DS1302_SECOND_WRITE 0x80#define DS1302_MINUTE_WRITE 0x82#define DS1302_HOUR_WRITE 0x84 #define DS1302_WEEK_WRITE 0x8A#define DS1302_DAY_WRITE 0x
2、86#define DS1302_MONTH_WRITE 0x88#define DS1302_YEAR_WRITE 0x8C#define ADC_POWER 0X80#define ADC_FLAG 0X10 /當(dāng)A/D轉(zhuǎn)換完成后,ADC_FLAG要軟件清零#define ADC_START 0X08#define ADC_SPEED_90 0X60/*時(shí)分秒讀寄存器*/#define DS1302_SECOND_READ 0x81#define DS1302_MINUTE_READ 0x83#define DS1302_HOUR_READ 0x85 #define DS1302_WEEK
3、_READ 0x8B#define DS1302_DAY_READ 0x87#define DS1302_MONTH_READ 0x89#define DS1302_YEAR_READ 0x8D#defineP1_7_ADC 0x802.2引腳定義/*DS1302*/sbit Rtc_sclk = P15;/時(shí)鐘線引腳,控制數(shù)據(jù)的輸入與輸出sbit Rtc_rst = P16;/CE線引腳,讀、寫數(shù)據(jù)時(shí)必須置為高電平sbit Rtc_io = P54;/實(shí)時(shí)時(shí)鐘的數(shù)據(jù)線引腳/*數(shù)碼管顯示*/sbit Led_sel = P23;/流水燈和數(shù)碼管選通引腳sbit Sel0 = P20;/Sel0
4、、Sel1、Sel2三位二進(jìn)制進(jìn)行數(shù)碼管位選0-7 sbit Sel1 = P21;sbit Sel2 = P22;sbit KEY1=P32; /Key1對(duì)應(yīng)引腳1.3 變量定義typedef struct _SYSTEMTIME_uchar Second;uchar Minute;uchar Hour;uchar Week;uchar Day;uchar Month;uchar Year;SYSTEMTIME; /定義的時(shí)間類型SYSTEMTIME t;/*時(shí)、分、秒標(biāo)志*/bit set_H_flag;bit set_Ms_flag;bit set_S_flag;/*時(shí)、分、秒值*/ui
5、nt set_H_val;uint set_Ms_val;uint set_S_val;bit set_HMS_done; /時(shí)分秒設(shè)置完bit show_set_HMS; /顯示時(shí)分秒bit show_HMS; /顯示時(shí)分秒bit show_key_val;unsigned char key_val;uchar flag; /所選擇點(diǎn)亮的數(shù)碼管0-7標(biāo)志位uchar temp; /要寫入到DS1302的數(shù)據(jù)uchar duanxuan;uchar weixuan;2、程序函數(shù)說明延時(shí)程序void Delayms(char i);DS1302讀寫函數(shù)void Ds1302_write(ucha
6、r temp);uchar Ds1302_read();void WriteDS1302(uchar Addr, uchar Data);uchar ReadDS1302(uchar cmd)SYSTEMTIME DS1302_GetTime();系統(tǒng)初始化void Init();void Init_key();ADC轉(zhuǎn)換unsigned char GetADC();檢測導(dǎo)航鍵unsigned char Fun_Keycheck();監(jiān)聽功能鍵,完成時(shí)分秒相關(guān)值的設(shè)置void Fun_Key_task_HMS();監(jiān)聽按鍵1,完成時(shí)分秒設(shè)置void Fun_key1();完成相關(guān)設(shè)置功能的操作
7、void Key_OFFON();初始化DS1302void Initial_DS1302(void);中斷顯示程序void timer0() interrupt 1初始化ADCvoid Init_ADC();2程序設(shè)計(jì)框架及關(guān)鍵技巧說明2.1 I/O引腳及相關(guān)寄存器配置 2.1.1 I/O引腳:(1)數(shù)碼管位選引腳整個(gè)設(shè)置P2口的值;(2)數(shù)碼管使能引腳sbit led_sel = P23 ;(3)DS1302引腳sbit rtc_sclk=P15; /時(shí)鐘線引腳sbit rtc_rst=P16; / CE線引腳sbit rtc_io=P54; /實(shí)時(shí)時(shí)鐘的數(shù)據(jù)線引腳 (4)按鍵引腳sbit
8、 KEY1 = P32 ;/設(shè)置時(shí)間 2.1.2寄存器:(1)DS1302相關(guān)寄存器其中:控制字寄存器:寫地址0x8E,讀地址0x8F位7:必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中。位6:如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);此程序中沒有涉及RAM存取數(shù)據(jù),所以位6置為0.位5位1(A4A0) :指示操作單元的地址;位0 :為0寫操作,為1讀操作。秒寄存器:位7:時(shí)間暫停位,為1時(shí)鐘振蕩器停止工作,為0時(shí),時(shí)鐘振蕩器啟動(dòng);初始化時(shí),要啟動(dòng)時(shí)鐘振蕩器,在禁止寫保護(hù)的情況下通過如下語句實(shí)現(xiàn):temp=ReadDS1302(DS1302_SECOND_READ)
9、&0x7f ;WriteDS1302(0x80,temp);/晶振開始工作小時(shí)寄存器:位7:12或24小時(shí)工作模式選擇位,為1時(shí)12小時(shí)工作模式,此時(shí)位5為AM/PM位,低電平對(duì)應(yīng) AM,高電平對(duì)應(yīng)PM;在 24 小時(shí)模式下,位5為第二個(gè)10小時(shí)位表示(2023 時(shí));寫保護(hù)寄存器:位7: WP 是寫保護(hù)位,工作時(shí)除WP 外的其他位都置為0, 寫操作之前WP必須為0,當(dāng)WP 為1時(shí)不能進(jìn)行寫操作。WriteDS1302(0x8E,0x00); /禁止寫保護(hù)位WriteDS1302(0x8E,0x80); /寫保護(hù)位置1(2) 定時(shí)器相關(guān)寄存器其中TMOD寄存器: 初始化時(shí),設(shè)置定時(shí)器0,工作模式1即16位不可重裝載模式,TMOD= 0x01 ;IE寄存器:初始化時(shí),設(shè)置EA=1,打開總的中斷,設(shè)置ET0=1開啟定時(shí)器0的中斷;TH0、TL0寄存器:同時(shí)還要設(shè)置TH0、TL0的初始值;TCON寄存器:初始化時(shí),設(shè)置TR0=1啟動(dòng)定時(shí)器0(3) A/D相關(guān)寄存器P1ASF寄存器: 初始化時(shí),設(shè)置P1ASF=P1_7_ADC(0x80),即P1.7口為模擬功能A/D使用;ADC_RES寄存器:初始化時(shí),設(shè)置ADC_RES=0x00;ADC_CONTR寄
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞動(dòng)合同勞務(wù)合同范例
- 公司合并協(xié)議合同范本
- 全職合同范本
- 醫(yī)院物業(yè)招聘合同范本
- 加盟快遞押金合同范本
- 單位電線更換維修合同范本
- 聲學(xué)顧問合同范本
- 單位車棚工程合同范本
- cpvc管購買合同范本
- ul認(rèn)證合同范本
- 2025電力物資檢儲(chǔ)配一體化建設(shè)技術(shù)導(dǎo)則
- 新學(xué)期 開學(xué)第一課 主題班會(huì)課件
- 民法典合同編講座
- 2024年青島港灣職業(yè)技術(shù)學(xué)院高職單招語文歷年參考題庫含答案解析
- 廣西壯族自治區(qū)公路發(fā)展中心2025年面向社會(huì)公開招聘657名工作人員高頻重點(diǎn)提升(共500題)附帶答案詳解
- 大學(xué)轉(zhuǎn)專業(yè)高等數(shù)學(xué)試卷
- DBJ51-T 198-2022 四川省既有民用建筑結(jié)構(gòu)安全隱患排查技術(shù)標(biāo)準(zhǔn)
- 公司廠區(qū)保潔培訓(xùn)
- 江蘇省招標(biāo)中心有限公司招聘筆試沖刺題2025
- 2024年防盜門銷售合同范本
- 支付令申請(qǐng)書(2025版)
評(píng)論
0/150
提交評(píng)論