1、主要功能
該系統(tǒng)由AT89C51單片機+DS1302時鐘模塊+按鍵模塊+LCD顯示模塊構(gòu)成。
利用51單片機實現(xiàn)電子時鐘的功能。使用DS1302芯片作為計時設備,用LCD1602作為顯示設備,按鍵按下可修改當前時間,按下的時候蜂鳴器會di一聲。
可實現(xiàn)基本功能:
1、實時顯示當前時間和日期
按鍵功能:
1、點擊設置,可修改當前的時間和日期,再次點擊設置,單片機以剛剛設置好的時間繼續(xù)運行。
2、可設置鬧鐘,到點蜂鳴器響。文章來源:http://www.zghlxwxcb.cn/news/detail-463361.html
3、按鍵按下的時候,蜂鳴器會響。文章來源地址http://www.zghlxwxcb.cn/news/detail-463361.html

2、仿真
protues 仿真使用的是8.10版本,由于該軟件版本迭代原因,不能確保其他版本軟件能夠正常運行,請安裝好對應軟件(版本一致或者高于這個版本都可以)

3、程序代碼
放上來了部分代碼,僅供參考

/*******************************************************************************
* 函 數(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復位的穩(wěn)定時間,必須的。
SCLK = 1;
_nop_();
DSIO = 0;
_nop_();
DSIO = 1;
_nop_();
return dat;
}
/*******************************************************************************
* 函 數(shù) 名 : Ds1302Init
* 函數(shù)功能 : 初始化DS1302.
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void Ds1302Init()
{
uchar n;
EA=0;
Ds1302Write(0x8E,0X00); //禁止寫保護,就是關閉寫保護功能
for (n=0; n<7; n++)//寫入7個字節(jié)的時鐘信號:分秒時日月周年
{
Ds1302Write(WRITE_RTC_ADDR[n],TIME[n]);
}
Ds1302Write(0x8E,0x80); //打開寫保護功能
EA=1;
}
4、原理圖

5、報告
內(nèi)含4k字,18頁的相關報告一份,純手打,內(nèi)容一致

6、常見問題匯總
里面包含了我對各個模塊的詳細解析,可以結(jié)合代碼一起理解。如果正巧老師問題多,這個可以幫到你哦。(不定時更新,講解模塊也會越來越多)

7、資源獲取

本項目包含的所有文件都可以在 ?? 今天也不想打工 get
項目純手打,不是免費的哦~淺淺一杯奶茶的 ??
希望可以幫到你哈!
到了這里,關于51單片機的數(shù)字時鐘系統(tǒng)【含仿真+程序+報告+原理圖】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!