Sei sulla pagina 1di 60

ESCOLA POLITCNICA DE PERNAMBUCO - UPE

DEPARTAMENTO DE ENGENHARIA ELTRICA


PROJETO DE FINAL DE CURSO

DESENVOLVIMENTO DE UM TERMOSTATO
DIGITAL MICROCONTROLADO

por
ARTUR RAFAEL MARANHO DE OLIVEIRA
CCERO JOS DOS SANTOS JNIOR
TIAGO CAVALCANTI ALVES

Monografia submetida ao Departamento de Engenharia Eltrica da Escola Politcnica de


Pernambuco.

ORIENTADOR: ZLCIO DE LAVOR SALES, Msc

Recife, Dezembro de 2005.

Escola Politcnica de Pernambuco


Departamento de engenharia Eltrica
Projeto de Final de Curso

ESCOLA POLITCNICA
2
DE PERNAMBUCO

MONOGRAFIA DE FINAL DE CURSO


Avaliao Final
No dia 15 de dezembro de 2005, s 19:30 horas, reuniu-se para deliberar a defesa
da monografia de concluso de curso dos discentes Artur Rafael Maranho de
Oliveira, Ccero Jos dos Santos Jnior, Tiago Cavalcanti Alves orientados
pelo professor Zlcio de Lavor Sales, sob o ttulo Desenvolvimento de um
termostato digital microcontrolado, a banca composta pelos professores:
1. Marclio Feitosa
2. Luiz Otvio Maciel Cavalcanti de Albuquerque
3. Maria de Lourdes Melo Guedes Alcoforado

Aps a apresentao da monografia e discusso entre os membros da Banca, a


mesma foi considerada APROVADA.

MARCLIO FEITOSA

LUIZ OTVIO MACIEL

MARIA DE LOURDES M. G. ALCOFORADO

3
Resumo da Monografia apresentada ao Departamento de Engenharia Eltrica da Escola
Politcnica de Pernambuco.

DESENVOLVIMENTO DE UM TERMOSTATO
DIGITAL MICROCONTROLADO
Artur Rafael Maranho de Oliveira
Ccero Jos dos Santos Jnior
Tiago Cavalcanti Alves
Dezembro/2005
Orientador: Zlcio de Lavor Telles, Msc.
rea de Concentrao: Dispositivos Programveis.
Palavras-chave: Dispositivos Programveis, Automao Predial, Microcontroladores
Nmero de Pginas: 54.

O presente trabalho tem por objetivo o desenvolvimento e a implementao de um


prottipo de um sistema baseado no microcontrolador 8051 para obter o controle
automtico de um condicionador de ar, do tipo janela. O sistema substituir as chaves
seletoras manuais, por teclas, bem como incrementar um display de cristal lquido para
visualizao e programao da temperatura desejada. Foi adotada uma metodologia de
implementao de projetos baseada em tcnicas de particionamento, ou seja, diagrama em
blocos. Os resultados esperados vo desde a facilidade de programao atravs de um
sistema de entrada e sada moderno (teclado e display) presente em qualquer sistema digital
microprocessado, preciso no valor da temperatura desejada e uma fatal economia
energtica reduzindo a conta de energia eltrica de um determinado estabelecimento que
utilize este tipo de aparelho.

4
Summary of Monograph presented to UPE.

DEVELOPMENT OF A DIGITAL MICROCONTROLLED


THERMOSTAT
Artur Rafael Maranho de Oliveira
Ccero Jos dos Santos Jnior
Tiago Cavalcanti Alves
December / 2005
Supervisor(s): Zlcio de Lavor Telles, Msc.
Area of Concentration: Programmable devices
Keywords: Programmable devices, Land Automation, Microcontrollers
Number of Pages: 54.

The objectives of this monograph are the development and implementation of an


archetype of a system based on 8051 microcontroller to get an automatic control of
window air conditioning. The system will substitute the manual selector keys for
keyboard keys and develop a LCD (liquid crystal display) to visualize and program the
desired temperature. It was adopted a methodology of implementation based on blocks
diagram. The results waited are the programming easiness through a modern input output
system (keyboard keys and LCD), precision on desired temperature and electric energy
economy of a determined establishment that uses this type of device.

SUMRIO
LISTAS ...................... vi
1.
INTRODUO..........................................................................................................1
2.
FUNDAMENTOS TERICOS................................................................................ 2
2.1. INTRODUO....................................................................................................... 2
2.2. TRANSDUTORES DE TEMPERATURA.............................................................. 2
2.2.1. PRINCPIO DE FUNCIONAMENTO ................................................................ 2
2.3. AMPLIFICADORES DE SINAIS ........................................................................... 3
2.4. CONVERSORES ANALGICO-DIGITAL ........................................................... 5
2.5. MICROCONTROLADORES 8051.......................................................................... 6
2.5.1. INTRODUO AOS MICROCONTROLADORES........................................... 6
2.5.2. O 8051 NO PROJETO.......................................................................................... 6
2.6. DISPLAY DE CRISTAL LIQUIDO........................................................................ 7
2.7. CIRCUITO DE POTENCIA..................................................................................... 8
2.8. CONDICIONADOR DE AR ................................................................................... 8
3. DESENVOLVIMENTO DO SISTEMA......................................................................... 10
3.1. INTRODUO......................................................................................................... 10
3.2. PARTIO DO SISTEMA.......................................................................................10
3.3. DESENVOLVIMENTO DE HARDWARE..............................................................12
3.3.1. DIAGRAMA EM BLOCOS ...............................................................................12
3.3.2. SELEO E PINAGEM DOS COMPONENTES .............................................13
3.3.3. DIAGRAMA ESQUEMATICO .........................................................................15
3.3.4. LAYOUT DA PCI (PLACA DE CIRCUITO IMPRESSO)...............................16
3.3.5. LISTA DE COMPONENTES ........................................................................... 16
3.4. DESENVOLVIMENTO DE SOFTWARE.............................................................. 17
3.4.1. ESPECIFICAO DO SISTEMA.................................................................... 17
3.4.2. PRINCIPIO DE FUNCIONAMENTO DO SISTEMA...................................... 20
3.4.3. DESCRIO DAS PINAGENS DOS COMPONENTES................................ 26
3.4.4. ESCRITA DO ALGORITIMO.......................................................................... 26
3.4.5. ELABORAO DO CODIGO FONTE............................................................ 27
3.4.6. COMPILAO E DEBUGG ............................................................................ 29
3.4.7. GRAVAO DO PROGRAMA NO CHIP ..................................................... 30
4.
CONCLUSES E
PERSPECTIVAS.............................................................................31
4.1. CONCLUSES....................................................................................................... 31
4.2. PERSPECTIVAS................................................................................................... 31
ANEXOS............................................................................................................................ 33
ANEXO 1 DIAGRAMA ELTRICO.......................................................................... 33
ANEXO 2 FOTOS DO PROJETO............................................................................... 34
ANEXO 3 PROGRAMA FONTE................................................................................ 36
REFERENCIAS BIBLIOGRAFICAS............................................................................... 53

LISTAS

LISTA DE FIGURAS
FIGURA 2.1 AMPLIFICADOR OPERACIONAL........................................................ 3
FIGURA 2.2 AMPLIFICADOR OPERACIONAL INVERSOR E O RESPECTIVO
GANHO................................................................................................... 4
FIGURA 2.3 AMPLIFICADOR OPERACIONAL NO INVERSOR E O
RESPECTIVO GANHO.......................................................................... 4
FIGURA 3.1 PARTICIONAMENTO DO PROJETO................................................... 10
FIGURA 3.2 SISTEMA GENRICO MICROCONTROLADO UTILIZADO PARA
CONTROLE........................................................................................... 12
FIGURA 3.3 DIAGRAMA EM BLOCOS DO PROJETO.............................................13
FIGURA 3.4 DIAGRAMA EM BLOCOS COM COMPONENTES
SELECIONADOS....................................................................................15
FIGURA 3.5 DESENVOLVIMENTO DE UM PROJETO.............................................18
FIGURA 3.6 BLOCO SENSOR DE TEMPERATURA..................................................20
FIGURA 3.7 BLOCO AMPLIFICADOR........................................................................21
FIGURA 3.8 BLOCO CONVERSOR ANALGICO DIGITAL....................................22
FIGURA 3.9 BLOCO DE POTNCIA............................................................................23
FIGURA 3.10 PROGRAMADOR MPT 1010..............................................................30

LISTA DE TABELAS
TABELA 2.1 ENDEREO DAS 32 POSIES DO LCD 16 X 2 ................................. 7
TABELA 3.1 PARTICIONAMENTO DO PROJETO ................................................... 11
TABELA 3.2 COMPONENTES ESCOLHIDOS............................................................ 14
TABELA 3.3 COMPONENTES UTILIZADOS............................................................. 16
TABELA 3.4 HISTERESE.............................................................................................. 25

CAPTULO 1

1. INTRODUO

Este trabalho tem como objetivo principal mostrar o desenvolvimento e


implementao de um prottipo de um sistema de controle utilizando um condicionador de
ar, do tipo janela.
Nosso foco ser a substituio das chaves seletoras manuais, por teclas, bem como a
colocao de um display de cristal lquido para visualizao e programao da temperatura
desejada. Substituiremos tambm o termostato por um sensor eletrnico de maior preciso.
Tem como objetivo secundrio cumprir os requisitos da disciplina Projeto de Final de
Curso, bem como descrever os passos que utilizamos para o desenvolvimento do referido
projeto.
Na primeira anlise, no captulo 2, conheceremos os fundamentos tericos dos
principais componentes utilizados no desenvolvimento do projeto.
Posteriormente, no captulo 3 ser mostrada a metodologia usada para o
desenvolvimento e implementao, levando em considerao as etapas de hardware e
software seguidas para a efetivao do mesmo.
No ltimo captulo faremos uma concluso do trabalho mostrando os desafios,
aprendizados e conhecimentos obtidos na execuo do mesmo. Terminaremos, pois, com
algumas sugestes de melhoria, sabendo que todo e qualquer sistema, por melhor que
parea, no bom o suficiente para obter um rendimento de 100%.

8
CAPTULO 2

2. FUNDAMENTOS

TERICOS

2.1. INTRODUO
Este captulo tem por finalidade mostrar os conceitos e os princpios de
funcionamento dos componentes que utilizaremos no nosso projeto. Faremos uma anlise
simplificada de cada bloco do sistema em questo.

2.2. TRANSDUTORES DE TEMPERATURA


Uma vez que nos propormos a substituir o termostato de um condicionador de ar tipo janela
para controlar a temperatura ambiente por meio de um sistema microcontrolado, necessitaremos
fazer uso de um sensor de temperatura responsvel por sentir as variaes da temperatura e
traduzir em variaes analgicas no domnio eltrico. Esses sensores utilizam-se de princpios
fsicos para realizar essas converses.
2.2.1. PRINCPIO DE FUNCIONAMENTO
Dentre os tipos existentes de sensores de temperatura, destacaremos os princpios de
funcionamento dos que proporcionam um melhor controle pelo sinal eltrico:

