A SERVICE OF

logo

Cypress CY3640 USB Starter Kit
User’s Guide
Cypress Semiconductor Ver 0.993
Page 46
;//$PAGE
;*******************************************************************************
; ThermPortWrite8Bits()
; @func .
; @parm BYTE | gbThermPortValue | Value to write
;*******************************************************************************
ThermPortWrite8Bits:
; Setup bitmask
mov a,1
push a
pop x
mov a,8
ThermPortWriteLoop:
push a
;*********************************************
; Get bitmask
push x
pop a
and a,[gbThermPortValue]
jnz ThermPortWriteValue1
ThermPortWriteValue0:
; ThermData =0;
mov a,[gbThermPortMirror]
and a,~ThermData
mov [gbThermPortMirror],a
iowr ThermPort
jmp ThermPortWriteValueClock
ThermPortWriteValue1:
; ThermData =1;
mov a,[gbThermPortMirror]
or a,ThermData
mov [gbThermPortMirror],a
iowr ThermPort
;jmp ThermPortWriteValueClock ; redundant, but good practice
ThermPortWriteValueClock:
; ThermClock =0;
mov a,[gbThermPortMirror]
and a,~ThermClock
mov [gbThermPortMirror],a
iowr ThermPort
; Next bit in mask
push x
pop a
asl a
push a
pop x
; ThermClock =1;
mov a,[gbThermPortMirror]
or a,ThermClock
iowr ThermPort
;*********************************************
; Finished?
pop a
dec a
jnz ThermPortWriteLoop
ret