por deniro » 28 Out 2006 08:16
Estou colocando apenas as sub rotinas do relógio e o envio de dados e o recebimento de dados do RTC.
;MC ETÁ UTILIZANDO UM CRISTAL DE 2,097MHZ
;WTCMD É O ENDERAÇAMENTO DA MEMORIA RTC
;SDA É O DADO A SER ENVIADO
;SCL É O CLOCK
CONF_RTC: MOV WTCMD,#10110001B ;REGISTRADOR 31H
MOV R4,#81H
CALL WRITE
MOV WTCMD,#10110010B ;REGISTRADOR 32H
MOV R4,#00H
CALL WRITE
;________________________________________________________________________
LENDO_CONG: MOV WTCMD,#00110001B ;REGISTRADOR 31H
CALL READ
MOV WTCMD,#00110010B ;REGISTRADOR 32H
CALL READ
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
; RELOGIO WRITE-SPI
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
WRITE:
MOV A,WTCMD
CALL OUT
MOV A,R4
CALL OUT
RET
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
; RELOGIO READ-SPI
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
READ:
MOV A,WTCMD
CALL OUT
LCALL IN
MOV R2,A
RET
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
; SUB-ROTINAS PROTOCLO SPI
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
OUT:
MOV B,#8
OLOOP:
RLC A
MOV SDA,C
SETB SCL
CLR SCL
DJNZ B,OLOOP
SETB SDA
RET
IN:
MOV B,#8
SETB SDA
INLOOP:
CLR SCL
SETB SCL
MOV C,SDA
RLC A
DJNZ B,INLOOP
CLR SCL
RET