<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STC單片機控制DS1302程序 (C程序)

算法&編程學院 ? 來源:網絡整理 ? 2018-02-03 03:14 ? 次閱讀

#include"REG51.H"

#include"INTRINS.H"

typedefunsignedcharBYTE;

sbitSCLK=P1^0;//DS1302時鐘口P1.0

sbitIO=P1^1;//DS1302數據口P1.1
sbitRST=P1^2;//DS1302片選口P1.2

//秒分時日月星期年
BYTEcodeinit[]={0x00,0x00,0x20,0x01,0x01,0x05,0x10};
BYTEdatanow[7];

voidDS1302_Initial();
voidDS1302_SetTime(BYTE*p);
voidDS1302_GetTime(BYTE*p);

voidmain()
{
DS1302_Initial();//初始化DS1302
DS1302_SetTime(init);//設置初始時間

DS1302_GetTime(now);//讀取當前時間
while(1);
}

/**************************************
延時X微秒(STC12C5A60S2@12M)
不同的工作環境,需要調整此函數
此延時函數是使用1T的指令周期進行計算,與傳統的12T的MCU不同
**************************************/
voidDelay()
{
_nop_();
_nop_();
}

/**************************************
從DS1302讀1字節數據
**************************************/
BYTEDS1302_ReadByte()
{
BYTEi;
BYTEdat=0;

for(i=0;i>=1;//數據右移一位
if(IO)dat|=0x80;//讀取數據
SCLK=1;//時鐘線拉高
Delay();//延時等待
}

returndat;
}

/**************************************
向DS1302寫1字節數據
**************************************/
voidDS1302_WriteByte(BYTEdat)
{
chari;

for(i=0;i>=1;//移出數據
IO=CY;//送出到端口
SCLK=1;//時鐘線拉高
Delay();//延時等待
}
}

/**************************************
讀DS1302某地址的的數據
**************************************/
BYTEDS1302_ReadData(BYTEaddr)
{
BYTEdat;

RST=0;
Delay();
SCLK=0;
Delay();
RST=1;
Delay();
DS1302_WriteByte(addr);//寫地址
dat=DS1302_ReadByte();//讀數據
SCLK=1;
RST=0;

returndat;
}

/**************************************
往DS1302的某個地址寫入數據
**************************************/
voidDS1302_WritEDAta(BYTEaddr,BYTEdat)
{
RST=0;
Delay();
SCLK=0;
Delay();
RST=1;
Delay();
DS1302_WriteByte(addr);//寫地址
DS1302_WriteByte(dat);//寫數據
SCLK=1;
RST=0;
}

/**************************************
寫入初始時間
**************************************/
voidDS1302_SetTime(BYTE*p)
{
BYTEaddr=0x80;
BYTEn=7;

DS1302_WriteData(0x8e,0x00);//允許寫操作
while(n--)
{
DS1302_WriteData(addr,*p++);
addr+=2;
}
DS1302_WriteData(0x8e,0x80);//寫保護
}

/**************************************
讀取當前時間
**************************************/
voidDS1302_GetTime(BYTE*p)
{
BYTEaddr=0x81;
BYTEn=7;

while(n--)
{
*p++=DS1302_ReadData(addr);
addr+=2;
}
}

/**************************************
初始化DS1302
**************************************/
voidDS1302_Initial()
{
RST=0;
SCLK=0;
DS1302_WriteData(0x8e,0x00);//允許寫操作
DS1302_WriteData(0x80,0x00);//時鐘啟動
DS1302_WriteData(0x90,0xa6);//一個二極管+4K電阻充電
DS1302_WriteData(0x8e,0x80);//寫保護
}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6008

    文章

    44062

    瀏覽量

    622640
收藏 人收藏

    評論

    相關推薦

    單片機DS1302時鐘仿真模塊

    DS1302時鐘仿真。如果要掉電時間還可以走的話,第一次仿真把設置的時間下載進單片機時間會自動存入DS1302內部寄存器中,再把程序中的賦值時間語句刪掉,在下載
    發表于 10-09 19:38

    基于STCDS1302程序

    基于STCDS1302程序
    發表于 03-05 13:41

    DS1302與51單片機怎么連接 ,怎么寫C程序??

    DS1302與51單片機怎么連接 ,怎么寫C程序??
    發表于 01-12 10:00

    ds1302時鐘程序詳解,ds1302程序流程圖(C程序)

    ds1302時鐘程序詳解 DS1302控制字如圖2所示。控制字節的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數據寫入
    發表于 05-17 13:22 ?8.8w次閱讀
    <b class='flag-5'>ds1302</b>時鐘<b class='flag-5'>程序</b>詳解,<b class='flag-5'>ds1302</b><b class='flag-5'>程序</b>流程圖(C<b class='flag-5'>程序</b>)

    PIC單片機控制時鐘芯片DS1302匯編程序

    PIC單片機控制時鐘芯片DS1302匯編程序
    發表于 05-24 09:56 ?1684次閱讀

    基于單片機的綜合應用程序ds1302送1602【C語言】

    基于單片機的綜合應用程序ds1302送1602【C語言】
    發表于 01-06 14:22 ?6次下載

    基于單片機的綜合應用程序ds1302送1602【C語言】顯示時

    基于單片機的綜合應用程序ds1302送1602【C語言】 顯示時間
    發表于 01-06 14:21 ?4次下載

    基于單片機的綜合應用程序ds1302送1602_C語言_顯示日期

    基于單片機的綜合應用程序ds1302送1602【C語言】 顯示日期和時間
    發表于 01-06 14:20 ?7次下載

    51單片機DS1302實時時鐘驅動程序

    本文首先闡述了ds1302引腳及功能,其次介紹了DS1302控制字節及電路圖,最后詳細介紹了51單片機DS1302實時時鐘驅動
    發表于 05-15 08:45 ?9090次閱讀
    51<b class='flag-5'>單片機</b><b class='flag-5'>DS1302</b>實時時鐘驅動<b class='flag-5'>程序</b>

    使用單片機應用DS1302的時鐘程序免費下載

    本文檔的主要內容詳細介紹的是使用單片機應用DS1302的時鐘程序免費下載。
    發表于 08-20 17:31 ?7次下載
    使用<b class='flag-5'>單片機</b>應用<b class='flag-5'>DS1302</b>的時鐘<b class='flag-5'>程序</b>免費下載

    基于51單片機多功能時鐘DS1302仿真設計(包含源程序及仿真)

    基于51單片機多功能時鐘DS1302仿真設計,資料包含源程序及仿真文件
    發表于 04-20 16:28 ?18次下載

    基于89C51單片機的1602液晶顯示DS1302時鐘源程序

    基于89C51單片機的1602液晶顯示DS1302時鐘源程序
    發表于 05-16 10:27 ?7次下載

    基于89C51單片機DS1302時鐘原理源程序

    基于89C51單片機DS1302 時鐘原理源程序
    發表于 05-16 10:05 ?5次下載

    基于89C51單片機DS1302可調時鐘源程序

    基于89C51單片機DS1302可調時鐘源程序
    發表于 05-16 10:05 ?2次下載

    基于89C51單片機DS1302時鐘串口自動更新時間源程序

    基于89C51單片機DS1302時鐘串口自動更新時間源程序
    發表于 05-16 10:04 ?1次下載
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>