Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Trabalho - Microcontroladores, Trabalhos de Tecnologia Industrial

Desenvolvendo controle de funcionamento de máquina de lavar com o microcontrolador PIC16F628A

Tipologia: Trabalhos

2011

Compartilhado em 20/11/2011

jorge-alves-sinist-7
jorge-alves-sinist-7 🇧🇷

2 documentos

1 / 18

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
PIC16F628A
VDD
RA0
RA1
RA2
RA3
RA4
VSS
RB7
RB6
RB5
RB4
RB3
RB2
RB1
RB0
/MCLR
OSC2/CLKOUT
OSC1/CLKIN
14
17
7 18
1
2
3
16
15
4
6
XTAL
4MHZ
8
9
10
11
12
13
+5V
27pF
27pF
+5V
100nF
100nF
RESET
10K
470
10K10K10K10K
330
330
330
330
330
330
CH1 MS1 LS1 LS2S1
M1
B1
VM
CF1
VD
5
PIC16F628A
VDD
RA0
RA1
RA2
RA3
RA4
VSS
RB7
RB6
RB5
RB4
RB3
RB2
RB1
RB0
/MCLR
OSC2/CLKOUT
OSC1/CLKIN
14
17
7 18
1
2
3
16
15
4
6
XTAL
4MHZ
8
9
10
11
12
13
+5V
27pF
27pF
+5V
100nF
100nF
RESET
10K
470
10K10K10K10K
330
330
330
330
330
330
CH1 MS1 LS1 LS2S1
M1
B1
VM
CF1
VD
5
U
Un
ni
iv
ve
er
rs
si
id
da
ad
de
e
E
Es
st
tá
ác
ci
io
o
d
de
e
S
Sá
á
P
P.
.X
XI
I
C
Cu
ur
rs
so
o
A
Au
ut
to
om
ma
aç
çã
ão
o
I
In
nd
du
us
st
tr
ri
ia
al
l
P
Pr
ro
of
fe
es
ss
so
or
r:
:
W
Wa
ag
gn
ne
er
r
Z
Za
an
nc
co
o
N
No
om
me
es
s:
:
J
Jo
or
rg
ge
e
L
Le
eo
on
nc
ci
io
o
S
St
ta
an
nl
le
ey
y
B
Br
ru
un
no
o
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12

Pré-visualização parcial do texto

Baixe Trabalho - Microcontroladores e outras Trabalhos em PDF para Tecnologia Industrial, somente na Docsity!

PIC16F628A

VDD

RA

RA

RA

RA

RA

VSS

RB

RB

RB

RB

RB

RB

RB

RB

/MCLR

OSC2/CLKOUT

OSC1/CLKIN

14

17

7 18

1

2

3

16 15 4 6

XTAL 4MHZ

8

9

10

11

12

13

+5V

27pF

27pF

+5V

100nF

100nF

RESET

10KΩ

470 Ω 10KΩ 10KΩ 10KΩ 10KΩ

330 Ω

330 Ω

330 Ω

330 Ω

330 Ω

330 Ω

S1 CH1 MS1 LS1 LS

M

B

VM

CF

VD

5

PIC16F628A

VDD

RA

RA

RA

RA

RA

VSS

RB

RB

RB

RB

RB

RB

RB

RB

/MCLR

OSC2/CLKOUT

OSC1/CLKIN

14

17

7 18

1

2

3

16 15 4 6

XTAL 4MHZ

8

9

10

11

12

13

+5V

27pF

27pF

+5V

100nF

100nF

RESET

10KΩ

470 Ω 10KΩ 10KΩ 10KΩ 10KΩ

330 Ω

330 Ω

330 Ω

330 Ω

330 Ω

330 Ω

S1 CH1 MS1 LS1 LS

M

B

VM

CF

VD

5

UUnniivveerrssiiddaaddee EEssttáácciioo ddee SSáá – – PP..XXII

CCuurrssoo^ AAuuttoommaaççããoo^ IInndduussttrriiaall

P Prrooffeessssoorr:: WWaaggnneerr ZZaannccoo

NNoommeess::

J Joorrggee LLeeoonncciioo

SSttaannlleeyy^ BBrruunnoo

Curso: Automação Industrial. Prof: Wagner Zanco

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A

Objetivo:

