Você está na página 1de 21

CONTROLADOR LGICO PROGRAMVEL

UTILIZANDO PIC 18F4550


PROGRAMMABLE LOGIC CONTROLLER USING
MICROCONTROLER PIC 18F4550

ISSN: 1984-3151

Warley A. Eleutrio1; Wagner A. A. Hovadich2; Eduardo Q. Braga3


1

Engenheiro Eletricista. UNIBH, 2011. Projetista de sistemas


eltricos e Automao C&W Projetos e consultoria. Belo
Horizonte, Minas Gerais. warley@cewprojetos.com.br.

Engenheiro Eletricista. UNIBH, 2011. Projetista de sistemas


de Automao IHM Engenharia. Belo Horizonte, Minas
Gerais. wagner.hovadick@gmail.com.

Mestre em Engenharia eltrica. UFMG, 2007. Centro


Universitrio de Belo Horizonte. Belo Horizonte, Minas
Gerais; eduardo.braga@prof.unibh.br.

Recebido em: 30/10/2011 - Aprovado em: 16/12/2011 - Disponibilizado em: 30/12/2011

RESUMO: Desde a criao dos rels eletromecnicos os processos industriais vm se modernizando,


principalmente aps a descoberta dos microprocessadores que impulsionaram o desenvolvimento dos
controladores lgicos programveis. Os controladores tornaram os processos produtivos flexveis do ponto de
vista de manuteno, expanso e principalmente aumentando a qualidade dos produtos e qualidade de vida dos
envolvidos, j que esta tecnologia vem retirando os homens de processos insalubres e tornando estes processos
inteligentes e independentes. A cada dia os controladores ficam mais poderosos e consequentemente mais caros,
o que vem tornando estes dispositivos inviveis para processos simples e com baixo valor agregado. Este fato
motivou o desenvolvimento de um controlador de baixo custo de produo e de fcil implementao para
profissionais que atuam nestes processos mais simples. Para o desenvolvimento deste trabalho foi utilizado o
Microcontrolador PIC18F4550. Depois de concludas as simulaes foi observada a possibilidade de se aumentar
os mdulos de entrada e sada do controlador, o que torna seu custo/beneficio ainda maior.
PALAVRAS-CHAVE: Controladores Lgicos Programveis. PIC18F4550. Microcontrolador.
ABSTRACT: Since the creation of electromechanical relays industrial processes are being modernized, especially
after the discovery of the microprocessors that drive the development of programmable logic controllers.
Controllers made flexible production processes in terms of maintenance, expansion and mainly by increasing
product quality and quality of life of those involved, as this technology is taking the men of unhealthy processes and
making these processes intelligent and independent. Every day the drivers become more powerful and therefore
more expensive, which is making these devices impractical for simple processes and low added value. This fact
motivated the development of a controller of low production cost and easy implementation for professionals who
work in simple cases. To develop this study we used the PIC18F4550 microcontroller. After completing the
simulations, we observed the possibility of increasing the input and output modules of the controller, which makes
their cost/benefit even more.
Keywords: Programmable Logic Controllers. PIC18F4550. Microcontroller.

____________________________________________________________________________

1 INTRODUO
At no final dos anos 70 sempre que se desejava
controlar algum processo industrial, desde os mais

simples aos mais complexos, a alternativa utilizada


eram os controles de processos a rels. Este tipo de
controle teve seu incio em 1968, sendo utilizado pela

e-xacta, Belo Horizonte, v. 4, n. 3, p. 159-179. (2011). Editora UniBH.


Disponvel em: www.unibh.br/revistas/exacta/

160
primeira vez na diviso hidramtica da General

e indicar, para seu operador, a existncia de algum

Motors. Embora este tipo de controle funcionasse de

problema, facilitando desta forma manuteno.

maneira satisfatria, sempre que fosse necessria

(PLNIO, 2008)

alguma alterao no processo, onde este sistema


estava sendo empregado, era necessrio que todo o
sistema

fosse

re-projetado

novamente

implementado. Isto demandava alm de um alto custo,


muito tempo. (PLNIO, 2008)

1.1 PROBLEMA DE PESQUISA


Embora uma das ideias principais do CLP fosse o de
reduzir custos, devido a evoluo e alta complexidade

Segundo PLNIO (2008), no final dos anos 60, os

de alguns grandes processos, o avano da tecnologia

engenheiros e projetistas perceberam que seria

e o surgimento de microprocessadores cada vez mais

possvel criar um hardware que de uma forma mais

poderosos, os CLPs passaram a realizar alm de

flexvel pudesse tornar este processo de controle

controles

menos oneroso e que pudesse ser modificado em

complexidade. Este avano, entretanto, fez com que o

menor tempo, pois a implementao dos controles

custo destes equipamentos se tornasse muito alto,

passa a ser via software e no mais com os rels.

inviabilizando o seu uso em tarefas mais simples ou

Desta forma surgiram os primeiros Controladores

que no possuam um alto valor agregado.

Lgico Programveis CLPs.

lgicos,

tarefas

com

alto

grau

de

De acordo com Eng. Andr Oliveira, Msc (National

Em sua estrutura bsica, o CLP deve ser composto

Instruments), 77% dos CLPs so utilizados em

por um controlador central, CPU, que far o controle e

pequenas aplicaes, cerca de 72% das E/S dos

monitoramento do processo atravs de dispositivos de

CLPs so digitais e 80% dos desafios em aplicaes

I/O. (PLNIO, 2008)

com CLPs so solucionados com um conjunto de 20

Para que seja possvel sua utilizao em ambientes

instrues ladder.

industriais, o hardware do CLP deve ter a capacidade


de suportar uma alta tenso e corrente em seus

1.2 MOTIVAO

terminais de I/O, possuir um sistema de memria no


voltil, para que caso a alimentao de seu circuito
seja

interrompida,

no

sejam

perdidos

seus

parmetros, nem programa. Alm disto desejvel


que ele seja robusto, suportando altas temperaturas e

As grandes vantagens oferecidas pelo CLP, seu alto


custo de aquisio e a necessidade de se controlar
processos de baixo valor agregado, fizeram surgir o
interesse em pesquisar e demonstrar que um CLP
pode

manuseio. (PETRUZELLA, 2005),

ser

desenvolvido

controlado

por

microcontrolador, de forma a torn-lo simples e de


As vantagens em se utilizar um CLP so inmeras e

baixo custo.

ultrapassam as que motivaram sua criao. Alm da


reduo nos custos e no tempo de montagem os
CLPs tambm oferecem confiabilidade, flexibilidade,

1.3 OBJETIVOS

a capacidade de realizar uma grande variedade de

1.3.1 OBJETIVO GERAL

tarefas de controle, desde aes simples e repetitivas


at

manipulao

de

dados

complexos,

possibilidade de comunicao com outros CLPs e


computadores e, tambm, a capacidade de identificar

e-xacta, Belo Horizonte, v. 4. n. 3, p. 159-179. (2011). Editora UniBH.


Disponvel em: www.unibh.br/revistas/exacta/

Criar um CLP utilizando microcontrolador de baixo


custo, que seja verstil e de fcil manuseio.

161
A relevncia do tema est em tornar acessvel os

1.3.2 OBJETIVOS ESPECFICOS

dispositivos de controle, tendo em vista a inviabilidade


Criar projeto de hardware necessrio para a

