串行时钟电路

  • 产品型号:

    GS1381
  • 产品名称:

    串行时钟电路
  • 封装形式:

    SOP8
  • GS1380/ GS1381是一款带秒、分、时、日、星期、月、年的串行时钟计时芯片,每个月日期以及闰年自动调节,GS1380具有低功耗工作方式并用若干寄存器存储对应信息,一个32.768KHz晶振校准时钟,为了使用最小管脚,GS1380使用一个I/O口与微信息处理机相连仅使用三根引线(1 )RST 复位;(2 ) SCLK 串行时钟;(3) I/O 口数据就可以传送1字节或8字节的字符组。因而GS1380是一种性价比极高的时钟芯片。

    工具及文档:
    GS1380 /GS1381与微控制器的接口软件及功能应用举例
    下面首先给出基本的接口软件,然后举例说明各种功能的应用。
    写保护寄存器操作
    当写保护寄存器的最高位为0时,允许数据写入寄存器,写保护寄存器可以通过命令字节8E 、8F来规定禁止写入/读出。写保护位不能在多字节传送模式下写入。
    Write_Enable:
    MOV Command,#8Eh;命令字节为8E
    MOVByteCnt,#1 ;单字节传送模式
    MOV R0,#XmtDat;数据地址覆给R0
    MOV XmtDat,#00h;数据内容为0 (写入允许)
    ACALLSend_Byte ;调用写入数据子程序
    RET
    当写保护寄存器的最高位为1 时,禁止数据写入寄存器
    Write_Disable:
    MOV Command,#8Eh ;命令字节为8E
    MOV ByteCnt,#1 ;单字节传送模式
    MOV R0,#XmtDat ;数据地址覆给R0
    MOV XmtDat,#80h ;数据内容为80h (禁止写入)
    ACALL Send_Byte ;调用写入数据子程序
    RET
    以上程序调用了基本数据发送(Send_ Byte)模块及一些内存单元定义, 其源程序清单在附录中给出。下面的程序亦使用了这个模块。

    时钟停止位操作
    当把秒寄存器的第7位(时钟停止位)设置为0时,起动时钟开始。
    Osc_Enable:
    MOV Command,#80h ;命令字节为80
    MOV ByteCnt,#1 ;单字节传送模式
    MOV R0,#XmtDat ;数据地址覆给R0
    MOV XmtDat,#00h ;数据内容为0 (振荡器工作允许)
    ACALL Send_Byte ;调用写入数据子程序
    RET

    当把秒寄存器的第7 位时钟停止位设置为1 时,时钟振荡器停止,GS1380 进入低功耗方式,
    Osc_Disable:
    MOV Command,#80h ;命令字节为80
    MOV ByteCnt,#1 ;单字节传送模式
    MOV R0,#XmtDat ;数据地址覆给R0
    MOV XmtDat,#80h ;数据内容为80h (振荡器停止)
    ACALL Send_Byte ;调用写入数据子程序
    RET

    多字节传送方式
    当命令字节为BE或BF时,CS1380 工作在多字传送模式,8 个时钟/日历寄存器从寄存器0地址开始连续读写从0位开始的数据。
    例如:写入00年、6月21日、星期三、13 时、59分、59秒、程序设置如下:
    Write_Multiplebyte:
    MOV Command,#0Beh ;命令字节为BEh
    MOV ByteCnt,#8 ;多字节写入模式(此模块为8个)
    MOV R0,#XmtDat ;数据地址覆给R0
    MOV XmtDat,#59h ;秒单元内容为59h
    MOV XmtDat+1,#59h ;分单元内容为59h
    MOV XmtDat+2,#13h ;时单元内容为13h
    MOV XmtDat+3,#21h ;日期单元内容为21h
    MOVXmtDat+4,#06h ;月单元内容为06h
    MOV XmtDat+5,#03h ;星期单元内容为03h
    MOV XmtDat+6,#0 ;年单元内容为00h
    MOV XmtDat+7,#0 ;写保护单元内容为00h
    ACALL Send_Byte ;调用写入数据子程序
    RET

    读出寄存器0-7的内容,程序设置如下:
    Read_Multiplebyte:
    MOV Command,#0BFh ;命令字节为BFh
    MOV ByteCnt,#8 ;多字节读出模式(此模块为8个)
    MOV R1,#RcvDat ;数据地址覆给R1
    ACALL Receive_Byte ;调用读出数据子程序
    RET
    以上程序调用了基本数据接收(Receive_ Byte)模块及一些内存单元定义, 其源程序清单在附录中给出。下面的程序亦使用了这个模块。
    单字节传送方式
    例如:写入8 时(12小时模式),程序设置如下:
    Write_Singlebyte:
    MOV Command,#84h ;命令字节为84h
    MOV ByteCnt,#1 ;单字节传送模式
    MOV R0,#XmtDat ;数据地址覆给R0
    MOV XmtDat,#88h ;数据内容为88h
    ACALLSend_Byte ;调用写入数据子程序
    RET

    上面所列出的程序模块“Write_ Enable”、“ Write_ Disable ”、“Osc_ Enable”、 “Osc_ Disable” 与单字节写入模块“Write_ Singlebyte”的程序架构完全相同,仅只是几个入口参数不同,本文是为了强调功能使用的不同才将其分为不同模块,用户在使用中可灵活简略。

    下面模块举例说明如何单字节读出“小时”单元的内容。.
    Read_Singlebyte:
    MOV Command,#85h;命令字节为85h
    MOV ByteCnt,#1;单字节传送模式
    MOV R1,#RcvDat ;数据地址覆给R1
    ACALL Receive_Byte ;调用读出数据子程序
    RET

    附录:数据发送与接收模块源程序清单
    ; CPU工作频率最大不超过20MHz
    ;*********************************************************************************
    ; P87LPC762/4 主控器发送接受数据程序
    ; 说明:本程序是利用Philips公司的P87LPC764 单片机(任何具有51 内核或其它合适的单片机都可在此作为主控器)的普通I/O口(如P1.2/P1.3/P1.4)实现总线的功能,对总线上的器件(本程序采用CS1380)进行读写操作。命令字节在Command,传送字节数在ByteCnt中,所发送的数据在XmtDat中,所接收的数据在RcvDat中。
    ;*********************************************************************************
    ;P87LPC762/4 主控器总线发送接受数据程序头文件
    ;内存数据定义
    BitCnt DATA 30h; 数据位计数器
    ByteCnt DATA 31h ; 数据字节计数器
    Command DATA 32h ; 命令字节地址
    RcvDat DATA 40H ; 接收数据缓冲区
    XmtDat DATA 50H ; 发送数据缓冲区
    ;端口位定义
    IO_DATA Bit P1.3; 数据传送总线
    SCLK Bit P1.4 ; 时钟控制总线
    RST Bit P1.2; 复位总线
    ;********************************************************************************
    ;发送数据程序
    ;名称:Send_ Byte
    ;描述:发送(ByteCnt)个字节给被控器CS1380
    ;命令字节地址在Command中
    ;所发送数据的字节数在ByteCnt中,发送的数据在XmtDat缓冲区中
    ;********************************************************************************
    Send_Byte:
    CLR RST ;复位管脚为低电平所有数据传送终止
    NOP
    CLR SCLK ;清时钟总线
    NOP
    SETB RST ;复位管脚为高电平逻辑控制有效
    NOP
    MOV A,Command ;准备发送命令字节
    MOV BitCnt,#08h ;传送位数为8
    S_Byte0:
    RRC A ;将最低位传送给进位位C
    MOV IO_DATA,C ;位传送至数据总线
    NOP
    SETB SCLK ;时钟上升沿发送数据有效
    NOP
    CLR SCLK ;清时钟总线
    DJNZ BitCnt,S_Byte0 ;位传送未完毕则继续
    NOP
    S_Byte1: ;准备发送数据
    MOV A,@R0 ;传送数据过程与传送命令相同
    MOV BitCnt,#08h
    S_Byte2:
    RRC A
    MOV IO_DATA,C
    NOP
    SETB SCLK
    NOP
    CLR SCLK
    DJNZ BitCnt,S_Byte2
    INC R0 ;发送数据的内存地址加1
    DJNZ ByteCnt,S_Byte1 ;字节传送未完毕则继续
    NOP
    CLR RST ;逻辑操作完毕清RST
    RET

    ;********************************************************************
    ;接收数据程序;
    ;名称:Receive_Byte
    ;描述:从被控器CS1380接收(ByteCnt)个字节数据
    ;命令字节地址在Command中
    ;所接收数据的字节数在ByteCnt中,接收的数据在RcvDat缓冲区中
    ;********************************************************************
    Receive_ Byte:
    CLR RST ;复位管脚为低电平所有数据传送终止
    NOP
    CLR SCLK ;清时钟总线
    NOP
    SETB RST ;复位管脚为高电平逻辑控制有效
    MOV A,Command ;准备发送命令字节
    MOV BitCnt,#08h ;传送位数为8

    R_Byte0:
    RRC A ;将最低位传送给进位位C
    MOV IO_DATA,C ;位传送至数据总线
    NOP
    SETB SCLK ;时钟上升沿发送数据有效
    NOP
    CLR SCLK ;清时钟总线
    DJNZ BitCnt,R_Byte0 ;位传送未完毕则继续
    NOP
    R_Byte1: ;准备接收数据
    CLR A ;清类加器
    CLR C ;清进位位C
    MOVBitCnt,#08h ;接收位数为8
    R_Byte2:
    NOP
    MOV C,IO_DATA ;数据总线上的数据传送给C
    RRC A ;从最低位接收数据
    SETB SCLK ;时钟总线置高
    NOP
    CLR SCLK ;时钟下降沿接收数据有效
    DJNZ BitCnt,R_Byte2 ;位接收未完毕则继续
    MOV @R1,A ;接收到的完整数据字节放入接收内存缓冲区
    INC R1 ;接收数据的内存地址加1
    DJNZ ByteCnt,R_Byte1 ;字节接收未完毕则继续
    NOP
    CLRRST ;逻辑操作完毕清RST
    RET
    END


  • 工作电压范围:2.0V~5.5V
    l 最大输入串行时钟:2.0V时 500KHz
    5.0V时 2MHz
    l 工作电流:2.0V时至少400nA
    5.0V时至少1μA
    l 与TTL兼容
    l 串行I/O口传送
    l 两种数据传送方式:单字节传送
    多字节传送(字符组方式)
    l 所有寄存器都以BCD码格式存储


  • 电话、传真、便携式仪器以及电池供电的仪器仪表等产品领域。


  • SOP8
二维码