Desenvolver controle combinado (malha aberta / fechada) para Lavadora de Roupas Automática, com bases

em contagem de tempo e uso de sensores.

Justificativa:

Embora seja uma aplicação comum já conhecida na indústria, o controle para Lavadora de Roupas

Automática foi escolhido por se tratar de um desenvolvimento que envolve diversos conhecimentos

ensinados nas aulas de Sistemas Microprocessados / Microcontroladores, tais como:

  • Programação Estruturada
  • Temporizadores
  • Debounce
  • Uso de Flags
  • Chamada a sub-rotinas
  • Dentre outros

Esta aplicação é de autoria dos executantes deste trabalho, de forma alguma sendo reproduzida na sua

integridade de outras fontes, inclusive as soluções empregadas durante o desenvolvimento, que favoreceu um

sólido aprendizado no conteúdo da disciplina, obviamente baseando-se nas aplicações apresentadas em aula.

Descrição do Funcionamento:

1. Efetua rotina de inicialização

2. Sistema acende led verde sinalizando que a máquina está pronta para iniciar processo de lavagem.

Após dar um pulso no botão de partida CH1, é iniciado o processo de encher tanque.

3. A solenóide S1 dá permissão para entrada de água até o nível máximo LS1 ser alcançado.

4. Com o tanque cheio, é iniciado o processo de molho por 15 minutos.

5. Após o molho, é ligado o motor M1 para executar lavagem durante 10 minutos.

6. Finalizada a lavagem, é ligada a bomba B1 para drenar água com sabão até atingir o nível mínimo

LS2.

7. Novamente a solenóide S1 dá permissão para entrada de água até o nível máximo LS1 ser alcançado.

8. Com o tanque cheio, é ligado o motor M1 para executar o enxágue durante 10 minutos.

9. Finalizado o enxágue, é ligada a bomba B1 para drenar água com sabão até atingir o nível mínimo

LS2, junto com a centrífuga CF1 durante 5 minutos.

10. Após a centrifugação, o programa sinaliza novamente estar pronto para iniciar nova lavagem,

acendendo o led verde.

Observação:

Em qualquer momento do processo de lavagem, caso a tampa seja aberta, a aplicação desativará todas as

saídas em operação e sinalizará com o led vermelho. Para os processos com base em tempo, a contagem será

pausada. Após o fechamento da tampa, as saídas antes em operação serão restabelecidas e a contagem de

tempo será continuada.

Curso: Automação Industrial. Prof: Wagner Zanco

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A

Fluxogramas:

A seguir serão apresentados os fluxogramas de cada rotina com os respectivos comentários:

Rotina MAIN (Principal)

Exibe a sequência de sub-rotinas

que serão executadas no processo.

Por se tratar de programação

estruturada, as sub-rotinas não são

executadas na sequencia

apresentada, e sim conforme a

permissão das bandeiras (flags).

Entretanto, nas sub-rotinas

PARTIDA e TAMPA, as

permissões dependem de entradas

físicas no PORTA.

MAIN

TAMPA

ENCHER

MOLHO

LAVAR

DRENAR

CENTRIFUGAR

TIMER

PARTIDA

MAIN

TAMPA

ENCHER

MOLHO

LAVAR

DRENAR

CENTRIFUGAR

TIMER

PARTIDA

Curso: Automação Industrial. Prof: Wagner Zanco

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A

S Suubb--RRoottiinnaa PPAARRTTIIDDAA

Após a inicialização do

microcontrolador, o led verde

sinaliza sistema pronto para

executar processo de lavagem.

Somente após o botão CH1 ser

mantido pressionado por 50ms é

que a bandeira para encher tanque

é levantada e o led verde apagado.

Se o sistema já estiver em

funcionamento, o led verde estará

apagado, sendo direcionado para

retornar da sub-rotina.

Durante o teste do botão, é

verificada se a tampa foi aberta.

CH =0?

Debounce = 200

CountD = 50

Debounce =0?

Debounce = 200

CountD =0?

seta flag Enche

Led VD Set?

apaga LED VD

Retorna

PARTIDA

sim

não

sim

não

sim

não

CALL TAMPA

CH =0?

Debounce = 200

CountD = 50

Debounce =0?

Debounce = 200

CountD =0?

seta flag Enche

Led VD Set?

apaga LED VD

Retorna

PARTIDA