implementao do projeto, tais como: CPU,


mdulos de entrada e sada digitais e interface

financeira de aquisio de controladores automticos


existentes no mercado para aplicaes de baixa
complexidade.

de comunicao serial.
Desenvolver cdigo de programao em

linguagem C (Firmware) para o funcionamento


do microcontrolador PIC18F4550.

2 REFERENCIAL TERICO
2.1 CONTROLADORES LGICOS PROGRAMVEIS

Criar mecanismos para a programao do

CLP.

Segundo IEC 61131-1, International Electrotechnical

Demonstrar a possibilidade de monitoramento

Commission (2003), os CLPs podem ser descritos

de processo (Supervisrio).

como:

Realizar teste do CLP com simuladores.

Sistema eletrnico operado digitalmente, projetado

Avaliar a viabilidade econmica do projeto.

para o uso em ambiente industrial, que usa uma

memria programvel para a armazenagem interna de


instrues orientadas para o usurio implementar

1.3.3 JUSTIFICATIVA
A ideia do controle automtico de processo se iniciou
na dcada de 20, quando Henry Ford criou a linha de
produo para a fabricao de automveis e foi
impulsionado com o desenvolvimento de dispositivos
semicondutores. Desde ento, os controladores (CLP)
vem se modernizando a cada dia. A automao tem
um

importante

papel

na

sociedade,

pois

vem

proporcionando alm de melhorias na qualidade dos


produtos, uma melhora na qualidade de vida da

funes especficas, tais como lgica, sequencial,


temporizao, contagem e aritmtico, para controlar,
atravs de entradas e sadas digitais ou analgicas,
vrios tipos de mquinas ou processos. O controlador
programvel e seus perifricos associados

so

projetados para serem facilmente integrveis em um


sistema de controle industrial e usados com facilidade
em todas suas funes especficas. (IEC 61131-1,
2003)

sociedade, uma vez que substitui o homem em

Segundo

trabalhos repetitivos e insalubres.

equipamento eletrnico microcontrolado que deve

Este

estudo

visa

demonstrar

quanto

os

microcontroladores so teis e podem estar presentes


mesmo

para

transformando

as
o

mais

ambiente

simples

aplicaes,

em

local

um

mais

Petruzella

(2005),

um

um

tem como funo executar controles de vrios tipos e


de diferentes nveis de complexidade.
O mesmo autor afirma que em sua estrutura bsica os
CLPs (FIG. 1) so constitudos de:

determinado processo e at mesmo ajudando na

1. Entradas

preservao, pode-se citar o simples controle de

possuir uma interface amigvel com o usurio e que

confortvel, podendo contribuir para qualidade de um


preservao do meio ambiente. Como exemplo de

CLP

2. Sadas

iluminao, ventilao e ar condicionado de um local

3. Unidade Central

onde existem vrios ambientes isolados.

Processing Unit CPU)

de

