电工技术基础_电工基础知识_电工之家-电工学习网

欢迎来到电工学习网!

时钟芯片ds1302电路图材料

2017-07-05 16:25分类:电子技术 阅读:

 

一、 首要看几张图画给咱们一个全体形象:
1. 直插的DS1302时钟芯片:

图1
2. 贴片封装的DS1302时钟芯片:

图2
3. 用DS1302和1602做的数字时钟:

图3
图3为用单片机从DS1302中读取时刻,然后把时刻显如今1602液晶上。1602上榜首行闪现的是年月日和星期,第二行闪现的为时分秒。
二、 DS1302概述:
1. 粗浅易懂言诠释DS1302:
DS1302是时钟芯片,那它就有计时的作用。他和咱们往常触摸的电子表差不多,能够对年月日、时分秒、星期计时。咱们能够用单片机往DS1302里边写入时刻进行时刻设置,也能够用单片机从DS1302中读取时刻,读出来的时刻也能够放在液晶上闪现。这么咱们就能够完毕一块电子表的功用了。
2. DS1302封装及引脚散布:
从图1和图2咱们看到DS1302有两种封装,一种是直插式的,另
一种为贴片式封装,而且DS1302有八个管脚。介绍如下:

好了, 看了芯片的引脚图是不是觉得挺简略的啊! 晶振两个脚, GND一个脚, VCC两个脚, 咱们尽需求关怀的只剩下三个脚了. RST引脚的操作十分简略,给它高电平标明主张芯片让芯片作业(低电平复位,高电往常芯片正常),给它低电平标明不让芯片作业。SCLK引脚标明时钟引脚,它给IO引脚数据的传输供应时序。
3. DS1302的特征:
� 时钟计数功用,能够对秒、分钟、小时、月、
星期、年的计数。年计数可抵达2100 年。
� 有31*8 位的额定数据暂存寄存器(即RAM,掉电丢掉)
� 起码I/O 引脚传输,经过三引脚操控
� 作业电压:2.0-5.5V
� 作业电流小于320 纳安(2.0V)
� 读写时钟寄存器或内部RAM(31*8 位的额定
数据暂存寄存)能够选用单字节办法(一次读写单个字节)和突发办法(一次读写多个字节)
� 8-pin DIP (直插封装)或8-pin SOICs(贴片封装)
三、 DS1302操作:
1. 开发板电路图:

图4 开发板电路图
从电路图中咱们能够看到,RST片选使能引脚接到了单片机的P3.0引脚,SCLK时钟引脚接到而来单片机的P3.3引脚,IO引脚接到了单片机的P2.4引脚。
2.时序与数据读写:
关于操作一个芯片而言,最首要的应当是怎样依据它的时序图向它里边写入数据和读取数据。时序即是凹凸电平随时刻的改动,和咱们见到的波形随时刻改动差不多。下面教咱们怎样往芯片里边写数据,怎样从芯片里边读数据。温馨提示:在读写芯片时,通常需求先写入寄存器或RAM的地址(有时也变成写入指令),然后才调对芯片的寄存器或RAM进行读写操作!
2.1 往芯片里写数据:
由于芯片只辨认0和1,所以写数据无非即是往芯片里边写0和1。那芯片又是怎样辨认0和1的呢?正本咱们只需在特定的时刻把操控线置为高电平或拉为低电平就能够了。下面看下时序图:

图5 DS1302写时序
先看RST引脚(复位引脚),标号上面的一个横杠标明此引脚低电平有用,也即给它低电平后芯片复位,不能正常作业。所以欲使芯片正常作业,此引脚应当给高电平,从时序图中也能够看出,咱们进行写操作的时分RST引脚应当置为高电平。
再看SCLK时钟引脚和IO引脚。图中的黑色箭头标明写入的数据在上升沿锁存。也即是说假定咱们要往DS1302里边写入一位二进制数据,首要应当把SCLk引脚拉低,然后把咱们要写入的一位二进制数据送到IO口,再把SCLK时钟线拉高,此刻数据就被送到DS1302中了。还有一点需求留心,写数据的时分先写低位,后读写高位。读写的时分,先写地址,后写数据。咱们或许会有点晕了吧,哈哈,剖析下下面的代码咱们就了解了:
写操作的代码:
//地址、数据发送子程序
void Write1302 ( uchar addr,dat )
{
uchar i,temp,m,n;
RST=0; //RST引脚为低,数据传送接连
SCLK=0; //清零时钟总线
RST = 1; //RST引脚为高,逻辑操控有用
//发送地址
for ( i=8; i>0; i-- ) //循环8次移位
{
SCLK = 0; //先把时钟线拉低
temp = addr;
DIO = (bit)(temp&0x01); //每次传输低字节,数据放到数据端口
addr >>= 1; //右移一位
SCLK = 1; //把时钟线拉高,锁存数据
}
//发送数据
m=dat/10; //存储的时分,高四位存储十位,低四位存储个位,所以需求改换
n=dat%10;
dat=m*16+n; //十进制转化为十六进制,高四位寄存十
位,第四位寄存个位
for ( i=8; i>0; i-- )
{
SCLK = 0; //先把时钟线拉低
temp = dat;
DIO = (bit)(temp&0x01); //只取最低一位
dat >>= 1; //右移一位
SCLK = 1; //把时钟线拉高,锁存数据
}
RST = 0; //数据传送接连
}
2.2 从DS1302中读取数据:

图6 DS1302的读时序
先看RST引脚(复位引脚),标号上面的一个横杠标明此引脚低电平有用,也即给它低电平后芯片复位,不能正常作业。所以欲使芯片正常作业,此引脚应当给高电平,从时序图中也能够看出,咱们进行写操作的时分RST引脚应当置为高电平。
再看SCLK时钟引脚和IO引脚。图中的前八位的黑色箭头标明写入的数据在上升沿锁存,后八位的黑色箭头标明下降沿读取数据。也即是说假定咱们要从DS1302里边读出一位二进制数据,首要应当把SCLk引脚拉高,然后把SCLK拉低(在SCLK拉低的一刹那间DS1302的数据送到了IO端口上),再把IO口上的数据存入变量,此刻就读到了一位二进制数据。还有一点需求留心,读数据的时分先读低位,后读高位。读写的时分,先写地址,后读写数据。咱们或许会有点晕了吧,哈哈,剖析下下面的代码咱们就了解了:
对应代码:
//数据读取子程序
uchar Read1302 ( uchar addr )
{
uchar i,temp,dat1,dat2;
RST=0; //芯片处于复位状况
SCLK=0; //清零
RST = 1; //芯片开端作业
//发送地址
for ( i=8; i>0; i-- ) //循环8次移位
{
SCLK = 0; //时钟线拉低
temp = addr;
DIO = (bit)(temp&0x01); //每次传输低位
addr >>= 1; //右移一位
SCLK = 1;
}
//读取数据
for ( i=8; i>0; i-- )
{
SCLK = 1;//时钟线拉高
SCLK = 0;//时钟线拉低
ACC_7=DIO;//读取数据,ACC_7为寄存数据变量的最高位一位
ACC>>=1;//右移一位
}
RST=0; //阻遏芯片作业
dat1=ACC;
dat2=dat1/16; //数据进制改换,获取高四位,作为十位
dat1=dat1%16; //获取第四位,作为个位
dat1=dat1+dat2*10; //得到的十进制数
return (dat1); //回来十进制值
}

上一篇:初三电路辨认标号和画图阐明

下一篇:贴片电感好坏用万用表查看办法

相关推荐

电工推荐

    电工技术基础_电工基础知识_电工之家-电工学习网
返回顶部