Você está na página 1de 18

27pF 100nF XTAL 4MHZ 27pF

+5V

PIC16F628A
10K 16 15 100nF 470 4 6 330 330 RESET S1 330 M1 10 B1 11 12 13 330 330 CF1 330 VM VD 9 7 8

+5V
14 10K 10K 10K 10K

OSC2/CLKOUT OSC1/CLKIN /MCLR RB0 RB1 RB2 RB3 RB4 RB5 RB6 RB7 VSS
5

VDD

RA0 RA1 RA2 RA3 RA4

17 18 1 CH1 2 3 MS1 LS1 LS2

Universidade Estcio de S P.XI Curso Automao Industrial Professor: Wagner Zanco Nomes: Jorge Leoncio Stanley Bruno

Universidade Estcio de S Curso: Automao Industrial. Prof: Wagner Zanco

Objetivo: Desenvolver controle combinado (malha aberta / fechada) para Lavadora de Roupas Automtica, com bases em contagem de tempo e uso de sensores. Justificativa: Embora seja uma aplicao comum j conhecida na indstria, o controle para Lavadora de Roupas Automtica foi escolhido por se tratar de um desenvolvimento que envolve diversos conhecimentos ensinados nas aulas de Sistemas Microprocessados / Microcontroladores, tais como: Programao Estruturada Temporizadores Debounce Uso de Flags Chamada a sub-rotinas Dentre outros

Esta aplicao de autoria dos executantes deste trabalho, de forma alguma sendo reproduzida na sua integridade de outras fontes, inclusive as solues empregadas durante o desenvolvimento, que favoreceu um slido aprendizado no contedo da disciplina, obviamente baseando-se nas aplicaes apresentadas em aula. Descrio do Funcionamento: 1. Efetua rotina de inicializao 2. Sistema acende led verde sinalizando que a mquina est pronta para iniciar processo de lavagem. Aps dar um pulso no boto de partida CH1, iniciado o processo de encher tanque. 3. A solenide S1 d permisso para entrada de gua at o nvel mximo LS1 ser alcanado. 4. Com o tanque cheio, iniciado o processo de molho por 15 minutos. 5. Aps o molho, ligado o motor M1 para executar lavagem durante 10 minutos. 6. Finalizada a lavagem, ligada a bomba B1 para drenar gua com sabo at atingir o nvel mnimo LS2. 7. Novamente a solenide S1 d permisso para entrada de gua at o nvel mximo LS1 ser alcanado. 8. Com o tanque cheio, ligado o motor M1 para executar o enxgue durante 10 minutos. 9. Finalizado o enxgue, ligada a bomba B1 para drenar gua com sabo at atingir o nvel mnimo LS2, junto com a centrfuga CF1 durante 5 minutos. 10. Aps a centrifugao, o programa sinaliza novamente estar pronto para iniciar nova lavagem, acendendo o led verde. Observao: Em qualquer momento do processo de lavagem, caso a tampa seja aberta, a aplicao desativar todas as sadas em operao e sinalizar com o led vermelho. Para os processos com base em tempo, a contagem ser pausada. Aps o fechamento da tampa, as sadas antes em operao sero restabelecidas e a contagem de tempo ser continuada.

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A Alunos: Jorge Leoncio e Stanley Brito

Universidade Estcio de S Curso: Automao Industrial. Prof: Wagner Zanco

Diagrama Esquemtico:
27pF 100nF XTAL 4MHZ 27pF

+5V

PIC16F628A
10K 16 15 100nF 470 4 6 330 330 RESET S1 330 M1 10 B1 11 12 13 330 330 CF1 330 VM VD 9 7 8

+5V
14 10K 10K 10K 10K

OSC2/CLKOUT OSC1/CLKIN /MCLR RB0 RB1 RB2 RB3 RB4 RB5 RB6 RB7 VSS
5

VDD

RA0 RA1 RA2 RA3 RA4

17 18 1 CH1 2 3 MS1 LS1 LS2

Observao: Para fins de apresentao, foram utilizados leds amarelos para sinalizar a ativao de cada sada do microcontrolador, o que numa aplicao real, esta seria usada para excitar a base de um transistor que acionaria um rel, conforme diagrama abaixo:

+12V

Diodo para evitar realimentao reversa da bobina rel

PORTB

10k T1

10k

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A Alunos: Jorge Leoncio e Stanley Brito

Universidade Estcio de S Curso: Automao Industrial. Prof: Wagner Zanco

Fluxogramas: A seguir sero apresentados os fluxogramas de cada rotina com os respectivos comentrios:

MAIN MAIN

PARTIDA PARTIDA

TAMPA TAMPA

ENCHER ENCHER

Rotina MAIN (Principal) Exibe a sequncia de sub-rotinas que sero executadas no processo. Por se tratar de programao estruturada, as sub-rotinas no so executadas na sequencia apresentada, e sim conforme a permisso das bandeiras (flags). Entretanto, nas sub-rotinas PARTIDA e TAMPA, as permisses dependem de entradas fsicas no PORTA.

MOLHO MOLHO

LAVAR LAVAR

DRENAR DRENAR

CENTRIFUGAR CENTRIFUGAR

TIMER TIMER

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A Alunos: Jorge Leoncio e Stanley Brito

Universidade Estcio de S Curso: Automao Industrial. Prof: Wagner Zanco

PARTIDA PARTIDA

no no

Led LedVD VD Set? Set? sim sim

Debounce Debounce= =200 200

Sub-Rotina PARTIDA Aps a inicializao do

CountD CountD= =50 50

microcontrolador, o led verde sinaliza sistema pronto para executar processo de lavagem.

CALL CALLTAMPA TAMPA

Somente aps o boto CH1 ser mantido pressionado por 50ms que a bandeira para encher tanque
no no

CH1 CH1 =0? =0? sim sim

levantada e o led verde apagado.

Se o sistema j estiver em
Debounce Debounce =0? =0?

funcionamento, o led verde estar apagado, sendo direcionado para retornar da sub-rotina.

Debounce Debounce= =200 200

Durante o teste do boto, verificada se a tampa foi aberta.


no no CountD CountD =0? =0? sim sim

seta setaflag flagEnche Enche

apaga apagaLED LEDVD VD

Retorna Retorna

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A Alunos: Jorge Leoncio e Stanley Brito

Universidade Estcio de S Curso: Automao Industrial. Prof: Wagner Zanco

TAMPA TAMPA

MS1 MS1 Set? Set? sim sim Copia CopiaPORTB PORTB para paraPAUSE PAUSE

no no

Sub-Rotina TAMPA A cada chamada a esta sub-rotina, o programa verifica se a tampa foi aberta e, caso positivo, executa os seguintes passos:

limpa limpaPORTB PORTB

Faz backup de todas as sadas ativas no PORTB.

Acende AcendeLED LED vermelho vermelho

Desliga todas as sadas do PORTB Liga led vermelhor para sinalizar tampa aberta.

limpa limpaTMR0 TMR0

no no MS1 MS1 =0? =0? sim sim

Pausa a contagem de tempo zerando TMR0.

Verifica se a porta foi fechada. Caso positivo, desliga led vermelho Restabelece as sadas ativas antes da abertura da porta.

limpa limpaPORTB PORTB

Copia CopiaPAUSE PAUSE para paraPORTB PORTB

Retorna Retorna

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A Alunos: Jorge Leoncio e Stanley Brito

Universidade Estcio de S Curso: Automao Industrial. Prof: Wagner Zanco

Encher Encher

Flag FlagEnche Enche =1? =1? sim sim

no no

LS1 LS1 Set? Set? sim sim

no no

Sub-Rotina ENCHER
Flag FlagEnxg Enxg =1? =1? sim sim no no

Estando a bandeira Enche levantada, o programa liga a solenide at o nvel mximo ser alcaado.
CountM CountM= =60 60

seta setaflag flagLavar Lavar

Aps o tanque cheio, levantada a bandeira para iniciar o processo de 15


CountM CountM= =40 40

minutos de Molho.
seta setaflag flagMolho Molho

zera zeraflag flagEnche Enche