Processamento (Central

4. Memria para o programa e armazenamento de


dados
e-xacta, Belo Horizonte, v. 4, n.3, p. 159-179. (2011). Editora UniBH.
Disponvel em: www.unibh.br/revistas/exacta/

162
O mesmo autor ensina que as sadas so o meio

5. Fornecimento de alimentao

atravs do qual o CLP efetua o controle do processo

6. Dispositivo de programao

acionando cargas ou sinalizando algum evento. Os


mdulos de sada podem ser a rels, a transistores ou
tiristores. As sadas a rels podem ser utilizadas para
sinais CC ou CA, pois a comutao acontece atravs
de seus terminais NC (Normalmente fechado) ou NA
(Normalmente aberto), o de sada, entretanto, est
mais sujeita a desgastes e mais lenta que os outros.
As sadas a transistores so rpidas e no esto
sujeitas ao mesmo desgaste que as sadas a rels,
porm no pode comutar cargas que demandam
grande quantidade de corrente e sinais CA. J as

Figura 1 Estrutura Tpica do PLC

sadas a tiristores so semelhantes s sadas a

Fonte - PETRUZELLA, 2005.

transistores, porm comutam exclusivamente sinais

As entradas so os terminais conectados ao CLP que

AC e podem comutar cargas com correntes mais

criam o meio pelo qual os dispositivos que esto em

altas.

campo podem receber e enviar sinais necessrios

Conforme Plnio (2008), a CPU (Unidade Central de

para o controle do processo. (PLNIO, 2008)

Processamento) o principal componente do CLP,

O mesmo autor ressalta que os sinais recebidos em

pois recebe as informaes (FIG. 2), executa todos os

mdulo de entrada podem ser do tipo discreto

algoritmos

(Chaves, botoeiras, contatos de rels, teclados) ou do

programao, por exemplo, do tipo ladder e joga nas

tipo analgico (sensores de vazo, transdutores de

sadas os comandos necessrios ao processo que se

corrente, medidores de presso).

deseja controlar. Atravs das entradas, o hardware

Plnio (2008) ainda afirma que estes sinais so


recebidos dos equipamentos de campo e so, em
geral, de 120Vca ou em alguns casos de 24Vcc. As
portas de entrada do CLP recebem estes sinais vindos
do campo e a manipulam de forma que possam ser
utilizados pelo CLP. Esta manipulao necessria
porque os componentes internos de um CLP so
digitais e operam com baixo nvel de tenso (5Vcc
12Vcc)

e,

portanto,

devem

ser

protegidos

programados

em

linguagem

recebe o sensoriamento de campo, processa o


algoritmo armazenado em sua memria e aciona as
sadas,

respectivamente.

Esta

unidade

pr-definidos,

acumuladores

de

contadores/

temporizadores e ainda outras constantes e variveis


que a torna um excelente controlador para infinitas
aplicaes.

flutuaes de tenso. Para que os componentes


internos fiquem eletricamente isolados dos terminais
de entrada, os CLPs empregam um isolador tico,
que usa a luz para acoplar os sinais de um dispositivo
Figura 2 Sistema bsico de
estrutura/Controle Fonte - PLNIO, 2008.

e-xacta, Belo Horizonte, v. 4. n. 3, p. 159-179. (2011). Editora UniBH.


Disponvel em: www.unibh.br/revistas/exacta/

possui

internamente memria de dados, programas, valores

de

eltrico a outro.

de

163
O mesmo autor ainda revela que controle eletrnico

Um microprocessador um circuito extremamente

do CLP alimentado atravs de tenso continua, para

complexo que pode possuir internamente entre alguns

tanto, existem conversores para transformao dos

milhares (Z80, Zilog Corporation -1976) a milhes de

diferentes tipos de alimentao (Potencial) existentes

transistores. Estes transistores internos constituem

atualmente. O sensoriamento de campo tambm deve

diversos

ser alimentado. A tenso de alimentao em alguns

contadores, registradores e outros dependendo do

casos proveniente de fontes ininterruptas para que

modelo

quando em uma possvel falta de energia o operador

circuitos tal que permite ao microprocessador

do sistema tenha o verdadeiro status da condio e

executar

ainda para que informaes de nvel 2 (controle de

controle.(SOUZA,2007)

processo) no sejam perdidas. Em alguns casos


algumas cargas/sensores so alimentadas tambm
por fontes ininterruptas, exemplos deste tipo de
aplicao so fornos siderrgicos que precisam

circuitos

lgicos,

escolhido.

operaes

tais

disposio
lgicas

como,

timers,

interna

destes

aritmticas

de

O Microprocessador o elemento principal de


coordenao de todo o sistema. Ele recebe instrues
de manipulao dos dados, realiza as tarefas e gera
os resultados.(SOUZA,2007)

manter seu sistema de arrefecimento ou dispositivos


De acordo com Gimenez (2002), o microcontrolador,

de segurana humana onde falhas so inaceitveis.

pode ser considerado como sendo um computador de


Para a elaborao dos algoritmos, cada fabricante
disponibiliza um software de programao dedicado,
este

software

instalado

em

um

sistema

computacional normal. Atravs deste software


possvel criar, editar, documentar, armazenar e
localizar as falhas dos diagramas ladder, gerando
tambm relatrios impressos. As instrues dos
softwares so baseadas em smbolos grficos para as

um nico chip, ou seja, trata-se de um sistema


computacional completo composto por onde esto
includos uma CPU (Central Processor Unit), memria
de dados e programa, sistema de clock, portas de I/O
(Input/Output), alm de outros possveis perifricos.
Tais como, mdulos de temporizao e conversores
A/D

entre

outros,

integrados

em

um

mesmo

componente.

vrias funes. No necessrio o conhecimento das


linguagens mais avanadas de programao para se
usar o software, bastando um entendimento genrico

Segundo Pereira (2005), os microcontroladores so os


componentes

de

processamento

difundidos e utilizados na atualidade.

dos diagramas eltricos funcionais. (PLNIO, 2008)

digitais

mais

Estes podem

ser encontrados desde em pequenos aparelhos


domsticos at em grandes e complexos aparelhos,

2.2 MICROPROCESSADORES

como os satlites por exemplo.

Hoje diversos

fabricantes podem ser encontrados, estes produzem

MICROCONTROLADORES

diversos modelos que facilitam a criao de novas


Os microprocessadores ou CPU (Central Processing
surgiram

em

1971

fabricados

pela

aplicaes, esta diversidade por sua vez, exige uma

Intel

grande pesquisa com o intuito de escolher aquele

Corporation com a grande novidade de possuir em um

microcontrolador que melhor atenda aos requisitos de

s encapsulamento vrios componentes, que at

seu projeto.

Unit)

ento s poderiam ser encontrados separadamente,


desta forma, tornou-se mais fcil a implementao,
comunicao, tamanho, consumo de energia e preo
de novos projetos. (SOUZA,2007)

Existem

duas

microcontroladores,

principais
Havard

arquiteturas
e

Von-Newmann.

de
A

arquitetura Havard tem como principal caracterstica a

e-xacta, Belo Horizonte, v. 4, n.3, p. 159-179. (2011). Editora UniBH.


Disponvel em: www.unibh.br/revistas/exacta/

164
existncia de dois barramentos internos, um para

ROM: Uma vez gravada pelo fabricante, este tipo de

acesso a memria de dados e o outro para acesso

memria no permite que seu contedo seja alterado

memria de programa, isto resulta em um aumento na

pelo usurio. Os microcontroladores que possuem

capacidade de fluxo de dados. J na arquitetura Von-

este tipo de memria, em geral, apresentam baixo

Newmann existe apenas um barramento que

custo em relao aos que possuem os outros tipos de

compartilhado pela memria de dados e pela memria

memrias citadas e so recomendados quando o

de programa, o que resulta em uma limitao na

cdigo de programa j est consolidado, no havendo

banda de operao. (MIYADAIRA, 2009)

mais necessidade de modific-lo, e quando for

Em relao ao conjunto de instrues de um


microcontrolador (SET), ele pode ser classificado

desejvel a produo do circuito em grande escala.


(IDOETA, 2001)

como RISC (Reduced Instruction Set Computer) ou

EPROM: Pode ser apagado e reprogramado muitas

CISC (Complex Instruction Set Computer). (Miyadaira,

vezes, porm para apagar o cdigo residente

2009)

necessria a exposio da janela de quartzo do

Segundo Morimoto (2007), um microcontrolador CISC


(Complex

Instruction

Set

tem

Computer),

capacidade de executar centenas de instrues


complexas diferentes, sendo extremamente verstil.
Os microcontroladores RISC (Reduced Instruction Set
Computer), ao contrrio dos CISC, so capazes de

componente a luz ultravioleta por um determinado


tempo

que

definido

pelo

fabricante

do

microcontrolador. Este tipo de componente, devido ao


seu processo de fabricao, tem um custo superior
aos que possuem outros tipos de memria. (IDOETA,
2001)

executar apenas algumas poucas instrues (em torno

OTP:

de

de

diferentemente da ROM esta programao pode ser

microcontrolador). Justamente por isso, os chips

feita pelo usurio, possui menor custo que as

baseados nesta arquitetura so mais simples e muito

memrias do tipo EPROM e FLASH. (IDOETA, 2001)

35

75

dependendo

do

modelo

mais baratos. Outra vantagem dos processadores


RISC, que, por terem um menor nmero de circuitos
internos, podem trabalhar a frequncias mais altas,
sendo assim um processador RISC capaz de
executar tais instrues muito mais rapidamente

tolerada

apenas

uma

programao,

FLASH: o tipo de memria mais flexvel dentre os


outros tipos de memria de programa, pode ser
apagada

reprogramada

eletricamente,

at

1.000.000,00 de vezes, dependendo do fabricante, os


microcontroladores

que

possuem

este

tipo

de

De uma maneira geral, as memrias de programa

memria so extremamente teis em aplicaes, onde

existentes nos microcontroladores so do tipo FLASH

(Electrically-Erasable

constantemente, pois podem, em grande maioria, ser

Memory),

ROM

Programmable

(Read

Only

Read-Only

Memory),

EPROM

(Erasable Programmable Read Only Access) ou OTP


(One Time Programmable). Todas estas memrias
so do tipo no voltil, ou seja, o cdigo de programa
armazenado no perdido caso a alimentao do
circuito seja interrompido. (IDOETA, 2001)
As

principais

caractersticas

das

memrias

necessria

modificao

do

programa

reprogramados no prprio circuito. (IDOETA, 2001)


O

outro

tipo

de

memria

encontrada

nos

microcontroladores a memria de dados, definida


como memria RAM (Random Access Memory), esta
memria do tipo voltil e responsvel por
armazenar as variveis e constantes do sistema.

de

programa acima citadas so:

e-xacta, Belo Horizonte, v. 4. n. 3, p. 159-179. (2011). Editora UniBH.


Disponvel em: www.unibh.br/revistas/exacta/

Como os dados constantes nesta memria so


perdidos em caso de desligamento da alimentao do

165
circuito, os valores das variveis de sistema devem

o que economiza memria de programa. (SOUZA,

ser carregados sempre que o sistema for iniciado.

2000).

(IDOETA, 2001)
Segundo Gimenez (2002), para a comunicao com o
mundo externo, os microcontroladores possuem pinos
dedicados, denominados I/O (Input Output).

sentido do fluxo de dados nestes pinos definido


como entrada (I) ou sada (O). Os pinos de sada so
utilizados para o controle de perifricos do sistema e
os pinos de entrada sero responsveis por receber
os

sinais

vindos

dos

perifricos

para

que

microcontrolador possa tomar as decises atribudas a


aquela situao.
A

O PIC18F4550 um microcontrolador de 8 bits atual


com arquitetura Havard e conjunto de instrues tipo
RISC, ele possui uma memria interna de 32 Kbytes
para armazenamento do programa residente e 2048
bytes de memria RAM. Sua tenso de alimentao
pode ser da ordem de 4 a 5,5 Volts e sua frequncia
de operao de at 48MHz, a esta frequncia ele
capaz de executar at 12 milhes de instrues por
segundo. (MIYADAIRA, 2009).

velocidade

de

microcontrolador

2.2.2 MICROCONTROLADORES PIC 18F4550

processamento

est

diretamente

de

relacionada

um

frequncia de seu sinal de CLOCK. Este sinal pode


ser gerado internamente pelo microcontrolador atravs
de um circuito RC interno (porm sem grande
preciso) ou por um oscilador externo, a cristal de
quartzo, com alta preciso. (GIMENEZ, 2002).

mesmo

autor

afirma

que

este

modelo

de

Microcontrolador possui 40 pinos dos quais 35 podem


ser

configurados

como

portas

I/O

diversos

perifricos tais como memria EEPROM de 256 bytes,


um mdulo CCP e ECCP um mdulo SPI e um
mdulo I2C. Possui tambm 13 conversores A/D com
10 bits de resoluo cada e tempo de amostragem
programvel,

02

comparadores

analgicos,

uma

comunicao EUSART, um timer de 8 bits e trs

2.2.1 MICROCONTROLADORES PIC

timers de 16 bits cada, um mdulo de deteco de


Os microcontroladores PIC so uma famlia de
microcontroladores

fabricados

pela

Microchip

Technology, que apresentam uma estrutura interna do

tenso alta/baixa (HLVD) e um mdulo USB 2.0 com a


capacidade

de

operar

nos

modos

low-speed

(1,5Mbps) ou full-speed (12Mbps).

tipo Havard e o conjunto de instrues tipo RISC, seu


barramento de dados sempre de 8 bits e o
barramento de instrues pode ser de 12, 14 e 16 bits
dependendo do modelo do microcontrolador. Este tipo
de arquitetura permite que uma instruo seja
buscada na memria, enquanto outra instruo ainda
estiver sendo executada, isto torna o processamento
mais

rpido.

Outra

vantagem

que

como

barramento de instrues maior que o barramento


de dados, o OPCODE da instruo j inclui o dado e o

Segundo Miyadaira (2009), o PIC18F4550 conta com


o recurso PIPELINE para aumentar a velocidade de
processamento. Este recurso faz com que ao mesmo
tempo em que uma instruo executada, a prxima
instruo localizada e carregara no registro de
instrues (IR) em um ciclo de mquina. Devido a este
comportamento possvel afirmar que uma instruo
executada efetivamente em apenas um ciclo de
mquina.

local onde ela ir operar, isto significa que apenas

O ciclo de mquina do microcontrolador PIC18F4550

uma posio de memria utilizada a cada instruo

pode ser dividido em 04 fases (FIG. 3), de Q1 a Q4,


resultando em uma velocidade de ciclo de mquina

e-xacta, Belo Horizonte, v. 4, n.3, p. 159-179. (2011). Editora UniBH.


Disponvel em: www.unibh.br/revistas/exacta/

166
equivalente a do valor do oscilador. (MIYADAIRA,

A escolha de qual ser a funo do pino depender do

2009).

projeto a ser desenvolvido. (MIYADAIRA, 2009).

2.2.3 LINGUAGEM

DE PROGRAMAO

E O

MPLAB
Para que os microcontroladores executem as tarefas
desejadas necessrio que ele seja programado.
Figura 3 - Ciclo de mquina do PIC18F4550

Existem diversas linguagens de programao as mais

Fonte - Datasheet PIC18F4550

comuns em microcontroladores so o assembly, basic


e C.

possvel verificar que cada ciclo de mquina executa


dois eventos de forma paralela (FIG. 3), um ciclo de
localizao (Fetch) e um ciclo de execuo (Execute).
O Ciclo de localizao incrementa o program counter
(PC) durante o ciclo Q1, a instruo ento
decodificada e executada durante os ciclos Q2 a Q4.
A memria de dados lida em Q2 e escrita em Q4.
(MICROCHIP, 2009).

O C uma linguagem de programao genrica


desenvolvida em texto e utilizada para criao de
programas diversos e apesar de sua complexidade de
programao vem se tornando popular devido a sua
versatilidade. Nesta linguagem, para cada ao ou
comando

desejado

existe

um

cdigo

textual

especfico, armazenado em alguma biblioteca. Esta


programao textual e alm dos milhares de

Pinagem do Microcontrolador:

comandos disponveis ainda faz distino de letras

Pinagem do Microcontrolador PIC18F4550 (FIG. 4):

maisculas e minsculas no cdigo (Case sensitive), o


que torna ainda mais difcil esta programao.
Segundo Dornelles (1997), a linguagem C uma
linguagem de alto nvel, genrica. Foi desenvolvida
para programadores, tendo como meta caractersticas
de flexibilidade e portabilidade. O C uma linguagem
que nasceu juntamente com o advento da teoria de
linguagem estruturada e do computador pessoal.
Assim

tornou-se

rapidamente

uma

linguagem

popular entre os programadores. O C foi usado para


Figura 4 - Pinagem do PIC18F4550 (Datasheet
PIC18F4550)

desenvolver o sistema operacional UNIX, e ainda hoje


est sendo usada para desenvolver novas linguagens.
Para que o programa fonte seja interpretado pelo

A descrio de cada pino do microcontrolador pode


ser encontrada no documento de referncia Datasheet
do fabricante (FIG. 4). possvel perceber que devido
a grande versatilidade do microcontrolador existem
vrios pinos que desempenham mais de uma funo.

e-xacta, Belo Horizonte, v. 4. n. 3, p. 159-179. (2011). Editora UniBH.


Disponvel em: www.unibh.br/revistas/exacta/

microcontrolador necessrio que ele seja convertido


para cdigo de mquina e posteriormente gravado em
sua memria interna, o MPLAB uma plataforma de
desenvolvimento

fornecida

gratuitamente

pela

Microchip (www.microchip.com) que tem como funo


gerar os cdigos que podero ser gravados no

167
microcontrolador PIC. Esta plataforma integra em

M1, MOT1, e CIL1. Estes elementos podem ser

apenas um ambiente todo o processo de gerncia do

BOBINAS (ATUADORES)

projeto,

internos).

