資源簡介
MSP430+DS1302程序,IAR for Msp430開發環境。兩個按鍵,4位時鐘專用數碼管顯示。MSP430G253芯片。

代碼片段和文件信息
#include?“includes.h“
//初始狀態啟動RTC
const?unsigned?char?init_code[]={0x00x00x00x40x20x20x14};
/*******************************************
函數名稱:?DS1302_writeB
功????能:?向DS1302寫入一個字節數據(沒有RST操作)
參????數:?byte--要寫入的數據
返回值??:?無
********************************************/
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; //時鐘上升沿(DS1302采樣數據) ??
byte>>=1; ?//數據右移1位,為送出新數據位做準備
}
}
/*******************************************
函數名稱:?DS1302_readB
功????能:?從DS1302讀出一個字節數據(沒有RST操作)
參????數:?無
返回值??:?byte--讀出的數據
********************************************/
unsigned?char?DS1302_readB(void)
{
unsigned?char?ibyte=0;
for(i=0;i<8;i++) ?//8位數據計數
{
byte>>=1;
RTC_CLK_1; ?//時鐘上升沿
RTC_CLK_0; ?//時鐘下降沿,DS1302輸出數據位?
if(RTC_DATA_H) ?//當前位是否是高電平
{
byte?|=?0x80;
}
else
{
byte?&=?0x7F; ?
}
}
return?byte; ?//返回讀出的數據?
?
}
/*******************************************
函數名稱:?DS1302_writeD
功????能:?向DS1302的某個地址寫入一個字節數據
參????數:?addr--地址值(寄存器或RAM)
?? ??data--要寫入的地址
返回值??:?無
********************************************/
void?DS1302_writeD(unsigned?char?addrunsigned?char?dat)
{
RTC_RST_0; ?//拉低片選端
RTC_CLK_0; ?//拉低時鐘端
RTC_RST_1; ?//拉高片選端
DS1302_writeB(addr); ?//寫入操作命令(地址)
RTC_CLK_0; ?//拉低時鐘端
DS1302_writeB(dat); ?//寫入數據
RTC_CLK_0;; ?//拉低時鐘端
RTC_RST_0; ?//拉低片選端
}
/*******************************************
函數名稱:?DS1302_readD
功????能:?從DS1302的某個地址讀出一個字節數據
參????數:?addr--地址值(寄存器或RAM)
返回值??:?data--讀出的數據
********************************************/
/*
unsigned?char?DS1302_readD(unsigned?char?addr)
{
xdata?unsigned?char?dat;
RTC_RST_0; ?//拉低片選端
RTC_CLK_0; ? //拉低時鐘端
// delay_us(5);
RTC_RST_1; ?//拉高片選端
// delay_us(5);? ?//調整片選脈沖
DS1302_writeB(addr); ?//寫入操作命令(地址)
// delay_us(5);
dat=DS1302_readB(); ?//讀出數據
// delay_us(5);
RTC_CLK_0; ? //拉低時鐘端
RTC_RST_0;? ? //拉低片選端
return?dat; ?//返回讀出的數據
}
*/
/*******************************************
函數名稱:?DS1302_setT
功????能:?設置DS1302的時間
參????數:?ptTimeD--設置時間數組指針
返回值??:?無
*******************************************/
void?DS1302_setT(unsigned?char?ptTimeD[])
{
????unsigned?char?i;
????unsigned?char?addr?=?0x80;? ? ??//寫入地址從秒寄存器開始
????DS1302_writeD(C_WP|WRUPROTECT);?//控制命令WP位為0允許寫操作
????for(i=0;i<7;i++)
????{
????????DS1302_writeD(addr|WRptTimeD[i]);???//?秒?分?時?日?月?星期?年?????????
????????addr+=2;
????}
????DS1302_writeD(C_WP|WRPROTECT);? //控制命令WP位為1不允許寫操作
}
/*******************************************
函數名稱:?DS1302_getT
功????能:?讀取DS1302的當前時間
參????數:?time[]--讀取的時間數組
返回值??:?無
********************************************/
void?DS1302_getT(unsigned?char?time[])
{
????unsigned?char?i;
////////下面的是單次讀寫//////////////////////////
???/*?unsigned?char?addr?=?0x80;? ? ?? ??//讀取地址從秒寄存器開始?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????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個文件信息
評論
共有 條評論