Esta sub-rotina tambm utilizada pela funo Enxgue, logo se a banderia Enxg

Liga LigaS1 S1

Desl DeslS1 S1

estiver levantada o programa desviado a executar a sequncia de instrues para efetu-la.

Retorna Retorna

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A Alunos: Jorge Leoncio e Stanley Brito

Universidade Estcio de S Curso: Automao Industrial. Prof: Wagner Zanco

MOLHO_15MIN MOLHO_15MIN

Flag Flagmolho molho Set? Set? sim sim

no no

Seta Setaflag flagTemp Temp

Sub-Rotina MOLHO_15MIN Estando a bandeira molho levantada, o

Flag Flag_15S _15S =1? =1? sim sim

no no

programa ativa o mdulo temporizador de 15s levantando a bandeira Temp.

zera zeraflag flag_15S _15S

A cada 15s, o contador de minutos CountM decrementado, e aps zerar, tero se passado 15 minutos.

CountM CountM =0? =0? sim sim

no no

Aps o molho, levantada a bandeira para lavagem durante 10 minutos e desativado o mdulo temporizador.

zera zeraflag flagMolho Molho

seta setaflag flagLavar Lavar

CountM CountM= =40 40

zera zeraflag flagTemp Temp

Retorna Retorna

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A Alunos: Jorge Leoncio e Stanley Brito

Universidade Estcio de S Curso: Automao Industrial. Prof: Wagner Zanco

LAVAR_10MIN LAVAR_10MIN

no no

Flag FlagLavar Lavar Set? Set? sim sim

Liga LigaM1 M1

Sub-Rotina LAVAR_10MIN Estando a bandeira lavar levantada, o

Seta Setaflag flagTemp Temp

programa liga o motor de lavagem e ativa o mdulo temporizador de 15s levantando a bandeira Temp.

no no

Flag Flag_15S _15S =1? =1? sim sim

A cada 15s, o contador de minutos CountM decrementado, e aps zerar,

zera zeraflag flag_15S _15S

tero se passado 10 minutos.

Aps a lavagem, desligado o motor


no no CountM CountM =0? =0? sim sim

levantada a bandeira para dreno e desativado o mdulo temporizador.

Desl DeslM1 M1

Esta sub-rotina tambm utilizada pela funo Enxgue, logo se a banderia Enxg

zera zeraflag flagTemp Temp

estiver abaixada o programa desviado a executar a sequncia de instrues para

Zera Zeraflag flagLavar Lavar

efetu-la.

Flag FlagEnxg Enxg =0? =0? sim sim

no no

Zera Zeraflag flagEnxg Enxg

Seta Setaflag flagDreno Dreno

Seta Setaflag flagCtrfg Ctrfg

CountM CountM= =20 20

Retorna Retorna

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A Alunos: Jorge Leoncio e Stanley Brito

Universidade Estcio de S Curso: Automao Industrial. Prof: Wagner Zanco

DRENAR DRENAR

no no

Flag FlagDreno Dreno Set? Set? sim sim

LS2 LS2=0? =0?

no no

Sub-Rotina DRENAR Com a bandeira dreno levantada, a bomba


Zera Zeraflag flagDreno Dreno

sim sim

de drenagem B1 ser ligada at atingir o nvel mnimo LS2, e aps esvaziar, a

Seta Setaflag flagEnxg Enxg

mesma bandeira ser abaixada e levantadas as bandeiras enxg e encher desligando a bomba B1.

Seta Setaflag flagEncher Encher

As prximas etapas reutilizaro as subLig LigB1 B1 Desl DeslB1 B1

rotinas Encher e Lavar, cuja bandeira enxg desviar o processo para o enxgue

Retorna Retorna

(remoo do excesso de sabo) conforme verificado nos fluxogramas anteriores.

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A Alunos: Jorge Leoncio e Stanley Brito

Universidade Estcio de S Curso: Automao Industrial. Prof: Wagner Zanco

CETRIFUGA CETRIFUGA

Flag FlagCtrfg Ctrfg Set? Set? sim sim Seta Setaflag flagTemp Temp

