|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
51单片机学习:使用DS1302芯片制作电子钟
* m2 H5 Q) v( E9 l. K* {1 m, w2 \2 W( f+ o
5 _, t' P' [. N& _# }; o7 e3 A) h
DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。 : U$ ?9 f, s- w, ]$ q5 c
DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据传送的方法。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc>2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK为时钟输入端。 下图为DS1302的引脚功能图 4 X9 Q4 a* ]. X2 K( A% I: F
..................................................................................... 6 J6 o& T+ _9 o
) V2 ~! K+ h( i- ]4 Y$ L
7 u5 K0 o; m! V4 x5 G* E( G , E6 @. }6 `- } P& |
我在淘宝上花了几块钱买了个山寨的1302模块,凑合着可以用,
! b v0 H$ n% d# b, N" E/ r; x但是模块上的sclk,io,RST这3个脚没有上拉电阻,自己加上去了,汗!
2 T7 ]6 U: s# k( \" X6 f9 k' v不加上拉电阻,显示的时钟很容易发生错误
$ C- T9 G5 p$ e; S好了不多说,贴代码
- r1 j5 i- C, G本程序只显示时间,没有年份和月份... j$ V' P3 d' A, u. d
2 q) K/ q# I* Z6 I; g7 m
$ z9 H9 C6 y9 [" @# B8 T% b# n1 B! ? @- _( c& P' R
) o; A m8 F" x5 o3 b. \: |" m8 i
! U! N: b1 [% ]$ b8 a, r7 c |
|