desde

compilao

edio

simulao

do
at

programa
a

fonte,

gravao

do

Microcontrolador PIC. (MARTINS, 2011)

ou MEMRIAS

(rels

Os elementos S1, S2, BE, VC, e S3 s aparecem ao


lado esquerdo do diagrama, no formato de colchetes
[ ], o que pressupe que sejam sensores (entradas).

2.2.4 LINGUAGEM DE PROGRAMAO LADDER


O ladder uma linguagem de programao grfica,
em forma de diagrama eltrico, de fcil criao e

Na primeira linha, observa-se que a regra do


programa define que a sada M1 ir ativar somente se
os sensores S1 e S2 estiverem AMBOS ligados.

interpretao por estudantes e profissionais que

Na segunda linha deste programa, observa-se que a

atuam com eletricidade. Esta linguagem representa

regra determina que a sada MOT ir ligar se BE

ligaes fsicas entre componentes (sensores e

estiver DESLIGADO (a barra significa inverso) e se

atuadores) que so conectados as entradas e sadas

M1 ou MOT estiver acionado (ao menos um destes)

do dispositivo e que assumem posies de memria

Na terceira linha, observa-se que o atuador CIL1 ir

de dados dentro do dispositivo. Estas memrias

ativar

assumem o status tanto da real condio dos

(novamente observa-se a barra), e se o sensor S3

sensores externos como do comando que ser

estiver acionado. (CORTELETTI, 2007)

caso

sensor

FC

estiver

DESLIGADO

transmitido aos atuadores, sendo ento todas as


memrias de dados variveis do processo que se
deseja controlar. Todas estas variveis (entradas e
sadas) so tratadas dentro do programa, assim como
variveis de controle internas ao controlador, como,
por exemplo, contadores ou memrias auxiliares
necessrias lgica, que se deseja criar. Um exemplo
de linguagem de programao pode ser visto na
FIG. 5.

2.3 FIRMWARE DE UM DISPOSITIVO


Firmware o conjunto de instrues operacionais
normalmente desenvolvidos com operaes muito
bsicas de baixo nvel sem as quais o dispositivo no
seria capaz de executar suas tarefas. Basicamente os
Firmwares so cdigos lgicos que interpretam os
sinais

fsicos

dos

perifricos

os

tornam

transparentes no ponto de vista de programao e dos


demais pontos do programa, que est em execuo
simplificando ento a utilizao destes perifricos. O
Firmware desenvolvido para o PIC18F4550, aqui j
entendido como PLC o conjunto de instrues
lgicas pr-definidas, que tem por objetivo simplificar a
programao em linguagem C. Assim como um
firmware torna simples a programao de

um

perifrico em um dispositivo mais complexo, para cada


Figura 5 Diagrama em Ladder

funo lgica disponvel no Firmware desenvolvido

Fonte: CORTELETTI, 2007.

existe um cdigo em C correspondente, que receber

Segundo CORTELETTI (2007), para o diagrama da

quando chamado as variveis que dever tratar.

FIG. 5, tem-se o controle de 3 elementos, sendo estes


e-xacta, Belo Horizonte, v. 4, n.3, p. 159-179. (2011). Editora UniBH.
Disponvel em: www.unibh.br/revistas/exacta/

168
capacitor de 470nF, cinco capacitores de 1uF, um CI

2.4 SUPERVISO
Por padro o Firmware criado envia atravs da porta
serial os estados das entradas e das sadas a cada

MAX232, uma porta USB, uma porta RS232 CONND9F, conector 71918-114LF, conector TN140 2 pinos.

ciclo de leitura de entrada e atualizao de sadas em

O CI PIC18F4550 o elemento principal do mdulo,

formato hexadecimal. Este valor pode ser tratado e

responsvel

analisado isoladamente.

conforme programa desejado e enviar o resultado s

por

receber

as

entradas,

trat-las

sadas.
Os dois capacitores de 15pF juntamente com o

3 METODOLOGIA

cristal de clock 20MHz so responsveis por produzir


pesquisas

a frequncia de chaveamento para que o PIC possa

bibliogrficas a fim de determinar qual tipo de

executar suas tarefas. Este conjunto pode ser

hardware PLC poderia ser criado de forma que seu

comparado ao processador de um computador. Este

custo final no fosse muito alto. Foi determinada ento

conjunto tpico do cristal utilizado e o conjunto

recomendado pelo datasheet do PIC184550 (FIG. 6).

Aps

este

estudo

construo

de

foi

iniciada

um

PLC

as

utilizando

um

microcontrolador da famlia Microchip. Para determinar


o modelo a ser utilizado, procurou-se por um
microcontrolador que fosse moderno, bem completo e
que fosse barato.
Escolheu-se ento o PIC18F4550 que possui um
custo benefcio muito bom, pois j possui integrado a
ele interfaces RS485, USB e RS232, 4 timers,
entradas e sadas analgicas . Tudo isto faz com que
o custo final do projeto possa ser reduzido devido ao
fato de ser necessrio um menor nmero de
componentes externos.

Figura 6 - Circuito do cristal de chaveamento

Aps o processo de escolha do microcontrolador,


iniciou-se o processo de elaborao do hardware do

O boto LOADER juntamente com o resistor de 10K

modulo de CPU e I/O.

omhs so responsveis por ativar o processo de


carregamento do programa dentro do PIC18f4550.
O capacitor de 470nF utilizado por recomendao

3.1 DESENVOLVIMENTO DO HARDWARE

do datasheet do PIC18f4550.
O Hardware foi desenvolvido em trs blocos distintos,
sendo os blocos Mdulo principal, mdulo de entrada

O boto reset responsvel por reinicializar o


PIC18f4550 (FIG. 7). O resistor de 10K omhs

digital e mdulo de sada digital.

juntamente com o capacitor 1uF so responsveis


Para o

modulo

principal

(Apndice 1)

foram

considerados um CI PIC18F4550, dois capacitores


15pF, cristal de clock 20MHz, dois resistores de 10K
omhs, dois resistores de 10 omhs, 2 botes, um

e-xacta, Belo Horizonte, v. 4. n. 3, p. 159-179. (2011). Editora UniBH.


Disponvel em: www.unibh.br/revistas/exacta/

por auxiliar o comando reset atravs do boto e


tambm garantir o reset quando o modulo principal for
desliga/ligado.

169
Aprenda

Programe

em

LINGUAGEM

C,

MIYADAIRA), para proteo tanto do PIC18F4550