no no

Sub-Rotina CENTRIFUGA Aps o enxgue, com a bandeira ctrfg


Lig LigCF1 CF1

levantada, o programa liga a centrifuga CF1 pelo perodo de 5 minutos (ativando o

no no

temporizador), ligando a bomba B1 para


LS2 LS2=0? =0?

remover o excesso de gua at o nvel mnimo ser alcanado.

sim sim

Desl DeslB1 B1

Lig LigB1 B1

Aps o processo, a centrfuga e o temporizador so desligados, abaixando a


Flag Flag_15S _15S =1? =1? sim sim no no

bandeira ctrfg e ligando o led verde, sinalizando a concluso da lavagem.

zera zeraflag flag_15S _15S

CountM CountM =0? =0? sim sim

no no

Desl DeslCF1 CF1

zera zeraflag flagTemp Temp

Zera Zeraflag flagCtfg Ctfg

liga ligaLED LED verde verde

Retorna Retorna

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A Alunos: Jorge Leoncio e Stanley Brito

10

Universidade Estcio de S Curso: Automao Industrial. Prof: Wagner Zanco

TIMER_15S TIMER_15S

Sub-Rotina TIMER_15S
Flag FlagTemp Temp Set? Set? sim sim no no

Esta sub-rotina utilizada pelos processos que necessitam do mdulo temporizador.

zera zeraflag flagT01F T01F

Ao ser ativada com a bandeira temp levantada, a bandeira T01F zerada, para o

Count Count= =229 229

caso de ter ocorrido estouro do TMR0 durante algum processo da lavagem.

zera zeraTMR0 TMR0

O prescaler do TMR0 foi setado para o


CALL CALLTAMPA TAMPA

delay de 1:256, e o estouro do mesmo ocorre de 0 a 255. Para se obter um valor divisor inteiro de 60, foi setado o valor decimal para o Count de 229, de forma

no no

TMR0 TMR0 estourou? estourou? sim sim

que: 256s 256 229 = 15 segundos. Desta forma, a rotina que usa a temporizao utiliza o contador de minutos

Apaga Apagaflag flagT01F T01F

CountM correspondente ao valor em segundos dividido por 4. Exemplo: 10

no no

minutos 10 60 = 600 15 = 40.


Count Count=0? =0?

Sendo 40 um nmero menor que 255 que cabe na varivel CountM de 8 bits.

sim sim

seta setaflag flag_15S _15S

verificada se a tampa foi aberta durante a contagem do tempo.


Retorna Retorna

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A Alunos: Jorge Leoncio e Stanley Brito

11

Universidade Estcio de S Curso: Automao Industrial. Prof: Wagner Zanco

Programa Fonte:
;************************************************************************************************ ; PROGRAMA - Controle Digital para Mquina de Lavar Roupa ; Autores: Jorge Leoncio e Stanley Bruno. ; Faculdade Estcio de S, 3 Perodo ; 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 BCF BCF ENDM BANK1 MACRO BSF BCF ENDM STATUS,RP0 STATUS,RP1 ;FIM DA MACRO BANK1 STATUS,RP0 STATUS,RP1 ;FIM DA MACRO BANK0 ;MACRO PARA SELECIONAR BANCO 1 ;MACRO PARA SELECIONAR BANCO 0

;************************************************************************************************ ; VARIAVEIS ;************************************************************************************************ ;ENDERECOS DAS VARIAVEIS UTILIZADAS PELO SISTEMA CBLOCK 0x20 PAUSE COUNT FLAGS COUNTM DEBOUNCE COUNTD ENDC ;ENDERECO INICIAL DA MEMORIA DO USUARIO ;MEMORIZA STATUS DO PORTB AO ABRIR TAMPA ;0x21 - UTILIZADO NO TIMER 15 SEGUNDOS ;0x22 - BITS DE SINALIZACAO ;0X23 - CONTADOR DE MINUTOS ;0X24 - DEBOUNCE ;0X25 - CONTADOR DEBOUNCE ;FIM DO BLOCO DE MEMRIA