sim

não

sim

não

sim

não

CALL TAMPA

Curso: Automação Industrial. Prof: Wagner Zanco

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A

Encher

Flag Enche =1?

não

sim

Retorna

Flag Enxg =1?

Liga S1 Desl S

LS1 não Set?

zera flag Enche seta flag Molho

sim

sim

não

seta flag Lavar CountM = 60

CountM = 40

Encher

Flag Enche =1?

não

sim

Retorna

Flag Enxg =1?

Liga S1 Desl S

LS1 não Set?

zera flag Enche seta flag Molho

sim

sim

não

seta flag Lavar CountM = 60

CountM = 40

S Suubb--RRoottiinnaa EENNCCHHEERR

Estando a bandeira Enche levantada, o

programa liga a solenóide até o nível

máximo ser alcaçado.

Após o tanque cheio, é levantada a

bandeira para iniciar o processo de 15

minutos de Molho.

Esta sub-rotina também é utilizada pela

função Enxágue, logo se a banderia Enxg

estiver levantada o programa é desviado a

executar a sequência de instruções para

efetuá-la.

Curso: Automação Industrial. Prof: Wagner Zanco

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A

MOLHO_15MIN

sim

Retorna

Flag molho Set?

não

Flag _15S =1?

CountM =0?

zera flag Molho

seta flag Lavar

não

não

sim

sim

Seta flag Temp

zera flag Temp

zera flag _15S

CountM = 40

MOLHO_15MIN

sim

Retorna

Flag molho Set?

não

Flag _15S =1?

CountM =0?

zera flag Molho

seta flag Lavar

não

não

sim

sim

Seta flag Temp

zera flag Temp

zera flag _15S

CountM = 40

SSuubb--RRoottiinnaa MMOOLLHHOO__ 1155 MMIINN

Estando a bandeira molho levantada, o

programa ativa o módulo temporizador de

15s levantando a bandeira Temp.

A cada 15s, o contador de minutos

CountM é decrementado, e após zerar,

terão se passado 15 minutos.

Após o molho, é levantada a bandeira para

lavagem durante 10 minutos e desativado

o módulo temporizador.

Curso: Automação Industrial. Prof: Wagner Zanco

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A

DRENAR

sim

Retorna

Flag Dreno Set?

não

Desl B

LS2 =0?

não

sim

Lig B

Zera flag Dreno

Seta flag Enxg

Seta flag Encher

DRENAR

sim

Retorna

Flag Dreno Set?

não

Desl B

LS2 =0?

não

sim

Lig B

Zera flag Dreno

Seta flag Enxg

Seta flag Encher

S Suubb--RRoottiinnaa DDRREENNAARR

Com a bandeira dreno levantada, a bomba

de drenagem B1 será ligada até atingir o

nível mínimo LS2, e após esvaziar, a

mesma bandeira será abaixada e levantadas

as bandeiras enxg e encher desligando a

bomba B1.

As próximas etapas reutilizarão as sub-

rotinas Encher e Lavar , cuja bandeira

enxg desviará o processo para o enxágue

(remoção do excesso de sabão) conforme

verificado nos fluxogramas anteriores.

Curso: Automação Industrial. Prof: Wagner Zanco

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A

CETRIFUGA

Retorna

Flag Ctrfg Set?

LS2 =0?

não

sim

Lig B

Seta flag Temp

Lig CF

Desl B

Zera flag Ctfg

Flag _15S =1?

CountM =0?

não

não

sim

sim

zera flag _15S

Desl CF

zera flag Temp

liga LED verde

sim

não

CETRIFUGA

Retorna

Flag Ctrfg Set?

LS2 =0?

não

sim

Lig B

Seta flag Temp

Lig CF

Desl B

Zera flag Ctfg

Flag _15S =1?

CountM =0?

não

não

sim

sim

zera flag _15S

Desl CF

zera flag Temp

liga LED verde

sim

não

S Suubb--RRoottiinnaa CCEENNTTRRIIFFUUGGAA

Após o enxágue, com a bandeira ctrfg

levantada, o programa liga a centrifuga

CF1 pelo período de 5 minutos (ativando o

temporizador), ligando a bomba B1 para

remover o excesso de água até o nível

mínimo ser alcançado.

Após o processo, a centrífuga e o

temporizador são desligados, abaixando a