como da interface USB.
Para o modulo de entrada digital (Apndice 2) foram
considerados um CI 74LS241, conector 71917-114LF
14 pinos e individualmente para cada entrada
resistores de 10K ohms, dois resistores de 2k2 ohms,
um resistor de 22komh, um LED emissor de luz e um
transistor fotoacoplado 4N25.
O conector 71917-114LF, 14 pinos tem a funo de
conectar eletricamente o mdulo principal ao modulo
de entrada.
O resistor de 10K tem a funo Pull Dow que garante
nvel lgico zero 0 na entrada quando a mesma no
estiver acionada.
Figura 7 Circuito de Power reset.

O resistor de 22K tem a funo de dessensibilizar a

O CI MAX232 responsvel por fazer a converso do

entrada digital a tornando menos susceptvel a rudos

sinal TTL para a linguagem serial e os capacitores de

provenientes do circuito externo.

1uF

conectados

ele

so

recomendao

do

respectivo datasheet (FIG. 8).

O resistor de 2K2 em srie com o diodo tem a


funo de sinalizar que a entrada esta em nvel alto e
o ltimo resistor de 2K2 tem a funo de limitar a
corrente que acionar o fotoacoplador.
O Fotoacoplador (CI 4N25) tem a funo de isolar
eletricamente o circuito externo do circuito interno da
placa de entrada e modulo principal.
Para o mdulo de sada digital (Apndice 3) foram
considerados um Flip Flop (CI 74F374), conector
71917-114LF, 14 pinos e individualmente para cada
sada resistores de 390 ohms, 360 ohms, 470 ohms,

Figura 8 - Circuito de operao tpica do CI MAX 232

39 ohms, capacitores de 50nF, 10nF, conector TN140


2

O conector CONN-D9F interface de rede RS232


com o circuito do mdulo principal.

pinos,

tiristor

fotoacoplado

MOC3021,

tiristor