;************************************************************************************************ ; CONSTANTES ;************************************************************************************************ ;CONSTANTES UTILIZADAS PELO SISTEMA ;BITS DO REGISTRADOR FLAGS ENCHE MOLHO LAVAR DRENO ENXG CTRFG TEMP _15S EQU EQU EQU EQU EQU EQU EQU EQU .0 .1 .2 .3 .4 .5 .6 .7 ;PRONTO PARA ENCHER ;PRONTO PARA O MOLHO ;PRONTO PARA LAVAR ;PRONTO PARA DRENO ;PRONTO PARA ENXAGUAR ;PRONTO PARA CENTRIFUGAR ;HABILITA TEMPORIZADOR 15S ;SINALIZA APS 15 SEGUNDOS

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

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A Alunos: Jorge Leoncio e Stanley Brito

12

Universidade Estcio de S Curso: Automao Industrial. Prof: Wagner Zanco

; |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 ; #DEFINE MS1 ; #DEFINE LS1 ; #DEFINE LS2 PORTA,0 PORTA,1 PORTA,2 PORTA,3 ;0 --> PRESSIONADO ;1 --> LIBERADO ;0 --> ATIVADO ;1 --> DESATIVADO ;0 --> ATIVADO ;1 --> DESATIVADO ;0 --> ATIVADO ;1 --> DESATIVADO

;************************************************************************************************ ; SAIDAS ;************************************************************************************************ ;PINOS QUE SERAO UTILIZADOS COMO SAIDA #DEFINE S1 #DEFINE M1 #DEFINE B1 #DEFINE CF1 #DEFINE #DEFINE PORTB,1 PORTB,2 PORTB,3 PORTB,4 VM VD PORTB,5 PORTB,6 ;0 --> ATIVADA ;1 --> DESATIVADA ;0 --> ATIVADO ;1 --> DESATIVADO ;0 --> ATIVADA ;1 --> DESATIVADA ;0 --> ATIVADA ;1 --> DESATIVADA ;1 --> LED VERMELHO ;SINALIZA PORTA ABERTA ;1 --> LED VERDE ;SINALIZA LAVAGEM PRONTA

;************************************************************************************************ ; VETOR DE RESET ;************************************************************************************************ ORG 0x00 PROCESSAMENTO GOTO INICIO ;************************************************************************************************ ; INTERRUPCAO ;************************************************************************************************ ;AS INTERRUPCOES NAO SERAO UTILIZADAS ORG RETFIE 0x04

;ENDERECO INICIAL DE

;ENDERECO INICAL DA INTERRUPCAO ;RETORNA DA INTERRUPCAO

;************************************************************************************************ ; INICIO ;************************************************************************************************ INICIO BANK1 ;ALTERA PARA BANCO1 MOVLW B'00001111' MOVWF TRISA ;DEFINE RA0-RA3 COMO ENTRADA e DEMAIS

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A Alunos: Jorge Leoncio e Stanley Brito

13

Universidade Estcio de S Curso: Automao Industrial. Prof: Wagner Zanco

;COMO SAIDA MOVLW MOVWF MOVLW MOVWF B'00000000' TRISB B'10000111' OPTION_REG ;DEFINE O PORTB COMO SAIDA ;PRESCALER 1:256 NO TMRO <2:0> ;TMR0 INCREMENTADO PELO CICLO DE INSTRUCAO <5> ;APLICA PRESCALER AO TMR0 <3> ;PULL_UPS DESABILITADOS <7> ;DEMAIS BITS IRRELEVANTES ;INTERRUPCOES DESABILITADAS ;CONFIGURA RA3: RA0 COM I/O <2:0>

MOVLW MOVWF BANK0 MOVLW MOVWF

B'00000000' INTCON B'00000111' CMCON

