
Cypress CY3640 USB Starter Kit
User’s Guide
Cypress Semiconductor Ver 0.993
Page 41
DALLAS.ASM
;; DS1620a.asm - DS1620 High Reolution Temperature Measurement Sensor
include "ds1620a.inc"
;
ThermPort :equ 00h ; SysPort0
ThermMaskBits :equ 07h ;
ThermData :equ 01h ;
ThermClock :equ 02h ;
ThermReset :equ 04h ;
gbThermProtocol :equ 30h ;
gbThermPortValue :equ 31h ;
gbThermPortMirror :equ 32h ;
gbThermTempRead :equ 33h ;
gbThermTempRead2 :equ 34h ;
gbThermTempLast :equ 78h ;USBEndP1FIFO
gbThermTempLast2 :equ 79h ;USBEndP1FIFO +1
;//$PAGE
;*******************************************************************************
; ThermInitialize()
; @func Initialize the thermometer to continuous mode.
;*******************************************************************************
ThermInitialize:
; Standalone mode
mov a,ThermConfigRead
call ThermPortRead
; Check mode
mov a,[gbThermPortValue]
and a,ThermControlOneShot | ThermControlCPUUse
cmp a,ThermControlCPUUse
jz ThermInitDone
; Set mode
mov a,[gbThermPortValue]
and a,~(ThermControlOneShot | ThermControlCPUUse)
or a,ThermControlCPUUse | 08h ; set reserved bit
mov [gbThermPortValue],a
; Write it out
mov a,ThermConfigWrite
call ThermPortWrite
; Wait 10 milliseconds
mov a,10
call SysDelayMS
ThermInitDone:
; Start conversion
mov a,ThermConvertStart
mov [gbThermProtocol],a
call ThermPortResetHigh
call ThermPortProtocolWrite
call ThermPortResetLow
ret
;//$PAGE
;*******************************************************************************
; ThermReadTemperature()
; @func Read the current temperature.
;*******************************************************************************
ThermReadTemperature: