A SERVICE OF

logo

Cypress CY3640 USB Starter Kit
User’s Guide
Cypress Semiconductor Ver 0.993
Page 45
mov a,[gbThermPortMirror]
or a,ThermClock
mov [gbThermPortMirror],a
iowr ThermPort
ret
;//$PAGE
;*******************************************************************************
; ThermPortRead8Bits()
; @func .
; @parm BYTE | gbThermPortValue | Return read byte.
;*******************************************************************************
ThermPortRead8Bits:
; Setup bitmask
mov a,1
push a
pop x
mov a,8
ThermPortValueReadLoop:
push a
;*********************************************
; Tri-state data pin for input
mov a,[gbThermPortMirror]
or a,ThermData
iowr ThermPort
; ThermClock =0;
mov a,[gbThermPortMirror]
and a,~ThermClock
mov [gbThermPortMirror],a
iowr ThermPort
; Read in data pin and check for 0 or 1
iord ThermPort
and a,ThermData
jnz ThermPortReadValue1
ThermPortReadValue0:
jmp ThermPortReadClock
ThermPortReadValue1:
; Use bitmask
push x
pop a
or [gbThermPortValue],a
;jmp ThermPortReadClock ; redundant, but good practice
ThermPortReadClock:
; ThermClock =1;
mov a,[gbThermPortMirror]
or a,ThermClock
mov [gbThermPortMirror],a
iowr ThermPort
; Next bit in mask
push x
pop a
asl a
push a
pop x
;*********************************************
; Finished?
pop a
dec a
jnz ThermPortValueReadLoop
ret