0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于51單片機(jī)的電子鐘【12,24,鬧鐘,LCD1602,獨(dú)立按鍵,DS1302】(仿真)

白茶茶668 ? 來源:白茶茶668 ? 作者:白茶茶668 ? 2024-04-10 00:39 ? 次閱讀

基于51單片機(jī)電子鐘【12,24,鬧鐘,LCD1602,獨(dú)立按鍵,DS1302】(仿真

電子鐘設(shè)計能隨意設(shè)定走時起始時間、能設(shè)定鬧鐘鬧鈴時間、能 12 小時/24 小時兩

種制式可選和能顯示年月日。

資料包括:

wKgaomYVbzOAQ1ZqAAKD-IcJ5i0624.png

原理圖:

wKgZomYVbzSADN4YAATQge7K_H0180.png

仿真:

wKgaomYVbzWAevfjAAPH8C3U5oA143.png

程序運(yùn)行圖:

wKgZomYVbzWAK_WmAAMRF3dVVxU208.png

#include"ds1302.h"


//---DS1302寫入和讀取時分秒的地址命令---//

//---秒分時日月周年 最低位讀寫位;-------//

uchar code READ_RTC_ADDR[7] = {0x81, 0x83, 0x85, 0x87, 0x89, 0x8b, 0x8d};

uchar code WRITE_RTC_ADDR[7] = {0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c};


//---DS1302時鐘初始化2016年5月7日星期六12點(diǎn)00分00秒。---//

//---存儲順序是秒分時日月周年,存儲格式是用BCD碼---//

uchar TIME[7] = {0, 0, 0x12, 0x07, 0x05, 0x06, 0x16};


/*******************************************************************************

* 函 數(shù) 名 : Ds1302Write

* 函數(shù)功能 : 向DS1302命令(地址+數(shù)據(jù))

* 輸 入 : addr,dat

* 輸 出 : 無

*******************************************************************************/


void Ds1302Write(uchar addr, uchar dat)

{

uchar n;

RST = 0;

_nop_();


SCLK = 0;//先將SCLK置低電平。

_nop_();

RST = 1; //然后將RST(CE)置高電平。

_nop_();


for (n=0; n<8; n++)//開始傳送八位地址命令

{

DSIO = addr & 0x01;//數(shù)據(jù)從低位開始傳送

addr >>= 1;

SCLK = 1;//數(shù)據(jù)在上升沿時,DS1302讀取數(shù)據(jù)

_nop_();

SCLK = 0;

_nop_();

}

for (n=0; n<8; n++)//寫入8位數(shù)據(jù)

{

DSIO = dat & 0x01;

dat >>= 1;

SCLK = 1;//數(shù)據(jù)在上升沿時,DS1302讀取數(shù)據(jù)

_nop_();

SCLK = 0;

_nop_();

}

RST = 0;//傳送數(shù)據(jù)結(jié)束

_nop_();

}


/*******************************************************************************

* 函 數(shù) 名 : Ds1302Read

* 函數(shù)功能 : 讀取一個地址的數(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; n<8; n++)//開始傳送八位地址命令

{

DSIO = addr & 0x01;//數(shù)據(jù)從低位開始傳送

addr >>= 1;

SCLK = 1;//數(shù)據(jù)在上升沿時,DS1302讀取數(shù)據(jù)

_nop_();

SCLK = 0;//DS1302下降沿時,放置數(shù)據(jù)

_nop_();

}

_nop_();

for(n=0; n<8; n++)//讀取8位數(shù)據(jù)

{

dat1 = DSIO;//從最低位開始接收

dat = (dat>>1) | (dat1<<7);

SCLK = 1;

_nop_();

SCLK = 0;//DS1302下降沿時,放置數(shù)據(jù)

_nop_();

}


RST = 0;

_nop_(); //以下為DS1302復(fù)位的穩(wěn)定時間,必須的。

SCLK = 1;

_nop_();

DSIO = 0;

_nop_();

DSIO = 1;

_nop_();

return dat;

}


/*******************************************************************************

* 函 數(shù) 名 : Ds1302Init

* 函數(shù)功能 : 初始化DS1302.

* 輸 入 : 無

* 輸 出 : 無

*******************************************************************************/


void Ds1302Init()

{

uchar n;

Ds1302Write(0x8E,0X00); //禁止寫保護(hù),就是關(guān)閉寫保護(hù)功能

for (n=0; n<7; n++)//寫入7個字節(jié)的時鐘信號:分秒時日月周年

{

Ds1302Write(WRITE_RTC_ADDR[n],TIME[n]);

}

Ds1302Write(0x8E,0x80); //打開寫保護(hù)功能

}


/*******************************************************************************

* 函 數(shù) 名 : Ds1302ReadTime

* 函數(shù)功能 : 讀取時鐘信息

* 輸 入 : 無

* 輸 出 : 無

*******************************************************************************/


void Ds1302ReadTime()

{

uchar n;

for (n=0; n<7; n++)//讀取7個字節(jié)的時鐘信號:分秒時日月周年

{

TIME[n] = Ds1302Read(READ_RTC_ADDR[n]);

}

}



審核編輯 黃宇


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 仿真
    +關(guān)注

    關(guān)注

    50

    文章

    3972

    瀏覽量

    132964
  • 51單片機(jī)
    +關(guān)注

    關(guān)注

    272

    文章

    5689

    瀏覽量

    122171
  • 電子鐘
    +關(guān)注

    關(guān)注

    7

    文章

    189

    瀏覽量

    36839
收藏 人收藏

    評論

    相關(guān)推薦

    基于51單片機(jī)的路燈【固定時間,紅外,DS1302,LCD1602】(仿真

    基于51單片機(jī)的路燈【固定時間,紅外,DS1302,LCD1602】(仿真
    的頭像 發(fā)表于 04-10 00:44 ?367次閱讀
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>的路燈【固定時間,紅外,<b class='flag-5'>DS1302</b>,<b class='flag-5'>LCD1602</b>】(<b class='flag-5'>仿真</b>)

    基于51單片機(jī)電子鐘【調(diào)時,DS1302,數(shù)碼管,獨(dú)立按鍵】(仿真

    基于51單片機(jī)電子鐘【調(diào)時,DS1302,數(shù)碼管,獨(dú)立按鍵】(
    的頭像 發(fā)表于 04-10 00:41 ?1568次閱讀
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>電子鐘</b>【調(diào)時,<b class='flag-5'>DS1302</b>,數(shù)碼管,<b class='flag-5'>獨(dú)立</b><b class='flag-5'>按鍵</b>】(<b class='flag-5'>仿真</b>)

    基于51單片機(jī)電子鐘【整點(diǎn)報時,6數(shù)碼管,獨(dú)立按鍵】(仿真

    基于51單片機(jī)電子鐘【整點(diǎn)報時,6數(shù)碼管,獨(dú)立按鍵】(仿真
    的頭像 發(fā)表于 04-10 00:37 ?713次閱讀
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>電子鐘</b>【整點(diǎn)報時,6數(shù)碼管,<b class='flag-5'>獨(dú)立</b><b class='flag-5'>按鍵</b>】(<b class='flag-5'>仿真</b>)

    基于51單片機(jī)的SHT11溫濕度監(jiān)測系統(tǒng),LCD1602顯示,上下限按鍵設(shè)置

    設(shè)計要求 1.設(shè)計一套基于51單片機(jī)的溫濕度Proteus仿真監(jiān)控系統(tǒng); 2.采用高精度的SHT11溫濕度傳感器模塊; 3.LCD液晶實時顯示當(dāng)前環(huán)境溫濕度值; 4.設(shè)計報警單元,實現(xiàn)
    發(fā)表于 03-26 17:44

    【原創(chuàng)】基于51單片機(jī)DS1302電子鐘萬年歷(帶鬧鐘)(Proteus仿真+C語言+原理圖論文)

    電子萬年歷系統(tǒng)以AT89C52單片機(jī)為核心,構(gòu)成單片機(jī)控制電路,結(jié)合DS1302時鐘芯片和DS18B20溫度傳感器,完成時間和溫度的讀取,
    發(fā)表于 03-15 16:17

    基于51單片機(jī)電子鬧鐘設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)電子鬧鐘設(shè)計.rar》資料免費(fèi)下載
    發(fā)表于 01-12 10:54 ?18次下載

    基于51單片機(jī)1602顯示帶鬧鐘萬年歷設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)1602顯示帶鬧鐘萬年歷設(shè)計.rar》資料免費(fèi)下載
    發(fā)表于 01-12 09:34 ?19次下載

    基于51單片機(jī)1602顯示帶鬧鐘萬年歷設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)1602顯示帶鬧鐘萬年歷設(shè)計.rar》資料免費(fèi)下載
    發(fā)表于 01-03 11:16 ?3次下載

    基于51單片機(jī)電子鬧鐘設(shè)計

    基于51單片機(jī)電子鬧鐘設(shè)計(實物)
    發(fā)表于 01-02 09:58 ?4次下載

    51單片機(jī)驅(qū)動LCD1602只能顯示單字符是為什么?

    51單片機(jī)驅(qū)動1602,結(jié)果只能這樣顯示單字符: LCD1602_Write_Dat(\'O\');LCD1602_Write_Dat
    發(fā)表于 11-09 07:32

    基于51單片機(jī)信號發(fā)生器仿真設(shè)計

    本設(shè)計采用AT89C51單片機(jī)作為控制核心,外圍采用數(shù)字/模擬轉(zhuǎn)換電路(DAC0832)、運(yùn)放電路(LM324)、按鍵LCD1602液晶顯示電路。
    的頭像 發(fā)表于 10-29 17:40 ?768次閱讀
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>信號發(fā)生器<b class='flag-5'>仿真</b>設(shè)計

    51單片機(jī)定時器LCD顯示鬧鐘的程序

    電子發(fā)燒友網(wǎng)站提供《51單片機(jī)定時器LCD顯示鬧鐘的程序.doc》資料免費(fèi)下載
    發(fā)表于 10-24 09:26 ?5次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>定時器<b class='flag-5'>LCD</b>顯示<b class='flag-5'>鬧鐘</b>的程序

    基于單片機(jī)虛擬串口驅(qū)動LCD1602的電路仿真

    電子發(fā)燒友網(wǎng)站提供《基于單片機(jī)虛擬串口驅(qū)動LCD1602的電路仿真.pdf》資料免費(fèi)下載
    發(fā)表于 10-20 09:52 ?4次下載
    基于<b class='flag-5'>單片機(jī)</b>虛擬串口驅(qū)動<b class='flag-5'>LCD1602</b>的電路<b class='flag-5'>仿真</b>

    基于51單片機(jī)lcd1602怎么顯示倒計時秒表?

    基于51單片機(jī),lcd1602怎么顯示倒計時秒表?
    發(fā)表于 10-18 07:11

    51單片機(jī)LCD1602顯示四則混合運(yùn)算計算器怎么實現(xiàn)?

    51單片機(jī)LCD1602顯示四則混合運(yùn)算計算器怎么實現(xiàn)
    發(fā)表于 09-27 06:06