3)硬件部分:
在时间模块中,起主要作用的是 DS1302 芯片。芯片的 X1,X2 引脚接 32.768kHz 的晶
振,Vcc1 和 Vcc2 接 5V 电源,SCLK 为串行时钟引脚,接单片机的 3 引脚,RST 非引脚为复位,
接单片机的 4 引脚,I/O 引脚接单片机的 2 引脚,作为输入输出引脚。
4)芯片介绍:
DS1302 是高性能,低功耗的实时时钟芯片,它外接晶振,采用 SPI 三线接口与 CPU 进
行同步通信,并可采用突发模式一次传送多个字节的时钟信号或 RAM 数据。实时时钟可提
供秒,分,时,日,月和年,一个月少于 31 日会自动调整,包括闰年。它相当于把所有精
确的时钟/日历算法都内嵌在里面了,而且与单片机仅仅是数据通信的关系,所以单片机资
源开销极低。本次实验,采用的是 DS1302 芯片中的突发模式一次收发多个字节的时钟信号。
5)相关程序:
整个初始化以及读写 DS1302 程序共分为初始化芯片、设定时间开机默认值、读/写一字
节数据并存到相应的小时、分钟、秒寄存器子程序、读/写多位数据的循环程序等部分。通过
不断改变 I/O 端口和 SCLK 端口电平实现数据读写,此处通过改变 STATUS,C 的数据套用函数
rrf 来实现。
因本程序使用中断系统,为防止在 DS1302 读取时中断产生错误,在 DS1302 读写程序中
改变 INTCON,RBIE 实现高低电平中断屏蔽
A)DS1302 初始化及解保护程序如下:
;------------------------------------------
;程序名:dsini
;程序作用:初始化 ds1302
;------------------------------------------
dsini
movlw d'0'
movwf porta ;将 ds1302 禁止
movlw 8eh ;实现 ds1302 的写操作,接除 WP7 保护
movwf dsw
bsf porta,2 ;将 rst 置 1 开始写入
call dswrite
movlw 00h
movwf dsw
call dswrite
bcf porta,2 ;将 rst 置 0 终止写入
movlw 00h
movwf sec
movwf min
movwf hour
movlw 01h
movwf year
movwf month
评论1