Termoresistncias;

Utilizam-se da mudana de condutividade dos metais e semicondutores com a variao de


temperatura devido s diferenas em suas estruturas de banda de energia.

Termopar;

Faz uso da juno de dois metais que geram uma diferena de potencial dependente da
temperatura devido diferena de potencial eletroqumico entre os metais.

Juno de semicondutor;

Dispositivos semicondutores possuem sensibilidade temperatura. Tomando como exemplo


o transistor bipolar de juno, existe uma propriedade fundamental dos transistores de silcio onde
diz que para uma corrente de coletor constante circulando pelo transistor, a tenso base-emissor
varia unicamente em funo da temperatura. [19]
Para o nosso projeto escolhemos utilizar como sensor de temperatura o circuito integrado
LM35 que faz uso de transistores bipolar de juno para alcanar uma tenso diretamente
proporcional temperatura. Esse dispositivo apresenta as seguintes caractersticas:

Calibrao em Celsius Centrgado.

Faixa de temperatura medida -55C at +150C.

Tenso de alimentao 4 v 30v.

Fator de escala na sada linear + 10mV / C.

Corrente de dreno sem carga 60A.

Impedncia de sada 0,1 ohm para 1mA de carregamento.

Encapsulamento TO-92

Este dispositivo foi escolhido pois apresenta diversas vantagens de utilizao, entre elas citamos : O
custo, a facilidade de ligao (somente 3 pinos), maior confiabilidade em relao aos termopares e
termistores comerciais. Detalhes de ligao ver anexo 1.

2.3. AMPLIFICADORES DE SINAIS


Faremos uso do amplificador operacional, mostrado na figura 2.1, para amplificar a tenso
que sair do sensor de temperatura afim de entreg-lo amplificado para o conversor A/D. O
amplificador operacional apresenta as seguintes caractersticas para um amplificador ideal:

Figura 2.1- Amplificador operacional

10
1. Entrada diferencial: V2 V1;
2. Elevada impedncia de entrada, Z = ;
3. Baixa impedncia de sada, Z = 0 ;
4. Elevado ganho de amplificao, A= ;
As duas montagens mais utilizadas como amplificadores de sinais so: o amplificador
inversor na figura 2.2 e o amplificador no inversor na figura 2.3, com os seus respectivos ganhos.

G=

Vout
R
= 2
Vin
R1

Figura 2.2 - Amplificador operacional inversor e o respectivo ganho.

G=

Vout
R
= 1+ 2
Vin
R1

Figura 2.3 - Amplificador operacional no inversor e o respectivo ganho


Os clculos desses ganhos podem ser encontrados em livros de eletrnica analgica. [12]
No nosso trabalho, utilizamos montagem no inversora por apresentar o sinal de sada em
fase com o sinal de entrada, no precisando, portanto, de outro dispositivo para inverter novamente
o sinal. Tem tambm a vantagem de apresentar impedncia de entrada infinita, possuir baixo custo e
no precisar de ajuste de off-set. Outras caractersticas importantes so listadas logo abaixo.

Largura de banda 1Mhz

Alimentao simples 3V 32V.

Alimentao dupla +-1,5V +- 16V.

Ganho DC de 100 db.

Corrente de entrada de 50mA.

Dissipao mxima de potncia 1260mW.

11

2.4. CONVERSORES ANALGICO-DIGITAL


Existem sinais de natureza analgica e de natureza discreta. Entende-se por analgico toda
variao contnua de uma varivel. A medio da temperatura uma grandeza analgica, isto ,
para se atingir um valor desejado necessrio que essa grandeza medida passe por valores
intermedirios de forma contnua. O sensor de temperatura transformar as variaes da
temperatura ambiente em variaes analgica no domnio eltrico. Assim, para esse sinal analgico
chegar ao microcontrolador ser necessrio converso para sinais digitais, ou seja, necessitaremos
de um conversor analgico-digital (A/D).
O processo de converso anlogo-digital consiste em entrarmos com um sinal analgico e
para cada perodo de amostragem devemos representar este nvel de tenso com n bits.
Existem vrios mtodos de converso A/D que variam em complexibilidade e velocidade.
Tipicamente, quanto mais veloz o processo de converso mais complexo ser o circuito que executa
essa funo. Dentre esses mtodos de converses, existem: conversor tipo realimentao, conversor
paralelo, conversor com inclinao dupla, etc. [12]
Escolhemos o conversor TLC 549 CP, por apresentar um tempo de converso considerado
para o projeto em questo, uma resoluo de oito bits e consumir pouca potncia. Utilizamos
transmisso serial dos bits convertidos. S precisaremos, pois, de trs pinos do microcontrolador,
comparado ao conhecido ADC0808 que utiliza s para dados oito pinos, fora os de controle.
Poderia ser usado este ltimo, de forma a ficar mais rpida a transmisso dos dados, ou seja, de
forma paralela, porm precisaramos de mais pinos do microcontrolador. Embora o dispositivo
tenha disponibilidade para tal situao, caso haja necessidade de expanso do projeto no teramos
portas disponveis. Portanto, estas caractersticas e as demais descritas abaixo, fazem este
dispositivo ideal para o nosso sistema.

Conversor A/D Resoluo 8-bit

Tenso de entrada com referncia diferencial REF+ e REF-

Tempo de converso. . . Mx 17 s

Clock do sistema Interno 4-MHz (Tpico)

Baixo Consumo de Potncia. . . Mx 15 mW

12

2.5. MICROCONTROLADORES 8051


2.5.1. INTRODUO AOS MICROCONTROLADORES
No estudo detalhado de qualquer dispositivo programvel os autores sempre definem, para
que no haja confuso quanto ao conceito, o que sejam microcontrolador e microprocessador.
Microprocessador: Chip responsvel pelo processamento em um microcomputador. um
elemento complexo, contendo, entre outras coisas, uma unidade de controle, uma unidade lgica e
aritmtica (ULA) e diversos registros (registradores) especiais.
Microcontrolador: Microcomputador-de-um-s-chip que rene no mesmo chip os diversos
elementos de um microcomputador: microprocessador, RAM, ROM, temporizadores, contadores,
canal de comunicao serial e portas de I/O. Alguns podem ainda conter elementos para uso
industrial, tais como conversores A/D, D/A, PLL, e PWM.
Os microcontroladores so circuitos integrados extremamente flexveis devido s suas
caractersticas de programabilidade. A programao do componente torna-o verstil para diversas
aplicaes. Uma dessas aplicaes o recebimento de uma informao, como a temperatura e o
acionamento de cargas como um condicionador de ar, foco do nosso trabalho.

2.5.2. O 8051 NO PROJETO


O 8051, da Intel, , sem dvida, o microcontrolador mais popular . O dispositivo em si um
microcontrolador relativamente simples, mas com ampla aplicao. Porm, o mais importante que
no existe somente o CI 8051, mas sim uma famlia que baseada em padres industriais de oito
bits. Diversos fabricantes produzem microcontroladores da famlia 8051 (Intel, AMD, Atmel,
Dallas, OKI, Matra, Philips, Siemens, SMC, SSI). A Intel iniciou a produo dos 8051 em 1981.
O microcontrolador usado no projeto do Termostato Digital Microcontrolado o AT 89s8252
cujo fabricante a ATMEL que possui as caractersticas necessrias para o desenvolvimento do
projeto. As caractersticas que foram observadas para esse tipo de dispositivo alm da familiaridade
foram:

Compatvel com Produtos de MCS51;

8K Bytes de Memria Flash;

13

2K Bytes EEPROM

(100,000 Ciclos de Write/Erase);

4V a 6V Faixa de Operao;

256 X 8-bit de RAM Interna;

32 Linhas de I/O programveis;

Trs Timer/Counters de 16-bit;

Nove Fontes de Interrupo;

Oscilador de clock interno;

Freqncia de clock de 0Hz at 24MHZ;

Encapsulamento DIP-40pinos

2.6. DISPLAY DE CRISTAL LQUIDO


