版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、#include "stm32f10x_conf.h"#include "mrhh_f1.h"#include "HPF_TIME.h"#include "HpfDS1302Drive.h"/DS1302? y ? - F103IO? u ? ? ? ?/Ver1.0 By MrHDS/2016,4.23/#if 1#define clkreset#define clksetGPIOE->BRR=GPIO_Pin_1GPIOE->BSRR=GPIO_Pin_1#define rstreset#defin
2、e rstsetGPIOE->BRR=GPIO_Pin_2GPIOE->BSRR=GPIO_Pin_2#define datreset#define datsetGPIOE->BRR=GPIO_Pin_0GPIOE->BSRR=GPIO_Pin_0#define datredGPIO_ReadInputDataBit(GPIOE,GPIO_Pin_0)/ ? a e ? e y ? Y#define DS1302Enable HpfDS1302WritByte(control_add,0x80) '6?a±£?。#define DS1302D
3、isEnable HpfDS1302WritByte(control_add,0x00)1?±?±£?。0x250#define testdat#define cheaken#endif#define dstim 1Ds1302Time DSTime=21,16,1,1,12,0,0,1;void HpfDS1302PinInData(void)GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);GPIO_InitStructure.GPIO
4、_Mode=GPIO_Mode_IPD; / e ? a - e ? e ?GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOE,&GPIO_InitStructure); void HpfDS1302PinOutData(void)GPIO_InitTypeDef GPIO_InitSyructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);GPIO_InitSyruct
5、ure.GPIO_Mode=GPIO_Mode_Out_PP;/ i ? ? a e ? 3 ?GPIO_InitSyructure.GPIO_Pin=GPIO_Pin_0;GPIO_InitSyructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOE,&GPIO_InitSyructure);void HpfDS1302PinClkRst(void)GPIO_InitTypeDef GPIO_InitSyructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);GPIO_Ini
6、tSyructure.GPIO_Mode=GPIO_Mode_Out_PP;/ i ? ? a e ? 3 ?GPIO_InitSyructure.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_2;GPIO_InitSyructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOE,&GPIO_InitSyructure); void HpfDS1302Init(void)HpfDS1302PinClkRst();clkreset;rstreset;? ' ?+? 土? 6? e ? 3 ?科/DS1302? y? - D
7、39; e? o? ? 。y?Y/Ver1.0 By MrHDS/2016,4.23/110/111 ffD513口工驅(qū)動寫入一"b地址和數(shù)據(jù)112 /Verl.O By MrHDS113 /201r4.23114 /D' e ? e y ? Y ? u e ? e y ? ? o D D § u8 i;HpfDS1302PinOutData();addr&=0xfe;D' 6y?Y£? w? x? ?a?rstreset;clkreset;HpfDealyUs(dstim);rstset;HpfDealyUs(dstim);for(i=0
8、;i<8;i+)/ D ' 6 ?科? ? clkreset;HpfDealyUs(dstim);if(addr&0x01)datset;elsedatreset;clkset;HpfDealyUs(dstim);addr>>=1;/ HpfDealyUs(10); for(i=0;i<8;i+)D' e ? e y ? Y data clkreset;HpfDealyUs(dstim);if(data&0x01)datset;elsedatreset;clkset;HpfDealyUs(dstim);data>>=1;rst
9、reset;/ 1 £? 1 x u ? ?clkreset;/DS1302? y ? 一? a e ? o ? ? ? e y ? Y/Ver1.0 By MrHDS/2016,4.23/162 /163 /D313醛驅(qū)動讀取一個數(shù)據(jù)164 /Verl+0 Ey MtHDS165 /201,4.231 /1 67u8 HpfDS1302ReadByte(u8 addr)/ ? a e ? o ? ? ? e y ? e ? e y ? ? o D D § u8 i,tem=0;addr|=0x01;rstreset;clkreset;HpfDealyUs(dstim);r
10、stset;HpfDealyUs(dstim);HpfDS1302PinOutData();for(i=0;i<8;i+) clkreset; HpfDealyUs(dstim); if(addr&0x01) datset;elsedatreset;Y?u?w?6DD§£?D' 6?科/ ? G6y?Y£? ? ? x? i ? ? ? a 1/ ? ? ? "Xu?clkset;HpfDealyUs(dstim);addr>>=1;HpfDS1302PinInData();for(i=0;i<8;i+) clkr
11、eset; HpfDealyUs(dstim); if(datred) tem|=0x80;if(i<7)tem>>=1;clkset;HpfDealyUs(dstim); rstreset;clkreset;return tem; u8 HpfDSBCDToNum(u8 BCD)/8421BCD? ? x a ? ? ? a 6yx u8 temp,temp1;temp1=BCD&0x0f;temp=(BCD&0xf0)>>4)*10+temp1;return temp;u8 HpfDSNumToBCD(u8 NUM)/eyx?xa?a 8421
12、BCD? ?u8 temp;temp=(NUM/10)<<4)|(NUM%10); return temp;/DS1302? y ? ? e ? o ? ? §6 土? 2 0Xa?a bcd? ? 2 0 ? ' ? ?科 ? DS1302buffer ? D/Ver1.0 By MrHDS/2016,4.23/-239/ “Q H驅(qū)空獲取用戶時間并轉(zhuǎn)換為碼并復(fù)制到DS13Sbuffu中21 /Vecl. 0 By MrHDS242 /3016,1.£3213/544void HpfDSTimrSet(void)HpfWTime *p;Ds1302Ti
13、me *s;p=GetWRTime();s=&DSTime;s->century=p->MyYear/100+1;s->year=HpfDSNumToBCD(p->MyYear-(s->century-1)*100);s->month=HpfDSNumToBCD(p->MyMon);s->day=HpfDSNumToBCD(p->MyDay);s->hh=HpfDSNumToBCD(p->MyHH);s->mm=HpfDSNumToBCD(p->MyMM);s->ss=HpfDSNumToBCD(p-&
14、gt;MySS);s->week=HpfDSNumToBCD(GetWNLWeek(p,s->day);/DS1302 ? buffer ? D ? e ±? ? 6y?YD' e ? ds1302? D/Ver1.0 By MrHDS/2016,4.23/269 n270 fDBL3Q2把but比匚中的時間數(shù)弼寫入到g13口£中271 Verl.O By M匚HD5272 2016,4+23273274void HpfDS1302WritData(void) Ds1302Time *s;s=&DSTime;DS1302DisEnable;1?&
15、#177;?D' ±£?。HpfDS1302WritByte(sec_add,0x80);/?Y i £ e ±? oHpfDS1302WritByte(year_add,s->year);HpfDS1302WritByte(month_add,s->month);HpfDS1302WritByte(day_add,s->day);HpfDS1302WritByte(hh_add,s->hh);HpfDS1302WritByte(min_add,s->mm);HpfDS1302WritByte(sec_add,s-&
16、gt;ss);HpfDS1302WritByte(week_add,s->week);HpfDS1302WritByte(RAM_Address29,testdat);DS1302Enable;/DS1302? a e ? e ±? ? e y ? Y 2 0Xa?a e y X?2 0' ? e ? ? o ? +? D /Ver1.0 By MrHDS/2016,4.23/29B/299 /口M3。2讀取時間數(shù)據(jù)并轉(zhuǎn)換為數(shù)字并存入緩存翳中300 /Verl. 0 By MrHDS3Q1 H2016,4,23302/303void HpfDS1302ReadData(
17、void) Ds1302Time *s;s=&DSTime;s->year=HpfDSBCDToNum(HpfDS1302ReadByte(year_add);s->month=HpfDSBCDToNum(HpfDS1302ReadByte(month_add);s->day=HpfDSBCDToNum(HpfDS1302ReadByte(day_add);s->hh=HpfDSBCDToNum(HpfDS1302ReadByte(hh_add);s->mm=HpfDSBCDToNum(HpfDS1302ReadByte(min_add);s->ss
18、=HpfDSBCDToNum(HpfDS1302ReadByte(sec_add);s->week=HpfDSBCDToNum(HpfDS1302ReadByte(week_add);/DS1302 ? e ±? ? i ? 2 ?科? 6? § e ±/Ver1.0 By MrHDS/2016,4.23/32 2 J J 4 三 04 4 三 =- 二=4=4q =三4= = 44=323 /瞪上38把盹間同步到用戶時間324 /Verl<D By- Mr-IDS/2ai«/4.23/ void HpfDS1302TimeSyn(void)
19、HpfWTime *p;p=GetWRTime();p->MyYear=(DSTime.century-1)*100+DSTime.year;p->MyMon=DSTime.month;p->MyDay=DSTime.day;p->MyHH=DSTime.hh;p->MyMM=DSTime.mm;p->MySS=DSTime.ss;/DS1302? y?"?e?o?/Ver1.0 By MrHDS/2016,4.23/344/34S /DSi 38 理?駐取遵存嘉胞址彳4, ,/veri.o By wrRTfl317 ”工口=MS / 'D
20、s1302Time *HpfDS1302GetTime(void) HpfDS1302Init();HpfDS1302ReadData();return &DSTime;/DS1302? y ? 一 RAM u X -/Ver1.0 By MrHDS/2016,4.23/ /buffer ?a?o'?+p? £? ramaddr? a?u'?p?£? num? a a? D ? 2 fiX+w? ? ? §£?rw?a1£?±f 6?D' e ? ey?Y£?a0±i e? ? a
21、e? e y ? Y / / / / / /Ql / l mm .谷 一 *1 .004* = maiK q 工= = * = = .工工 a.三三臺工谷二二二工.一工. = >&_ - n, qanwMHd 4 ,一 .« .一工 m M * = q ai = h n i* 工工 4 a三一1* m a = w q3依 NBUM干割 3 礁作362 Hvel. 0 E V ExHES*3 /2仇& K”M4 /3版“hMEF為#存器拈址為內(nèi)存批孫,小為連聲揖昨的茶犀一為L表示寫入舒亭為門市示滿虱皙樵36E /XMET /3«B"35m/370' /| , _ void HpfDs1302RamWR(u8 *buffer,u8 ramaddr,u8 num,u8 rw)u8 i;if(ramaddr=RAM_Address29)return;if(rw)for(i=0;i<num;i+)DS1302DisEnable;HpfDS1302WritByte(ramaddr+(i<<1),bufferi);DS1302Enable;elsefor(i=0;i<num;i+)bufferi=HpfDS1302ReadByte(ramaddr+(i<<1); /DS1302? y ? 一?
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 統(tǒng)考版2025屆高考歷史二輪復(fù)習(xí)備考小題提升精練1820世紀(jì)以來中國重大思想理論成果含解析
- 規(guī)劃課題申報范例:港澳教育融入教育強國建設(shè)研究(附可修改技術(shù)路線圖)
- 動漫感言范文(80句)
- 租賃建筑工程機械合同
- 教育設(shè)備招投標(biāo)合同模板
- 鋁扣板醫(yī)院手術(shù)室施工合同
- 通信網(wǎng)絡(luò)優(yōu)化聘用合同
- 展覽館周邊草坪施工合同
- 教育行業(yè)教師錄用意向書合同
- 畜牧業(yè)合規(guī)管理辦法
- 參賽魚躍前滾翻-完整版PPT
- 新版現(xiàn)代西班牙語第二冊課后答案
- 光明化大理巖礦詳查報告
- 人教版九年級數(shù)學(xué)下冊 《圖形的相似》相似教學(xué)課件
- 人員支援工作申請單
- 國家開放大學(xué)實驗學(xué)院生活中的法律形考任務(wù)(一)-形考任務(wù)(一)答案
- 幼兒園教師師德師風(fēng)考核表
- 2022年江蘇省南京市棲霞區(qū)南外仙林分校小學(xué)部六上期中數(shù)學(xué)試卷
- 渠道下沉不能為了下沉而下沉
- 定2墻上貼著字
- 幾種離子交換裝置
評論
0/150
提交評論