;************************************************************************************************ ; INICIALIZACAO DAS VARIAVEIS ;************************************************************************************************ CLRF PORTA ;LIMPA PORTA CLRF PORTB ;LIMPA PORTB ; MOVLW B'00000001' CLRF FLAGS ;ZERA FLAGS BSF VD ;PRONTO PARA INICIAR PROCESSO DE LAVAGEM ;************************************************************************************************ ; ROTINA PRINCIPAL ;************************************************************************************************ MAIN CALL PARTIDA ;CHAMA SUB-ROTINA PARA INICIAR LAVAGEM CALL TAMPA ;CHAMA SUB-ROTINA QUE VERIFICA SE A TAMPA ESTA ABERTA CALL ENCHER ;CHAMA SUB-ROTINA PARA ENCHER COM AGUA CALL MOLHO_15MIN ;CHAMA SUB-ROTINA PARA AGUARDAR 15 MIN MOLHO CALL LAV_10MIN ;CHAMA SUB-ROTINA PARA 10 MIN LAVAGEM CALL DRENAR ;CHAMA SUB-ROTINA PARA DRENAR ; CALL ENCHER ;CHAMA SUB-ROTINA PARA ENCHER COM AGUA APOS DRENAR ; CALL LAV_10MIN ;CHAMA SUB-ROTINA PARA 10 MIN LAVAGEM E ENXAGUE CALL CENTRIFUGAR ;CHAMA SUB-ROTINA PARA CENTRIFUGAR CALL TIMER_15S ;CHAMA SUB-ROTINA PARA TEMPORIZAR 15S GOTO MAIN ;************************************************************************************************ ; SUB-ROTINAS ;************************************************************************************************ PARTIDA BTFSS VD ;LED VERDE ACESO RETURN ;NAO, RETORNA MOVLW .200 MOVWF DEBOUNCE ;DEBOUNCE = 200 MOVLW .50 MOVWF COUNTD ;COUNTD = 50 TESTA_CHAVE CALL TAMPA BTFSC CH1 ;CHAVE GERAL PRESSIONADA? GOTO PARTIDA ;NAO, REFAZ TESTE DECFSZ DEBOUNCE ;DECREMENTA DEBOUNCE, ZEROU? GOTO TESTA_CHAVE ;NAO, TESTA CHAVE MOVLW .200 MOVWF DEBOUNCE ;REINICIA DEBOUNCE COM 200 DECFSZ COUNTD ;DECREMENTA COUNTD, ZEROU? GOTO TESTA_CHAVE ;NAO, TESTA CHAVE BSF FLAGS,ENCHE ;PRONTO PARA ENCHER BCF VD ;APAGA LED VERDE RETURN ;************************************************************************************************ TAMPA BTFSS MS1 ;TAMPA ABERTA? RETURN ;NAO, RETORNA MOVF PORTB,W ;COPIA PORTB PARA W MOVWF PAUSE ;COPIA W PARA PAUSE CLRF PORTB ;LIMPA PORTB BSF VM ;LED VM ALERTA TAMPA ABERTA LIGADO

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A Alunos: Jorge Leoncio e Stanley Brito

14

Universidade Estcio de S Curso: Automao Industrial. Prof: Wagner Zanco

CLRF BTFSC GOTO CLRF MOVF MOVWF RETURN

TMR0 MS1 $-2 PORTB PAUSE,W PORTB

;LIMPA TMR0 ;TAMPA FECHADA? ;NAO, ESPERA FECHAR ;LIMPA PORTB ;COPIA PAUSE PARA W ;RESTAURA PORTB ANTES DA ABERTURA DA TAMPA ;RETORNA

;************************************************************************************************ ENCHER BTFSS GOTO BTFSS GOTO BSF RETURN ENCHER1 BTFSS GOTO BSF MOVLW MOVWF BCF GOTO ENCHER2 MOVLW MOVWF BSF BCF ENCHER3 BCF RETURN S1 ;DESL SOLENIDE PASSAGEM DAGUA .4 COUNTM FLAGS,MOLHO FLAGS,ENCHE ;COUNTM = 60 ;CONTA 15 MIN PARA MOLHO ;SETA FLAG MOLHO ;LIMPA FLAG ENCHE FLAGS,ENXG ENCHER2 FLAGS,LAVAR .4 COUNTM FLAGS,ENCHE ENCHER3 ;PRONTO PARA ENXAGUAR? ;NAO ;SIM, PRONTO PARA LAVAR ;COUNTM = 40 ;CONTA 10 MIN PARA ENXAGUAR ;ZERA FLAG ENCHE FLAGS,ENCHE ENCHER3 LS1 ENCHER1 S1 ;LIBERADO PARA ENCHER? ;NAO, ;TANQUE VAZIO? ;NAO ;LIGA SOLENIDE PASSAGEM DAGUA ;RETORNA

