找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2142|回复: 0
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
ID:697675 发表于 2020-2-27 23:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
讲解:
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

详细内容

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表