在许多电子设备中,一般会进行一些与时刻有关的操控,假如用体系的定时器来规划时钟的话,偶尔的掉电或晶振的差错都会形成时刻的紊乱,更糟糕的是,若彻底用程序规划时钟还会占用许多的体系资源,然后严重影响体系的其他功用。为此,许多芯片制作公司都规划出了各式各样的实时时钟芯片。
常见的时钟芯片有两种。
一种是体积十分小的表贴是元件,一般用在高端小型手持式仪器或设备中。这种芯片在使用时需求外接备份电池和外部晶振,电池用来坚持主体系在意外时为时钟芯片供电,外部晶振用来给时钟芯片所有必要的震动来历。
另一种体积相对较大,一般为直插式,它的内部有可充电锂电池,一起内部还集成了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};
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/254671.html