;************************************************************************************************ MOLHO_15MIN BTFSS RETURN BSF BTFSS RETURN BCF DECFSZ RETURN BCF BSF MOVLW MOVWF BCF RETURN FLAGS,MOLHO FLAGS,TEMP FLAGS,_15S FLAGS,_15S COUNTM FLAGS,MOLHO FLAGS,LAVAR .4 COUNTM FLAGS,TEMP ;PRONTO PARA MOLHO? ;NAO, RETORNA ;SIM, CONTINUA ;HABILITA TEMPORIZADOR 15S ;PASSADOS 15 SEGUNDOS? ;NAO RETORNA ;SIM, APAGA FLAG _15S ;DECREMENTA COUNTM, ZEROU? ;NAO RETORNA ;APAGA FLAG MOLHO ;PRONTO PARA LAVAR ;COUNTM = 40 ;CONTA 10 MIN PARA LAVAGEM ;LIMPA FLAG TEMP

;************************************************************************************************ LAV_10MIN BTFSS RETURN BSF BSF BTFSS RETURN BCF DECFSZ RETURN BCF BCF BCF BTFSC GOTO BSF RETURN BCF FLAGS,LAVAR M1 FLAGS,TEMP FLAGS,_15S FLAGS,_15S COUNTM M1 FLAGS,TEMP FLAGS,LAVAR FLAGS,ENXG $+3 FLAGS,DRENO FLAGS,ENXG ;PRONTO PARA LAVAR? ;NAO, RETORNA ;SIM, CONTINUA ;SIM, LIGA MOTOR ;HABILITA TEMPORIZADOR 15S ;PASSADOS 15 SEGUNDOS? ;NAO, RETORNA ;SIM, APAGA FLAG _15S ;DECREMENTA COUNTM, ZEROU? ;NAO RETORNA ;DESLIGA MOTOR ;APAGA FLAG TEMP ;APAGA FLAG LAVAR ;PRONTO PARA ENXAGUE? ;NAO ;PRONTO PARA DRENAR ;APAGA FLAG ENXAGUE

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A Alunos: Jorge Leoncio e Stanley Brito

15

Universidade Estcio de S Curso: Automao Industrial. Prof: Wagner Zanco

BSF MOVLW MOVWF RETURN

FLAGS,CTRFG .4 COUNTM

;PRONTO PARA CENTRIFUGAR ;COUNTM = 20 ;CONTA 5 MIN PARA CENTRIFUGAR

;************************************************************************************************ DRENAR BTFSS FLAGS,DRENO ;PRONTO PARA DRENAR? RETURN ;NAO, RETORNA BTFSC LS2 ;TANQUE COM AGUA? GOTO $+3 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 CENTRIFUGAR1 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 CENTRIFUGAR2 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 TMR0 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 ;************************************************************************************************

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A Alunos: Jorge Leoncio e Stanley Brito

16

Universidade Estcio de S Curso: Automao Industrial. Prof: Wagner Zanco

Concluses: Compreendidos os princpios dos Sistemas Microprocessados. possvel reproduzir qualquer lgica booleana na linguagem de programao. Compreendidas as definies apresentadas em aula, tais como: o Alocao de memria o Declarao de variveis o Programao Estruturada o A importncia da simulao da aplicao no software de desenvolvimento. o etc. Embora o projeto requeira alguns ajustes para tornar vivel a fabricao de chips que seriam utilizados nos equipamentos a que se destinam, a atual aplicao foi mantida para fins de apresentao e aplicabilidade dos conhecimentos adquiridos no curso.

FIM

Controle digital para Lavadora de Roupas, desenvolvido para microcontrolador PIC16F628A Alunos: Jorge Leoncio e Stanley Brito

17