Os DISPLAYS LCD DISPLAYS DE CRISTAL LQUIDOS so mdulos destinados
visualizao das informaes manipuladas pelo circuito microprocessado. So disponveis na forma
de caracteres, como o que utilizaremos no nosso trabalho, mas tambm na forma grfica, como as
calculadoras da HP, 48G+ por exemplo.
Os LCD`s comerciais do tipo caracteres so especificados na quantidade de colunas X
quantidade de linhas. Usaremos o LCD 16 colunas por 2 linhas ou abreviadamente por LCD 16X2.
Este mdulo possui 14 pinos ou 16. O de 16 pinos tem uma luz de fundo quando ligado chamado de
back-light.
Como o display de 16X2 temos 32 posies para escrever um dado, cada posio possui um
endereo. Este endereo esta disponvel na tabela 2.1 a seguir:

Tabela 2.1 Endereo das 32 posies do LCD 16 X 2


Lcd 16x2

10

11

12

13

14

15

16

Linha 1

80

81

82

83

84

85

86

87

88

89

8A

8B

8C

8D

8E

8F

Linha 2

C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF

14
Podemos ter vrias configuraes para comunicao sendo a mais usual a que utiliza 10 pinos
do microcontrolador.

8 pinos de dados (porta P0, por exemplo)

2 pinos de controle (Px.x = RS e Px.x = E)


Onde: RS = 1 dado e E = 1 habilita display

2.7. CIRCUITO DE POTNCIA


Na porta de um microcontrolador obtemos sinais de controle em dois nveis: nvel lgico
(alto = 5V) e nvel lgico (baixo = 0), ou seja, circuitos TTL. Os mesmos podem ser utilizados para
acionar circuitos externos. Entretanto, a corrente fornecida ou drenada por esses circuitos muito
baixa, o que significa uma impedncia alta ao circuito. Isso causa uma degradao do sinal quando
inserimos carga e/ou queima do circuito interno do dispositivo de lgica. Para contornar esse
problema usamos dispositivo de amplificao e/ou de isolamento e outro para altos valores de
corrente. Esse ltimo chamado de Etapa ou Circuito de Potncia.
Utilizamos transistores de potncia, como o BD139 e um rel de contatos secos que funciona
com correntes de at 16 A, suficiente para acionar o compressor e o ventilador em questo. A
corrente do ventilador de CV chega a 1,6A e o do compressor de 7000 btus tem a corrente mdia
de 9 A 14 A.

2.8. CONDICIONADOR DE AR
O condicionador de ar um equipamento de refrigerao destinado a climatizar um ambiente.
Alm de climatizar, ele purifica, filtra e desumidifica o ar.
Ressaltamos a importncia dos sistemas capazes de controlar a temperatura e a umidade do
ambiente com preciso. Tomando como exemplo a rea de Telecomunicaes, esses sistemas
garantiro o perfeito funcionamento dos equipamentos eletrnicos em um site, tendo em vista a
vulnerabilidade dos mesmos temperatura e umidade. Qualquer indisponibilidade do sistema,

15
mesmo com curta durao, acarretar numa perda de receita para a empresa de telecomunicaes.
Logo, o sistema de climatizao de suma importncia.
Componentes dos Condicionadores de ar:

Chave seletora: Atravs deste componente so selecionadas as operaes do


aparelho. Neste projeto, iremos trocar essas chaves por teclas.

Termostato: Tem a funo de controlar a temperatura do ar do ambiente. Ele desliga


o compressor quando o ar atinge a temperatura desejada. Neste projeto iremos
substituir o termostato por um sensor eletrnico de maior preciso.

Compressor Hermtico: responsvel pelo funcionamento do ciclo de refrigerao,


promove o bombeamento do fluido refrigerante, que ao retornar do evaporador no
estado gasoso succionado e bombeado para o condensador, causando baixa presso
no evaporador e alta presso no condensador.

Condensador: tem como funo dissipar o calor que o fluido refrigerante absorveu ao
longo do sistema de refrigerao. no condensador que o gs superaquecido ao
perder calor para o meio ambiente, passa do estado gasoso para o lquido.

Elemento de controle: sua funo criar uma obstruo ao fluido refrigerante,


causando uma diferena de presso entre condensador e evaporador. O gs
refrigerante passa pelo elemento de controle em direo ao evaporador, onde
encontra baixa presso.

Evaporador: no que o gs refrigerante encontra baixa presso e passa do estado


lquido para o estado gasoso, absorvendo no processo o calor provido do
condensador.

16
CAPTULO 3

3. DESENVOLVIMENTO DO SISTEMA

3.1 INTRODUO
Projetar um determinado sistema eletrnico envolve uma anlise detalhada de cada bloco que
faz parte do sistema. Sabendo disso, a elaborao de projetos se torna um pouco pessoal. Mesmo
assim, existe uma linha de raciocnio comum para todo projetista, um backbone. Nos prximos
tpicos est uma determinada seqncia, na qual seguimos, para facilitar a elaborao do projeto
supra citado. Ento descreveremos neste captulo todas as etapas do projeto, desde a sua concepo
inicial at o seu funcionamento final.

3.2 PARTIO DO SISTEMA

Para facilitar o desenvolvimento do sistema dividimo-lo em duas partes conforme a figura 3.1.

Figura 3.1 Particionamento do projeto

17
A primeira parte sobre o desenvolvimento do hardware, onde tratamos do diagrama em
blocos, pinagem dos componentes, diagrama esquemtico, layout da placa e da lista de
componentes. A segunda parte sobre o descritivo do princpio de funcionamento do sistema,
escrita do algoritmo, escrita do cdigo fonte na linguagem de programao escolhida, etc. As
partes esto resumidas na tabela 3.1.

Tabela 3.1 Particionamento do projeto.

Parte (1) DESENVOLVIMENTO DE HARDWARE


A) DIAGRAMA EM BLOCOS;
B) SELEO E PINAGEM DOS COMPONENTES;
C) DIAGRAMA ESQUEMTICO;
D) LAYOUT DA PCI (placa de circuito impresso);
E) LISTA DE COMPONENTES;

Parte (2) DESENVOLVIMENTO DE SOFTWARE


A) ESPECIFICAO DO SISTEMA;
B) PRINCPIO DE FUNCIONAMENTO DO SISTEMA;
C) DESCRIO DAS PINAGENS DOS COMPONENTES;
D) ESCRITA DO ALGORTMO;
E) ELABORAO DO CDIGO FONTE;
F) COMPILAO E DEBUGG;
G) GRAVAO DO PROGRAMA NO CHIP;

18

3.3 DESENVOLVIMENTO DE HARDWARE

3.3.1 DIAGRAMA EM BLOCOS


Nosso sistema digital obedece ao diagrama de entrada, sada e elemento de processamento da
figura 3.2.

Figura 3.2 Sistema genrico microcontrolado utilizado para controle

As entradas que utilizamos se resumem ao teclado e ao subsistema de aquisio de dados,


composto por sensor de temperatura, amplificador de sinais e conversor analgico-digital. Nas
sadas esto o circuito de potncia, o controlador ou atuador e o display de cristal lquido. E
finalmente, o elemento de processamento: o microcontrolador da famlia 8051. Na figura 3.3 temos
o diagrama em blocos do projeto.

19

Figura 3.3 Diagrama em blocos do projeto

3.3.2 SELEO E PINAGEM DOS COMPONENTES

No item anterior, o diagrama em blocos diz o que o circuito faz, sem se preocupar quais os
componentes sero utilizados. Nesta seo, mostramos qual componente cada bloco comporta, ou
seja, fazemos a seleo dos dispositivos. A escolha dos dispositivos foi baseada na facilidade de
ligao eltrica, preo, facilidade de compra e algumas sucatas que encontramos. A pinagem dos
componentes poder ser obtida atravs da suas respectivas folhas de especificaes. As folhas de
especificaes ou data-sheets so disponibilizadas pelos seus respectivos fabricantes. A seguir, a
tabela 3.2 mostra o resumo dos componentes escolhidos, suas funes bsicas e suas respectivas
vantagens neste projeto.

20
Tabela 3.2 Componentes escolhidos.
DISPOSITIVO

FUNO

VANTAGEM DE UTILIZAO

Sensor

Converte a grandeza fsica temperatura Custo, facilidade de ligao (3 pinos),


em sinal eltrico.

maior confiabilidade em relao aos

LM 35 DZ

termopares e termistores, pois um CI.

Ampliop

Amplifica o sinal recebido pelo sensor.

Custo, No precisa de ajuste off-set.

LM 324 N
TLC 549 CP

Recebe a grandeza eltrica analgica e a Transmisso serial dos bits convertidos,


transforma em bits. Manda os bits s

precisaremos

convertidos para o microcontrolador de Microcontrolador,


forma serial.

de

pinos

comparado

do
ao

conhecido ADC0808 que utiliza s para


dados 8 pinos, fora os de controle.

Microcontrolador

Recebe dados, processa e toma decises Familiaridade


conforme

AT 89s 8952

um

armazenado.Aciona

arquitetura

8051.

programa Possui eeprom para guardar dados da


dispositivos configurao, e o nmero de portas de

atuadores.
Display

da

I\O suficiente para nosso projeto.

Visualiza os dados manipulados pela J tnhamos este mdulo. Poderia ser


CPU que o programador deseja mostrar.

qualquer outro. O 16x1, por exemplo.

LCD 16x2
Teclas

Serve para mandar informaes eltricas Custo, tamanho, facilidade de ligao,


atravs da interveno manual.

comparado a teclados comerciais e s

push - button
Rels de

precisaremos de 4 teclas.
Controla as altas correntes do atuador, J tnhamos esses Rels de contato seco
atravs do fechamento do contato seco para amperagem desejada.

Contato seco

NA (normalmente aberto). Corrente


mxima 16 A.

Transistores
557 e BD 139

BC Amplifica

microcontrolador

sinal
para

vindo
acionar

do Facilidade de compra e opo do grupo.


o Outros circuitos tambm poderiam ser

dispositivo de potncia.
Condicionador de Controlador
ar 7000btus

que

ir

usados.
manipular

a Menor converso trmica do mercado,

grandeza fsica em questo, no caso a consequentemente menor corrente de


temperatura.Corrente mdia (9A14A).

consumo para controle.

21
A figura 3.4 mostra o diagrama em blocos da figura 3.3 com os componentes j selecionados.

Figura 3.4 Diagrama em blocos com componentes selecionados

O prximo passo para a execuo do projeto sabermos como ligar cada componente entre
si, ou seja, precisamos da pinagem dos componentes utilizados. As figuras abaixo foram retiradas
dos respectivos data-sheets ou folhas de especificao de cada fabricante.

3.3.3 DIAGRAMA ESQUEMTICO


Aps a seleo e pinagem dos componentes que sero utilizados no projeto precisamos fazer
a ligao entre eles. Este prximo passo definido como esquema eltrico, diagrama eletrnico ou
ainda de diagrama esquemtico. Podemos realizar de forma manual ou atravs de programas
simuladores, ns optaremos pela primeira opo. O diagrama esquemtico completo do termostato
digital microcontrolado encontra-se no anexo 1.

22
3.3.4 LAYOUT DA PCI (PLACA DE CIRCUITO IMPRESSO)

Depois do diagrama esquemtico do projeto o prximo passo a confeco de um local


para colocar todos os componentes de forma interligada obedecendo ao que foi desenhado no item
anterior. Este local denominado de placa de circuito impresso ou simplesmente de PCI. O PCI
geralmente feito de fenolite, papelo prensado ou ainda de fibra de vidro. E, as trilhas por onde a
corrente eltrica caminha, local onde os componentes devem ficar so feitos graficamente e so
denominado de Layout da PCI.
A sua preparao e forma de impresso esto fora do escopo deste trabalho, mas pode ser
feita tambm de duas maneiras: da forma manual ou atravs de programas simuladores. Optaremos
em fazer no proat-board, por se tratar de um prottipo. Logo, por no ser o objetivo, o layout do
termostato digital microcontrolado foi omitido do projeto.

3.3.5 LISTA DE COMPONENTES


Na ltima etapa de execuo do projeto, desenvolvimento do hardware, temos que
relacionar todos os componentes, que foram utilizados anteriormente para realizarmos a compra dos
mesmos. A tabela 3.3 mostra todos os itens. Omitimos propositadamente, por no ser objetivo
direto da eletrnica as ferramentas mecnicas, tais como material de soldagem, fabricao da PCI,
processo de furao de placa, etc.

Tabela 3.3 Componentes utilizados.


ITEM

QD.

DESCRIO

REF.

01

placa de circuito impresso de fenolite

02

fonte de alimentao 220V/ 9Vdc

03

conector conn-sil2 fonte placa

CN1

04

diodo 1N4001

D1, D3 E D4

05

capacitor cermico 0,33uF

C1

06

capacitor cermico 0,1uF

C2, C3,C4

23
07

regulador de tenso 7805 1A

U1

08

resistor 1/4W 330 ohms

R1

09

LED redondo pequeno vermelho

D2

10

sensor LM 35 DZ - (TO-92 plastic)

U2

11

amplificador operacional LM 324 N (DIP-14)

U3

12

resistor 1/4W 100k ohms

R3

13

resistor 1/4W 10k ohms

R2,R8,R4, R6

14

potencimetro vertical para pci 10k ohms

P1 e P2

15

conversor a/d TLC 549 (dip-8)

U4

16

teclas push-button pequenas contato nico

T1,T2,T3,T4e T5

17

display LCD 16x2 com back-light

U5

18

capacitores cermicos 27pF

C5 e C6

19

capacitor eletroltico 10uF

C7

20

cristal 12Mhz

K1

21

microcontrolador AT 89 s8252 (dip-40)

U6

22

resistores 1/4W 1k ohms

R5 e R7

23

Rels bobina de 5Vcc 1 contato NA- 220/16 A

rel1 e rel2

24

transistores BD 139 NPN

Q3 e Q4

25

conectores conn-sil2 (sada comp. e vent.)

con1 e con2

26

Optoacopladores TIL111

U7 e U8

27

7404 6 portas not dip14 - TTL

3.4 DESENVOLVIMENTO DE SOFTWARE


3.4.1 ESPECIFICAO DO SISTEMA
Especificao - Especificar um sistema do ponto de vista de definies tericas em projetos
de sistemas digitais significa dizer o que o sistema faz sem se preocupar como ele construdo, ou
seja, elaborar o comportamento do sistema.

24
A figura 3.5 mostra as etapas do desenvolvimento de um projeto:

ESPECIFICAO

ANLISE

PROJETO

IMPLEMENTAO

Figura 3.5 Desenvolvimento de um projeto

Projetar obter uma implementao do sistema que satisfaa a especificao do sistema.


Implementao Realizar o projeto em termos estruturais, significa dizer como construdo
e como ele executa suas funes, ou seja quais blocos esto sendo usados; Flip-flop, contadores,
multiplexadores, decodificador, etc.
E, por fim a Anlise a partir de uma implementao um sistema em funcionamento
obter uma especificao.
Especificaremos como o nosso sistema ser implementado:
O sistema deve:
- Possuir IHM (interface humano mquina), com possibilidade de o usurio configurar
parmetros via teclado e visualizar via display.

25
- LCD atualizado freqentemente, mostrando o valor da temperatura do ambiente
monitorado.
- Teclado com 4 teclas funcionais, onde:
2 teclas mudana de variveis.
1 tecla ( funo Mais aumentar o valor da varivel )
1 tecla (funo Menos diminuir o valor da varivel )
2 teclas para controle de funes.
1 tecla ( funo Menu mostra as diversas telas )
1 tecla (funo Enter confirma o valor da varivel desejada )
- Subsistema para adquirir o dado a ser controlado. Esse sistema mandar o valor da
temperatura em forma de bits para o microcontrolador.
- Subsistema para acionar o controlador que neste caso o condicionador de ar, logo, um
acionamento de um drive ser necessrio, e, este por sua vez acionar um rel de contato seco,
dispositivo de potncia.

26
3.4.2 PRINCPIO DE FUNCIONAMENTO DO SISTEMA

Durante o estudo dos componentes eletrnicos descobrimos que para termos informaes do
meio externo (temperatura) necessrio usar o sensor de temperatura que foi o LM35 que a cada
1C, ele converte em 10mV, 2C, ele converte em 20mV, 10C, ele converte em 100mV, e assim
sucessivamente. Essa converso foi obtida conforme folha de especificao, as mudanas de escala
necessrias escalonamento sero feitas via software. A sua faixa de trabalho de 55C a
150C, mais que suficiente para o projeto. Na figura abaixo temos a ligao mais que simplificada
do componente. H dois pinos de alimentao e o outro de sada. O capacitor serve para evitar que
possveis oscilaes da tenso de alimentao interfiram no processo interno de converso.

Figura 3.6 Bloco sensor de temperatura.

Para facilitar a anlise tomaremos um valor como exemplo, no caso, 10C que equivale a
100mV. Como o sinal de sada pequeno foi necessrio usar um amplificador par aumentar o nvel
do sinal. O elemento usado foi o LM124 por apresentar tambm facilidade de ligao, impedncia
de entrada elevada e no necessitar de ajuste de off-set. Usamos a entrada no-inversora, para
obter o sinal de sada j em fase com o sinal de entrada, facilitando, pois, a manipulao da
informao.

27
Outro motivo para que utilizssemos amplificadores operacionais que seu ganho
dependente de impedncias externas, na qual o projetista se encontra em plena liberdade para
definir o ganho do seu sistema utilizando resistores de valores comerciais. Usamos um ganho de
9,3, ou seja um G=9,3, pois, o ganho necessrio para o fundo de escala usado no conversor A/D
que ser comentado adiante. Como a equao para a configurao no-inversora dada por

G=

Vout
R
= 1+ 2
Vin
R1

Precisamos que a relao R2/R1 seja igual a 8,3. Ento chegamos a dois valores: R2=100k e
R1=12k obtendo assim, o valor desejado. O valor de R1=12k foi obtido atravs da soma de um
resistor fixo de 10k e um resistor ajustvel tambm de 10k, no qual fizemos um ajuste para 2k.
O bloco do circuito responsvel por esta amplificao esta descrito na figura abaixo.

Figura 3.7 Bloco amplificador com sua malha de realimentao.

28
Com o sinal j amplificado o mesmo seguir para o conversor analgico-digital ADC que
ir converter o sinal analgico vindo do sensor para sinais digitais. O conversor escolhido foi o
TLC549 que aps a sua converso armazena em um registrador interno de oito bits. Sendo,
portanto, um conversor AD de 8bits. No nosso exemplo de 10C e um ganho de 9,3 temos agora
um sinal de 930mV digitalizado na sada do conversor.
A referncia do TLC549 diferencial, significa que a resoluo depender da faixa de
valores correspondente. Quanto mais ampla for esta faixa mais preciso ter a converso. Mais uma
vez para fazer da maneira mais fcil, abriremos mos da preciso do sistema por ser um controle de
uma sala qualquer e a faixa escolhida ser de 5V. Colocamos 5V no pino REF+ (pino 1) e 0V no
pino REF- (pino 3) . Observe a figura abaixo:

Figura 3.8 Bloco conversor analgico digital

De forma binria temos 0V = 00000000(2) e 5V = 11111111(2) cujo valor ser o fundo de


escala do referido sistema. A resoluo do sistema ser 93mV/bit, correspondente a cada 1C, logo,
para o exemplo dado de 10C teremos uma tenso de 930mV e um valor binrio de 00001010(2).

29
Para o fundo de escala temos: um valor binrio de 11111111(2) uma tenso de 5V e uma temperatura
de 53,76 C, na qual arredondamos para 52,2C. Os trs pinos servem para: (pino 7) habilitar a
comunicao, (pino 6) mandar os dados e o (pino 5) mandar os pulsos para deslocar os bits do
registrador interno.
O microcontrolador recebe o sinal de forma serial descrita utilizando pulsos de leitura no
habilitador do conversor e os oito pulsos consecutivos atravs de uma das portas do micro e,
recebemos os oito bits um a um. No confundir com a funo do microcontrolador que utiliza
registradores especficos de comunicao serial. Ao ligar o mdulo o sensor ir captar a temperatura
ambiente, e atravs da converso necessria o microcontrolador mandar o valor dessa temperatura,
em grau Celsius, para o display.
O microcontrolador interpreta o valor lido com o programado e toma a deciso de ligar ou
no o condicionado e o ventilador. Esta deciso tomada pelo sistema de retroalimentao. Caso a
temperatura ambiente esteja abaixo da programada ele desligar o condicionador e o ventilador.
Caso contrrio, se a temperatura estiver acima ele acionar os dois dispositivos. Na sada do micro
ter um drive, formado por transistores, que aumentar o nvel de corrente do micro ao ponto de
disparar um outro sinal que acionar um rel de contato seco. A figura abaixo mostra as portas P1.0
e P1.1 responsveis pelo acionamento do compressor e ventilador, respectivamente. O circuito do
ventilador foi omitido por ser absolutamente igual ao do compressor.

Figura 3.9 Bloco de potncia acionamento do compressor pela porta P1.0. O bloco do
ventilador semelhante s que o acionamento atravs da porta P1.1.

30

O nvel de acionamento destas duas portas no nvel lgico zero. Tendo em vista que, ao
ligar o microcontrolador todas as suas portas vo para nvel lgico 1 ou FFH. Ao passar pelo
inversor o nvel lgico mudado para o seu inverso, 1. Nvel um no pino 1 do optoacoplador
TIL111 aciona o LED que mandar ftons para a base do fototransistor e, este por sua vez entrar
em conduo e os 5V presentes no seu coletor, pino 4, chegar no seu emissor, pino 5. A tenso que
surgir no resistor ser maior que os 0,7V necessrios para a conduo do BD139 que acionar a
bobina do rel e este por sua vez ligar o contato NA acionando, pois, a carga.

Atravs da tecla Menu (pressionando-a uma vez) o usurio entrar numa tela onde ter que
colocar o valor da temperatura que ele deseja para o ambiente. A esta etapa chamaremos de
PRESET. O valor de preset depender do tipo de atividade que com condicionador se encontra.
Num laboratrio, por exemplo, tem-se uma temperatura de 22C. Enquanto numa sala de recepo
de uma empresa esse valor poder ser 20C, por que pessoas entram e sai com maior freqncia.

A segunda tela denomina de HISTERESE. Atravs da histerese, que uma faixa de


tolerncia, entre um valor mnimo, e um valor mximo da temperatura desejada, possvel
controlar o tempo de liga/desliga para preservar o compressor conforme comentamos anteriormente.
Observe na tabela 3.4, um exemplo de programao na qual a temperatura desejada, PRESET, de
23C e tem uma faixa de tolerncia uma HISTERESE de mais ou menos 4C. O valor da histerese
desejada ser atravs das teclas mais e menos e sua confirmao ser pela tecla enter.

31
Tabela 3.4 Histerese

Direo

Histerese

PRESET

Negativa

Histerese
Positiva

do ciclo
Temperatura Temperatura

23 - 4 =

23C

19C

aumentando

23 + 4

Temperatura

= 27C

> 27C

Liga

C+V

C+V

Ligados

23 + 4

Temperatura

< 19C
C+V
Desligados
Temperatura Temperatura

C+V

C+V

Desligados Desligados
23 - 4 =

23C

19C

diminuindo

= 27C

< 19C

> 27C

C+V

Desliga

C+V

C+V

C+V

Desligados

C+V

Ligados

Ligados

Ligados

Observamos que a melhor maneira de fazermos o controle do condicionador de ar do tipo


ON/OFF, exatamente como ele funciona. Outras idias surgiram como o controle da potncia do
compressor e do ventilador, mas estas sugestes no foram acatadas por prejudicar o equipamento,
pois os compressores podem comprimir lquido e sofrer uma ruptura na sua estrutura mecnica,
ficando completamente destrudo. J o controle ON/OFF no apresenta problemas. Essa quebra
mecnica ocorre por que o ciclo de refrigerao funciona com um fluido refrigerante entre o estado
gasoso e lquido, quando no estado gasoso o fluido perde calor com a parte externa do ciclo
chamado de condensador. No estado lquido o gs refrigerante absorve calor do evaporador, parte
interna do ciclo. exatamente na evaporao que o perigo ocorre, pois se houver um tempo
insuficiente entre o desligamento / ligamento no haver evaporao total do fluido, este por sua
vez, voltar lquido para o compressor, havendo, portanto, uma tentativa de compresso de lquido,
danificando por fim o sistema.
Toda mudana de varivel realizada atravs das teclas MAIS e MENOS. E, toda
confirmao tem que ser feita pressionando a tecla ENTER.

32
3.4.3 DESCRIO DAS PINAGENS DOS COMPONENTES
Mesmo sendo particionado quem vai fazer a parte de software precisa saber como funcionam
os componentes do circuito, logo necessrio recorrer tambm a pinagem dos componentes. Ento
o projetista dever tambm recorrer s folhas de especificaes dos componentes.

3.4.4 ESCRITA DO ALGORTMO


Existem diversas formas de elaborao de uma seqncia para que uma mquina a execute.
Uma das formas utilizando um fluxograma, porm nesse projeto no ser vivel, pois ficaria
bastante extenso e de difcil execuo.
Partimos, entretanto para uma alternativa que a linguagem textual, tendo em mente alguns
procedimentos usados em linguagens estruturadas. Usaremos tambm um algoritmo bastante
enxuto, sem perder o significado, pois, sabemos que todo algoritmo pode ainda ser destrinchado em
outros sub-algortmos.
Considere a seguinte legenda:
Td:Temperatura desejada
Hp:Histerese positiva
Hn:Histerese negativa
Ta:Temperatura ambiente
1. Incio do programa;
2. Declarao de variveis e seus tipos;
3. Ler o valor de temperatura vindo do conversor A/D, ou seja, Ta.
4. Verifica o valor ajustado no preset, ou Td.
5. Verifica o valor da histerese, Hp e Hn.
6. Compara: Se Ta Td + Hp ligar o compressor e o ventilador.
7. Quando ficar Ta Td O compressor continuar ligado e o ventilado;
8. Quando ficar Ta Td Hn Desligar o compressor e o ventilador;
9. Quando a temperatura tornar a crescer, o sistema s mudar de estado quando atender
a condio Ta Td + Hp;
10. Se Ta Td Hn Desligar o compressor e o ventilador;
11. Fim do programa;

33
3.4.5 ELABORAO DO CDIGO-FONTE
Depois de executar uma seqncia em termos de algoritmo precisa-se passar essa forma de
pensar para um tipo de estrutura que seja manipulvel por mquinas. Ou seja, uma linguagem de
programao. Existem diversas linguagens de programao para esse tipo de converso. Umas so
ditas de alto nvel, como o BASIC, enquanto outras so ditas de baixo nvel, ou linguagem de
mquina, como o ASSEMBLER (montador).
Escolhemos a linguagem Assembler, por ser mais familiar aos integrantes do grupo, embora
tenha milhares de desvantagens, como por exemplo, a no estruturao, o que dificultou bastante
o uso de sub-rotinas.
Logo abaixo est o cabealho e os equates do programa citada apenas como exemplo.
;===========================================================
;PROGRAMA FONTE: TERMMETRO DIGITAL MICROCONTROLADO
;AUTOR(ES): CCERO JOS / FABIANO BRITO
;DESCRIO: Executa as atividades referente ao termmetro digital microcontrolado,
descrito no captulo 3 da Monografia da Disciplina projeto Final de Curso da Escola
Politcnica de Pernambuco da Universidade de Pernambuco UPE.
;VERSO: lambda_2 - DATA: Novembro/ 2005
;===========================================================
;lista de equates: associa um nome lgico aos endereos
.equ rs, p3.6
.equ enable, p3.7
.equ dados_dsp, p0
.equ ioclk, p2.5
.equ data_lm, p2.6
.equ cs,p2.7
.equ menu,p2.0
.equ mais,p2.1
.equ menos,p2.2
.equ enter,p2.3
.equ pr_reg,08h
.equ hst_reg,09h
.equ ctr_reg,0Ah
.equ ctr_reg2,0bh
.equ wmcom,96h
.equ ee_temp,0000h
.equ ee_hst,0001h
.equ compr, p1.0
.equ ventil, p1.1
.equ data_term,0ch

34
No software comeamos com o cabealho que tem a funo de facilitar a identificao e a
documentao do programa, bem como a data, autor (es) e suas possveis revises.
Na seqncia temos os equates que tem a funo de associar um nome lgico ao endereo
determinado pelo programador. Isto facilita a programao por que mais fcil lembrar de nomes,
do que de nmeros.
O vetor de interrupo de reset est no endereo 0000H e na arquitetura 8051, esse vetor
possuem trs bytes, o suficiente para uma instruo de salto incondicional de caso ljmp.
Usamos uma rea de memria para as mensagens do display essa rea esta no endereo
(org0050H), utilizamos o db (define byte) para associar bytes ou conjuntos de bytes (string) a um
nome lgico, essa ttica foi usada para escrevermos as mensagens no display de cristal liquido Ex:
TEMP; PRESET; TEMP DESEJADA; HISTERESE, etc.
Limitamos o preset em 39C e a histerese a 9C, logo, o valor de temperatura mximo
programvel de 30C + 9C, ou seja, 39C. Convertendo para BCD o que estava armazenado na
EEPROM e fazendo a funo ANL. As informaes que temos no LCD no software foi dividida em
4 sub-rotinas: TELA1, TELA2, TELA3 e TELA4. A tela1 escreve na tela principal no display ou
seja a que mostra a histerese, temperatura e o preset. A tela2 escreve a tela de Presets no display no
display ou seja mostra temperatura desejada que podemos controlar e a temperatura. A tela3 escreve
a histerese no display ou seja o ajuste de histerese e a histerese. A tela4 escreve termmetro
digital no display.
Utilizamos o complemento a 10 para podermos trabalhar com nmeros negativos na base
decimal, usamos tambm a sub-rotina CMPROT para comparar o valor de temperatura lido pelo
sensor, para fazermos o controle usamos os limites inferior e superior, ou seja, se a temperatura for
menor que a limite inferior (T<lim_inf) desliga o ventilador e o compressor e se a temperatura for
maior ou igual ao limite superior (Tlim_sup) liga o ventilador e o compressor.
As sub-rotinas dado1 enviam ao display o string e ele varrido e cada carecter (ou seja
men1) enviado ao display, cada dado seja do dado 1 ao dado 9 tem a funo de enviar as
mensagens ao display (men1 a men9).

35
Outras sub-rotinas muito importantes so a que mostra a temperatura (mostra_temp), a que
mostra o preset (mostra_pr) que est na EEPROM no registro e mostra no display, e a que mostra a
histerese que est na EEPROM (EE_HST) e mostra-a no display.
O programa-fonte completo est listado no anexo 3.
Agora estamos prontos para passar para a etapa final do nosso projeto, que consiste em fazer
o microcontrolador entender o cdigo-fonte.
3.4.6 COMPILAO E DEBUGG
Depois da escrita do algoritmo e da elaborao do cdigo-fonte precisamos transformar toda
escrita, palavra, ou mnemnico da linguagem escolhida em nmeros binrios para que o
microcontrolador entenda nossos comandos. Pode-se tambm converte em Hexadecimal.
Na compilao usamos o PSEUDOSAM (tm) 51 assembler. V1.6.00 Level I Semiprofessional Development Product Copyright (c) 1986, 87, 88. PseudoCorp. do kit 8031 da WF
AUTOMAO IND. COM. SERV. LTDA. ME. E atravs dos seguintes comandos realizados no
ambiente do MS-DOS, teremos o arquivo para gravao.

1. O nome do arquivo cdigo-fonte gerado PRO.ASM.


2. E:\Engenh~2\microco~1\link8031 ; pasta que contm o compilador.
3. C51 PRO ; executa a compilao.
4. Caso haja erros, voltamos ao arquivo origem e depois de devidas correes
compilamos novamente at receber a mensagem: 0 erros. (esse mtodo bem
braal, pois este compilador roda em DOS e no uma ambiente de
desenvolvimento- IDE).
5. Aps o debugg, automaticamente gerado 3 arquivos: PRO.LST (mostra o
endereo e os mnemnicos da memria utilizada), PRO.BIN (arquivo em binrio) e
PRO.HEX (arquivo em hexadecimal, cujo usaremos na etapa seguinte).

36
3.4.7 GRAVAO DO PROGRAMA NO CHIP
No item anterior foi gerado o arquivo (.HEX) que contm os dados necessrios para a
gravao do chip. O arquivo foi gravado no Programador e Testador Universal MPT 1010 da
Minipa Indstria e Comrcio Ltda.
O manuseio e os comandos de utilizao no sero descrito, pois, no o nosso objetivo.
Qualquer informao a mais pode ser obtida no manual de instrues do programador que se
encontra disponvel no site do fabricante [20]. Entretanto, os passos bsicos so o seguinte:
1. Colocar o chip no programador verificando a pinagem correta;
2. Carregar o arquivo hexadecimal padro Intel;
3. Selecionar o dispositivo destinado a gravao: ATMEL AT89s8252;
4. Apagar a memria do chip para garantir integridade da gravao;
5. Fazer a programao e esperar as possveis mensagens de erro;
6. Verificar se os dados foram gravados;
Na figura 3.10 temos o programador usado na projeto.

Figura 3.10 Programador MPT-1010

37
CAPTULO 4

4. CONCLUSES E PERSPECTIVAS

4.1 CONCLUSES
Conclumos que no desenvolvimento do projeto, Termostato Digital Microcontrolado
conseguimos atender aos objetivos propostos inicialmente. Desenvolvemos e implementamos um
prottipo de um sistema digital usando um dispositivo programvel de baixo custo, fazendo
modificaes no condicionador de ar, tendo em mente que podemos implementar tambm em
sistemas de refrigerao de centrais de telefonia fixa, estaes rdio base ou BTS, salas de
provedores de internet, etc.
bom saber que nos vimos presentes com um projeto astucioso que, alm de tudo,
proporcionou aos envolvido o desenvolvimento de habilidades importantes para o futuro
profissional, como a capacidade de implementao de projetos, a facilidade de apresentao em
pblico e a capacidade de resoluo de problemas.

4.2 PERSPECTIVAS
Sugere-se que na automao de projetos futuros, possamos desenvolver solues de melhoria
com produtos de vanguarda, que sejam de certa forma mais baratos, eficientes, portveis,
documentveis, e de fcil entendimento para outros programadores, pois sabemos que a linguagem
assembler est perdendo, ou j perdeu espao para a potente linguagem C.
Dentre as solues de implementaes futuras possveis destacamos 5, descritas logo a
seguir:

Programar o microcontrolador usando linguagem C, pois esta uma linguagem


portvel, documentvel e dita por muitos de mdio nvel porque possui
caractersticas de baixo nvel, como manipulao de bits e bytes, bem como
caractersticas de alto nvel, como modularizao de funes;

38

Utilizar outro microcontrolador com arquitetura Harvard como o PIC 16F877A.

Implementar todo o circuito em dispositivos Programveis em campo, numa


linguagem de descrio de hardware VHDL.

Ligar o dispositivo atravs da porta serial do computador.

Por fim, pode ser implementado em mais de um condicionador de ar, e todos


monitorado pela internet atravs do protocolo TCP/IP com interface Ethernet.

39

ANEXOS
ANEXO 1 Diagrama esquemtico

40

ANEXO 2 FOTOS DO PROJETO

41

42

ANEXO 3 PROGRAMA FONTE


;===========================================================
;PROGRAMA FONTE: TERMMETRO DIGITAL MICROCONTROLADO
;AUTOR(ES): CCERO JOS / FABIANO BRITO
;DESCRIO: Executa as atividades referente ao termmetro
;digital microcontrolado,descrito no captulo 3 da Monografia
;da Disciplina projeto Final de Curso da Escola Politcnica
;de Pernambuco da Universidade de Pernambuco UPE.
;VERSO: lambda_2
- DATA: Novembro/ 2005
;===========================================================
;===========================================================
;lista de equates: associa um nome lgico aos endereos
.equ rs, p3.6
.equ enable, p3.7
.equ dados_dsp, p0
.equ ioclk, p2.5
.equ data_lm, p2.6
.equ cs,p2.7
.equ menu,p2.0
.equ mais,p2.1
.equ menos,p2.2
.equ enter,p2.3
.equ pr_reg,08h
.equ hst_reg,09h
.equ ctr_reg,0Ah
.equ CTR_REG2,0BH
.equ wmcom,96h
.equ ee_temp,0000h
.equ ee_hst,0001h
.equ COMPR, P1.0
.equ VENTIL, P1.1
.equ DATA_TERM,0CH
;===========================================================
.org 0000h
ljmp inicio

;endereo inicial do programa


;salta para o inicio do programa

.org 000BH
ljmp INTER

;vetor de interrupo do timer0


;rotina de interrupo

43
.ORG 0050H; rea de memria para as mensagens do display
;utilizamos a diretiva db (define byte) para associar bytes
;ou conjuntos de bytes (string) a um nome lgico. Os valores
;entre aspas indicam que pegaremos os caracteres em ascii.
;vemos que utilizamos a ttica de strings terminados em zero.
MEN1:
MEN2:
MEN3:
MEN4:
MEN5:
MEN6:
MEN7:
MEN8:
MEN9:

.DB
.DB
.DB
.DB
.DB
.DB
.DB
.DB
.DB

"TEMP:",0
"PRESET:",0
"TEMP. DESEJADA",0
"AJ. DE HISTERESE",0
"HISTERESE:",0
"TERMOM. DIGITAL",0
"MONOGRAFIA ",0
"EXECUTORES
",0
"CICERO/FABIANO ",0

;===========================================================
.ORG 0150H

;incio do programa

inicio: mov sp, #2fh


MOV R1,#50
SETB CS
CLR IOCLK
mov wmcom,#18h

;defino a rea de pilha


;prescaler para a rotina de leitura da temp.
;coloca o conversor a/d em alta impedncia
;coloquei o ioclk do conv.a/d em zero
;habilitei a escrita na eeprom (eemwe=1)
;e o endereamento externo eeprom (eemen=1)

;l o dado previamente armazenado na eeprom, converte para


;BCD e limito, com a funo anl, o valor de preset a 39 graus
mov dptr,#ee_temp
movx a,@dptr
add a,#00h
da a
ANL A,#3FH
movx @dptr,a
lcall delay
;igualmente eu fao com a histerese, s que limito a 9 graus
MOV DPTR,#EE_HST
MOVX A,@DPTR
ADD A,#00H
DA A
ANL A,#0FH
MOVX @DPTR,A
LCALL DELAY

44

MOV R7,#120
LCALL INIT_DSP
MOV TMOD,#11H
MOV IE,#82H
CLR TR0
CLR TF0
MOV TH0,#0B1H
MOV TL0,#0E0H
SETB TR0
AQUI:

;chamo a rotina de inicializao do display


;timers no modo 1 como timer
;habilitei a interrupo do timer 0
;t/c 0 desligado
;flag overflow resetado
;configura v. inicial de cont.
;p/10ms com clk de 12MHz e 5ms para 24MHz
;coloca o t/c0 para rodar

jNB MENU,TELAP2 ;testa se o boto menu foi aper.,se for,pula para


LJMP TELAP
;telap2 se no foi apertado menu, pula para telap

;=====================================================================
;se o boto menu for apertado far-se- o seguinte:
TELAP2: MOV DPTR,#EE_TEMP
MOVX A,@DPTR
MOV PR_REG,A
MOV DPTR,#EE_HST
MOVX A,@DPTR
MOV HST_REG,A
MOV A,#01H
LCALL DSP_COM
LCALL TELA2
SOLTA: JNB MENU,SOLTA

; pego o valor de temperatura da eeprom


; e copio num registro chamnado pr_reg

SOLTA0: LCALL DELAY


JB MAIS,SOLTA1
LCALL INC_PR
LCALL TELA2
SOLTA4: JNB MAIS,SOLTA4

;boto menu solto, d um atraso


;testa se o boto mais foi aper.se no for
;pula para solta1.se mais foi apertado,
;chama a subr.incre.chama a tela de config.
;de presets espera o boto mais ser solto

SOLTA1: LCALL DELAY


JB MENOS,SOLTA2
LCALL DEC_PR
LCALL TELA2
SOLTA5: JNB MENOS,SOLTA5

;boto mais solto, ou no aper.d um atraso


;testa se menos foi apertado, se no,vai
;para solta2 se menos for apertado, chama
;chama a tela de configurao de presets
;sub-r.de decrem.espera o menos ser solto

SOLTA2: LCALL DELAY


JB ENTER,SOLTA7
MOV DPTR,#EE_TEMP
MOV A,PR_REG

;o menos solto, ou no aper, d um atraso


;testa se enter foi apert,se no,vai solta7
;se o boto enter for apertado,
;pega o valor de preset que est em pr_reg

; pego o valor de histerese


; e copio para um registro chamado hst_reg
;manda o comando limpar display para o lcd.
; chama a subrotina comandos para o display
; chama a tela de configurao dos presets
; espera o boto menu ser solto

45
MOVX @DPTR,A
LCALL DELAY
SOLTA9: JNB ENTER,SOLTA9

;e move para a eeprom


;d um atraso
;espera o boto enter ser solto

SOLTA7: LCALL DELAY


JB MENU,SOLTA0
MOV A,#01H
LCALL DSP_COM
LCALL TELA3
SOLTA6: JNB MENU,SOLTA6

;se o enter solto ou no aper.d um atraso


;se menu no for apertado(2a vez),volta
;a testar se menu for aper.limpa o display

SOLTA00:LCALL DELAY
JB MAIS,SOLTA11
LCALL INC_HST
LCALL TELA3
SOLTA14:JNB MAIS,SOLTA14

;se menu for solto , d um atraso


;testa se mais foi aper.se no,vai: solta11
;incrementa o registro de histerese
;chama a tela de ajuste de histerese
;espera o boto mais ser solto

SOLTA11:LCALL DELAY
JB MENOS,SOLTA12
LCALL DEC_HST
LCALL TELA3
SOLTA15:JNB MENOS,SOLTA15

;
;
;
;
;

SOLTA12: LCALL DELAY


JB ENTER,SOLTA17
solta17
MOV DPTR,#EE_HST
MOV A,HST_REG
MOVX @DPTR,A
LCALL DELAY
SOLTA19:JNB ENTER,SOLTA19

; se menos solto,ou no aper.d um atraso


;testa se enter foi aper.se no,vai para

SOLTA17:LCALL DELAY
JB MENU,SOLTA00
MOV A,#01H
LCALL DSP_COM
SOLTA16:JNB MENU,SOLTA16
TELAP: LCALL TELA1
LCALL TELA4
Ljmp AQUI
botes

; e chama a subr.tela de histerese (tela3)


; espera o boto menu ser solto

se mais solto ou no aper.d um atraso


se menos no for aper.vai para solta12
se menos for aper.decrementa a histerese
chama a tela de histerese
espera o boto menos ser solto

;se for, pega o que est no registro de


;histerese e copia para a eeprom
;instruo de cpia na eeprom
;d um atraso para garantir cpia
; espera enter ser solto
; se enter solto, ou no aper.d um atraso
;se menu no for aper.volta a testar o mais
;limpa o display
; espera o boto menu ser solto
; tela principal
;chama as subr.das telas 1(presets)4(monog)
; salta para o incio do lao de teste de

;============sub-rotina: inc_pr====================================

46
;Pega o que est escrito em pr_reg
;incrementa e copia de volta nesse registro.
INC_PR:PUSH ACC
MOV A,PR_REG
ADD A,#01H
DA A
ANL A,#3FH
MOV PR_REG,A
POP ACC
RET

;
;
;
;
;
;
;
;

salva o acumulador na pilha


move para o acc pr_reg
somo com um (incrementa)
fao o ajuste decimal(valor em BCD)
filtro o valor para menor ou igual a 39H
copio de volta para pr_reg
retorna o valor do acumulador salvo na pilha
sai da subrotina

;============rotina: dec_pr=================================
;Pega o que est escrito em pr_reg
;decrementa e copia de volta nesse registro.

DEC_PR: PUSH ACC


MOV A,PR_REG
ADD A,#99H
DA A
ANL A,#3FH
MOV PR_REG,A
POP ACC
RET

;salva o acumulador na pilha


; move para o acc pr_reg
; soma algbrica com -1 , c10(1)
; ajuste decimal
; filtra
; copio de volta para pr_reg
; retorna o acumulador
; sai da subrotina

;==================================================================
; inc_hst e dec_hst: so idnticas s subrotinas inc_pr e dec_pr
; incrementando ou decrementando o registro hst_reg
INC_HST:PUSH ACC
MOV A,HST_REG
ADD A,#01H
DA A
ANL A,#0FH
MOV HST_REG,A
POP ACC
RET
DEC_HST: PUSH ACC
MOV A,HST_REG
ADD A,#99H
DA A

47
ANL A,#0FH
MOV HST_REG,A
POP ACC
RET

;============sub-rotina: tela(x)====================================
;subrotina tela1: escreve a tela principal no display
TELA1:LCALL
LCALL
LCALL
LCALL
LCALL
RET

DADO1
;chama a subrotina que escreve "TEMP:" no display
MOSTRA_TEMP;chama a subr.que mostra a temper.no lcd
DADO2
; chama a subrotina que escreve "PRESET:"no lcd
MOSTRA_PR ; chama a sr que mostra a temper.armaz. na eeprom
MOSTRA_HST ; chama a sr que mostra a hist.armaz. na eeprom
; sai da subrotina

;subrotina tela2: escreve a tela de presets no display


TELA2:LCALL DADO3
; chama a sr que escreve"TEMP.DESEJADA"no display
LCALL DADO2
; chama a sr que escreve "TEMP:" no display
LCALL MOSTRA_PR2 ; chama a sr que mostra o valor de pr_reg no display
RET
; sai da subrotina
;subrotina tela3: escreve a tela de histerese no display
TELA3:LCALL DADO4
; chama a sr que escreve"AJ. DE HISTERESE"no
display
LCALL DADO5
; chama a sr que escreve "HISTERESE:" no display
LCALL MOSTRA_HST2; chama a sr que mostra o valor de hst_reg no display
RET
; sai da subrotina
;subrotina tela4: escreve tela de apresentao, junto com a principal
TELA4: LCALL DADO6 ; chama a sr que escreve "TERMOMETRO DIGITAL" no lcd
LCALL DADO7
; chama a sr que escreve "monografia" no display
RET
; sai da subrotina
;tela5: tela no usada no programa
TELA5: LCALL DADO8
LCALL DADO9
RET
;============rotina: interrupo timer 0===========================

48

;rotina de interrupao do timer0, que tem como objetivo ler a


;temperatura e comparar com os valores pr-ajustados. O timer estoura
;a cada 5 ms, para uma freq de 24MHz.
;R1 um divisor de frequncia, de 50 vezes.
INTER: PUSH DPH
; salvo dptr na pilha
PUSH DPL
PUSH ACC
;salvo o acc na pilha
DJNZ R1,SAIINT ;decremento R1 e desvia se no for zero
LCALL LE_TEMP ;Se R1 for zero, chamo a sr que l a temp.do sensor
LCALL CMPROT ;chamo a sr que faz a comp entre o preset etemp.do sensor
MOV R1,#50
; recarrego R1 (prescaler)
SAIINT:POP ACC
; retiro o acc da pilha
POP DPL
; retiro dptr da pilha
POP DPH
RETI
;============rotina: sup_lim e inf_lim==============
;Calculam os limites superior (preset+hist)
;e o limite inferior (preset-hist), que sero utilizadas
;na subrotina comprot. ctr_reg: registro de controle do limite superior
;ctr_reg2: registro de controle do limite inferior
SUP_LIM: MOV DPTR,#EE_TEMP
MOVX A,@DPTR
MOV CTR_REG,A
MOV DPTR,#EE_HST
MOVX A,@DPTR
ADD A,CTR_REG
DA A
MOV CTR_REG,A
RET

;
;
;
;
;
;
;
;
;

l da eeprom o valor de preset


e carrega no acumulador
e copia no registro ctr_reg
l da eeprom o valor de histerese
e carrega no acc.
soma o valor da histerese com o preset
faz o ajuste decimal
coloca o resultado em ctr_reg,
sai da subrotina

; O complemento a 10 utilizado para se trabalhar nmeros negativos


; na base decimal, uma idia equivalente ao complemento a 2 dos
binrios
INF_LIM: MOV DPTR,#EE_HST
MOVX A,@DPTR
MOV CTR_REG2,A
MOV A,#99H
; move
SUBB A,CTR_REG2
ADD A,#01H

; leio da eeprom o valor da histerese


; e carrega no acumulador
; move para ctr_reg2
para o acc 99h, para calcular o comple.a 9
; calcula o complemento a 9 de ctr_reg2
; soma mais 1, para cal.o complemento a 10

49
DA A
MOV CTR_REG2,A
MOV DPTR,#EE_TEMP
MOVX A,@DPTR
ADD A,CTR_REG2
DA A
MOV CTR_REG2,A
RET

;
;
;
;
;
;

faz o ajuste decimal


move para ctr_reg2
leio da eeprom o valor do preset
carrego no acumulador
somo algebr.(subtraio)a temp.e a hist.
fao o ajuste decimal
; movo o resultado para ctr_reg2
; saio da subrotina

;================sub-rotina: cmprot============================
;Comparar o valor de temperatura lido pelo sensor,
;(a parte inteira), com os limites inferior (preset-hist) e o superior
;(preset+hist). Se t<inf_lim, desliga o vent. e o compressor,
;Se t>=sup_lim, liga o ventilador e o compressor.
CMPROT: LCALL SUP_LIM ; chamo a sr que calcula o lim. superior, e
armazena em ctr_reg
MOV A,DATA_TERM ;movo para o acc, a temp. lida do sensor
SUBB A,CTR_REG ;subtraio a temp. lida com o limite superior
JC CMPASSA
;se Acc<ctr_reg, cy=1,se no,cy=0.se a
temp<sup_lim,salta
clr VENTIL
; se a temp. ambi.>=limite super.liga ventilador
clr COMPR
; liga tambm o compressor
CMPASSA:LCALL INF_LIM ; chamo a sr que calcula o lim. inferior e
coloca em ctr_reg2
MOV A,DATA_TERM
; movo para o acc a temperatura ambiente
SUBB A,CTR_REG2
;Subtraio a temp.lida com o limite inferior
JNC CMPASSA2
; Se Acc>=ctr_reg2, cy=0, se no, cy=1.
setb VENTIL
; Se cy=1, a temp. ambiente<limite inferior
setb COMPR
; desligando o compressor e o ventilador
CMPASSA2: RET
; sai da subrotina
;================rotina init_dsp====================================
;Rotina de inicializao do display
INIT_DSP: LCALL DELAY
; d um atraso de 15ms
LCALL DELAY
LCALL DELAY
MOV A,#30H
; barramento de dados de 8 bits
LCALL DSP_COM
; envia o comando para o display
MOV A,#38H
; 8 bits de dados, mais de uma linha, fonte padro
LCALL DSP_COM
; envia o comando para o display
MOV A, #08H
; apaga o display

50
LCALL DSP_COM
MOV A,#01H
LCALL DSP_COM
MOV A, #06H
LCALL DSP_COM
MOV A, #0CH
LCALL DSP_COM
RET

; envia o comando para o display


; limpa o display
; envia o comando para o display
; modo de operao, incrementa endereos
;envia comando
; display ligado, sem cursor e sem pisca
; comando
; fim da subrotina

;==================sub-rotina desloca=============================
;L os bits enviados pelo tlc549 ao 8051
;de forma serial. Para cada transio negativa em ioclk, sai no pino
;de dados um bit correspondente ao valor da temperatura,
;comeando com o mais significativo, enviado j na queda do cs.
DESLOCA:
MOV R0,#08H ;indica a quant. de pulsos em ioclk do tlc549
DESLX:
MOV C,DATA_LM
RLC A
SETB IOCLK
; transi. de subida do clk no pino ioclk do tlc
SETB IOCLK
SETB IOCLK
SETB IOCLK
CLR IOCLK
;transio de descida do clk no pino ioclk do tlc
CLR IOCLK
;na transi. de descida do sinal no ioclk Receb.
CLR IOCLK
;pelo pino de dados, mais um bit de dados
CLR IOCLK
DJNZ R0,DESLX
;enquanto os 8 bits no forem recebidos,
continua a gerar pulsos
MOV R2,A
; move o byte correspondente para R2
RET
; sai da subrotina
;============rotina: le_temp===========================
;rotina que ler o valor de temperatura do conversor A/D
LE_TEMP: PUSH ACC
; salvo o
CLR CS
;habilito
CLR CS
CLR CS
CLR CS
LCALL DESLOCA
;
SETB CS
;
SETB CS

acumulador na pilha
o cs do tlc549, por 2us

gera os pulsos em ioclk e le o byte


desabilito o cs do tlc 549 por 2us

51
SETB CS
SETB CS
MOV A,R2
; pego o byte correspondente para separar a
MOV B,#05H
; parte inteira da decimal. divido por 5 o
DIV AB
; valor encont. O que fica em Acc o quociente
MOV R2,A
; e em B o resto.Movo o quociente para R2
MOV A,#02H
; Multiplico o Resto por 2
MUL AB
MOV R3,A
; e deixo o resto em R3
LCALL CONV_DADO; chamo a sr que converte binrio em decimal
POP ACC
; reponho o acc que foi salvo na pilha
RET
; saio da subrotina
;============rotina: conv_dado===================================
;Pega a parte inteira da temperatura em binrio
;e converte para decimal utilizando a tcnica da soma de pesos
CONV_DADO: MOV A,#00H ;inicial.o valor do registro de converso
MOV 20H,R2 ;movi a parte int.da temp.para a rea de bits
JNB 00H,VAI1
; endereveis e fiz a 1a. comparao
ADD A,#01H
; se o bit um, somo 1 ao acumulador
DA A
; fao o ajuste decimal
VAI1: JNB 01H,VAI2
; testa se o 2o. bit um, se no
ADD A,#02H
; se o bit um, somo 2 ao acumulador
DA A
; fao o ajuste decimal
VAI2: JNB 02H,VAI3
; testa se o 3o. bit um, se no, salto
ADD A,#04H
; se o bit um, somo 4 ao acc.
DA A
;fao o ajuste decimal
VAI3: JNB 03H,VAI4
; testa se o 4o. bit um, se no, salto
ADD A,#08H
;se o bit um, somo 8 ao acc
DA A
;fao o ajuste decimal
VAI4: JNB 04H,VAI5
; testa se o 5o. bit um, se no, salto
ADD A,#16H
; se o bit um, somo 16 ao acc
DA A
;fao o ajuste decimal
VAI5: JNB 05H,VAI6
;testa se o 6o. bit um, se no, salto
ADD A,#32H
; se o bit um, somo 32 ao acc
DA A
;fao o ajuste decimal
VAI6: MOV DATA_TERM,A
; movo para o registro data_term
RET
; fim da subrotina
;================sub-rotina: dsp_com===============================
;Envia para o display um comando
; O comando copiado no acumulador, para ser enviado ao lcd

52
;Subrotina dsp_com2: idntica a dsp_com, s que com um delay menor
DSP_COM: clr enable
clr rs
mov dados_dsp,a
setb enable
lcall delay
lcall delay
clr enable
ret

;
;
;
;
;
;
;
;

coloca o display em alta impedncia


rs=0 indica comando para o display
move o dado do acumulador para o display
habilita o display
atraso de 5ms
atraso de 5ms
coloca o display em alta impedncia
sai da subrotina

DSP_COM2:clr enable
clr rs
mov dados_dsp,a
setb enable
lcall delay3
lcall delay3
clr enable
ret

;
;
;
;
;
;
;
;

coloca o display em alta impedncia


rs=0 indica comando para o display
move o dado do acumulador para o display
habilita o display
atraso de 50us
atraso de 50us
coloca o lcd em alta impedncia
sai da subrotina

;=============sub-rotina: dsp_dat2==========================
;Envia um caracter ascii para o display escrever
;o caracter ascii copiado no acumulador
DSP_dat2:clr enable
setb rs
mov dados_dsp,a
setb enable
lcall delay3
lcall delay3
clr enable
ret

;
;
;
;
;
;
;
;

coloca o display em alta impedncia


rs=1 indica caracter enviado ao display
envia caracter ao barramento de dados
habilita o display
atraso de 50us
atraso de 50us
coloca o display em alta impedncia
sai da subrotina

;============sub-rotina: DELAY=========================================
DELAY: MOV TMOD, #11H
CLR TR1
CLR TF1
MOV TH1,#0B1H
MOV TL1,#0E0H
SETB TR1
DLYXX: JNB TF1, DLYXX
CLR TF1
CLR TR1

;timers no modo1:
;t/c1 desligado
;flag overflow retado
;configura v. inicial de cont.
;coloca o t/c para rodar
;espera o t/c estourar
;reseta o flag de overflow
;desliga o t/c1

53
RET
;===========sub-rotina: DADO1 a DADO9==========================
;Pega um string e envia ao display
;o string varrido e cada caracter enviado ao display
;o string varrido at encontrar zero.
DADO1: MOV A,#80H
;enderea o display para a 1a. linha
LCALL DSP_COM2 ;envia o comando ao display
MOV DPTR, #MEN1 ;ender. o apontador p/ o ender.inic. string
MOV A, #00H
;zera o acumulador
MOVC A,@A+DPTR ;envia o dado apontado por dptr para o acc
;(1o. caracter do string)
VDADO1: LCALL DSP_DAT2 ;chama a subr.de enviar caracter p/ o display
INC DPTR
;incre.o apontad. para ler o prx.carac. do string
MOV A,#00H
;zera o acc
MOVC A,@A+DPTR ;move o caracter do string para o acc
CJNE A, #00H,VDADO1 ; compara e salta se o caracter no for zero
RET
;sai da subrotina
DADO2: MOV A, #0C0H
;enderea a 2a.linha do display
LCALL DSP_COM2
MOV DPTR, #MEN2
MOV A,#00H
MOVC A,@A+DPTR
VDADO2: LCALL DSP_DAT2
INC DPTR
MOV A,#00H
MOVC A, @A+DPTR
CJNE A,#00H, VDADO2
RET
DADO3: MOV A,#80H
;enderea a 1a.linha do display
LCALL DSP_COM2
MOV DPTR, #MEN3
MOV A, #00H
MOVC A,@A+DPTR
VDADO3: LCALL DSP_DAT2
INC DPTR
MOV A,#00H
MOVC A,@A+DPTR
CJNE A, #00H,VDADO3
RET

54
DADO4: MOV A,#80H
;enderea a 1a. linha do display
LCALL DSP_COM2
MOV DPTR, #MEN4
MOV A, #00H
MOVC A,@A+DPTR
VDADO4: LCALL DSP_DAT2
INC DPTR
MOV A,#00H
MOVC A,@A+DPTR
CJNE A, #00H,VDADO4
RET
DADO5: MOV A,#0C0H
;enderea a 2a. linha do display
LCALL DSP_COM2
MOV DPTR, #MEN5
MOV A, #00H
MOVC A,@A+DPTR
VDADO5: LCALL DSP_DAT2
INC DPTR
MOV A,#00H
MOVC A,@A+DPTR
CJNE A, #00H,VDADO5
RET
DADO6: MOV A,#90H
;enderea a 3a. linha do display
LCALL DSP_COM2
MOV DPTR, #MEN6
MOV A, #00H
MOVC A,@A+DPTR
VDADO6: LCALL DSP_DAT2
INC DPTR
MOV A,#00H
MOVC A,@A+DPTR
CJNE A, #00H,VDADO6
RET

DADO7: MOV A,#0D0H


;enderea a 4a. linha do display
LCALL DSP_COM2
MOV DPTR, #MEN7
MOV A, #00H
MOVC A,@A+DPTR
VDADO7: LCALL DSP_DAT2
INC DPTR
MOV A,#00H

55
MOVC A,@A+DPTR
CJNE A, #00H,VDADO7
RET
DADO8: MOV A,#90H
;enderea a 3a.linha do display
LCALL DSP_COM2
MOV DPTR, #MEN8
MOV A, #00H
MOVC A,@A+DPTR
VDADO8: LCALL DSP_DAT2
INC DPTR
MOV A,#00H
MOVC A,@A+DPTR
CJNE A, #00H,VDADO8
RET
DADO9: MOV A,#0D0H
;enderea a 4a.linha do display
LCALL DSP_COM2
MOV DPTR, #MEN9
MOV A, #00H
MOVC A,@A+DPTR
VDADO9: LCALL DSP_DAT2
INC DPTR
MOV A,#00H
MOVC A,@A+DPTR
CJNE A, #00H,VDADO9
RET

;====================delay3: delay de 50ms==================


DELAY3: MOV TMOD,#01H
CLR TR1
MOV TL1,#00H
MOV TH1,#56
SETB TR1
DLY3K: JNB TF1,DLY3K
CLR TF1
CLR TR1
RET

;==========sub-rotina: mostra_temp===========================

56

;Pega o valor de temper.lido pelo sensor e apresenta no display


MOSTRA_TEMP: MOV A,#86H
LCALL DSP_COM2
MOV A,DATA_TERM
ANL A,#0F0H
SWAP A
ADD A,#30H
LCALL DSP_DAT2
MOV A,DATA_TERM
ANL A,#0FH
ADD A,#30H
LCALL DSP_DAT2
MOV A,#2CH
LCALL DSP_DAT2
MOV A,R3
ANL A,#0FH
ADD A,#30H
LCALL DSP_DAT2
MOV A,#0DFH
LCALL DSP_DAT2
RET

;endereo do MSD da temp.


;envio comando ao display
;envio a parte inteira da temp.p/acc
;filtro o MSD da parte inteira
;troco de posio para colocar o
;dgito no local correto
;converto o dgito de BCD para ASCII
;envio ao display
;copio a parte inteira da temp.no acc
;filtro o dgito menos significativo
;converto o dgito de BCD para ASCII
;envio ao display
;ascii correspondente vrgula
;envio ao display
;copio a parte decimal da temp.p/acc
;filtro
;converto o dgito de BCD para ASCII
;envio para o display
;ascii corresp.ao smbolo de grau
;envio para o display
;fim da subrotina

;==========sub-rotina mostra_pr============================
;Pega o preset que est na eeprom
;no registro ee_temp e mostra no display
MOSTRA_PR: MOV A,#0C8H
LCALL DSP_COM2
mov dptr,#ee_temp
MOVx A,@dptr
ANL A,#0F0H
SWAP A
ADD A,#30H
LCALL DSP_DAT2
MOVx A,@dptr
ANL A,#0FH
ADD A,#30H
LCALL DSP_DAT2
MOV A,#0DFH
LCALL DSP_DAT2

;DIGITO MAIS SIGNIFICATIVO

;smbolo de grau

57
RET

;==========sub-rotina: mostra_pr2===============================
;Pega o valor escrito em pr_reg e mostra no display
MOSTRA_PR2:

MOV A,#0C8H
LCALL DSP_COM2
MOV A,PR_REG
ANL A,#0F0H
SWAP A
ADD A,#30H
LCALL DSP_DAT2
MOV A,PR_REG
ANL A,#0FH
ADD A,#30H
LCALL DSP_DAT2
MOV A,#0DFH
LCALL DSP_DAT2
RET

;DIGITO MAIS SIGNIFICATIVO

;==========SUB-ROTINA MOSTRA_HST2===============================
;Pega o que est escrito em hst_reg e escreve no display
MOSTRA_HST2: MOV A,#0CCH
LCALL DSP_COM2
MOV A,HST_REG
ANL A,#0F0H
SWAP A
ADD A,#30H
LCALL DSP_DAT2
MOV A,HST_REG
ANL A,#0FH
ADD A,#30H
LCALL DSP_DAT2
MOV A,#0DFH
LCALL DSP_DAT2
RET

;DIGITO MAIS SIGNIFICATIVO

58
;===========sub-rotina: mostra_hst===============================
;Pega o que est na eeprom (ee_hst) e envia para o display
MOSTRA_HST:

MOV A,#0CCH
;DIGITO MAIS SIGNIFICATIVO
LCALL DSP_COM2
mov dptr,#ee_hst
MOVx A,@dptr
ANL A,#0F0H
SWAP A
ADD A,#30H
LCALL DSP_DAT2
MOV DPTR,#EE_HST
MOVX A,@DPTR
ANL A,#0FH
ADD A,#30H
LCALL DSP_DAT2
MOV A,#0DFH
LCALL DSP_DAT2
RET

;===========================================================
.end ;fim do programa

59

REFERNCIAS BIBLIOGRFICAS

[1]BIGNELL, James W. e DONOVAN, Robert L;1995. Vol. 1. Eletrnica Digital, Makron Books.
[2]ASSOCIAO BRASILEIRA DE NORMAS TCNICAS;1997. Norma Brasileira de
Instalaes Eltricas de Baixa Tenso, Norma NBR-5410.
[3]CORPORATION, Atmel;1997. AT89C52 Microcontroller Data Sheet .
[4]TOCCI, Rolnald J. e WINDER ,Neal S; 1998.Sistemas Digitais princpios e aplicaes .
[5]SALVADOR, Gimenez P;1998.Microcontrolador 8051 Transparncia de aulas. Prentice
Hall.
[6]SILVA JR Vidal P;1999.Aplicaes prticas do Microcontrolador 8051.Editora rica.
[7]TOMS, Lang ;2000. Introduo aos Sistemas Digitais. Bookman.
[8]JOS, David;2002 .Desbravando o Pic 16F84. Editora rica.
[9]LANDER, Cyril W; 1998.Eletrnica Industrial. Mc Graw Hill.
[10]ALMEIDA, Jos Luiz A; Eletrnica Industrial. Livros rica Editora Ltda.
[11]SENAI . DR. PE. Microcontroladores, Recife, SENAI/DITEC?DET. 1988.
[12]SEDRA, A.S;SMITH, K.S;2000.Microeletrnica., 4 Edio. Editora Makron Books.
[13]ASHRAE, normas . American Society of Heating, Refrigerating, Air Conditioning Engineers
[14]Intel,1991 Component Data Catalog. Intel Corporation (1991)
[15]Assembler,1991] The Art of Assembler. Apostila (1991)
[16]Philips,1995] 80C51 Basead 8 bit microcontrollers. Philips, (1995)

60
[17]Introduo ao Amplificadoroperacional,
http://www.ifi.unicamp.br/~kleinke/f540/e_amp1.htm#intro, Acesso em 16/11/05.
[18]ARAUJO, Maria Tereza Machado.Sistema Microcontrolado de Revelao de Placas de
Circuito Impresso, http://www.eee.ufg.br/cepf/pff/2003/pf2003_03.pdf. Acesso em 09/11/05.
[19]Sensor de Temperatura.
http://vinicius.brasil.vilabol.uol.com.br/eletronica/Sensortemp/SENSORTEMP.htm,
Acesso em 09/11/05.
[20] Manual LPT -1010, www.minipa.com.br.
[21]ALL DATA SHEET
http://pdf.alldatasheet.com/datasheet-pdf/view/8098/NSC/ADC0808CCN.html ,Acesso em
16/11/05.

Potrebbero piacerti anche