标题: 51单片机+时钟DS1302+温度传感器DS18B20(C语言) [打印本页]

作者: 412067760    时间: 2020-2-27 23:33
标题: 51单片机+时钟DS1302+温度传感器DS18B20(C语言)
讲解:
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 ;
}

51单片机 时钟DS1302 温度传感器DS18B20(C语言).docx

479.39 KB, 下载次数: 33, 下载积分: 黑币 -5

详细内容






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1