bandeira ctrfg e ligando o led verde,

sinalizando a conclusão da lavagem.

Curso: Automação Industrial. Prof: Wagner Zanco

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A

Programa Fonte:

; PROGRAMA - Controle Digital para Máquina de Lavar Roupa ; Autores: Jorge Leoncio e Stanley Bruno. ; Faculdade Estácio de Sá, 3º Período ; Prof: Wagner Zanco ;************************************************************************************************ ; ; ;ARQUIVOS DE DEFINICOES ; #INCLUDE <P16F628A.INC> ;ARQUIVO PADRAO MICROCHIP PARA O PIC16F628A ; ; ;BITS DE CONFIGURACAO ; __CONFIG _BOREN_ON&_CP_ON&_PWRTE_ON&_WDT_OFF&_LVP_OFF&_DATA_CP_OFF&_MCLRE_ON&_XT_OSC ;************************************************************************************************ ; PAGINACAO DA MEMORIA ;************************************************************************************************ ;COMANDOS PARA ALTERACAO DE PAGINA DE MEMORIA

BANK0 MACRO ;MACRO PARA SELECIONAR BANCO 0

BCF STATUS,RP

BCF STATUS,RP

ENDM ;FIM DA MACRO BANK

BANK1 MACRO ;MACRO PARA SELECIONAR BANCO 1

BSF STATUS,RP

BCF STATUS,RP

ENDM ;FIM DA MACRO BANK

; VARIAVEIS

;ENDERECOS DAS VARIAVEIS UTILIZADAS PELO SISTEMA

CBLOCK 0x20 ;ENDERECO INICIAL DA MEMORIA DO USUARIO

PAUSE ;MEMORIZA STATUS DO PORTB AO ABRIR TAMPA COUNT ;0x21 - UTILIZADO NO TIMER 15 SEGUNDOS FLAGS ;0x22 - BITS DE SINALIZACAO COUNTM ;0X23 - CONTADOR DE MINUTOS DEBOUNCE ;0X24 - DEBOUNCE COUNTD ;0X25 - CONTADOR DEBOUNCE ENDC ;FIM DO BLOCO DE MEMÓRIA

; CONSTANTES

;CONSTANTES UTILIZADAS PELO SISTEMA

;BITS DO REGISTRADOR FLAGS

ENCHE EQU .0 ;PRONTO PARA ENCHER

MOLHO EQU .1 ;PRONTO PARA O MOLHO

LAVAR EQU .2 ;PRONTO PARA LAVAR

DRENO EQU .3 ;PRONTO PARA DRENO

ENXG EQU .4 ;PRONTO PARA ENXAGUAR

CTRFG EQU .5 ;PRONTO PARA CENTRIFUGAR

TEMP EQU .6 ;HABILITA TEMPORIZADOR 15S

_15S EQU .7 ;SINALIZA APÓS 15 SEGUNDOS

; FLAGS

;REGISTRADOR FLAGS

; BIT# |7|6|5|4|3|2|1|0|

Curso: Automação Industrial. Prof: Wagner Zanco

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A

; |X|X|X|X|X|X|X|Y| ENCHE --> 1=PRONTO PARA ENCHER

; |X|X|X|X|X|X|Y|X| MOLHO --> 1=PRONTO PARA MOLHO

; |X|X|X|X|X|Y|X|X| LAVAR --> 1=PRONTO PARA LAVAR

; |X|X|X|X|Y|X|X|X| DRENO --> 1=PRONTO PARA DRENAR

; |X|X|X|Y|X|X|X|X| ENXG --> 1=PRONTO PARA ENXAGUAR

; |X|X|Y|X|X|X|X|X| CTRFG --> 1=PRONTO PARA CENTRIFUGAR

; |X|Y|X|X|X|X|X|X| TEMP --> 1=HABILITA TEMPORIZADOR 15S

; |Y|X|X|X|X|X|X|X| _15S --> 1=SINALIZA 15 SEGUNDOS

;X = DEFINIDO EM OUTRO LUGAR DA TABELA

;Y = DEFINIDO COMO MOSTRADO (0/1)

; ENTRADAS

;PINOS QUE SERAO UTILIZADOS COMO ENTRADA

#DEFINE CH1 PORTA,0 ;0 --> PRESSIONADO

