資源簡介
課題研究目的:
主要內(nèi)容:
利用單片機(jī),時(shí)鐘芯片,顯示器,蜂鳴器,按鍵設(shè)計(jì)一款數(shù)字時(shí)鐘,通過單片機(jī)燒入的程序?qū)崿F(xiàn)以下功能:
1、能夠顯示年、月、日、星期、時(shí)、分、秒,并能夠隨時(shí)校準(zhǔn)時(shí)間;
2、能夠整點(diǎn)報(bào)時(shí);
3、具有鬧鐘功能;
4、能夠在鬧鐘和時(shí)鐘之間進(jìn)行切換;
在實(shí)現(xiàn)數(shù)字時(shí)鐘功能的基礎(chǔ)上,了解所選芯片功能、工作原理,對實(shí)物調(diào)試,會(huì)繪制系統(tǒng)框圖。
從而培養(yǎng)綜合運(yùn)用所學(xué)的基礎(chǔ)知識(shí)、基本技能進(jìn)行分析和解決實(shí)際問題的能力、
利用單片機(jī)進(jìn)行應(yīng)用系統(tǒng)開發(fā)的能力,掌握單片機(jī)各個(gè)引腳接口設(shè)計(jì)。

代碼片段和文件信息
#include“ds1302.h“
//---DS1302寫入和讀取時(shí)分秒的地址命令---//
//---秒分時(shí)日月周年?最低位讀寫位;-------//
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時(shí)鐘初始化2013年1月1日星期二12點(diǎn)00分00秒。---//
//---存儲(chǔ)順序是秒分時(shí)日月周年存儲(chǔ)格式是用BCD碼---//
uchar?TIME[7]?=?{0?35?0x17?0x25?0x04?0x02?0x17};
/*******************************************************************************
*?函?數(shù)?名?????????:?Ds1302Write
*?函數(shù)功能 ???:?向DS1302命令(地址+數(shù)據(jù))
*?輸????入?????????:?addrdat
*?輸????出?????????:?無
*******************************************************************************/
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ù)在上升沿時(shí),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ù)在上升沿時(shí),DS1302讀取數(shù)據(jù)
_nop_();
SCLK?=?0;
_nop_();
}
?
RST?=?0;//傳送數(shù)據(jù)結(jié)束
_nop_();
}
/*******************************************************************************
*?函?數(shù)?名?????????:?Ds1302Read
*?函數(shù)功能 ???:?讀取一個(gè)地址的數(shù)據(jù)
*?輸????入?????????:?addr
*?輸????出?????????:?dat
*******************************************************************************/
uchar?Ds1302Read(uchar?addr)
{
uchar?ndatdat1;
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ù)在上升沿時(shí),DS1302讀取數(shù)據(jù)
_nop_();
SCLK?=?0;//DS1302下降沿時(shí),放置數(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í),放置數(shù)據(jù)
_nop_();
}
RST?=?0;
_nop_(); //以下為DS1302復(fù)位的穩(wěn)定時(shí)間必須的。
SCLK?=?1;
_nop_();
DSIO?=?0;
_nop_();
DSIO?=?1;
_nop_();
return?dat;
}
/*******************************************************************************
*?函?數(shù)?名?????????:?Ds1302Init
*?函數(shù)功能 ???:?初始化DS1302.
*?輸????入?????????:?無
*?輸????出?????????:?無
*******************************************************************************/
void?Ds1302Init()
{
uchar?n;
Ds1302Write(0x8E0X00); ?//禁止寫保護(hù),就是關(guān)閉寫保護(hù)功能
for?(n=0;?n<7;?n++)//寫入7個(gè)字節(jié)的時(shí)鐘信號(hào):分秒時(shí)日月周年
{
Ds1302Write(WRITE_RTC_ADDR[n]TIME[n]);
}
Ds1302Write(0x8E0x80); ?//打開寫保護(hù)功能
}
/*******************************************************************************
*?函?數(shù)?名?????????:?Ds1302ReadTime
*?函數(shù)功能 ???:?讀取時(shí)鐘信息
*?輸????入?????????:?無
*?輸????出?????????:?無
*******************************************************************************/
void?Ds1302ReadTime()
{
uchar?n;
for?(n=0;?n<7;?n++)//讀取7個(gè)字節(jié)的時(shí)鐘信號(hào):分秒時(shí)日月周年
{
TIME[n]?=?Ds1302Read(READ_RTC_ADDR[n]);
}
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-06-04?04:22??原理圖\
?????目錄???????????0??2017-06-04?04:22??原理圖\__Previews\
?????文件???????62108??2017-04-23?13:04??原理圖\__Previews\數(shù)字時(shí)鐘設(shè)計(jì).SchDocPreview
?????文件??????242289??2017-04-21?17:46??原理圖\數(shù)字時(shí)鐘設(shè)計(jì).PDF
?????文件??????147456??2017-04-23?09:33??原理圖\數(shù)字時(shí)鐘設(shè)計(jì).SchDoc
?????目錄???????????0??2017-06-04?04:22??實(shí)物照片\
?????文件?????2123615??2017-05-01?17:42??實(shí)物照片\IMG_2189.JPG
?????文件?????2525694??2017-05-01?17:42??實(shí)物照片\IMG_2190.JPG
?????目錄???????????0??2017-06-04?04:22??源代碼\
?????文件????????3311??2017-04-25?17:35??源代碼\ds1302.c
?????文件?????????534??2017-04-25?17:33??源代碼\ds1302.h
?????文件????????4707??2017-04-01?13:32??源代碼\EEPROM.c
?????文件?????????597??2017-04-11?15:45??源代碼\EEPROM.h
?????文件?????????861??2017-04-25?12:39??源代碼\jq8400.c
?????文件?????????259??2017-04-26?20:46??源代碼\jq8400.h
?????文件????????1363??2017-04-26?20:39??源代碼\key.c
?????文件?????????417??2017-04-25?17:30??源代碼\key.h
?????文件????????2246??2017-04-11?22:51??源代碼\lcd.c
?????文件?????????911??2017-04-11?22:51??源代碼\lcd.h
?????目錄???????????0??2017-06-04?04:22??源代碼\Listings\
?????文件????????7131??2017-04-27?14:36??源代碼\Listings\ds1302.lst
?????文件????????9286??2017-04-19?14:47??源代碼\Listings\EEPROM.lst
?????文件????????2428??2017-04-27?14:36??源代碼\Listings\jq8400.lst
?????文件????????5564??2017-04-27?14:36??源代碼\Listings\key.lst
?????文件????????4686??2017-04-27?14:36??源代碼\Listings\lcd.lst
?????文件???????29587??2017-04-27?15:13??源代碼\Listings\main.lst
?????文件???????37675??2017-04-27?15:13??源代碼\Listings\Project.m51
?????文件???????14155??2017-04-27?14:36??源代碼\Listings\STARTUP.lst
?????文件????????8186??2017-04-27?15:13??源代碼\main.c
?????目錄???????????0??2017-06-04?04:22??源代碼\ob
?????文件????????5891??2017-04-27?14:36??源代碼\ob
............此處省略15個(gè)文件信息
評(píng)論
共有 條評(píng)論