Mitsubishi Motors DS5000TK User Manual

Page 157

Advertising
background image

USER’S GUIDE

050396 156/173

157

OPEN:

LCALL

CLOSE

;Make sure it is closed.

MOV

B,#4

;Set pattern period count.

MOV

A,#0C5H

;Load first byte of pattern.

OPENA:

LCALL

WBYTE

;Send out the byte.

XRL

A,#0FFH

;Generate next pattern byte.

LCALL

WBYTE

;Send out the byte.

SWAP

A

;Generate next pattern byte.

DJNZ

B,OPENA

;Repeat until 8 bytes sent.

RET

;Return.

;

;********************************

;*** SUBROUTINE TO CLOSE THE RTC

;********************************

;

; This subroutine insures that the registers of the timekeeper

; are closed by executing 9 successive reads of the date and time

; registers. The subroutine returns with both the accumulator

; and the B register modified.

;

CLOSE:

MOV

B,#9

;Set up to read 9 bytes.

CLOSEA:

LCALL

RBYTE

;Read a byte.

DJNZ

B,CLOSEA

;Loop for 9 byte reads.

RET

;Return.

;

;***********************************

;*** SUBROUTINE TO READ A DATA BYTE

;***********************************

;

; This subroutine performs a “context switch: to the CE2 data

; space and then reads one byte from the timekeeping device.

; Then it switches back to the CE1 data space and returns

; the byte read in the accumulator, with all other registers

; unchanged.

;

RBYTE:

PUSH

DPL

;Save the data

PUSH

DPH

; pointer on stack.

PUSH

MCON

;Save MCON register.

ORL

MCON,#4

;Switch to CE2.

PUSH

B

;Save the B register.

MOV

DPL,#4

;Set up for data input.

MOV

DPH,#0

;Set high address byte.

MOV

B,#8

;Set the bit count.

LI:

PUSH

ACC

;Save the accumulator.

MOVX

A,@DPTR

;Input the data bit from the RTC into

; ACC.7.

RLC

A

;Move it to carry.

POP

ACC

;Get the accumulator.

RRC

A

;Save the data bit.

DJNZ

B,LI

;Loop for a whole byte.

POP

B

;Restore the B register.

POP

MCON

;Restore the MCON register.

Advertising
This manual is related to the following products: