Interface com Termômetro Digitaliris.sel.eesc.usp.br/sel614/Aula12.pdfExemplo de uma temperatura em...

11
Prof. Adilson Gonzaga Interface com Termômetro Digital

Transcript of Interface com Termômetro Digitaliris.sel.eesc.usp.br/sel614/Aula12.pdfExemplo de uma temperatura em...

Page 1: Interface com Termômetro Digitaliris.sel.eesc.usp.br/sel614/Aula12.pdfExemplo de uma temperatura em binário fornecida pelo DS1620 +59.0 ⁰C 0 0 1 1 1 0 1 1 0 Sinal 0 = Positivo

Prof. Adilson Gonzaga

Interface com Termômetro Digital

Page 2: Interface com Termômetro Digitaliris.sel.eesc.usp.br/sel614/Aula12.pdfExemplo de uma temperatura em binário fornecida pelo DS1620 +59.0 ⁰C 0 0 1 1 1 0 1 1 0 Sinal 0 = Positivo

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

Page 3: Interface com Termômetro Digitaliris.sel.eesc.usp.br/sel614/Aula12.pdfExemplo de uma temperatura em binário fornecida pelo DS1620 +59.0 ⁰C 0 0 1 1 1 0 1 1 0 Sinal 0 = Positivo

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

Page 4: Interface com Termômetro Digitaliris.sel.eesc.usp.br/sel614/Aula12.pdfExemplo de uma temperatura em binário fornecida pelo DS1620 +59.0 ⁰C 0 0 1 1 1 0 1 1 0 Sinal 0 = Positivo

A temperatura é lida serialmente no Pino DQ no formato de 9 bits.O MSB é o sinal: 0 = positivo e 1 = negativo

Page 5: Interface com Termômetro Digitaliris.sel.eesc.usp.br/sel614/Aula12.pdfExemplo de uma temperatura em binário fornecida pelo DS1620 +59.0 ⁰C 0 0 1 1 1 0 1 1 0 Sinal 0 = Positivo

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

Page 6: Interface com Termômetro Digitaliris.sel.eesc.usp.br/sel614/Aula12.pdfExemplo de uma temperatura em binário fornecida pelo DS1620 +59.0 ⁰C 0 0 1 1 1 0 1 1 0 Sinal 0 = Positivo

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

Page 7: Interface com Termômetro Digitaliris.sel.eesc.usp.br/sel614/Aula12.pdfExemplo de uma temperatura em binário fornecida pelo DS1620 +59.0 ⁰C 0 0 1 1 1 0 1 1 0 Sinal 0 = Positivo

Interface do sensor de Temperatura DS1620 comO Microcontrolador AT89S52

DQ EQU P3.0CLK EQU P3.1RST EQU P1.0

Page 8: Interface com Termômetro Digitaliris.sel.eesc.usp.br/sel614/Aula12.pdfExemplo de uma temperatura em binário fornecida pelo DS1620 +59.0 ⁰C 0 0 1 1 1 0 1 1 0 Sinal 0 = Positivo

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.

Page 9: Interface com Termômetro Digitaliris.sel.eesc.usp.br/sel614/Aula12.pdfExemplo de uma temperatura em binário fornecida pelo DS1620 +59.0 ⁰C 0 0 1 1 1 0 1 1 0 Sinal 0 = Positivo

;***************************************************; 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

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

Page 10: Interface com Termômetro Digitaliris.sel.eesc.usp.br/sel614/Aula12.pdfExemplo de uma temperatura em binário fornecida pelo DS1620 +59.0 ⁰C 0 0 1 1 1 0 1 1 0 Sinal 0 = Positivo

;*****************************************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

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

Page 11: Interface com Termômetro Digitaliris.sel.eesc.usp.br/sel614/Aula12.pdfExemplo de uma temperatura em binário fornecida pelo DS1620 +59.0 ⁰C 0 0 1 1 1 0 1 1 0 Sinal 0 = Positivo

;*****************************************; 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

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