新闻中心

EEPW首页>嵌入式系统>设计应用> 51单片机-时钟芯片DS1302

51单片机-时钟芯片DS1302

作者: 时间:2016-12-02 来源:网络 收藏
在许多电子设备中,通常会进行一些与时间有关的控制,如果用系统的定时器来设计时钟的话,偶然的掉电或晶振的误差都会造成时间的错乱,更糟糕的是,若完全用程序设计时钟还会占用大量的系统资源,从而严重影响系统的其他功能。为此,很多芯片制造公司都设计出了各种各样的实时时钟芯片。
常见的时钟芯片有两种。
一种是体积非常小的表贴是元件,通常用在高端小型手持式仪器或设备中。这种芯片在使用时需要外接备份电池和外部晶振,电池用来保持主系统在意外时为时钟芯片供电,外部晶振用来给时钟芯片所必须的震荡来源。
另一种体积相对较大,一般为直插式,它的内部有可充电锂电池,同时内部还集成了32.768KHZ的标准晶振。
DS18B20是由DALLAS公司生产的,采用普通的32.768KHZ。
DS18B20的内部结构:
DS18B20的读数据时序:
如图的数据序列,左边是低位,右边是高位,在负跳变沿进行读数据,上升沿进行写数据。
DS18B20的写数据时序:
数据在SCLK在上升沿输入,前8位指定访问地址命令,在之后的时钟周期,读操作时输出的数据,写操作时输入数据。时钟脉冲的个数在单字节方式下为8个地址加8个数据。
DS18B20的控制字:


日历时钟寄存器与控制字对照:
日历时钟寄存器:
寄存器功能说明:
万年历程序: #include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uint i;
sbit SCLK = P1^3;
sbit IO = P1^4;
sbit RST = P1^5;
sbit RS = P1^0;
sbit RW = P1^1;
sbit E = P1^2;
uchar Time_Data[]={0,1,2,3,4,5,6,7,8,9};

上一页 1 2 下一页

评论


技术专区

关闭