<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天內不再提示

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

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

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

晚上天黑至22點以前常亮(全亮)

22:00-23:59為微亮

有人接近就全亮,人離開后延時2分鐘變為微亮;

0點以后至天亮前,有人接近就全亮,人離開后延時1分鐘熄滅。

資料包括:

wKgZomYVcE-AS2wRAAJleSEIfg8762.png

原理圖:

wKgaomYVcFCAKlxPAAHi8TGEC00138.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點00分00秒。---//

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

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


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

* 函 數 名 : Ds1302Write

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

* 輸 入 : 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;//數據從低位開始傳送

addr >>= 1;

SCLK = 1;//數據在上升沿時,DS1302讀取數據

_nop_();

SCLK = 0;

_nop_();

}

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

{

DSIO = dat & 0x01;

dat >>= 1;

SCLK = 1;//數據在上升沿時,DS1302讀取數據

_nop_();

SCLK = 0;

_nop_();

}

RST = 0;//傳送數據結束

_nop_();

}


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

* 函 數 名 : Ds1302Read

* 函數功能 : 讀取一個地址的數據

* 輸 入 : 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;//數據從低位開始傳送

addr >>= 1;

SCLK = 1;//數據在上升沿時,DS1302讀取數據

_nop_();

SCLK = 0;//DS1302下降沿時,放置數據

_nop_();

}

_nop_();

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

{

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

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

SCLK = 1;

_nop_();

SCLK = 0;//DS1302下降沿時,放置數據

_nop_();

}


RST = 0;

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

SCLK = 1;

_nop_();

DSIO = 0;

_nop_();

DSIO = 1;

_nop_();

return dat;

}


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

* 函 數 名 : Ds1302Init

* 函數功能 : 初始化DS1302.

* 輸 入 : 無

* 輸 出 : 無

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


void Ds1302Init()

{

uchar n;

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

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

{

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

}

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

}


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

* 函 數 名 : Ds1302ReadTime

* 函數功能 : 讀取時鐘信息

* 輸 入 : 無

* 輸 出 : 無

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


void Ds1302ReadTime()

{

uchar n;

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

{

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

}

}



審核編輯 黃宇


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

    關注

    50

    文章

    3897

    瀏覽量

    132502
  • 51單片機
    +關注

    關注

    270

    文章

    5651

    瀏覽量

    121265
收藏 人收藏

    評論

    相關推薦

    基于51單片機的電子鐘【調時,DS1302,數碼管,獨立按鍵】(仿真

    基于51單片機的電子鐘【調時,DS1302,數碼管,獨立按鍵】(仿真
    的頭像 發表于 04-10 00:41 ?372次閱讀
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的電子鐘【調時,<b class='flag-5'>DS1302</b>,數碼管,獨立按鍵】(<b class='flag-5'>仿真</b>)

    測量矩形波的高電平時間并用lcd1602顯示

    怎么用51單片機實現測量矩形波的高電平時間和頻率,并用lcd1602顯示屏顯示出來? (要是有代碼就更好了
    發表于 11-09 18:41

    51單片機驅動LCD1602只能顯示單字符是為什么?

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

    基于單片機虛擬串口驅動LCD1602的電路仿真

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

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

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

    51單片機LCD1602顯示四則混合運算計算器怎么實現?

    51單片機LCD1602顯示四則混合運算計算器怎么實現
    發表于 09-27 06:06

    基于51單片機的簡易時鐘設計(仿真)

    功能要求:1、使用單片機內部定時器實現時分秒計時2、能夠設置鬧鐘時間3、鬧鐘時間到,蜂鳴器響4、使用LCD1602顯示
    發表于 09-07 10:03 ?0次下載

    基于51單片機的智能作息系統設計

    本次智能作息系統使用的是STC89C52單片機作為主控芯片,通過DS1302定時模塊計時,通過UNV6288語音播報模塊進行語音提示,通過按鍵調節鬧鐘和當前時間。采集到的數據會上傳到
    的頭像 發表于 09-01 09:24 ?561次閱讀
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的智能作息系統設計

    基于51單片機的書包燈飾系統設計

    傳到單片機中,單片機會對信號進行處理,處理后的數據會上傳到LCD1602顯示屏上進行顯示,當光電管掃描到物體時,蜂鳴器進行報警。當到達定時時間時,小燈閃爍。
    的頭像 發表于 09-01 09:19 ?312次閱讀
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的書包燈飾系統設計

    基于51單片機的出租車系統設計

    本次出租車系統使用的是STC89C52單片機作為主控芯片,通過DS1302定時模塊進行時間采集,通過測速模塊檢測速度,通過電機旋轉模擬車輛出發,采集到的數據會上傳到
    的頭像 發表于 09-01 09:14 ?406次閱讀
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的出租車系統設計

    基于51單片機的自動噴水系統設計

    本次自動噴水系統使用的是STC89C52單片機作為主控芯片,通過DHT11檢測溫濕度,通過DS1302定時模塊設置定時,采集到的數據會上傳到單片機
    的頭像 發表于 09-01 09:11 ?797次閱讀
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的自動噴水系統設計

    基于51單片機的鬧鐘系統設計

    本次鬧鐘系統使用的是STC89C52單片機作為主控芯片,通過八位數碼管顯示時間,通過DS1302定時模塊設置定時,采集到的數據會上傳到
    的頭像 發表于 09-01 09:09 ?1303次閱讀
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的鬧鐘系統設計

    利用51單片機流水燈和LCD1602實現表白功能

    利用51單片機流水燈和LCD1602實現表白功能。
    的頭像 發表于 08-17 09:45 ?945次閱讀

    如何實現51單片機防火防盜設計?

    本項目使用Proteus8.12仿真51單片機控制器,使用聲光報警模塊、LCD1602顯示模塊、DS18B20溫度、煙霧傳感器模塊、按鍵模塊
    發表于 07-25 17:28 ?572次閱讀
    如何實現<b class='flag-5'>51</b><b class='flag-5'>單片機</b>防火防盜設計?

    STM32單片機學習筆記(1):LCD1602

    利用CubMX生成基于32單片機的HAl庫工程,然后編寫程序在Proteus上仿真驗證,首先是對LCD1602的學習。
    發表于 07-18 16:38 ?1004次閱讀
    STM32<b class='flag-5'>單片機</b>學習筆記(1):<b class='flag-5'>LCD1602</b>
    亚洲欧美日韩精品久久_久久精品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>