Q7004L4.
O conector 71917-114LF, 14 pinos tem a funo de

A porta USB a interface de rede USB com o circuito

conectar eletricamente o mdulo principal ao mdulo

do mdulo principal e os resistores de 10 omhs

de sada.

conectados a esta porta limitam a corrente em caso


de curto circuito nesta porta. Estes resistores so

O CI 74F374 possui internamente 8 flipflops tipo D


(FIG. 9), com as respectivas entradas digitais (D0 a

recomendao do livro (Microcontroladores Pic18,


e-xacta, Belo Horizonte, v. 4, n.3, p. 159-179. (2011). Editora UniBH.
Disponvel em: www.unibh.br/revistas/exacta/

170
D7), uma entrada habilita leitura (CP) comum aos 8

O Conector TN140 responsvel por fazer a

flipflops que na transio de estado baixo para alto

interface eltrica entra a placa de sada e a carga a

transferem os valores presentes em D para a memria

ser acionada.

interna do flipflop e um habilita sada (OE) tambm


comum aos 8 flipflops, que quando em nvel lgico
alto faz com que as sadas

fiquem em

alta

impedncia, porm para a aplicao em questo,

Todos os componentes mencionados bem como o


circuito de sada aps o acoplador (FIG. 10) fazem
parte de recomendao do fabricante e podem ser
visto no datasheet do fotoacoplador MOC3021.

considera-se inativa esta funo por estar diretamente


aterrado. Durante o ciclo de execuo do programa, o
mdulo principal enviar aos flipflops os comandos
que sero recebidos em suas entradas D, seguido
de um pulso de clock (CP), fazendo com que os
valores presentes em D sejam transferidos a sada
O. O Flipflop manter a sada fixa ate o prximo ciclo
onde o processo se dar novamente.

Figura 10 - recomendao datasheet do CI MOC 321

3.1.1 DESENVOLVIMENTO DO FIRMWARE


O Firmware main.c o programa padro que estar
presente na memria do PIC. Este firmware define
quais portas sero utilizadas como entradas e sadas,
Figura 9 - circuito equivalente do CI 74F374

atribuindo estas aos PORTs fsicos do PIC18F4550,


bem como aos demais perifricos necessrios ao

O resistor de 390 omhs tem a funo de limitar a

funcionamento para aplicao em questo. Este

corrente tanto na sada do CI 74F374 como no anodo

firmware tambm responsvel por chamar outras

do fotoacoplador MOC3021. O resistor de 360 omhs

bibliotecas necessrias ao funcionamento do PIC

tambm tem a funo de limitar a corrente tanto na

como, por exemplo, a biblioteca padro do PIC e

sada do fotoacoplador MOC3021 como no circuito de

tambm outras bibliotecas. que possuem diversas

gate do tiristor BT136.

funes utilizadas no programa. As funes lgicas

O tiristor BT136 tem a funo de chavear a carga a


ser acionada.
O Resistor de 470 omhs juntamente com o capacitor

existentes dentro deste Firmware so as portas and,


Or, inversor, exor, exnor, temporizador On-Delay e
Off-Delay. O programa escrito em linguagem C neste
Firmware encontra-se no Apndice 4.

de 50nF, assim como o resistor de 39 omhs


juntamente com o capacitor de 10nF, tm a funo
de snubber no circuito. Esta funo responsvel por
eliminar rudos no circuito fazendo com que estes no

3.1.2 DESENVOLVIMENTO

DO MECANISMO DE

PROGRAMAO

proporcionem acionamentos indevidos gerados por


estes rudos.

O objetivo deste mecanismo tornar a programao


do CLP mais simples, tendo em vista que os mtodos
utilizados para programao do PIC no so triviais. O

e-xacta, Belo Horizonte, v. 4. n. 3, p. 159-179. (2011). Editora UniBH.


Disponvel em: www.unibh.br/revistas/exacta/

171
mecanismo de programao baseado em circuitos
lgicos

de

eletrnica

digital,

linguagem

de

programao Ladder e linguagem de programao C,


sendo esta ltima utilizada com maior aplicao na
criao do firmware do controlador.
Normalmente os programas para microcontroladores
so desenvolvidos em linguagem C, e tendo em vista
as dificuldades j mencionadas, ser utilizado um

Figura 11 porto com seus respectivos sensores e


motor.

firmware padro para o controlador, objeto do estudo,


com funes j definidas. Estas funes quando
desejadas so chamadas dentro do programa que

O desenho eltrico para acionamento de todo o

ser escrito em linguagem C. Este cdigo pode ser

sistema (FIG. 12).

escrito

diretamente

em

linguagem

sem

necessidade de memrias lgicas e pode tambm ser


obtido atravs do diagrama Ladder posteriormente
sendo reescrito em linguagem C com os recursos do
firmware desenvolvido.
Para o desenvolvimento do programa em Ladder,
deve-ser considerar as proibies ou em condies
de operao e possibilidades de comandos ou ordens

Figura 12 Desenho eltrico bsico

externas, que devem ser obedecidas em caso da no


proibio dos sensores ou lgica. As variveis so

Na linguagem Ladder para o controle deste

tratadas duas a duas, sendo fundamentais as

porto (FIG. 13), possvel se determinar todas as

memrias aqui denominadas memrias lgicas (de

memrias necessrias caso o programa em C seja

uso interno do controlador) para se chegar ao

extrado do ladder.

programa que tratar as memrias aqui denominadas


memrias fsicas (sensores e atuadores externos).
Aps o desenvolvimento do programa em Ladder
possvel determinar todas as memrias que sero
utilizadas no programa (lgicas e fsicas), para assim
declar-las para o controlador (programa em C aps a
aplicao do mecanismo).
Figura 13 - Lgica em ladder e digital equivalente.
Para ilustrar este mecanismo foi considerada a
programao do controle de um porto (FIG. 11), que
mostra o porto com seus respectivos atuadores.

Baseando-se ento no diagrama ladder para o


desenvolvimento do programa tm-se as seguintes
memrias utilizadas, sendo as memrias fsicas
entendidas como entradas digitais identificadas pela
letra E, memrias lgicas por M, temporizadores

e-xacta, Belo Horizonte, v. 4, n.3, p. 159-179. (2011). Editora UniBH.


Disponvel em: www.unibh.br/revistas/exacta/

172
por T e atuadores entendidas como sadas digitais
pela letra Q. Basicamente a converso deste circuito
para linguagem C feita pela anlise de circuito
srie/paralelo, onde os elementos em paralelo podem
ser analisados como portas lgicas or, exor, exnor e
os elementos em srie analisados como portas And,
Nand e Temporizador.
E1 - Boto liga abre.
E2 - Boto liga fecha.
E3 - Boto liga desliga.
E4 - Sensor porto aberto.
E5 - Sensor porto fechado.
E6 - Retroaviso real abrindo.
E7 - Retroaviso real fechando.
Memrias lgicas:
M1
(E6+E1)
M2
(M1 & M13)
M3
(M2 & M14)
M4
(M3 & M15)
M5
(E7+M12)
M6
(M5&E2)
M7
(M6&M13)
M8
(M7&M16)
M9
(M8&M17)
M10
(M15&M17)
M11
(M10&M16)
M12
(M11&M14)
M13
(/E3)
M14
(/Q2)
M15
(/E4)
M16
(/Q1)
M17
(/E6)
Atuadores fsicos:
Q1 - Comando abre para motor.
Q2 - Comando fecha para motor.

3.1.3 VIABILIDADE
Foi realizada uma pesquisa de mercado para se obter
o custo de um PLC. Na pesquisa foi considerado o
PLC LOGO, de fabricao Siemens, sendo este PLC o
modelo mais simples que este fabricante possui e
para efeito de comparao, foram cotados em
diversas lojas de eletrnica de Belo Horizonte os
componentes considerados no projeto e chegando aos
valores especificados a seguir.
O PLC LOGO foi cotado na empresa DW Material
eltrico e seu custo gira em torno de R$ 480,00.
Os componentes para confeco das placas em
verso prottipo ficam aproximadamente em torno de
R$ 180,00 e as demais placas aproximadamente
R$ 80,00.

4 CONCLUSO
Depois de encerradas as simulaes com xito foi
constatado a funcionalidade do projeto em aplicaes
simples, como a do exemplo citado e ainda que exista
a possibilidade de expanso dos mdulos digitais de
entrada e sada, necessria apenas a reviso das
rotinas de leitura e escrita dentro Firmware. Esta
constatao aumenta ainda mais o custo benefcio do
controlador e refora a ideia inicial da pesquisa, onde
possvel se desenvolver um controlador de baixo

Baseando-se ento no mecanismo de programao,

custo e ainda torn-lo simples do ponto de vista de

obtm-se o cdigo usurio.c (Apndice 5) que

aplicao.

dever ser compilado e gravado na memria do


PIC18f4550, neste momento j entendido como PLC.
O cdigo gerado reconhecido pelo firmware main.c
com o nome de usurio.c.

____________________________________________________________________________
REFERNCIAS
CORTELETTI, D. LINGUAGEM LADDER para
microcontroladores microchip PIC. Disponvel em:
<http://www.mecatronica.org.br/disciplinas/programaca

e-xacta, Belo Horizonte, v. 4. n. 3, p. 159-179. (2011). Editora UniBH.


Disponvel em: www.unibh.br/revistas/exacta/

o/019/LDMICRO_TUTORIAL.pdf> Acesso em: 03 mar.


2011
DATASHEET 6-Pin DIP Optoisolators Transistor
Output, 1995. 4N25

173

DATASHEET
6-PIN
DIP
RANDOM-PHASE
OPTOISOLATORS
TRIAC
DRIVER
OUTPUT
(250/400 VOLT PEAK, 2002) MOC3021

MIYADAIRA, A. N. Microcontroladores Pic18,


Aprenda e Programe em LINGUAGEM C. 1. ed. So
Paulo: rica, 2009.

DATASHEET
DM54LS240
/
DM74LS240,
DM54LS241/DM74LS241
Octal
TRI-STATE
Buffers/Line Drivers/Line Receivers, abril 1992.

MORIMOTO, E. C. Processadores RISC X


Processadores
CISC.
Disponivel
em:<http://www.hardware.com.br/artigos/risc-cisc/>
Acesso em: 10 maio. 2011.

DATASHEET MAX232, MAX232I DUAL EIA-232


DRIVERS/RECEIVERS, outubro de 2002.

PEREIRA, F Microcontroladores HCS08, Teoria e


Prtica. 1.ed. So Paulo: rica, 2005.

DATASHEET
Microcontrolador
Microchip Technology, 2009.

PETRUZELLA,
F.
D.
Programmable
Logic
Controllers. 3. ed. Boston: McGraw Hill, 2005.

PIC18F4550,

DATASHEET Octal D-Type Flip-Flop with


STATE Outputs 54F/74F374, maio de 1995.

TRI-

GIMENEZ, S.P Microcontroladores 8051. 1. ed. So


Paulo: Pearson Education do Brasil, 2002
IDOETA, Ivan V.; CAPUANO, Francisco G. Elementos
de eletrnica digital. 40.ed. So Paulo: rica, 2001
International Electrotechnical Commission. IEC-611311: Programmable controllers General information ,
2003.

PLNIO, M. Introduo aos Controladores Lgicos


Programveis.
Disponvel
em:
<http://www.muriloplinio.eng.br/attachments/File/UNIF
ACS/AC/CLP_EXTRA.pdf > Acesso em: 03 mar. 2011
SOUZA, D. J. Desbravando o PIC16F84. 4. ed. So
Paulo: rica, 2000
SOUZA, Vitor A. A histria e as diferenas entre um
microcontrolador e um microprocessador,2007.
Disponivel
em:
<http://www.cernetec.com.br/artigos.htm>. Acesso em: 05 mar. 2011.

MARTINS, Henrique. R ; TORRES, Fernando. E


Apostila Curso de Sistemas Microcontrolados,
baseado no PIC18F4550. [S.L:s.n], 2011.
________________________________________________________________________________________

APNDICES

Apndice 1 - Modulo Principal.

Apndice 2 - Mdulo de entrada Digital.

Apndice 3 - Mdulo de Sada Digital.

Apndice 4 - Firmware.

Apndice 5 - Lgica do usurio.

e-xacta, Belo Horizonte, v. 4, n.3, p. 159-179. (2011). Editora UniBH.


Disponvel em: www.unibh.br/revistas/exacta/

174

e-xacta, Belo Horizonte, v. 4. n. 3, p. 159-179. (2011). Editora UniBH.


Disponvel em: www.unibh.br/revistas/exacta/

175

e-xacta, Belo Horizonte, v. 4, n.3, p. 159-179. (2011). Editora UniBH.


Disponvel em: www.unibh.br/revistas/exacta/

176

e-xacta, Belo Horizonte, v. 4. n. 3, p. 159-179. (2011). Editora UniBH.


Disponvel em: www.unibh.br/revistas/exacta/

177
Apndice 4 (1 de 2)- Firmware.TXT
//Projeto para publicao de Artigo tcnico
//Titulo: CONTROLADOR LGICO PROGRAMVEL UTILIZANDO PIC18F4550
//FIRMWARE
#include <18f4550.h> // Inclui cabeario padro para o pic.
#use delay(clock=20000000) // Define diretriz para utilizao de rotinas de tempo.
#use rs232(baud=9600, xmit=PIN_C6,rcv=PIN_C7) // Habilita funes Serial
short E1,E2,E3,E4,E5,E6,E7,E8,Q1,Q2,Q3,Q4; //Define I/Os fsicos
short M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15; //Define memorias
virtuais
short M16,M17,M18,M19,M20,M21,M22,M23,M24,M25,M26,M27,M28;//Define memorias
virtuais
int Sts_Entradas,Sts_Saidas; //Define variveis para comunicao Serial
int tmr_ocupado, Tempo, seg; //Define variveis para controle do temporizador.
int a[3],r1,r2,r3,r4; //Define variveis para comunicao Serial
short porta_and(short O1, short O2)//Logica Porta AND
{
return O1&O2; //Faz operao logica entre argumentos recebidos,
//retorna para variavel que a chamou.
}
short inversor(short M0)//Logica Porta NOT
{
return ~M0;//Faz operao logica entre argumentos recebidos,
//retorna para variavel que a chamou.
}
short porta_or(short O1, short O2)//Logica Porta OR
{
return O1||O2;//Faz operao logica entre argumentos recebidos,
//retorna para variavel que a chamou.
}s
hort porta_exor(short O1, short O2)//Logica Porta EX-OR
{
return O1^O2;//Faz operao logica entre argumentos recebidos,
//retorna para variavel que a chamou.
}
short porta_exnor(short O1, short O2)//Logica Porta EX-NOR
{
return O1|O2;//Faz operao logica entre argumentos recebidos,
//retorna para variavel que a chamou.
}
#include <logica_usuario.h>
#INT_TIMER0 //Rotina de interrupo do TMR0.
void tempo(int conta) //Funo tempo com variavel local conta
{
if(conta==610) // Testa varivel conta, caso "conta=610" faa, se no, pule.
{
if(seg==0) // Testa variavel seg, caso "seg=0" faa, se no, pule.
{
Q1=0; // Executa logica
tmr_ocupado=1; //Libera temporizador
}
conta=0; //Zera varivel conta.
seg--; //Decrementa variavel segundo.
}
conta++; //Incrementa varivel conta.
} //fim da rotina de interrupo do TMR1.
void main()
{
enable_interrupts(GLOBAL); //Habilita interrupes globais

e-xacta, Belo Horizonte, v. 4, n.3, p. 159-179. (2011). Editora UniBH.


Disponvel em: www.unibh.br/revistas/exacta/

178
enable_interrupts(INT_TIMER0); //Habilita interrupo do TMR0
output_bit(PIN_E0,0); //Inicializa pinos de controle
output_bit(PIN_E1,0); //dos modulos de entradas e
output_bit(PIN_E2,1); //sadas.
while(1) //Ciclo de Scan Infinito
{
//Leitura das Entradas
output_bit(PIN_E1,1); //Habilita entradas 1Y do ls241
output_bit(PIN_E2,0); //Habilita entradas 2Y do ls241
E1=input(!PIN_D0); //L RD0 e armazena em E1
E2=input(!PIN_D1); //L RD1 e armazena em E2
E3=input(!PIN_D2); //L RD2 e armazena em E3
E4=input(!PIN_D3); //L RD3 e armazena em E4
E5=input(!PIN_D4); //L RD4 e armazena em E5
E6=input(!PIN_D5); //L RD5 e armazena em E6
E7=input(!PIN_D6); //L RD6 e armazena em E7
E8=input(!PIN_D7); //L RD7 e armazena em E8
Sts_Entradas=!input_d(); //Armazena status das entradas para enviar a serial
output_bit(PIN_E1,0); //Desabilita entradas 1Y do ls241
output_bit(PIN_E2,1); //Desabilita entradas 2Y do ls241
printf("%c",Sts_Entradas); //Envia status das entradas para a serial.
//Final da leitura das entradas
//Incio da lgica do usurio
logica_usuario();
//Fim da lgica do usurio
//Inicializa atualizao das sadas.
output_bit(PIN_D0,Q1); //Carrega em RD0 o valor de Q1
output_bit(PIN_D1,Q2); //Carrega em RD1 o valor de Q2
output_bit(PIN_D2,Q3); //Carrega em RD2 o valor de Q3
output_bit(PIN_D3,Q4); //Carrega em RD3 o valor de Q4
output_bit(PIN_D4,0); //Limpa bit no utilizado.
output_bit(PIN_D5,0); //Limpa bit no utilizado.
output_bit(PIN_D6,0); //Limpa bit no utilizado.
output_bit(PIN_D7,0); //Limpa bit no utilizado.
output_bit(PIN_E0,1); //Executa um pulso de
delay_us(0.06); //60ns no pino de clock
output_bit(PIN_E0,0); //do ls374 para carregar sadas.
Apndice 4 (2 de 2)- - Firmware.TXT
//Final da atualizao das sadas.
//Prepara atualizao das sadas na porta serial.
a[0]=Q1; //Preenche a posio 0 do vetor com o valor de Q1
a[1]=Q2; //Preenche a posio 1 do vetor com o valor de Q2
a[2]=Q3; //Preenche a posio 2 do vetor com o valor de Q3
a[3]=Q4; //Preenche a posio 3 do vetor com o valor de Q4
R1=a[0]&0x01; //R1=Resultado da operao logica and com a posio 0 do vetor.
R2=a[1]&0x01; //R2=Resultado da operao logica and com a posio 1 do vetor.
if(R2==1) //Se R2 for 1
{R2=2;} //R2 vale 2 (0010b)
else //Seno
{R2=0;} //R2 vale 0 (0000b)
R3=a[2]&0x01; //R3=Resultado da operao logica and com a posio 2 do vetor.
if(R3==1) //Se R3 for 1
{R3=4;} //R3 vale 2 (0100b)
else //Seno
{R3=0;} //R3 vale 0 (0000b)
R4=a[2]&0x01; //R4=Resultado da operao logica and com a posio 3 do vetor.
if(R4==1) //Se R4 for 1
{R4=8;} //R4 vale 2 (1000b)

e-xacta, Belo Horizonte, v. 4. n. 3, p. 159-179. (2011). Editora UniBH.


Disponvel em: www.unibh.br/revistas/exacta/

179
else //Seno
{R4=0;} //R4 vale 0 (0000b)
Sts_Saidas=R4+R3+R2+R1;
printf("%c",Sts_Saidas); //Envia status das sadas para a serial.
}
}
Apndice 5 - Lgica do usurio.txt
//UNI-BH - Centro Universitrio de Belo Horizonte
//Projeto para publicao de Artigo tcnico
//Titulo: CONTROLADOR LGICO PROGRAMVEL UTILIZANDO PIC18F4550
//LOGICA DO USURIO
void logica_usuario()
{
//DESCRIO DE SINAIS
//E1=boto abre
//E2=boto fecha
//E3=boto desliga
//E4=sensor porto aberto
//E5=sensor porto fechado
//Q1=saida abre porto
//Q2=saida fecha porto
//INICIA LOGICA DO USURIO
M13=inversor(E3);//logica de segurana do boto desliga
M15=inversor(E4);//logica de segurana do sensor porto aberto
M17=inversor(E5);//logica de segurana do sensor porto fechado
M16=inversor(Q1);//intertravamento porto abrindo
M14=inversor(Q2);//intertravamento porto fechando
//logica de abertura
M1=porta_or(E1,E6); //boto abrir porto ou selo abrindo "real"
M2=porta_and(M1,M13);//logica de segurana boto desliga
M3=porta_and(M2,M14);//logica de segurana porto fechando
M4=porta_and(M3,M15);//logica de segurana porto totalmente aberto
Q1=M4;//comando abre porto
//logica de fechamento
M5=porta_or(M12,E7); //temporizador ou selo fechando "real"
M6=porta_or(M5,E2); //boto fechar porto
M7=porta_and(M6,M13);//logica de segurana boto desliga
M8=porta_and(M7,M16);//logica de segurana porto abrindo
M9=porta_and(M8,M17);//logica de segurana porto totalmente fechado
M10=porta_and(M15,M17);//logica de fechamento automtico-posio intermediaria
aberto fechado
M11=porta_and(M10,M16);//logica de fechamento automtico-comando abre porto
desligado
M12=porta_and(M11,M14);//logica de fechamento automtico-comando fecha porto
desligado
Q2=M9;
//FINAL DA LGICA DO USURIO
}

e-xacta, Belo Horizonte, v. 4, n.3, p. 159-179. (2011). Editora UniBH.


Disponvel em: www.unibh.br/revistas/exacta/

Você também pode gostar