;1 --> LIBERADO

#DEFINE MS1 PORTA,1 ;0 --> ATIVADO

;1 --> DESATIVADO

#DEFINE LS1 PORTA,2 ;0 --> ATIVADO

;1 --> DESATIVADO

#DEFINE LS2 PORTA,3 ;0 --> ATIVADO

;1 --> DESATIVADO

; SAIDAS

;PINOS QUE SERAO UTILIZADOS COMO SAIDA

#DEFINE S1 PORTB,1 ;0 --> ATIVADA

;1 --> DESATIVADA

#DEFINE M1 PORTB,2 ;0 --> ATIVADO

;1 --> DESATIVADO

#DEFINE B1 PORTB,3 ;0 --> ATIVADA

;1 --> DESATIVADA

#DEFINE CF1 PORTB,4 ;0 --> ATIVADA

;1 --> DESATIVADA

#DEFINE VM PORTB,5 ;1 --> LED VERMELHO

;SINALIZA PORTA ABERTA

#DEFINE VD PORTB,6 ;1 --> LED VERDE

;SINALIZA LAVAGEM PRONTA

; VETOR DE RESET

ORG 0x00 ;ENDERECO INICIAL DE PROCESSAMENTO GOTO INICIO

;************************************************************************************************ ; INTERRUPCAO ;************************************************************************************************ ;AS INTERRUPCOES NAO SERAO UTILIZADAS

ORG 0x04 ;ENDERECO INICAL DA INTERRUPCAO RETFIE ;RETORNA DA INTERRUPCAO

; INICIO

INICIO

BANK1 ;ALTERA PARA BANCO

MOVLW B'00001111'

MOVWF TRISA ;DEFINE RA0-RA3 COMO ENTRADA e DEMAIS

Curso: Automação Industrial. Prof: Wagner Zanco

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A

CLRF TMR0 ;LIMPA TMR

BTFSC MS1 ;TAMPA FECHADA?

GOTO $-2 ;NAO, ESPERA FECHAR

CLRF PORTB ;LIMPA PORTB

MOVF PAUSE,W ;COPIA PAUSE PARA W

MOVWF PORTB ;RESTAURA PORTB ANTES DA ABERTURA DA TAMPA

RETURN ;RETORNA

ENCHER

BTFSS FLAGS,ENCHE ;LIBERADO PARA ENCHER?

GOTO ENCHER3 ;NAO,

BTFSS LS1 ;TANQUE VAZIO?

GOTO ENCHER1 ;NAO

BSF S1 ;LIGA SOLENÓIDE PASSAGEM DAGUA

RETURN ;RETORNA

ENCHER

BTFSS FLAGS,ENXG ;PRONTO PARA ENXAGUAR?

GOTO ENCHER2 ;NAO

BSF FLAGS,LAVAR ;SIM, PRONTO PARA LAVAR

MOVLW .4 ;COUNTM = 40

MOVWF COUNTM ;CONTA 10 MIN PARA ENXAGUAR

BCF FLAGS,ENCHE ;ZERA FLAG ENCHE

GOTO ENCHER

ENCHER

MOVLW .4 ;COUNTM = 60

MOVWF COUNTM ;CONTA 15 MIN PARA MOLHO

BSF FLAGS,MOLHO ;SETA FLAG MOLHO

BCF FLAGS,ENCHE ;LIMPA FLAG ENCHE

ENCHER

BCF S1 ;DESL SOLENÓIDE PASSAGEM DAGUA

RETURN

MOLHO_15MIN

BTFSS FLAGS,MOLHO ;PRONTO PARA MOLHO?

RETURN ;NAO, RETORNA

;SIM, CONTINUA

BSF FLAGS,TEMP ;HABILITA TEMPORIZADOR 15S

BTFSS FLAGS,_15S ;PASSADOS 15 SEGUNDOS?

RETURN ;NAO RETORNA

BCF FLAGS,_15S ;SIM, APAGA FLAG _15S

DECFSZ COUNTM ;DECREMENTA COUNTM, ZEROU?

RETURN ;NAO RETORNA

BCF FLAGS,MOLHO ;APAGA FLAG MOLHO

BSF FLAGS,LAVAR ;PRONTO PARA LAVAR

MOVLW .4 ;COUNTM = 40

MOVWF COUNTM ;CONTA 10 MIN PARA LAVAGEM

