|
講解:
DS1302和單片機的連接很簡單。只需一根復位線,一根時鐘線,一根數據線即可。同時它本身還需要接一個32.768KHz的晶振來提供時鐘源。對于晶振的兩端可以分別接一個6PF左右的電容以提高晶振的精確度。同時可以在第8腳接上一個3.6V的可充電的電池。當系統正常工作時可以對電池進行涓流充電。當系統掉電時,DS1302由這個電池提供的能量繼續工作。
程序:
/******************************************************************************
*Function: static void v_DS1302Write_f(uint8 Content ) *
*Description:向DS1302寫一個字節的內容 *
*Parameter:uint8 Content : 要寫的字節 *
* *
******************************************************************************/
staticvoid v_DS1302Write_f( uint8 Content )
{
uint8 i ;
for( i = 8 ; i > 0 ; i-- )
{
if( Content & 0x01 )
{
DS1302_IO_HIGH
}
else
{
DS1302_IO_LOW
}
Content >>= 1 ;
DS1302_SCLK_HIGH
DS1302_SCLK_LOW
}
}
/******************************************************************************
*Function: static uint8 v_DS1302Read_f(void ) *
*Description: 從DS1302當前設定的地址讀取一個字節的內容 *
*Parameter: *
*Return: 返回讀出來的值(uint8) *
******************************************************************************/
staticuint8 v_DS1302Read_f( void )
{
uint8 i, ReadValue ;
DS1302_IO_HIGH
for( i = 8 ; i > 0 ; i-- )
{
ReadValue >>= 1 ;
if( DS1302_IO_READ )
{
ReadValue |= 0x80 ;
}
else
{
ReadValue &= 0x7f ;
}
DS1302_SCLK_HIGH
DS1302_SCLK_LOW
}
return ReadValue ;
}
|
|