資源簡(jiǎn)介
MSP430+DS1302程序,IAR for Msp430開(kāi)發(fā)環(huán)境。兩個(gè)按鍵,4位時(shí)鐘專用數(shù)碼管顯示。MSP430G253芯片。

代碼片段和文件信息
#include?“includes.h“
//初始狀態(tài)啟動(dòng)RTC
const?unsigned?char?init_code[]={0x00x00x00x40x20x20x14};
/*******************************************
函數(shù)名稱:?DS1302_writeB
功????能:?向DS1302寫(xiě)入一個(gè)字節(jié)數(shù)據(jù)(沒(méi)有RST操作)
參????數(shù):?byte--要寫(xiě)入的數(shù)據(jù)
返回值??:?無(wú)
********************************************/
void?DS1302_writeB(unsigned?char?byte)
{
unsigned?char?i;
for(i=0;i<8;i++) ? ??
{ ??
RTC_CLK_0;
if(byte&0x01) ?
{
RTC_DATA_1;
}
else ??
{
RTC_DATA_0; ??
}??
RTC_CLK_1; //時(shí)鐘上升沿(DS1302采樣數(shù)據(jù)) ??
byte>>=1; ?//數(shù)據(jù)右移1位,為送出新數(shù)據(jù)位做準(zhǔn)備
}
}
/*******************************************
函數(shù)名稱:?DS1302_readB
功????能:?從DS1302讀出一個(gè)字節(jié)數(shù)據(jù)(沒(méi)有RST操作)
參????數(shù):?無(wú)
返回值??:?byte--讀出的數(shù)據(jù)
********************************************/
unsigned?char?DS1302_readB(void)
{
unsigned?char?ibyte=0;
for(i=0;i<8;i++) ?//8位數(shù)據(jù)計(jì)數(shù)
{
byte>>=1;
RTC_CLK_1; ?//時(shí)鐘上升沿
RTC_CLK_0; ?//時(shí)鐘下降沿,DS1302輸出數(shù)據(jù)位?
if(RTC_DATA_H) ?//當(dāng)前位是否是高電平
{
byte?|=?0x80;
}
else
{
byte?&=?0x7F; ?
}
}
return?byte; ?//返回讀出的數(shù)據(jù)?
?
}
/*******************************************
函數(shù)名稱:?DS1302_writeD
功????能:?向DS1302的某個(gè)地址寫(xiě)入一個(gè)字節(jié)數(shù)據(jù)
參????數(shù):?addr--地址值(寄存器或RAM)
?? ??data--要寫(xiě)入的地址
返回值??:?無(wú)
********************************************/
void?DS1302_writeD(unsigned?char?addrunsigned?char?dat)
{
RTC_RST_0; ?//拉低片選端
RTC_CLK_0; ?//拉低時(shí)鐘端
RTC_RST_1; ?//拉高片選端
DS1302_writeB(addr); ?//寫(xiě)入操作命令(地址)
RTC_CLK_0; ?//拉低時(shí)鐘端
DS1302_writeB(dat); ?//寫(xiě)入數(shù)據(jù)
RTC_CLK_0;; ?//拉低時(shí)鐘端
RTC_RST_0; ?//拉低片選端
}
/*******************************************
函數(shù)名稱:?DS1302_readD
功????能:?從DS1302的某個(gè)地址讀出一個(gè)字節(jié)數(shù)據(jù)
參????數(shù):?addr--地址值(寄存器或RAM)
返回值??:?data--讀出的數(shù)據(jù)
********************************************/
/*
unsigned?char?DS1302_readD(unsigned?char?addr)
{
xdata?unsigned?char?dat;
RTC_RST_0; ?//拉低片選端
RTC_CLK_0; ? //拉低時(shí)鐘端
// delay_us(5);
RTC_RST_1; ?//拉高片選端
// delay_us(5);? ?//調(diào)整片選脈沖
DS1302_writeB(addr); ?//寫(xiě)入操作命令(地址)
// delay_us(5);
dat=DS1302_readB(); ?//讀出數(shù)據(jù)
// delay_us(5);
RTC_CLK_0; ? //拉低時(shí)鐘端
RTC_RST_0;? ? //拉低片選端
return?dat; ?//返回讀出的數(shù)據(jù)
}
*/
/*******************************************
函數(shù)名稱:?DS1302_setT
功????能:?設(shè)置DS1302的時(shí)間
參????數(shù):?ptTimeD--設(shè)置時(shí)間數(shù)組指針
返回值??:?無(wú)
*******************************************/
void?DS1302_setT(unsigned?char?ptTimeD[])
{
????unsigned?char?i;
????unsigned?char?addr?=?0x80;? ? ??//寫(xiě)入地址從秒寄存器開(kāi)始
????DS1302_writeD(C_WP|WRUPROTECT);?//控制命令WP位為0允許寫(xiě)操作
????for(i=0;i<7;i++)
????{
????????DS1302_writeD(addr|WRptTimeD[i]);???//?秒?分?時(shí)?日?月?星期?年?????????
????????addr+=2;
????}
????DS1302_writeD(C_WP|WRPROTECT);? //控制命令WP位為1不允許寫(xiě)操作
}
/*******************************************
函數(shù)名稱:?DS1302_getT
功????能:?讀取DS1302的當(dāng)前時(shí)間
參????數(shù):?time[]--讀取的時(shí)間數(shù)組
返回值??:?無(wú)
********************************************/
void?DS1302_getT(unsigned?char?time[])
{
????unsigned?char?i;
////////下面的是單次讀寫(xiě)//////////////////////////
???/*?unsigned?char?addr?=?0x80;? ? ?? ??//讀取地址從秒寄存器開(kāi)始?
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2014-05-03?15:51??LED_Clock_soft\
?????文件???????19032??2011-09-30?11:58??LED_Clock_soft\Backup?of?my_demo.ewd
?????文件???????47458??2011-09-30?11:57??LED_Clock_soft\Backup?of?my_demo.ewp
?????目錄???????????0??2013-08-03?23:27??LED_Clock_soft\Debug\
?????目錄???????????0??2014-05-03?15:51??LED_Clock_soft\Debug\Exe\
?????文件???????27935??2014-05-03?15:51??LED_Clock_soft\Debug\Exe\LED_Clock.d43
?????文件???????13653??2013-07-25?14:46??LED_Clock_soft\Debug\Exe\my_demo.d43
?????目錄???????????0??2013-08-03?14:02??LED_Clock_soft\Debug\List\
?????目錄???????????0??2014-05-03?15:51??LED_Clock_soft\Debug\Obj\
?????文件??????324059??2014-05-03?15:51??LED_Clock_soft\Debug\Obj\ds1302.pbi
?????文件????????9958??2014-05-03?15:51??LED_Clock_soft\Debug\Obj\ds1302.pbi.cout
?????文件???????12651??2014-05-03?15:51??LED_Clock_soft\Debug\Obj\ds1302.r43
?????文件?????????846??2011-11-14?09:28??LED_Clock_soft\Debug\Obj\EW2A.r43
?????文件??????521120??2014-05-03?15:51??LED_Clock_soft\Debug\Obj\LED_Clock.pbd
?????文件??????521120??2014-05-03?15:51??LED_Clock_soft\Debug\Obj\LED_Clock.pbd.browse
?????文件??????475086??2014-05-03?15:51??LED_Clock_soft\Debug\Obj\main.pbi
?????文件????????9956??2014-05-03?15:51??LED_Clock_soft\Debug\Obj\main.pbi.cout
?????文件???????60601??2014-05-03?15:51??LED_Clock_soft\Debug\Obj\main.r43
?????文件??????275247??2013-07-25?14:55??LED_Clock_soft\Debug\Obj\my_demo.pbd
?????文件??????275247??2013-07-25?14:55??LED_Clock_soft\Debug\Obj\my_demo.pbd.browse
?????文件????????2864??2014-05-03?16:08??LED_Clock_soft\LED_Clock.dep
?????文件???????20422??2013-07-25?17:14??LED_Clock_soft\LED_Clock.ewd
?????文件???????52380??2014-05-03?15:51??LED_Clock_soft\LED_Clock.ewp
?????文件?????????163??2013-10-03?10:25??LED_Clock_soft\LED_Clock.eww
?????文件??????????25??2014-05-03?16:08??LED_Clock_soft\LED_ClockCustomSfr.sfr
?????文件????????2180??2011-10-08?11:58??LED_Clock_soft\main.c.bak
?????文件????????2020??2013-07-25?14:54??LED_Clock_soft\my_demo.dep
?????文件???????20422??2013-07-25?14:46??LED_Clock_soft\my_demo.ewd
?????文件??????????25??2013-07-25?14:55??LED_Clock_soft\my_demoCustomSfr.sfr
?????文件???????????0??2014-05-03?16:08??LED_Clock_soft\path.txt
?????目錄???????????0??2013-08-03?23:27??LED_Clock_soft\settings\
............此處省略31個(gè)文件信息
評(píng)論
共有 條評(píng)論