BCF FLAGS,TEMP ;LIMPA FLAG TEMP

RETURN

LAV_10MIN

BTFSS FLAGS,LAVAR ;PRONTO PARA LAVAR?

RETURN ;NAO, RETORNA

;SIM, CONTINUA

BSF M1 ;SIM, LIGA MOTOR

BSF FLAGS,TEMP ;HABILITA TEMPORIZADOR 15S

BTFSS FLAGS,_15S ;PASSADOS 15 SEGUNDOS?

RETURN ;NAO, RETORNA

BCF FLAGS,_15S ;SIM, APAGA FLAG _15S

DECFSZ COUNTM ;DECREMENTA COUNTM, ZEROU?

RETURN ;NAO RETORNA

BCF M1 ;DESLIGA MOTOR

BCF FLAGS,TEMP ;APAGA FLAG TEMP

BCF FLAGS,LAVAR ;APAGA FLAG LAVAR

BTFSC FLAGS,ENXG ;PRONTO PARA ENXAGUE?

GOTO $+3 ;NAO

BSF FLAGS,DRENO ;PRONTO PARA DRENAR

RETURN

BCF FLAGS,ENXG ;APAGA FLAG ENXAGUE

Curso: Automação Industrial. Prof: Wagner Zanco

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A

BSF FLAGS,CTRFG ;PRONTO PARA CENTRIFUGAR

MOVLW .4 ;COUNTM = 20

MOVWF COUNTM ;CONTA 5 MIN PARA CENTRIFUGAR

RETURN

DRENAR

BTFSS FLAGS,DRENO ;PRONTO PARA DRENAR?

RETURN ;NAO, RETORNA

BTFSC LS2 ;TANQUE COM AGUA?

GOTO $+

BSF B1 ;LIGA BOMBA DAGUA

RETURN

BCF FLAGS,DRENO ;APAGA FLAG DRENO

BSF FLAGS,ENXG ;PRONTO PARA ENXAGUE

BSF FLAGS,ENCHE ;PRONTO PARA ENCHER

BCF B1 ;DESLIGA BOMBA DAGUA

RETURN

CENTRIFUGAR

BTFSS FLAGS,CTRFG ;PRONTO PARA CENTRIFUGAR?

RETURN ;NAO, RETORNA

BSF FLAGS,TEMP ;HABILITA TEMPORIZADOR

BSF CF1 ;LIGA CENTRIFUGA

BTFSC LS2 ;TANQUE COM AGUA?

GOTO CENTRIFUGAR2 ;NAO

BSF B1 ;SIM, LIGA BOMBA DAGUA

CENTRIFUGAR

BTFSS FLAGS,_15S ;PASSADOS 15 SEGUNDOS?

RETURN ;NAO, RETORNA

BCF FLAGS,_15S ;LIMPA FLAG _15S

DECFSZ COUNTM ;DECREMENTA COUNTM, ZEROU?

RETURN ;NAO, RETORNA

BCF CF1 ;DESLIGA CENTRIFUGA

BCF FLAGS,TEMP ;APAGA FLAG TEMP

BCF FLAGS,CTRFG ;APAGA FLAG CTRFG

BSF VD ;LIGA LED VERDE - LAVAGEM PRONTA

RETURN

CENTRIFUGAR

BCF B1 ;DESLIGA BOMBA DAGUA

GOTO CENTRIFUGAR1 ;CONTINUA PROCESSO

TIMER_15S

BTFSS FLAGS,TEMP ;TEMPORIZADOR HABILITADO?

RETURN

BCF INTCON,T0IF ;SIM, APAGA FLAG T0IF

MOVLW .229 ;GRAVA 229 EM COUNT

MOVWF COUNT

CLRF TMR0 ;ZERA TMR

TESTA_TAMPA

CALL TAMPA ;TESTA SE TAMPA ESTA ABERTA

BTFSS INTCON,T0IF ;TIMER ESTOUROU?

GOTO TESTA_TAMPA

BCF INTCON,T0IF ;SIM, APAGA FLAG T0IF

DECFSZ COUNT ;DECREMENTA COUNT, ZEROU?

GOTO TESTA_TAMPA

BSF FLAGS,_15S ;PASSADOS 15S

RETURN

END ;FIM DO PROGRAMA