Prof. Adilson Gonzaga
Interface com Termômetro Digital
DS1620 DS1620 DS1620 DS1620
Termômetro e termostato digitalTermômetro e termostato digitalTermômetro e termostato digitalTermômetro e termostato digital
• Mede temperaturas de -55 ° C a + 125 ° C em incrementos de 0,5 ° C
• Fahrenheit equivalente é -67 ° F a + 257 ° F em incrementos de 0,9 ° F
• A temperatura é lida como um valor de 9 bits
Registro de configuração / status
• Determina o método de operação que o DS1620 usará em uma aplicação particular e indica o status da operação de conversão de temperatura.
CPU = bit de uso da CPU. • CPU = 0, o pino CLK / CONV atua como um controle de início de conversão, quando RST é
baixo. • CPU = 1, o DS1620 será usado com uma CPU se comunicando com ele pela porta de 3 fios e
a operação do pino CLK / CONV é como um relógio normal em conjunto com DQ e RST.
1SHOT = Modo One-Shot.
• 1SHOT = 1, o DS1620 executará uma conversão de temperatura
• 1SHOT = 0, o DS1620 executará a conversão de temperatura continuamente.
0 0 0 0 1 0 1 0
Byte de Configuração
= 0Ah
A temperatura é lida serialmente no Pino DQ no formato de 9 bits.O MSB é o sinal: 0 = positivo e 1 = negativo
Exemplo de uma temperatura em binário fornecida pelo DS1620
+59.0 ⁰C 0 0 1 1 1 0 1 1 0
Sinal0 = Positivo1 = Negativo
Casa decimal0 = .01 = .5
9 Bits
0 0 1 1 1 0 1 1
Sempre 0
= 3Bh 59BCD
= 076h
Se a temperatura lida do DS1620 for positiva, o número binário equivalente é obtido diretamente dos 7 bits intermediários, apenas acrescentando zero no Bit Mais Significativo
1 1 0 0 1 0 0 1 0
- .0
0 0 1 1 0 1 1 1
Sinal Negativo = Complemento de 2
= 55BCD
37h
Exemplo
Se a temperatura for negativa, o valor binário equivalente à temperatura lida no DS1620 deve ser obtida dos 7 bits intermediários em complemento de 2, acrescentando-se zero no Bit Mais Significativo.
9 Bits lidos do DS1620
Interface do sensor de Temperatura DS1620 comO Microcontrolador AT89S52
DQ EQU P3.0CLK EQU P3.1RST EQU P1.0
Principais Comandos para o Sensor de Temperatura
Start Convert T [EEh] Este comando inicia uma conversão de temperatura. Não são necessários mais dados.
Stop Convert T [22h] Este comando interrompe a conversão de temperatura. Não são necessários mais dados.
Read Temperature [AAh] Este comando lê o conteúdo do registro que contém o último resultado da conversão de temperatura. Os próximos nove ciclos de clock produzirão o conteúdo deste registro.
;***************************************************; Configuração do DS1620; CONF deve ser chamada uma vez e MEDE deve ser chamada toda vez que fizer uma leitura.;***************************************************CONF:
MOV A,#0AH ;Configuração = cpu & ContinuoACALL OUT_CMD
MOV A,#0EEH ;Iniciar conversão.ACALL OUT_CMDRET
;*****************************************
;***************************************************; OUT_CMD - Envia comando para o DS1620..;***************************************************OUT_CMD:
CLR RST ; É necessário pulsar o Reset antes de enviar comando SETB RSTMOV R7,#8
SERIAL: RRC A ;Desloca o ACC para enviar o cada bit (LSB) via CarryMOV DQ,C ; Envia bit a bit para DQACALL PULSE ; Pulsa o clock a cada bit enviadoDJNZ R7,SERIALRET
;***************************************************
;*****************************************PULSE:
SETB CLKCLR CLKSETB CLKRET
;*****************************************
;*****************************************PULSE:
SETB CLKCLR CLKSETB CLKRET
;*****************************************
;************************************; OUT_CMD - Envia comando para o DS1620.;***********************************OUT_CMD:
CLR RSTSETB RSTMOV R7,#8
SERIAL: RRC AMOV DQ,CACALL PULSEDJNZ R7,SERIALRET
;************************************
;*****************************************; Rotina que lê a temperatura do sensor DS1620 e salva em ; R0 = LSB e R1 = 00 se positivo ou R1 = 01 se negativo;******************************************MEDE: MOV A,#0AAH ; Comando de leitura de
ACALL OUT_CMD ;temperatura (9 bits).ACALL IN_DATA ; Ler o LSB (8 bits)da temperatura.MOV R0,A ;Salvar o LSB em R0.MOV 20H.0,C ; Ler o Bit de sinal (nono
;bit) da temperaturaMOV R1,20H ; Salvar no bit 0 de
;R1 (1 = negativo 0 = positivo)MOV A,#0EEH ; Iniciar outra conversão.ACALL OUT_CMDRET
;***************************************************
;*************************************************; IN_DATA - Lê um dado do DS1620.;*************************************************IN_DATA: CLR A
SETB DQ ; DQ será usado como ;entrada (leitura)
SETB RSTMOV R7,#9
SERIAL2: SETB CLKCLR CLKMOV C,DQSETB CLKRRC ADJNZ R7,SERIAL2RLC ARET
;**********************************************
Top Related