You are on page 1of 80

FACULDADE SETE DE SETEMBRO FASETE

Departamento de Sistemas de Informao Curso: Bacharelado em Sistemas de Informao

Erick Barros Nascimento

APLICAO DA PROGRAMAO DE MICROCONTROLADORES 8051 UTILIZANDO LINGUAGEM C

Paulo Afonso BA Novembro/2009

Erick Barros Nascimento

APLICAO DA PROGRAMAO DE MICROCONTROLADORES 8051 UTILIZANDO LINGUAGEM C

Projeto apresentado ao curso de Bacharelado em Sistemas de Informao para

cumprimento da disciplina Trabalho de Concluso de Curso - TCC, sob orientao do professor Msc. Igor Medeiros Vanderlei e co-orientao do professor Esp. Ricardo Azevedo Porto.

Paulo Afonso BA Novembro/2009

ii

Erick Barros Nascimento

APLICAO DA PROGRAMAO DE MICROCONTROLADORES 8051 UTILIZANDO LINGUAGEM C

Projeto apresentado ao curso de Bacharelado em Sistemas de Informao para

cumprimento da disciplina Trabalho de Concluso de Curso - TCC, sob orientao do professor do professor Msc. Igor

Medeiros Vanderlei e co-orientao do professor Esp. Ricardo Azevedo Porto. Aprovada por:

__________________________________________ Prof. Msc. Igor Medeiros Vanderlei (Orientador)

__________________________________________ Membro convidado 1

__________________________________________ Membro convidado 2

Paulo Afonso BA Novembro/2009

iii

NASCIMENTO, E. B. Aplicao da Programao de Microcontroladores 8051 utilizando Linguagem C. 2009, 80p. Monografia (Curso Bacharelado em Sistemas de Informao). Faculdade Sete de Setembro FASETE, Paulo Afonso BA.

Com o continuado avanado da tecnologia atualmente os Microcontroladores fazem parte das nossas vidas. As aplicaes desses dispositivos so as mais variadas, sendo encontrados, por exemplo, em mquinas de lavar, televisores, DVDs, rdios, controles remotos, microondas, entretenimento, segurana, controle de acesso, etc. Esses dispositivos utilizam software que executam tarefas pr-programadas, so encontrados na maioria dos equipamentos, e na maioria das vezes, os usurios no percebem sua presena. Com a utilizao da eletrnica digital nas grandes empresas, o emprego dos Microcontroladores vem sendo muito requisitado para obter um controle preciso dos processos, gerando ganho de produtividade para as empresas. Para desenvolvimento de software para Microcontroladores so necessrios software e hardware especficos para cada famlia de Microcontrolador. Inicialmente, os Microcontroladores foram desenvolvidos para trabalharem com linguagens de programao de baixo nvel, mas ao longo dos anos, esses dispositivos passaram a trabalhar com linguagens de alto nvel, tornando o desenvolvimento de sistemas embarcados mais flexveis e mais portveis em relao ao hardware. A proposta da pesquisa est em apresentar um prottipo de um sistema embarcado funcionando na arquitetura de um Microcontrolador. Para realizar essa proposta foi utilizada pesquisa bibliogrfica tendo como referncias livros, artigos e sites alm do uso de um KIT de programao para Microcontroladores para mostrar o uso de linguagens de alto nvel nessa arquitetura.

Palavras chave: Microcontroladores, software, hardware.

iv

NASCIMENTO, E. B. Application of the Programming of Microcontrollers 8051 using Language C. 2009, 80p. Monograph (Course of Bachelor of Information Systems). Faculdade Sete de Setembro FASETE, Paulo Afonso BA.

With the continued advancement of the technology currently Microcontrollers are part of our lives. The applications of these devices are highly diverse, being found, for example, in washing machines, televisions, DVDs, radios, remote controls, microwave, entertainment, security, access control, etc. These devices use software that perform pre-programmed tasks, are found in many devices, and in most cases, users do not notice their presence. With the use of digital electronics in large companies, the use of microcontrollers has been a staple for precise control of processes, generating productivity gains for companies. To develop software for microcontrollers are necessary software and hardware specific to each family of microcontroller. Initially, the microcontrollers are designed to work with programming languages, low level, but over the years, these devices have to work with high-level languages, making the development of embedded systems more flexible and more portable compared to hardware. The research proposal is to present a prototype of an embedded system running on the architecture of a microcontroller. To accomplish this proposal was used as bibliographic references and books, articles and websites in addition to using a kit for programming microcontrollers to show the use of high-level languages such architecture.

Keywords: Microcontrollers, software, hardware.

LISTA DE FIGURAS
Figura 1: Lgica de funcionamento de um Sistema Embarcado ............................................ 18 Figura 2: Sensor de proximidade, ngulo e atuador para freios. ............................................ 20 Figura 3: Arquitetura das Linguagens de Programao......................................................... 30 Figura 4: Diferenas entre Microprocessador e Microcontrolador N de circuitos .............. 34 Figura 5: Modelo simplificado de uma unidade de memria de um Microcontrolador ......... 35 Figura 6:Exemplo simplificado de uma unidade de E/S........................................................ 39 Figura 7: Diferena entre a transmisso em srie com a transmisso em paralelo.................. 40 Figura 8: Exemplo da arquitetura de Von Neumann ............................................................. 44 Figura 9: Ncleo de um Microcontrolador da famlia 8051................................................... 45 Figura 10: Demultiplexao de dados e endereos usando o port P0..................................... 47 Figura 11: Comprometimento do Port P3 sendo utilizado para funes especiais ................. 48 Figura 12:Organizao de ROM interna/externa em funo do valor lgico do pino EA....... 49 Figura 13: Esquema de circuito com Reset automtico e Reset forado ................................ 50 Figura 14: Eclipse com perspectiva para C/C++ ................................................................... 56 Figura 15: Perspectiva ajustada para Java e QuantumDB...................................................... 57 Figura 16: Simulao de contagem binria de 8 bits e gravao no PORT P2....................... 59 Figura 17: Tela Principal do SPI-Flash Programmer............................................................. 60 Figura 18: KIT8051LS em funcionamento ........................................................................... 64 Figura 19: Conexo do LCD e Potencimetro ...................................................................... 65 Figura 20: Porta de expanso ligada ao Port P3 .................................................................... 65 Figura 21: Barramento com 8 LED's .................................................................................... 65 Figura 22: Teclados tipo push .............................................................................................. 66 Figura 23: Conector da alimentao e Porta serial ................................................................ 66 Figura 24: Microcontrolador AT89S8252............................................................................. 67 Figura 25: Cooler de Ventilao........................................................................................... 69 Figura 26: Cabo Serial e Esquema da pinagem ..................................................................... 69 Figura 27: Desenho do circuito de um Microcontrolador acionando motor ........................... 70

vi

TABELAS
Tabela 1: Resumo das Funes especiais do Port P3 ............................................................ 49 Tabela 2: Grandes fabricantes e principais informaes sobre suas caractersticas................ 51 Tabela 3:Tipos de variveis contempladas pelo SDCC ......................................................... 58

vii

LISTA DE ABREVIATURAS E SMBOLOS


AD CMB DA EPROM ETA GSM IHM ISO LED RAM ROM SDCC USB Analgico / Digital Conjunto Motor Bomba Digital /Analgico Erasable Programmable Read Only Memory Estao de Tratamento de gua Global System for Mobile Communications Interface Homem - Mquina Organizao Internacional para Padronizao Light Emitting Diode Random Access Memory Read Only Memory Small Device C Compiler Universal Serial BUS

viii

SUMRIO
LISTA DE FIGURAS .......................................................................................................... v TABELAS ........................................................................................................................... vi LISTA DE ABREVIATURAS E SMBOLOS .................................................................. vii 1. CONSIDERAES INICIAIS ..................................................................................... 11 1.1 Introduo ................................................................................................................ 11 1.2 Justificativa ............................................................................................................... 12 1.3 Problema da Pesquisa .............................................................................................. 13 1.4 Hipteses ................................................................................................................... 13 1.5 Objetivos ................................................................................................................... 14 1.5.1 Objetivo Geral............................................................................................................ 14 1.5.2 Objetivos Especficos ................................................................................................. 14 1.6 Metodologia da Pesquisa .......................................................................................... 15 1.7 Estrutura do Trabalho ............................................................................................. 15 2. SISTEMAS EMBARCADOS ........................................................................................ 17 2.1 Definies e Aplicaes dos Sistemas Embarcados ..................................................... 18 2.2 Caractersticas dos Sistemas Embarcados .............................................................. 22 2.2.1 Interao com o ambiente........................................................................................... 22 2.2.2 Capacidade limitada de recursos................................................................................. 23 2.2.3 Forte acoplamento entre hardware s software ............................................................. 24 2.2.4 Importncia das respostas de tempo real nos sistemas embarcados ............................. 25 2.3 Linguagens de Programao para Sistemas Embarcados ...................................... 26 2.3.1 Linguagem de Mquina .............................................................................................. 26 2.3.2 Linguagem Assembly................................................................................................. 27 2.3.3 Vantagens e Desvantagens da linguagem Assembly ................................................... 28 2.3.4 Linguagens de Alto Nvel........................................................................................... 28 2.3.5 Linguagem C.............................................................................................................. 29 2.3.6 Vantagens e Desvantagens da linguagem C ................................................................ 29 2.3.7 Linguagens de Quarta Gerao ................................................................................... 29 2.3.8 Anlise e escolha da linguagem .................................................................................. 30 3. MICROCONTROLADORES ....................................................................................... 32 3.1 O que so os Microcontroladores ................................................................................ 33 3.2 Microcontroladores versus Microprocessadores ........................................................ 34 3.3 Arquitetura dos Microcontroladores........................................................................... 35 3.3.1 Unidade de Memria .................................................................................................. 35 3.3.2 Unidade Central de Processamento CPU ................................................................. 36 3.3.3 Barramentos ............................................................................................................... 36 3.3.4 Unidade de Entradas e Sadas ..................................................................................... 37 3.3.5 Comunicao Serial dos Microcontroladores .............................................................. 39 3.3.6 CLOCK O relgio do Microcontrolador .................................................................. 40 3.3.7 TIMER....................................................................................................................... 41 3.3.8 WatchDog Co de Guarda ........................................................................................ 42 3.4 O Microcontrolador 8051......................................................................................... 43 3.4.1 Arquitetura fsica dos Microcontroladores 8051 ......................................................... 44 3.4.2 Organizao da Pinagem dos Microcontroladores 8051 .............................................. 46 3.4.2.1 Port P0..................................................................................................................... 46 3.4.2.2 Ports uso geral para E/S e uso das memrias internas e externas-P1,P2,P3............... 47 3.4.3 Fabricantes do Microcontrolador 8051 ....................................................................... 51

ix

3.4.4 Microcontroladores 8051 mais potentes Arquitetura ISAC ...................................... 52 4. FERRAMENTAS DE PROGRAMAO PARA 8051................................................ 54 4.1 Software de Desenvolvimento para Microcontroladores ............................................ 55 4.1.1 Eclipse.... .................................................................................................................... 55 4.1.2 Small Device C Compiler SDCC .............................................................................. 57 4.1.3 PDS 52..................................................................................................................... 58 4.1.4 SPI Flash Programmer............................................................................................. 60 4.1.4.1 Os lock-bits .............................................................................................................. 62 4.2 KIT de Programao 8051LS ...................................................................................... 62 4.2.1 O KIT8051LS ............................................................................................................. 63 4.2.2 Os seus componentes................................................................................................... 64 4.3 Prottipo de teste do Microcontrolador 8051.............................................................. 67 4.3.1 Sistemtica do prottipo .............................................................................................. 68 4.3.2 Especificao tcnica da parte fsica do prottipo ........................................................ 69 5. CONSIDERAES FINAIS ......................................................................................... 72 5.1 Concluso ..................................................................................................................... 72 REFERNCIAS ................................................................................................................. 75

10

CAPTULO 1 CONSIDERAES INICIAIS

11

1. CONSIDERAES INICIAIS

1.1 Introduo

Com o continuado avano da tecnologia, atualmente os Microcontroladores fazem parte de nossas vidas. Segundo Amadeu Souza (21-), cada um de ns tem acesso em mdia a nove Microcontroladores por dia. As aplicaes destes dispositivos so as mais variadas, sendo utilizadas, por exemplo, em mquinas de lavar, televisores, DVDs, rdios, controles remotos, microondas, entretenimento, segurana, controle de acesso, etc., acompanhado esses Microcontroladores esto software instalados nos mesmos, executando tarefas que foram prprogramadas em linguagens de programao. As combinaes entre esses dois fatores so denominados de Sistemas Embarcados. Sistemas Embarcados podem ser desde um sistema que faa com que uma boneca possa cantar, como at mesmo um sistema para controlar um elevador em um prdio. Basicamente, qualquer equipamento autnomo que no seja um computador, acaba sendo considerado um Sistema Embarcado. (SCHIMIDT 2007) Segundo Sica (2006), um Microcontrolador um computador-num-chip, contendo um processador, memria e funes de entrada/sada. um microprocessador que enfatiza a alta integrao, em contraste com os microprocessadores de uso geral (do tipo usado em computadores pessoais). Alm dos componentes lgicos e aritmticos, usuais de um microprocessador de uso geral, o Microcontrolador integra no prprio chip elementos adicionais tais como memria RAM, EEPROM ou Memria FLASH para armazenamento de dados ou programas, dispositivos perifricos e interfaces de E/S que podem ir de um simples pino digital do componente a uma interface USB ou Ethernet nos mais avanados. O software escrito para Sistemas Embarcados, ainda segundo Sica (2006), muitas vezes chamado de firmware e no so armazenados em discos rgidos. Logo, os Sistemas Embarcados so sistemas que executam funes dedicadas, ou seja, so responsveis por uma funo especfica ou um conjunto restrito de funes especficas e co-relacionadas. E podem ser constatados na maioria dos equipamentos eletrnicos. Grande parte dos Microcontroladores utiliza a linguagem de programao Assembly, o propsito deste projeto apresentar os conceitos de desenvolvimento de software para Sistemas Embarcados, utilizando os Microcontroladores da famlia 8051, mais especificamente com o Microcontrolador da ATMEL, com a linguagem de programao C e o compilador freeware

12

SDCC. Sero apresentados detalhes do hardware, da linguagem de programao e os resultados as experincias prticas do desenvolvimento de um prottipo neste ambiente.

1.2 Justificativa

A automao de processos e o monitoramento remoto de equipamentos so tecnologias que garantem ganho de produo devido ao controle preciso do processo. Com o avano da tecnologia e a utilizao da eletrnica digital por grande parte das empresas, o emprego de Microcontroladores vm sendo muito requisitado para um melhor desenvolvimento da produo, diminuindo os custos e trazendo benefcios para as empresas que utilizam esse sistema. LOPES (2006/2007) Como j dito anteriormente, os Microcontroladores so chips que tem um processador, pinos de entradas/sadas e memria. Com o barateamento de Circuitos Integrados CI e o surgimento dos microprocessadores (CPUs) mais poderosos, comeou-se a usar as CPUs mais simples para implementar tarefas dedicadas. Estas aplicaes tinham custo dependente da CPU e dos perifricos (ROM, RAM, Portas, A/D, D/A, etc.) e tambm da quantidade de conexes e do tamanho da placa. Para reduzir o custo, comeou a surgir a idia de colocar todos estes perifricos dentro do chip da CPU, transformando-os nos Sistemas Embarcados. BARRETO (2006) No inicio da programao desses chips CPU, a linguagem utilizada era Assembly. A linguagem Assembly orientada a mquina (ou melhor, para o processador), necessrio conhecer a estrutura do processador para poder programar em Assembly, tornando em alguns casos o desenvolvimento dos sistemas um pouco mais difcil e pouco portvel. Essa linguagem utiliza instrues de baixo nvel que operam diretamente com registradores e memrias, ou seja, as instrues so executadas diretamente pelo processador. (MONSERRAT NETO) Atualmente, os Microcontroladores esto sendo desenvolvidos para executarem software em linguagens de alto nvel, os software desenvolvidos em linguagens deste tipo, mais especificamente C, tero mais flexibilidade e portabilidade, passando uma sintaxe mais prxima da realidade humana, permitindo a manipulao dos dados nas mais diversas formas (nmeros inteiros, reais, vetores, etc.), enquanto Assembly trabalha com linguagem pura de mquina bits, bytes, palavras em memria, etc.

13

Logo, a contribuio que este projeto trar para seus leitores, conhecer a automao de processos e/ou equipamentos que utilizam este tipo de programao. Sero explanados conceitos de hardware e software para Microcontroladores da famlia 8051 e os conceitos exemplificados atravs de uma aplicao exemplo para conhecimento de todos que se interessem por assuntos ligados a Automao Industrial, Robtica e Eletrnica Digital.

1.3 Problema da Pesquisa

Como explicar fundamentos tericos e prticos sobre os Microcontroladores?

Qual KIT de programao que ser usado para exemplificar os exemplos prticos?

Este tipo de Microcontrolador possui alguma Interface Homem Mquina IHM?

Ser mostrado um exemplo na linguagem de programao Assembly, visto que o trabalho que ser apresentado utilizar a linguagem C?

1.4 Hipteses

KIT 8051 com Placa ISP (In-System Programmable) um KIT de desenvolvimento de software para Microcontroladores, sua tecnologia de Dispositivos Montados em Superfcie SMD aumenta a resistncia mecnica, reduzindo o tamanho fsico da placa, esses fatores resultam em aumento da confiabilidade dos equipamentos que sero utilizados. Sua programao atravs da porta USB, evita a necessidade de mudana de jumpers1 para configurao de portas, etc. Para exemplificar a sada de informaes dos software gravados do Microcontrolador Atmel AT89S8251 e/ou AT89S8252, seria necessrio a utilizao de uma fonte grfica para

Segundo Wikipdia, Jumper uma ligao mvel entre dois pontos de um circuito eletrnico. , geralmente, uma pequena pea plstica que contm um metal no seu interior, responsvel pela conduo de eletricidade.

14

visualizao, visto que este KIT disponibiliza um conector de pinos onde pode ser ligado um display de LCD 2x6, LCD 4x16 com ou sem Back Light2. Poderemos utilizar o Compilador C para Dispositivos Pequenos, Small Device C Compiler SDCC, que open source, parcialmente portvel, para Microcontroladores. Ele contm funes do tipo: montador, depurador ou simulador.

1.5 Objetivos

1.5.1

Objetivo Geral Exemplificar de forma clara e objetiva aos profissionais, tcnicos e estudantes da rea

de Tecnologia da Informao, conceitos tericos e prticos sobre Microcontroladores. Tendo como premissa ao final da mostra do projeto, a execuo de uma aplicao para Microcontroladores da famlia 8051, marca Atmel, modelo AT89S8251 e/ou AT89S8252.

1.5.2

Objetivos Especficos Explicar o que so Sistemas Embarcados, para que possamos associar a pesquisa com os controladores de dispositivos que esto em quase todos os equipamentos que utilizamos no dia-a-dia;

Fazer uma abordagem rpida sobre as linguagens de programao Assembly e C utilizada nos Microcontroladores 8051, e KIT fsico para desenvolvimento dos software. Mostrando fisicamente o que utilizado na elaborao de softwares para sistemas embarcados;

Executar aplicao exemplo mostrando o Microcontrolador 8051 em operao.

BackLight quando um dispositivo de sada do tipo LCD possui luminosidade de fundo para enxergarmos as informaes em salas escuras.

15

1.6 Metodologia da Pesquisa

A pesquisa se caracterizar por um estudo qualitativo, do tipo exploratrio, bibliogrfico e instrumental, que poder ser de revistas, livros, internet ou publicaes relacionadas baseadas em etapas como descrito abaixo: Levantamento de bibliografias; Anlise das referncias bibliogrficas; Observao de caractersticas e pressupostos tericos; Analise terica das bases dos software de desenvolvimento para Microcontroladores; Analise terica e prtica dos equipamentos que sero utilizados para desenvolvimento da tarefa; Desenvolvimento e testes no software de exemplo para uma sobrecarga de equipamento.

1.7 Estrutura do Trabalho

O presente trabalho est dividido em 5 (cinco) captulos como descritos a seguir: No capitulo 1(um) faremos a introduo ao trabalho, mostrando onde os Microcontroladores esto inseridos em nossas vidas, o que um sistema embarcado e Microcontroladores. No capitulo 2(dois) falaremos sobre Sistemas Embarcados. Seu principais conceitos, como surgiram, o que , para que servem,sua importncia na tecnologia. No capitulo 3(trs), colocaremos os conceitos sobre os Microcontroladores. Explanaremos a arquitetura dos Microcontroladores 8051, ferramentas utilizadas para programao dos mesmos bem como, programao especifica para os Microcontroladores dessa famlia utilizando a linguagem C. No capitulo 4(quatro), mostraremos as ferramentas utilizadas no desenvolvimento de software para o Microcontrolador 8051, a integrao do Eclipse, o compilador SDCC, o recurso de conhecimento aberto para o SDCC e o modelo de uma aplicao escrita, o simulador PDS-52 e o software de gravao SPI Flash Programmer. Apresentao de um programa escrito em linguagem de alto nvel, o cdigo Assembly gerado pela compilao do SDCC e o KIT de programao com software em funcionamento.

16

CAPTULO 2 SISTEMAS EMBARCADOS

17

2. SISTEMAS EMBARCADOS
Atualmente ouve-se muito falar de sistemas embarcados, s que esse tipo de sistema no novo. De acordo com a enciclopdia on-line Wikipdia, um dos primeiros sistemas embarcados data do incio dos anos 60. O primeiro que se tem notcia foi um computadorguia para o projeto Apollo, o qual levou o primeiro homem lua. Os sistemas embarcados j esto presentes em todo o mundo e hoje esses sistemas convivem com as pessoas e em suas vidas. Eles j so universais porque esto presentes em muitos dispositivos, desde eletrodomsticos at naves espaciais. Em geral, a maioria no vista pelas pessoas porque, como insinua o prprio nome, esto embutidos dentro de outros sistemas que so usados no cotidiano do dia-a-dia dos seres humanos. (BARRETO 2006) Segundo Barreto (2006), Sistemas Embarcados usam algum tipo de elemento processador. Entretanto, nesse contexto, esse processador um mero detalhe, ou seja, eles no so percebidos. Por exemplo, hoje as pessoas sabem responder qual configurao da CPU que utilizam em casa ou no trabalho, porque as configuraes so requisitos decisivos na hora que uma pessoa vai efetuar a compra de um computador de uso geral. Entretanto, se perguntarem qual CPU essas pessoas tem no seu carro ou no seu celular, certamente essas pessoas no sabero responder. Logo, muitas dessas pessoas compram equipamentos de m qualidade pelo fato de no atentarem para requisitos que tambm so importantes. Em linhas gerais, os Sistemas Embarcados operam de forma semelhante aos dos computadores de uso geral. Entretanto, os sistemas de computadores so desenvolvidos para atender necessidades de produtividade dos usurios com o mximo de desempenho, enquanto que os sistemas de tarefas dedicadas (como no caso dos Embarcados) esto para atender condies de ambiente, utilizando-se de dispositivos para monitorar estados de clima, controle de acesso, segurana, etc. Logo, nesse captulo sero mostrados conceitos tericos sobre Sistemas Embarcados, suas principais caractersticas, linguagens computacionais utilizadas, tipos de Sistemas Embarcados, benefcios e limitaes desses sistemas.

18

2.1 Definies e Aplicaes dos Sistemas Embarcados


No existe uma definio universal para o termo Sistema Embarcado, a mais comum quando um sistema est dedicado a uma nica tarefa e interage continuamente com o ambiente a sua volta por meio de sensores e atuadores, independente se est dentro de um PC de uso geral ou um controle remoto de uma TV, ainda sim este no seja um desktop comum, classificado como embarcado. A denominao embarcada (do ingls Embedded Systems) vem do fato de que estes sistemas so projetados geralmente para serem independentes de uma fonte de energia fixa como uma tomada ou um gerador e ainda so embutidos tornando-se abstratamente invisveis. Todo sistema embarcado composto por uma unidade de processamento, que um circuito integrado, fixado a uma placa de circuito impresso. Possuem uma capacidade de processamento de informaes vinda de um software que est sendo processado internamente nessa unidade, logo o software est embarcado na unidade de processamento. O Software embarcado, dependendo do clock do

Microcontrolador, em muitos casos classificado de firmware. (CHASE 2007)

Figura 1: Lgica de funcionamento de um Sistema Embarcado


Fonte: CHASE, 2007, Sistemas Embarcados. Modificado por: Erick Barros Nascimento

As aplicaes dos Sistemas Embarcados so as mais variadas, sendo utilizadas em vrios segmentos, dentre os quais esto alguns exemplos:

Aplicaes Industriais: So utilizados nas industriais dos mais variados tipos, geralmente aplicadas em sistemas de automao industrial, por exemplo: Sistemas de controle de Estaes de Tratamento de gua ETA. Geralmente so aplicaes mais robustas, com placas dedicadas e mltiplos sensores de entrada e sada.

19

Considere o exemplo de um conjunto motor-bomba CMB para bombeamento de gua que est com superaquecimento. Entre o cabo de alimentao eltrica desse CMB est um equipamento chamado de rel trmico, segundo Gustavo Roberto (2007), eles usados para proteger os motores eltricos contra sobrecargas. Essas sobrecargas so elevaes de corrente por tempo prolongado, devido a um trabalho acima do previsto que pode ultrapassar a corrente nominal do motor. Logo, programado o parmetro limite em que a corrente pode chegar, o rel passa a monitorar essa corrente, se ela comear a subir (ex. motor emperrando) o mesmo desliga a alimentao protegendo o motor, e em muitos casos envia um pulso de sinal Analgico / Digital para acender um LED, ou at mesmo um pulso para que o sistema escreva uma mensagem na tela de uma IHM para avisar da sobrecarga.

Aplicaes Empresariais: A rea empresarial tambm pode se beneficiar com a utilizao de sistemas embarcados. Dispositivos como Palm Tops, que executam Sistemas Operacionais Embarcados, como o Windows Mbile, so capazes de realizar boa parte das tarefas que geralmente so realizadas em PCs de uso geral, entretanto proporcionam uma maior mobilidade que pode contribuir para a disponibilidade das informaes. Possuem aplicaes bsicas conhecidas em qualquer PC de uso geral, tais como Excel e Windows Media Player.

Considere o exemplo de um vendedor de uma distribuidora de bebidas. Ele sai pela cidade efetuando as vendas dos produtos da distribuidora, seja qualquer produto que esteja disponvel (cerveja, refrigerante, gua mineral, etc.). As informaes sobre as vendas dos produtos (cliente que solicitou o pedido, quantidade, etc.) so armazenadas no Palm Top na hora que ele faz a venda corpo a corpo. Ao chegar sede, as informaes do Palm Top do vendedor so descarregadas atravs de uma porta Serial e/ou USB para um PC de uso geral. Com aplicaes especificas, essas informaes so condensadas e emitida ordem de entrega dos produtos e nota fiscal de venda a pessoa do despacho. Assim, os produtos so entregues nos estabelecimentos que esto espalhados pela cidade.

20

Aplicaes Automotivas: Segundo Chase (2007), um veculo top de linha um excelente exemplo de um complexo sistema literalmente embarcado. Centenas de sensores fornecem informaes sobre todo o funcionamento do veculo. Vrias unidades de processamento independentes atuam em regies diferentes e se comunicam entre si, captando os sinais destes sensores e fazendo com que as aes referentes a cada caso sejam tomadas. Esta comunicao geralmente se d atravs de redes, cujo protocolo CANbus3 tem se tornado o padro. Isto acontece desde a central que memoriza a posio dos bancos, espelhos, volante, etc. Para cada usurio do veculo at a central que gerencia o funcionamento do motor.

Figura 2: Sensor de proximidade, ngulo e atuador para freios.


Fonte: CHASE, 2007, Sistemas Embarcados. Modificado por: Erick Barros Nascimento

Aplicaes Residenciais: Segundo Fred Cox (2008), Sistemas Embarcados para projetos de construo de alarmes residenciais, possuem as seguintes caractersticas de interao, tais como: Interagem com Teclados matriciais Displays LCD Discador via celulares GSM Armazenamento de memria para alguns nmeros de telefone Sirenes

CANbus: um protocolo de comunicao serial sncrono. utilizado em Microcontroladores modernos que tem sua aplicabilidade quase a de um computador de uso geral.

21

Monitoramento de sensores de portas e janelas Interface Serial ou USB para conexo com o PC de uso geral Persistncia no caso de quedas de energia

Aplicaes de Entretenimento: Segundo Bilar (2009), com a chegada dos Sistemas Embarcados e que o Z80 foi um dos microprocessadores mais utilizados no mundo por possuir um baixo consumo eltrico e, partindo do principio de que impossvel colocar um Core 2 Duo em um controle remoto, o Microcontrolador Z80 desempenhou muitas funes importantes de processamento, um dos exemplos mais importantes sobre esse processador o game Boy que foi produzido com base no Z80, que vinha integrado com controle de udio externo e outros circuitos, outros exemplos baseado no Z80 foi os antigos S1 MP3 players que tinha um formato de pendriver e comeou a ser produzido em massa por diversos fabricantes. Outro processador que pode ser citado como exemplo o da Motorola 68000 que tinha os mesmos chips de 32 bits usados nos Macintosh, no os primeiros feitos em 1979, mais sim em verses modernas dele, que operam em freqncia mais alta, um grande exemplo so os chips usados nos primeiros palms, so os chips Dragon Ball que incluam um processador de 68000, controlador de vdeo e outros componentes, tudo no mesmo Wafer4 de silcio. Ainda segundo Bilar (2009), outro exemplo seria o de alguns MP4 players, que utilizam apenas trs chips, sendo um o controlador principal, outro um chip de memria flash (usado para armazenamento) e o terceiro um sintonizador de rdio AM/FM.

Aplicaes na Medicina: Quando os transplantes, como marca-passos, puderem ser administrados remotamente. Esses sistemas sero to compactos que o paciente nem mesmo vai lembrar que eles so embutidos sem seu corpo. Usando microsensores colocados em vrias partes do corpo, o marca-passo poder monitorar vrios parmetros, como o fluxo sangneo, e a saturao do oxignio no sangue. Ele tambm poder transmitir dados usando comunicao sem fio onde, no caso de uma

Wafer de Silcio: So cilindros de silcio fabricados para construo de componentes eletrnicos. As empresas fornecem o silcio em cilindros, os mesmos, so fatiados em fatias muito finas que so repassadas para as empresas fabricarem seus circuitos.

22

anormalidade, o mdico ser contatado e poder entrar em ao imediatamente, at mesmo de locais remotos. (BARRETO 2006)

Aplicaes no Bem-Estar dos Deficientes Fsicos: Considere os sistemas que traduzem imagens em sons para cegos. J existe um sistema h quase 18 anos, foi desenvolvido pelo cientista Peter Meijer, do Laboratrio de Pesquisas Philips, na Holanda, e se chama The vOICe. Segundo Barreto (2006), da mesma forma que sistemas traduziriam imagens para cegos, um sistema de reconhecimento de gestos seria outra ajuda importante para os surdos mudos interagirem com os computadores e outros equipamentos.

2.2 Caractersticas dos Sistemas Embarcados


A principal caracterstica comum a maioria dos sistemas embarcados, que eles so desenvolvidos para uma tarefa especfica ou um conjunto de tarefas dos quais a interferncia humana muito pouca e, apesar da grande diversidade de aplicaes para sistemas embarcados, algumas caractersticas so comuns a todos os ambientes. 2.2.1 Interao com o Ambiente Segundo Ceolin (2007), uma caracterstica marcante em um sistema embarcado sua interao constante com o meio a sua volta, seja de forma automtica ou por meio de interfaces. Para o projetista, a caracterstica da interao contnua com o ambiente traduz em um maior grau de dificuldade nas solues, uma vez que alm de conhecimento de programao clssica, o mesmo deve conhecer sobre o hardware, tecnologias de aquisio de dados, atuadores e interfaces essencial. Em um ambiente que interage fortemente com a realidade, os pontos chave so a capacidade de modificar o ambiente real, com utilizao de dispositivos que implementam a monitorao fsica de um fenmeno que est acontecendo um ambiente, os sensores nos sistemas embarcados, servem para diversas finalidades, tais como: abertura de portas (porta de shopping), segurana nas portas de elevadores (impedir que elas se fechem quando algum estiver passando), medio de pH de guas (para ver se a gua est boa pra consumo), medio de presena (checar se algo atravessou uma rea no permitida), etc.

23

Contudo, os sensores esto diretamente ligados a outros dispositivos, esses que vo realmente e a olho humano modificar o estado do ambiente em que se encontram, esses dispositivos so chamados de atuadores. Os atuadores so elementos que produzem movimento atravs de comandos que podem ser manuais (apertando-se botes) ou automticos, o seu funcionamento est baseado no envio de um pulso de sinal, feito pelos sensores para os Microcontroladores e os mesmos fazem com que os atuadores modifiquem o estado do ambiente. A interao pode acontecer atravs de entidades presentes no ambiente real, que atuam modificando o ambiente ou lendo o estado do ambiente. Essas entidades do ambiente podem ser lmpadas, motores, sensores (presena, luminosidade, temperatura e etc.), cmeras e dispositivos hpticos5. Esses tambm controlam sistemas mais complexos como sistemas de incndio, sistemas eltricos e sistemas hidrulicos.

2.2.2

Capacidade limitada de recursos Os Sistemas Embarcados so implementados em arquiteturas muito restritas,

porque os Microcontroladores no dispe de grandes quantidades de memria RAM/ROM, o poder de processamento somente de algumas dezenas de MHz, da mesma forma que muito comum os mesmos possurem barramento de dados de 8 bits e de endereos de 16 bits. Portanto, o software tem que ser altamente otimizado para funcionar com robustez nessa arquitetura. Logo, no inicio da implementao dos Sistemas Embarcados os programadores/analistas de sistemas tiveram dificuldade para programar os software que iriam ser executados nos Microcontroladores. (BARRETO 2006) Ainda segundo Barreto (2006), no caso de muitos Sistemas Embarcados, o fato de adotar um sistema operacional e se utilizar de recursos do tipo Recursividade totalmente proibitivo. Por isso que a maioria dos software embarcados ainda implementado em Assembly ou C, porque essas linguagens consomem poucos recursos computacionais. E mais, os sistemas embarcados no operam em um ambiente estritamente controlado. Alguns no podem sofrer calor intenso, outros so sensveis vibrao, outros iluminao, entre diversas outras caractersticas fsicas.

Hptico: Significa que prprio para tocar, como por exemplo, nos Sistemas Embarcados, o uso de teclados matriciais.

24

Tais sistemas tm que trabalhar todo o tempo e dentro do tempo esperado. Por exemplo, considerando o ato de pisar no freio de um carro. Se o software que controla o freio levasse alguns segundos para responder a frenagem, a sensao de desespero por parte das pessoas que esto naquele veculo seria catastrfica.

2.2.3

Forte Acoplamento entre Hardware e Software Os Sistemas Embarcados possuem forte acoplamento entre hardware e

software. Isso significa que os software embarcados dependem muito de hardware para executem tudo que lhe proposto com qualidade e robustez . Mltiplos processos so executados simultaneamente, sendo que a CPU atende cada processo por um pequeno tempo, um a um em seqncia. Algumas das caractersticas deste forte acoplamento podem ser identificadas, por exemplo:

Sistema voltado para uma tarefa especifica; Todo o sistema centralizado tudo funciona em um nico Microcontrolador; Dispositivos de E/S gerenciados por um nico microprocessador; Alta dependncia da resposta as solicitaes de processos, no caso de sistema avinicos, a espera por uma resposta vinda de outro sistema pode comprometer todos os sistemas.

Estes software, em sua maioria demanda alta qualidade de cdigo, pois tendem a operar em condies criticas de segurana e disponibilidade. O nvel de exigncia em qualidade tende a ser muito maior que a exigncia na maioria das aplicaes comerciais que vemos hoje nos computadores das empresas ou nas residncias. Uma falha no software de um desktop caseiro apenas um incmodo para o seu usurio, enquanto que uma falha em um sistema mdico pode matar uma pessoa. Alm disso, a forte tendncia de operarem em rede, interconectados e integrados a outros equipamentos, aumenta a complexidade da tarefa e a demanda por qualidade, pois um elo falhando eventualmente pode levar toda a rede a ser colocada em cheque. (TAURION 2005)

25

2.2.4

Importncia das respostas de tempo real nos sistemas embarcados Segundo Taurion (2005), os Sistemas Embarcados de Tempo Real so

chamados de Tempo Real, porque so projetados para tarefas de controle dependentes do tempo, devendo operar sobre restritas condies de desempenho. Os Sistemas Embarcados que operam em tempo real so chamados de determinsticos, pois devem executar suas tarefas em um conhecido e previsvel perodo de tempo. Ainda segundo Taurion (2005), no pode haver demoras ou imprevisibilidade de tempo de resposta. Nestes sistemas os resultados no apenas devem estar corretos, mas tambm devem ser gerados no momento correto. No pode haver atraso ou variaes, ao contrrio de sistemas computacionais de uso geral, que devem apresentar um bom comportamento mdio e inexiste a preocupao com previsibilidade temporal. Nestes sistemas de uso geral, uma demora de resposta pode apresentar um desconforto para o usurio, mais nunca afeta a vida fsica de ningum. Considerando o acionamento de flaps6 de uma aeronave, a resposta deve ser no mesmo tempo em que o piloto movimenta o manche da aeronave, esse tempo muitas vezes medido em microssegundos. Nos sistemas computacionais de uso geral, cada processo tem acessos iguais ao processador. Se um processo de alta prioridade precisa executar e um outro processo, de menor prioridade, est ocupando o processador, o processo de alta prioridade precisa esperar. Este mecanismo chamado de preemptive scheduling. J um sistema de tempo real, um sistema de alta prioridade assume o controle do processador de imediato sem espera. Processos de alta prioridade no esperam por processos de prioridade inferior. (TAURION 2005) Um sistema de tempo real pode ser hard real-time ou soft real-time. Um sistema hard real-time opera sob requerimentos crticos de resposta, ou seja, se a tarefa no for completada em um perodo de tempo determinado, a tarefa ter falhado. Um exemplo simples seria a linha de montagem de veiculo, no qual se o rob no reconhecer um objeto no instante preciso, quando estiver passando pelo ponto de solda o mesmo seguir para a prxima etapa sem ter sido soldado e a operao ter falhado. No caso de aeronaves, uma falha, pode se perder centenas de vidas humanas. J nos sistemas soft real-time, alguma variao de tempo permitida. (TAURION 2005)

Flaps: So superfcies hipersustentadoras, ou seja, eles servem para aumentar a sustentao da asa do avio. Portanto, eles so usados em situaes nas quais necessrio aumentar a sustentao das asas, como a decolagem e o pouso.

26

Classificar sistemas de tempo real no uma tarefa simples e muitos aspectos tcnicos devem ser levados em considerao, tais como: Ambiente de

desenvolvimento, linguagem de programao que foi desenvolvido, se tem uma boa relao entre a arquitetura do sistema, qual a eficincia dos dispositivos de E/S, se suportam comunicao sncrona e assncrona, se possuem recursos de comunicao do tipo: IPsec, IPv6,Bluetooth e mais.

2.3 Linguagens de Programao para Sistemas Embarcados


Segundo o ICEA (2005), uma linguagem de programao um vocabulrio e um conjunto de regras gramaticais usadas para escrever programas de computador. Esses programas instruem o computador a realizar determinadas tarefas especficas. Cada linguagem possui um conjunto nico de palavras-chave (palavras que ela reconhece) e uma sintaxe (regras) especfica para organizar as instrues (instrues mesmo) dos programas. Os Sistemas Embarcados so uma fuso entre um software desenvolvido em alguma linguagem de programao e um hardware especfico que no caso desse trabalho ser um Microcontrolador 8051. Para tanto, existe o alto nvel de programao e o baixo nvel de programao para esses Microcontroladores, e novamente segundo o ICEA, as linguagens de programao podem ser classificadas, em uma escala relativa sua semelhana com a linguagem humana em: Linguagem de Mquina; Linguagem Assembly; Linguagem de Alto Nvel; Linguagem C; Linguagem de Quarta Gerao.

2.3.1

Linguagem de Mquina

a linguagem de mais baixo nvel de entendimento pelo ser humano e a nica, na verdade, entendida pelo processador (CPU). constituda inteiramente de nmeros,

27

o que torna praticamente impossvel entend-la diretamente. Cada CPU tem seu conjunto nico de linguagem de mquina, definido pelo fabricante do chip. Uma instruo tpica em linguagem de mquina seria algo como: 0100 1111 1010 0110 As instrues presentes na linguagem de mquina so as mesmas da linguagem do nvel mais acima (linguagem Assembly). Um programa em linguagem de alto nvel que foi compilado para executar determinada CPU precisa ser recompilado (e muitas vezes reescrito), para que possa ser executado em outra CPU que no tenha o mesmo conjunto de instrues, impactando na portabilidade de software entre diferentes hardware. (ICEA 2005)

2.3.2

Linguagem Assembly a linguagem de nvel imediatamente acima da linguagem de mquina. Ela

possui a mesma estrutura e conjunto de instrues que a linguagem de mquina, porm permite que o programador utilize nomes (chamados mnemnicos) e smbolos em lugar dos nmeros. A linguagem Assembly tambm nica para cada tipo de Microcontrolador, de forma que um programa escrito em linguagem Assembly para um modelo de Microcontrolador poder no ser executado em outro Microcontrolador de uma famlia diferente.(ICEA 2005) Ainda segundo o ICEA (2005), nos primrdios da programao todos os programas eram escritos nessa linguagem. Hoje, a linguagem Assembly, utilizada quando a velocidade de execuo ou o tamanho do programa executvel gerado so essenciais. Atualmente a maioria dos programas escrita em linguagens de alto nvel, tal como C, Pascal , Delphi, Kylix, Visual Basic, etc. devido facilidade de criao e manuteno dos programas. No caso dos software para os Microcontroladores, hoje temos, C, C++ e at mesmo JAVA. Todos os programas escritos nessas linguagens so convertidos para a linguagem de mquina para serem executados pelo processador. A converso da linguagem Assembly para a linguagem de mquina se chama montagem, e feita por um programa chamado montador (ou assembler). Uma tpica instruo em Assembly seria:

28

ORG 100 LDAA # $10 END Essa linguagem tambm classificada como linguagem de segunda gerao, e, assim como a linguagem de mquina, considerada uma linguagem de baixo nvel. 2.3.3 Vantagens e Desvantagens da linguagem Assembly

Segundo Souza (2003), a programao em Assembly o nvel mais baixo em que se pode programar com alguma comodidade. As desvantagens de uma linguagem de baixo nvel so: Grande desproporo entre o conjunto de instrues e as tarefas que o microprocessador normalmente chamado a executar. Esta desproporo obriga a decompor manualmente cada tarefa em operaes elementares que, alem de ser um processo demorado e sujeito a erros, no ajuda a manter o cdigo estruturado. Grande dependncia relativamente aos detalhes internos do hardware que tem como conseqncia direta a reduzida portabilidade dos software.

Ainda segundo Souza (2003), a grande vantagem de programar em Assembly aproveitar ao mximo as caractersticas particulares do hardware onde vai ser executado, conseguindo assim resultados otimizados quer em tempo de execuo quer em tamanho de cdigo. Outra vantagem a existncia de assembladores gratuitos ou de baixo custo para a totalidade dos Microcontroladores pelo que sempre possvel programar em Assembly, qualquer que seja o Microcontrolador escolhido. O mesmo j no acontece com as linguagens de alto nvel, onde nem sempre possvel encontrar um compilador nessas condies para um dado Microcontrolador. SOUZA (2003)

2.3.4

Linguagens de Alto Nvel

So as linguagens de programao que possuem uma estrutura e palavraschave que so mais prximas da linguagem humana, tornando os programas mais

29

fceis de serem lidos e escritos. Esta a sua principal vantagem sobre as linguagens de nvel mais baixo. Os programas escritos nessas linguagens so convertidos para a linguagem Assembly atravs de um programa compilador ou de um interpretador. ICEA (2005)

2.3.5

Linguagem C

Segundo S (2005), C uma linguagem de programao profissional e aceita para criao de sistemas operacionais como o Windows, o Linux, o Unix, etc. Ela foi criada para ser to pequena quanto possvel. Seu conjunto de comando bastante reduzido, mas, apesar disso, a linguagem extremamente flexvel e poderosa. A filosofia de C que desenvolvedor sabe exatamente o que quer e a maneira correta de instruir a linguagem e a mquina, para alcanar esses objetivos. Sua sintaxe sucinta e no restringe as maneiras como um resultado pode ser alcanado, permitindo ao desenvolvedor fazer praticamente o que quiser para alcanar esses resultados, com gerao mnima de cdigo e uso de memria, o que a torna uma linguagem muito mais rpida. S (2005)

2.3.6

Vantagens e Desvantagens da linguagem C

As razes para a popularidade da linguagem C em aplicaes embutidas so bem conhecidas: o acesso fcil ao hardware, os baixos requisitos de memria e elevado desempenho dos atuais compiladores facilitam o rpido desenvolvimento de aplicaes eficientes e de fcil manuteno. SOUZA (2003) Ainda segundo Souza (2003), igualmente bem conhecidas so as desvantagens da linguagem: sintaxe demasiadamente livre e propensa a erros difceis de detectar e demasiados pontos onde a norma ISO no define o comportamento da linguagem ou remete para a implementao de cada compilador.

2.3.7

Linguagens de Quarta Gerao Usualmente abreviada por 4GL. So linguagens de programao com estrutura

mais prxima da linguagem humana do que as linguagens de programao de alto

30

nvel. A maioria delas usada para acessar banco de dados, a SQL (Select Query Language) um bom exemplo dessa gerao. ICEA (2005) Um bom exemplo seria:

SELECT NOME MATRICULA FROM ALUNOS WHERE NOME = "Carlos" AND ESTADO IN (RJ, SP, MG)

Figura 3: Arquitetura das Linguagens de Programao.


Fonte: ICEA, 2005, EAD Modulo V Linguagens. Modificado por: Erick Barros Nascimento

2.3.8

Anlise e escolha da linguagem

Diante das informaes expostas nos subtpicos acima, a linguagem escolhida para dar continuidade no estudo da Aplicao da Programao de Microcontroladores 8051 ser a linguagem C. Porque alm de se tratar de uma linguagem de alto nvel, est em alta com o mercado dos Microcontroladores e a tendncia do mercado obrigar o encurtamento do tempo de desenvolvimento dos software e a produo de um cdigo que seja de fcil manuteno. As aplicaes em Assembly so mais usadas atualmente, quando requerem eficincia de cdigo e o tempo de resposta dos mesmos seja o alvo principal, no caso deste trabalho, o objetivo maior apenas explanar esses conceitos.

31

CAPTULO 3 MICROCONTROLADORES

32

3. MICROCONTROLADORES

Em 1969, uma empresa japonesa chamada Busicom iniciou um projeto de uma calculadora eletrnica. Esta empresa enviou para os Estados Unidos uma equipe de engenheiros responsveis pelo projeto procura de Marcian Hoff, da Intel Corporation. Marcian Hoff que j tinha experincia com computadores e vislumbrou de forma diferente aquele projeto. Ele pensou que ao invs de desenvolver um chip que somente seria uma calculadora, desenvolver algo que funcionasse como um programa. Aps a compra da licena da empresa japonesa, em 1971, a Intel lana seu primeiro processador de 4 bits, denominado 4004. Esse foi o primeiro processador de 4 bits e conseguia processar 6000 operaes por segundo (6kHz). J no prximo ano, mais precisamente em abril de 1972, a Intel anuncia seu primeiro processador de 8 bits, o 8008. Este processador alm de ter um barramento de dados maior, conseguia processar at 300000 operaes por segundo. (AMADEU SOUZA) Nesta mesma poca, j comeam a aparecer os primeiros concorrentes da Intel, sendo a primeira a Motorola Corporation . Ela lana o 6800. Um engenheiro da Motorola sai da empresa e entra para a MOS Technology que em 1975, lana o 6501 e o 6502 por um preo muito mais baixo do que os processadores da Intel e Motorola. Devido ao baixo custo dos 65xx, estes se tornaram rapidamente utilizados pelo mercado nos computadores da Apple, Comodore e at no Atari. Em 1976, a Zilog (empresa fundada por um engenheiro ex-Intel) lana o Z80, que era compatvel com o 8080 da Intel e apresentava inmeras vantagens frente a este. Alm de ser totalmente compatvel com o 8080, conseguia rodar programas j desenvolvidos para este processador com mais vantagens. No mesmo ano a Intel lanou o 8085, porm o Z80 ainda era superior devido sua relao RAM versus Circuitos, e registros internos novos, tornando-se padro no mercado dos processadores. (AMADEU SOUZA) Logo, segundo a enciclopdia On-Line, Wikipdia, a Intel em 1977 lanou o Microcontrolador 8051, que ficou conhecido por sua facilidade de programao em linguagem Assembly, graas ao seu poderoso conjunto de instrues. tido como o Microcontrolador mais popular do mundo, pois existem milhares de aplicaes para o mesmo, e existem pelo menos dois mil fabricantes produzindo variantes e clones do modelo. Atualmente possui diversos modelos clones sendo produzidos por empresas diversas Intel. Por ser um Microcontrolador CISC, oferece um conjunto de instrues muito vasto que

33

permite executar desde um simples programa que faz piscar um LED at um programa de controle de acesso controlado por rede.

3.1 O que so os Microcontroladores

Os Microcontroladores so chips altamente integrados que incluem, num nico chip, todas ou a maior parte dos elementos necessrios a um controlador. Eles podem ser definidos como uma soluo "de um nico chip". Tipicamente incluem: CPU, RAM,

EPROM/RAM/ROM, dispositivos de E/S e controladores de interrupes para interfaces paralelas e seriais. Por serem voltados para aplicaes especficas, seu custo relativamente baixo. Um Microcontrolador tpico tem instrues de manipulao de bits, acesso fcil e direto aos dispositivos de E/S e processamento eficiente de interrupes. Considerando a relao custo/benefcio, os Microcontroladores no so usados apenas em empresas de mdio/grande porte, tambm so utilizados em vrios projetos de eletrnica, na substituio componentes digitais, obtendo-se assim no final do projeto um melhor acabamento e um baixo custo, pois um Microcontrolador ocuparia um menor espao fsico e daria uma maior eficincia e praticidade, uma vez que todos os comandos a tarefa dedicada em si, so executados via software. MARINHO & MARINHO (2001) Como j dito no captulo 1, na dcada de 70 comearam a ser utilizados microprocessadores em computadores para dar uma maior eficincia no processamento dos dados. O microprocessador Intel foi um dos precursores, e partir da, houve uma preocupao em melhorar cada vez mais o sistema de processamento de dados atravs desses componentes. Baseado na arquitetura de um microprocessador e seus perifricos, foi criado um componente que (fisicamente em um chip de silcio) comportasse todo um sistema e fosse equivalente a um microprocessador e seus perifricos, assim surgiram os Microcontroladores. MARINHO & MARINHO (2001) Neste captulo, o Microcontrolador que ser abordado com mais detalhes ser o da famlia 8051. Este Microcontrolador largamente utilizado no Brasil e no mundo e est presente discretamente na vida dos seres humanos, sendo utilizado no cotidiano de tarefas

34

dirias tais como: Lavar roupas (maquinas de lavar), esquentar alimentos (forno microondas), trocar de canal na TV (controle remoto), etc.

3.2 Microcontroladores versus Microprocessadores

Os Microprocessadores so componentes dedicados ao processamento de informaes com capacidade de clculos matemticos e endereamento de memria externa. Utilizam barramentos de dados, controle e endereos para fazer acesso aos perifricos de entrada e sada, e conversor A/D para aquisio de dados analgicos de sensores e outros perifricos necessrios conforme aplicao do sistema. A vantagem dos Microprocessadores de uso geral que ainda possuem maior velocidade de processamento e so usados em solues mais complexas. (CHASE 2007)

Figura 4: Diferenas entre Microprocessador e Microcontrolador N de circuitos


Fonte: CHASE, 2007, Sistemas Embarcados, pg. 6

Segundo Chase (2007), os Microcontroladores englobam em um nico chip: interfaces de entrada/sada digitais e analgicas, perifricos importantes como a memria RAM, memria FLASH, interfaces de comunicao serial, conversores analgico-digitais e temporizadores/contadores. A vantagem dos Microcontroladores que alm de possuir os perifricos integrados a um nico chip, so responsveis por executar e armazenar os programas escritos para eles (firmware), assim como a capacidade de absorver mais funes com o incremento de

35

perifricos, atravs de CIs drivers, como comunicao USB, pilha do TCP/IP, comunicao Serial e porta PS/2. Com o advento dos Microcontroladores de 16 e 32 bits (atualmente o padro de 8bits) a capacidade de gerenciar solues mais complexas e maior velocidade de processamento se iguala em alguns casos, ao do microprocessador de uso geral. Com o estudo e avano da tecnologia, o crescimento e funcionalidade dos Microcontroladores se deve muito por conta dos microprocessadores de uso geral.

3.3 Arquitetura dos Microcontroladores


3.3.1 Unidade de Memria

A memria a parte do Microcontrolador cuja funo guardar os dados. Cada parte da memria de um Microcontrolador tem seu endereo de memria respectivo, de modo que se um endereo XXXX for solicitado seu contedo ser conhecido (READ) ou receber algum registro a ser armazenado (WRITE).

Figura 5: Modelo simplificado de uma unidade de memria de um Microcontrolador


Fonte: MATIC, 2003, The PIC Microcontroller. Modificado por: Erick Barros Nascimento

Segundo MATIC (2003), os componentes da memria so basicamente a mesma coisa. Dois conceitos bsicos so apresentados: endereamento e memria. A memria o conjunto de todos os locais de armazenamento de registros e endereamento a busca ou armazenamento de um registro gravado em um endereo de memria especfico. Isso significa que, se for pedido pelo software o valor de um determinado endereo de memria, esse valor

36

conhecido. Alm disso, tambm possvel escrever um registro nesse endereo de memria, isso feito atravs de linhas de controle que podem ser exemplificadas como no exemplo: utilizando a nomenclatura R/W (read/write ler/escrever), nos Microcontroladores usado o seguinte modo: se r/w = 1, executado uma operao de leitura, caso contrrio executada uma operao de escrita no endereo de memria. Adiante, mais especificamente sobre o Microcontrolador 8051, sero explanados os tipos de memrias existentes para Microcontroladores.

3.3.2

Unidade Central de Processamento CPU

Segundo Marinho & Marinho (2001), a Unidade Central de Processamento controla todas as funes do sistema. A CPU de qualquer sistema computacional contm os seguintes grupos de unidades funcionais: Registradores e Contadores: Os registradores e contadores so unidades funcionais usadas para o armazenamento temporrio de bits dentro da CPU; Unidade Lgica e Aritmtica ULA: A unidade lgica e aritmtica a unidade funcional da CPU que executa as funes lgicas e aritmticas entre palavras binrias, gerando uma outra palavra na sada; Unidade de controle e sincronizao: A unidade de controle e sincronizao coordena e controla todas as unidades funcionais em uma seqncia lgica e sincronizada.

A memria e a CPU esto interligadas, quando a CPU solicita um registro que est alocado em algum endereo de memria, utiliza-se um caminho para que esses dados sejam transferidos, seja de ida ou de volta dessas solicitaes de CPU. Esse caminho chamado de Barramento.

3.3.3

Barramentos

Esse caminho, por onde trafegam as informaes e interligam todos os componentes que formam um Microcontrolador, tambm chamado de bus. Existem trs tipos de bus:

37

O Barramento de Dados (Data Bus): transmite dados entre as unidades. Portanto, um microprocessador de 8 bits requer um barramento de dados de 8 linhas para transmitir dados de 8 bits em paralelo. Semelhantemente, um microprocessador de 64 bits necessita de um barramento de dados de 64 linhas para transmitir dados de 64 bits em paralelo. Se o barramento de dados para um microprocessador de 64 bits fosse formado por 8 linhas, seriam necessrias oito transmisses sucessivas, tornando o sistema mais lento. O Barramento de Dados bi-direcional, isto , pode transmitir em ambas as direes; NOBREGA FILHO (1999)

O Barramento de Endereo (Address Bus): usado para selecionar a origem ou destino de sinais transmitidos num dos outros barramentos ou numa de suas linhas. Ele conduz endereos. Uma funo tpica do Barramento de Endereo selecionar um registrador num dos dispositivos do sistema que usado como a fonte ou o destino do dado; NOBREGA FILHO (1999)

O Barramento de Controle (Control Bus): sincroniza as atividades do sistema. Ele conduz o status e a informao de controle de/para o Microprocessador. Para um Barramento de Controle ser formado, ao menos 10 (geralmente so mais) linhas de controle so necessrias. NOBREGA FILHO (1999)

Mas para os Microcontroladores apenas o barramento de endereos e de dados so mais utilizados. Segundo Nbrega Filho (1999), os Barramentos so implementados como linhas de comunicao reais. Eles podem ser posicionados como parte do circuito no prprio Chip (Barramentos internos) ou podem servir de comunicao externa entre os Chips (Barramentos externos). Os barramentos externos podem ser expandidos para facilitar a conexo de dispositivos especiais.

3.3.4

Unidade de Entradas e Sadas

A funo desta unidade consiste em poder ler (entrada) ou escrever (sada) um sinal digital (0 ou 1) em um pino de Microcontrolador. Apesar de parecer pouco, este recurso um dos mais importantes e mais utilizados.

38

comum os Microcontroladores oferecerem uma grande quantidade de entradas e sadas digitais. Mas nem todos os pinos podem ser utilizados para este fim; registradores de configurao permitem definir quais pinos sero usados para entrada, quais para sada e quais sero usados para outras funes. Logo, as entradas e sadas de um Microcontrolador podem ser classificadas como:

Entradas Digitais: Um sinal digital s l valores compreendidos entre 0 e 1, logo segundo Quadros (2008) um exemplo tpico do uso de entradas digitais para detectar se um boto est pressionado. Obviamente no lugar do boto pode-se ter qualquer tipo de sensor ou dispositivo com uma sada digital. Por exemplo, uma chave se fechando quando um im se aproxima. Prende-se o im em uma porta e a chave no batente, logo essa configurao torna um sensor que indica se a porta est aberta ou fechada.

Sadas Digitais: Ainda segundo Quadros (2008) um uso bsico de uma sada digital acionar um LED. A capacidade de acionamento de uma sada digital normalmente limitada; um transistor ou um rel pode ser utilizado para controlar cargas maiores. Desta forma uma sada digital pode controlar uma lmpada, um motor, uma sirene, etc. O software pode controlar mudanas rpidas e peridicas das sadas digitais. Por exemplo, podemos ligar um alto-falante (buzzer7) a um pino digital do Microcontrolador e gerar sons.

Entradas analgicas: Novamente segundo Quadros (2008) uma entrada analgica fornece um nmero que depende da tenso que est presente no pino correspondente. O numero de bits presente no nmero define a preciso da converso; valores tpicos esto correspondidos entre 8, 10, 12 e 16 bits. As aplicaes so as mais variadas, dentre as quais podemos citar:

Verificar o nvel da alimentao, para indicar bateria baixa; Verificar o nvel de sinal recebido, para circuitos com comunicao via rdio; Verificar o nvel de um aqurio, para avaliar se est cheio ou vazio; Verificar o pH da gua, para decidir se necessrio a adio de sulfato ferroso.

Buzzer: micro alto-falante que tambm usado em grande variedade de placas-me para gerar sons de bips sonoros

39

Nas entradas e sadas analgicas, comum que Microcontroladores utilizem conversores para transformar um sinal analgico em digital. E tambm a casos, que o Microcontrolador utilize apenas um conversor para todos os pinos. S que est prtica no muito aceitvel segundo Quadros (2008), porque consome muita energia e o tempo de converso um pouco demorado para um Microcontrolador. Uma alternativa bastante usada so os comparadores analgicos, onde o Microcontrolador indica somente se a tenso do pino maior ou menor que um valor (fixo) armazenado em uma varivel interna. Ideal para monitoramento de sobrecarga de motores, onde a funo principal alertar sobre a sobrecarga, insistindo a anomalia do motor desligado, evitando assim sua queima.

Sadas analgicas: Em uma sada analgica a tenso de um pino controlada escrevendo um valor em um registrador. Este tipo de recurso mais incomum.

Figura 6:Exemplo simplificado de uma unidade de E/S


Fonte: MATIC, Nebjosa, The PIC Microcontroller

3.3.5

Comunicao Serial dos Microcontroladores

Basicamente os Microcontroladores se comunicam da forma serial ou tecnicamente RS-232. Segundo Matic (2003) eles trabalham apenas com trs linhas onde uma usada para enviar dados, outra para receber esses dados e a terceira usada como referncia tanto do lado da entrada dos dados como na sada dos dados. Esse conjunto de regras forma o protocolo RS-232. O protocolo de comunicao deve ser bem definido de modo que no haja problemas entre as partes que esto a se comunicar, logo considerando que se tem uma unidade lgica de

40

valor 1 e que colocada na linha de transmisso at que a transmisso se inicie, assim que a transferncia se inicia, a unidade passa a ter valor lgico 0 durante um perodo T de tempo. Ento o lado da recepo fica a espera dos dados e um mecanismo de recepo entra em atividade. Essa troca de dados colocar os bits menos significativos e os mais significativos no mecanismo de recepo, permaneceram na linha de transmisso por um perodo T de tempo e aps a passagem do oitavo bit a comunicao se dar por encerrada e a unidade lgica recear o valor 1. A comunicao Serial RS-232 chamada serial devido os bits de dados se moverem bit a bit em srie, ao contrrio da transmisso em paralelo, que segundo Tugatronica (2007) a transmisso paralela precisa de vrios fios para transportar a informao. Esta informao pode ser enviada em palavras de 4, 8, 16, 32 ou 64 bits simultaneamente ao receptor por vrias vias, entre as quais pinos, fios ou outros meios fsicos.

Figura 7: Diferena entre a transmisso em srie com a transmisso em paralelo


Fonte: TUGATRONICA, http://www.tugatronica.com/introducao-a-porta-paralela/

3.3.6

CLOCK O relgio do Microcontrolador

O processador e vrios de seus perifricos necessitam de uma base de tempo (clock). Existem diversas formas de gerar o Clock, com preciso e custo diferenciados:

41

Cristal de quartzo: o mais preciso e est disponvel em uma faixa grande de valores. Por outro lado, o mais caro;

Ressonador: uma alternativa mais barata e menos precisa aos cristais; Circuito RC externo: pouco preciso, mais barato; Oscilador interno ao Microcontrolador: o mais barato (est embutido), mas no costuma ter muita preciso.

comum um Microcontrolador suportar vrias opes. Em alguns modelos possvel ter mais de uma fonte de clock, permitindo usar clocks diferentes para o processador e perifricos ou mesmo mudar dinamicamente o clock do processador conforme a tarefa requer velocidade ou economia. Quadros (2008)

3.3.7

TIMER O timer um perifrico bsico encontrado praticamente em todo Microcontrolador.

Na forma mais simples um contador que incrementado ou decrementado pelo clock; ao chegar a zero uma interrupo pode ser gerada. A partir desta interrupo o software gera as temporizaes necessrias. Por exemplo, considerando um Microcontrolador operando a 1MHz com um timer que interrompe o processador a cada 65536 ciclos do clock. Neste caso, o tempo entre as interrupes ser de 65536/1000000 = 65,535 milissegundos. A cada 15 interrupes teremos aproximadamente 1 segundo. Alguns timers permitem dividir o valor do clock antes do contador (til para clocks altos) e carregar automaticamente um valor inicial sempre que o clock der a volta (no exemplo anterior, se pudermos carregar 10000, o contador for decrementado a cada clock e interromper quando chegar zero, o Microcontrolador ter uma interrupo precisamente a cada 10 milissegundos). Um outro recurso disponvel em alguns timers a possibilidade de iniciar e parar a contagem por um sinal externo. Isto permite usar o timer para medir o tempo entre as variaes em um sinal digital. Quadros (2008) Logo, segundo Quadros (2008) a unidade bsica do temporizador um contador que na realidade um registro cujo contedo aumenta de uma unidade num intervalo de tempo fixo, assim, anotando o seu valor durante os instantes de tempo supostamente T1 e T2 e calculando a sua diferena, descoberta a quantidade de tempo decorrida.

42

3.3.8

WatchDog Co de Guarda

Segundo PHPH [20-], o Watchdog timer (WDT) tem uma funo muito importante no apenas contra bugs de software, mas tambm em situaes ambientais agressivas. O WDT oferece a possibilidade de restabelecer o controle da aplicao pelo Microcontrolador atravs da reinicializaro do sistema (um simples reset) mesmo que a falha esteja no prprio oscilador do Microcontrolador (o WDT possui clock independente atravs de um RC8 interno e, por isso, possui tempo de incremento constante). Esse insucesso do Microcontrolador de manter o fluxo do programa adequadamente pode ter vrias causas:

Condies Ambientais: que excedem os limites do Microcontrolador. Neste caso, o estouro do temporizador pode ocorrer aps um tempo maior do que o especificado pelo postscaler, este usado para prolongar um perodo de tempo que o temporizador pode gerar (alguns segundos), porque o hardware do Microcontrolador est exposto a uma condio que no tem garantia de funcionamento;

Instabilidade de alimentao do Microcontrolador; Falha no oscilador externo: A diferena do WDT em relao ao restante do sistema justamente o fato dele possuir um oscilador independente do clock principal;

Bug no cdigo do programa (um loop infinito, por exemplo). Embora o programa deva ser testado corretamente antes de coloc-lo em produo, o WDT proporciona uma opo de programao defensiva que deve ser utilizado em aplicaes crticas e mesmo em outras aplicaes triviais. Mesmo que a aplicao no tenha relevncia, ningum deseja ter o sistema travado inesperadamente durante longos perodos.

Portanto o WDT deve ser utilizado em qualquer tipo de aplicao. Essas so as caractersticas comuns a maioria dos Microcontroladores disponveis no mercado. E seu uso imprescindvel, quando se trata de automatizao que requer tempo para execuo de tarefas e reinicio do sistema microcontrolado.
8

Segundo Ramos (2009), slide 25: RC (Resistor Capacitor) que no requer componentes externos. Sob condies normais resseta o dispositivo no fim da contagem de tempo.

43

3.4 O Microcontrolador 8051

Segundo LEAL (2001, pag. 2), a famlia 8051 constituda por Microcontroladores robustos e flexveis para o uso de aplicaes de controle industrial e perifricos inteligentes. Suas caractersticas de hardware, arquitetura e novas instrues fazem dele um controlador de boa performance e de custo relativamente baixo para aplicaes que requerem at 64 Kbytes de memria de programa e 64 Kbytes de memria de dados. Basicamente existem trs verses (pino compatveis) desse componente, o 8031, 8051 e 8071, aos quais reduzem os problemas decorrentes de desenvolvimento ao mnimo e provm a mxima flexibilidade. Os Microcontroladores da famlia 8051 seguem a arquitetura de Von Neumann, que segundo Marinho & Marinho (2001), os barramentos de dados e endereos so compartilhados entre memrias de programa e memrias de dados na comunicao com a CPU (figura 8). Nesse tipo de arquitetura, quando a CPU est acessando a memria de programa no pode acessar a memria de dados, porque usam os mesmos barramentos para as duas memrias. Essa arquitetura denominadamente conhecida como: Complex Instruction Set Computer CISC ou Computador com Conjunto Complexo de Instrues. Ter em um Microcontrolador com uma arquitetura que pode possuir um vasto conjunto de instrues pode ser vantajoso no sentido de que se pode ter muitas instrues para execuo de vrias tarefas, mas pode no ser to vantajoso quando o conjunto de instrues passa a ser grande demais, porque vai afetar diretamente o desempenho do Microcontrolador, colocando em xeque aplicaes que requerem por exemplo, respostas em tempo real. Ao contrrio da arquitetura de Von Neumann comearam a surgir microcontroladores com a arquitetura de Harvard, que tambm conhecida por: Reduced Instruction Set Computer RISC ou Computador com um Conjunto Reduzido de Instrues, onde o acesso as memrias de dados e de programas podem ser feitos simultaneamente, contudo seu conjunto de instrues projetado para tarefas mais dedicadas possveis.

44

Figura 8: Exemplo da arquitetura de Von Neumann


Fonte: MARINHO & MARINHO 2001. Modificado por Erick Barros Nascimento

3.4.1

Arquitetura fsica dos Microcontroladores 8051

Segundo Zelenovsky & Marinho (2002), a arquitetura 8051 especifica os recursos que devero estar presentes nos Microcontroladores compatveis com esta famlia. Um ponto interessante nesta arquitetura que, ao contrrio de computadores de uso geral, essa arquitetura separa a memria de programa da memria de dados. Essa arrumao da memria em blocos distintos oferece maior versatilidade s aplicaes. A figura 9 apresenta um diagrama em blocos com a arquitetura 8051. Ainda segundo Zelenovsky & Marinho (2002), Microcontrolador 8051 est especificada uma CPU de 8 bits, para a qual j foi definido um conjunto mnimo de instrues. O contador de programa (PC) de 16 bits, o que permite at 64 KB de memria de programa. Um outro registrador de 16 bits usado para acessar a memria de dados, o que permite 64 KB de dados. Nota-se que existe a possibilidade da memria de programa (ROM 4KB) ser integrada junto com o chip do processador. A memria RAM interna tem 256 bytes e est dividida em dois blocos de 128 bits. O bloco inferior destina-se a trabalhar como uma

45

outra memria de dados, enquanto que o bloco superior est dedicado aos registradores especiais que controlam os diversos recursos do Microcontrolador. A arquitetura 8051 oferece quatro portas paralelas de 8 bits, denominadas de P0, P1, P2 e P3. Essas portas so bidirecionais e podem ser usadas para receber ou para gerar sinais digitais. Elas tambm podem ser acessadas bit a bit, ou seja, cada bit da porta pode ser programado como entrada ou como sada. Quando se usa memria externa ao Circuito Integrado CI, as portas P0 e P2 so consumidas na construo dos barramentos de endereos e dados. Para a gerao de pulsos com durao precisa ou para a medio de intervalos de tempo em sinais digitais, existem dois contadores e temporizadores de 16 bits, denominados de "Timers". O bloco denominado "Controlador de Interrupes" trabalha com cinco interrupes. Duas dessas interrupes podem ser pedidas externamente atravs dos pinos INT0 e INT1, sendo que outras duas interrupes podem ser provocadas pelos contadores e temporizadores. A quinta interrupo gerada pela porta serial. Esta arquitetura especifica uma porta serial capaz de atender aos requisitos mais usuais de comunicao, por isso a quantidade de bits e a velocidade programvel, e a porta serial gera uma interrupo tanto na transmisso quanto na recepo de um byte. ZELENOVSKY & MARINHO (2002)

Figura 9: Ncleo de um Microcontrolador da famlia 8051


Fonte: ZELENOVSKY & MARINHO. Modificado por Erick Barros Nascimento

46

3.4.2

Organizao da Pinagem dos Microcontroladores 8051

Os Microcontroladores 8051 so compostos de 40 pinos. A maioria desses pinos esto divididos em quatro partes que so chamadas de PORTS. Os Ports ou Portas so os um conjunto de 8 pinos dos Microcontroladores e dependendo do Port seja ele P0, P1, P2 e P3, tero funes de E/S, uso da RAM/ROM, alimentao do Chip, etc. Compem-se os Ports, 32 pinos, os outros 8 pinos restantes so para funes especificas, tais como: Reset do sistema, Alimentao VCC (alimentao eltrica), ALE (pino de demultiplexao), VSS (terra), etc.

3.4.2.1 Port P0 Segundo Nicolosi (2001), O port P0(decrementado de pino 39 a 32) um port de propsito geral desde que no se utilize de memria RAM, ROM ou EPROM internas do chip. Isso porque o P0 um port que serve de via multiplexada de tempos em tempos entre dados e endereos quando se usa memria externa. Na mesma via num dado tempo esto trafegando dados, e em outro dado tempo esto trafegando endereos, justificando assim sua arquitetura baseada em Von Neumann. Os pinos que compem o port P0 so os que decrementam de 39 a 32, onde o pino 39 corresponde ao por P0.0 e o pino 32 o port P0.7.

47

Ainda segundo Nicolosi (2001), utilizando-se de um pino chamado de ALE (Address Latch Enable), que se esse pino do 8051 for ligado a um chip de latch, possivel demultiplexar externamente as vias de dados e endereo, isto , o programador no precisa se preocupar com uma determinada implementao que venha a fazer, no sentido que ocupar em um determinado tempo a via de dados onde deveria passar endereos, porque um chip de latch ligado ao pino ALE, voc ter separado 8 via com endereos para dados e 8 vias de endereos para trafegar endereos.

Figura 10: Demultiplexao de dados e endereos usando o port P0


Fonte: Microcontrolador 8051: Detalhado, pag. 77. Modificado por Erick Barros Nascimento

3.4.2.2 Ports uso geral para E/S e uso das memrias internas e externas-P1,P2,P3

Port P1 (pino 1 ao 8): Port de propsito geral como E/S, usando oito vias de comunicao. Via software, eu posso ler ou escrever nesse port. Em alguns modelos de Microcontroladores mais avanados, caso utilize Timers consecutivos pode-se ocupar 2 pinos do referido Port, por exemplo, se o port P1.0 ocupado com Timer, os pinos P1.1 e P1.2 tambm sero ocupados para realizao da tarefa.

Port P2 (pino 21 ao 28): Port de uso geral, caso no use memrias RAM/ROM/EPROM, externas ao chip. Em outras verses de Microcontroladores os pinos do Port P2 so utilizados para enderear RAM/ROM/EPROM externas ao chip.

Port P3 (pino 10 ao 17): Port de propsito geral como E/S, isso se no for utilizado nenhum perifrico externo ao chip, nenhuma interrupo externa e tambm se no utilizar

48

RAM externa. Esse port utilizado entre os perifricos internos do chip para fora do mesmo, alm de ter entradas programveis, como interrupo e di pinos que gerencia a memria RAM externa (pinos de READ RD e Write WR). Logo, esse port tambm, em geral, comprometido parcialmente com alguma utilizao que se deseja dos perifricos internos, interrupes, etc. Ento se o programador no utiliza algum desses pinos com propsito especifico eles estaro livres para serem utilizados como pinos de E/S geral.

Figura 11: Comprometimento do Port P3 sendo utilizado para funes especiais


Fonte: Microcontrolador 8051: Detalhado, pag. 78. Modificado por Erick Barros Nascimento

Nome P3.0 P3.1 P3.2

Numero do Pino* 10 11 12

Funo especial** RXD TXD INT 0

Funo Normal E/S E/S E/S

Funo especial RXD, Receive data TXD, Transmit data Eternal interrupt 0

Comentrios da funo especial Usado como recepto de dados serial Usado como transmissor de dados serial Usado para algum evento externo do tipo interromper do Microcontrolador Usado para outro evento externo do tipo interromper do Microcontrolador Usado quando se quer que o timer zero se torne um contador de eventos externos Usado quando se quer que o timer um se torne um contador de eventos externos Usado quando se conecta a RAM externa no chip. Sinaliza que o microprocessador vai escrever na RAM Usado quando se conecta a RAM externa no chip. Sinaliza que o microprocessador vai ler na RAM

P3.3

13

INT 1

E/S

External interrupt 1 Timer/Counter 0: External input Timer/Counter 1: External input External data: Memory Write strobe

P3.4

14

T0

E/S

P3.5

15

T1

E/S

P3.6

16

WR

E/S

P3.7

17

RD

E/S

External data: Memory Read strobe

49

* Observao 1: Os nmeros dos pinos so referentes pastilha de 40 pinos (DIP). ** Obeservao 2: Estas configuraes devem ser programadas no chip para ativ-las.

Tabela 1: Resumo das Funes especiais do Port P3


Fonte: Microcontrolador 8051: Detalhado, pag. 78. Modificado por Erick Barros Nascimento

PSEN - Program Store Enable (pino 29): um dos quatro pinos de controle do chip. Ele aciona a ROM/EPROM externa (chamada memria de cdigo) quando o

Microcontrolador vai fazer uma busca de instruo na ROM, para, em seguida, execut-la. Tambm acionado (sempre automaticamente) quando se faz uma consulta em alguma tabela fixa, gravada na ROM, por meio de uma instruo especial para isto. Esse pino tambm possui a caracterstica de ser ativo quando seu valor lgico se encontra em 0, assim como os pinos de caractersticas especiais INT 0, INT 1, WR e RD.

ALE Address Latch Enable (pino 30): Pino que comanda a demultiplexao das informaes de dados e endereos do port P0 e automaticamente gerado pelo Microcontrolador.

EA External Access (pino 31): um pino de comando externo, que determina se vamos usar ROM/EPROM interna do chip ou se vamos ler somente uma ROM /EPROM externa ao chip. Se o pino EA estiver setado com valor lgico em 1, o chip ir ler sua ROM/EPROM interna, e aps acabar todo espao de memria interna, ir trabalhar automaticamente com a ROM/EPROM externa, caso ela exista. Com o pino EA setado para valor lgico 0, enxergar somente ROM/EPROM externa.

Figura 12:Organizao de ROM interna/externa em funo do valor lgico do pino EA


Fonte: Microcontrolador 8051: Detalhado, pag. 80. Modificado por Erick Barros Nascimento

50

RST Resest (pino 9): o disparador do chip quando se quer iniciar adequadamente sua funo. Ele organiza os valores internos do chip para iniciar o trabalho adequadamente e sempre da mesma maneira (Watchdog). Deve-se ter um circuito no referido pino para que no ligamento do chip em +Vcc de 5 volts, o RST fique ao menos dois ciclos de mquina no estado 1 ou High, porque assim se ter a garantia que o sistema iniciou corretamente. Tambm ideal que o circuito tenha um reset forado por chave.

Figura 13: Esquema de circuito com Reset automtico e Reset forado


Fonte: Microcontrolador 8051: Detalhado, pag. 104. Modificado por Erick Barros Nascimento

XTAL1 e XTAL2 Cristal/Oscilador (pinos 18 e 19): Os Microcontroladores 8051 possuem um sistema de oscilao interna que s exige do exterior o cristal e dois capacitores para gerar o oscilao, que se tornar o clock ou padro de tempo para o Microcontrolador trabalhar.

VCC e VSS Alimentao eltrica do chip: por onde se alimenta o chip: +5Vdc em Vcc, pino 40 e terra em Vss no pino 20.

Em placas programadoras que j vem prontas de fabrica, essas ligaes j esto prontas, cabendo apenas a quem vai implementar software para esse tipo de Microcontrolador saber oper-la. A exemplo o KIT 8051LS oferecido pela Microgenios Solues Eletrnicas Ltda.

51

3.4.3

Fabricantes do Microcontrolador 8051

Segundo Zelenovsky & Mendona (2002), so diversos os diversos fabricantes da arquitetura 8051 e eles adicionam recursos extras, tais como conversores A/D e D/A, geradores PWM, modos de baixo consumo e at relgio permanente, de acordo com o mercado a que se dedicam. Esses recursos todos so mapeados e controlados atravs de registradores na poro superior da RAM Interna. O projeto original especifica que este processador deveria trabalhar com um relgio de 12 MHz. Entretanto, hoje em dia j se oferece 8051 operando a 60 MHz, onde a maioria desses dispe da arquitetura ISAC. Logo, e ainda segundo Zelenovsky & Mendona (2002), devido sua grande aceitao, a famlia dos Microcontroladores 8051 passou a ser produzida por outros fabricantes e, claro, cada um deles introduziu inovaes, tais como: Interface serial (para comunicao com PCs), Vigilncia de alimentao, protocolos de comunicao IC e CANBus, etc. Por isso, atualmente a famlia 8051 uma das famlias de Microcontroladores que oferece uma boa variedade de opes. Outra vantagem desta famlia o fato da independncia de um nico fabricante, pois existem grandes empresas fabricantes de produtos eletrnicos que produzem chips desta famlia, como por exemplo, a Philips, a Maxim-Dallas, a Atmel e a Analog-Devices.

Fabricante Intel Philips Philips Philips Philips Atmel Atmel Atmel Dallas

Microcontrolador 87C51-24 P80C31 P87C51 P87C51MB2 P80C552 AT87F51 AT87F51RC AT89C5115 DS87C550

Relgio 24 MHz 12 MHz 12 MHz 24 MHz 24 MHz 24 MHz 24 MHz 40 MHz 33 MHz

RAM 256 128 B 128 2 KB 256 128 512 512 1 KB

ROM 4K no 4 KB 4 KB no 4 KB 32 KB 18 KB 8 KB

Serial 1 1 1 1 2 1 1 1 2

Timer 2 3 3 4 3 2 3 3 3

AD no no no no 8/10 bits no no 8/10 bits 8/10 bits

Tabela 2: Grandes fabricantes e principais informaes sobre suas caractersticas


Fonte: ZELENOVSKY & MENDONA (2002). Pag. 3, Modificado por Erick Barros Nascimento

52

3.4.4

Microcontroladores 8051 mais potentes Arquitetura ISAC

A Analog Devices vem oferecendo microconversores baseados na arquitetura 8051. Um Microconversor um Microcontrolador projetado para controle de processos e que, para isso, conta com conversores AD e DA de alto desempenho, aliado a grandes quantidades de memria Flash. O primeiro chamou-se ADuC812 e foi lanado em 1999. Normalmente, esses chips trazem conversores AD de 12, 16 ou 24 bits multiplexados em 8 canais. Essa quantidade de bits permite uma relao sinal-rudo perto de 70 dB. Usualmente, os dois conversores DA so de 12 bits. Alm disso, para garantir preciso nas converses, existe um circuito que oferece referncia interna de 2,5V e um sensor de temperatura. Para fornecer alguns dados mais tcnicos, os conversores AD podem trabalhar na taxa de 20 mil converses por segundo e ainda tm capacidade de fazer transferncia via DMA. O DMA importante para permitir que o conversor trabalhe velocidade plena sem consumir recurso do processador. ZELENOVSKY & MENDONA (2002) A memria flash pode ter 64 KB destinados para programa e 4 KB para dados. Existe ainda um circuito para carregamento de programas que via porta serial faz a gravao na memria flash. Assim, no so necessrios recursos externos para a gravao desta memria. Tambm existem verses com memria de dados flash, o que interessante para gravar dados que sero mantidos mesmo na ausncia de alimentao. A memria de dados externa pode chegar a at 16 MB, quantidade mais que suficiente para qualquer aplicao de microconversores. Dependendo da verso, esses microconversores podem trazer outros recursos tais como co de guarda, vigia para tenso de alimentao, interface serial, porta USB, I2C e barramento CAN. Como j foi citado, co de guarda Watchdog, um circuito que periodicamente verifica o funcionamento do processador e, caso este fique preso em um lao infinito, provoca o reset, obrigando assim o reincio do programa. A vigia de alimentao monitora a tenso de entrada do processador e alerta quando esta atinge um certo limite inferior, antecipando-se a uma falta de alimentao e dando tempo ao processador para guardar na memria flash os dados essenciais. ZELENOVSKY & MENDONA (2002) Logo, a utilizao e o estudo de modernas tecnologias prev Microcontroladores operando sob clocks cada vez mais rpidos, atingindo em um nico chip, clock de mquina que era possvel se ver nos antigos computadores de uso geral, que tinham clocks de 33 Mhz, 66 Mhz e foram e foram evoluindo com o passar do tempo.

53

CAPTULO 4 FERRAMENTAS DE PROGRAMAO

54

4. FERRAMENTAS DE PROGRAMAO PARA 8051


Segundo Danilo Oliveira (2009), mais do que correto afirmar que software um termo que j est integrado ao vocabulrio universal, apesar de no poder ser definido por boa parte dos indivduos que fazem uso do mesmo. At dez anos atrs, Microcontrolador era uma novidade no mercado da eletrnica, que at ento era inundado de portas lgicas, o que fazia do tamanho de um circuito proporcional sua complexidade. Programar um Microcontrolador era privilgio de raros profissionais. Alm da linguagem de programao, o desenvolvedor de sistemas para Microcontroladores deve possuir conhecimento acerca dos registradores internos quando no puder contar com guias de consulta, alm de se fazer necessrio uma noo, no mnimo, bsica de eletrnica. Novamente segundo Danilo Oliveira (2009), grandes empresas como a Microchip, obtiveram grandes resultados ao dar nfase na elaborao de softwares em Assembly para seus Microcontroladores, inicialmente algumas verses de Microcontroladores PIC, utilizando-se de uma ferramenta de desenvolvimento integrado chamada de MPLab. Para favorecer o trabalho de programadores de linguagem C, uma empresa chamada Construction Computer Software - CCS lanou um compilador C para Microcontroladores PIC, chamado PICC, acelerando ainda mais sua expanso no mercado. Entretanto, assim como no mundo dos computadores de uso geral, grande parte dessas ferramentas de programao so proprietrias, tanto software de ambiente de

desenvolvimento integrado, como software de compilao, software de simulao e software de gravao dos programas desenvolvidos. Porque estes software que so projetados para a grande imensido dos Microcontroladores, afinal, precisam ser gravados nos mesmos. Logo at bem pouco atrs, encontrar ferramentas gratuitas para realizar estas tarefas era praticamente impossvel, at pelo fato da no portabilidade existente de um chip para o outro, empresas acabaram por desenvolver seus ambientes de programao, afim de que os mesmos s funcionem nos seus equipamentos. Muitos desenvolvedores optaram por utilizar Microcontroladores da Microhip, mesmo com seus altos custos de aquisio, devido disponibilizao de ferramentas de desenvolvimento integrado prprios para seu chip. A empresa Atmel, que desenvolveu chips de baixo custo e grande desempenho, em determinado momento teve seus chips um tanto desprezados, porque os desenvolvedores no conseguiam encontrar ferramentas de programao para os seus chips, principalmente para os modelos 8051. Mas o fato que: com

55

o crescente e constante avano dos software livres e/ou de cdigo aberto acabaram atingindo de forma bastante positiva o universo dos Microcontroladores. Ambientes de

desenvolvimento integrado capazes de realizar integraes com outros sistemas de Microcontroladores, bastando apenas adio de plugins e download de atualizaes para possibilitar essa integrao, elevou consideravelmente o desenvolvimento de software para Microcontroladores. Aliado a todos esses aspectos de desenvolvimento e de ambientes integrados de desenvolvimento, tambm esto os Kits de Desenvolvimento, esses Kits so excelentes fermentas para desenvolvimento de software microcontrolados, a exemplo o kit8051LS da Microgenios, esse mesmo projetado para a famlia dos Microcontroladores 8051. Essas ferramentas j dispem de grande parte do que necessrio para o desenvolvimento e testes de aplicaes para um Microcontrolador, vem equipados com placas controladoras, o prprio Microcontrolador, portas de expanso, displays de LCD, etc. Assim tendo todo esse conjunto de ferramentas e como hoje em dia, o estado da arte de eletrnica, ainda est carente do profissional desenvolvedor de software para Microcontroladores. Isso porque em alguns casos, quando se tem um desenvolvedor que implementa em linguagem C perfeitamente para computadores pessoais, s vezes, pelo fato de desconhecer a eletrnica, fica mais complicado desenvolver os mesmos software, com a mesma linguagem para os chips, ento utilizando-se de Kit de desenvolvimento e ambientes de desenvolvimento integrado ao alcance de todos, novos profissionais nasceram para o universo da Automao Industrial.

4.1 Software de Desenvolvimento para Microcontroladores


4.1.1 Eclipse

Eclipse uma IDE, do ingls Integrade Development Evironment (Ambiente de desenvolvimento integrado), ou seja, uma plataforma de desenvolvimento de software composta por: editor, compilador, linker, depurador, suporte integrao com outros software, entre outras ferramentas. O Eclipse tem tido grande repercusso e uso porque trata-se de um projeto open source, logo no necessrio pagar licena de uso; outra caracterstica importante sua capacidade de trabalhar com linguagens de programao diferentes (Java, C, C++, por

56

exemplo) e suas aplicaes, alm de trabalhar com linguagens de quarta gerao (SQL) utilizando-se do plugin QuantumDB. Como j dito, o Eclipse um Framework para integrar diferentes tipos de aplicaes. Uma das suas aplicaes a CDT C/C++ Development Tooling , diferentemente da JDT Java Development Tooling, a qual j vem com o Eclipse. Para Microcontroladores 8051, utiliza-se as aplicaes CDT, porque a implementao que ser utilizada para o Microcontrolador 8051 ser com a linguagem C. Essas aplicaes so oferecidas em forma de plugins e automaticamente se integram a plataforma. Tendo seus prprios recursos para gerenciamento de mecanismo, que so geralmente arquivos no disco rgido dos computadores de uso geral. Eles residem no seu workspace, uma pasta especial localizada no seu sistema de arquivos. As aplicaes instaladas comunicam-se entre si, com isso, se uma aplicao altera um recurso qualquer, todas as outras aplicaes instaladas sero notificadas sobre essa mudana, garantindo uma consistncia e integrao em todo o seu ambiente de desenvolvimento. O projeto CDT prov um conjunto de plugins que implementa uma IDE de C/C++. Ele adiciona uma perspectiva C/C++ ao Workbench do Eclipse, que suporta desenvolvimento C/C++ com vrios views, wizards, um editor, e um depurador. O CDT foi desenvolvido para prover uma arquitetura extensvel, que dar suporte a integrao de ferramentas desenvolvidas por distribuidores de software independentes. Perspectiva quer dizer qual configurao e ajuste o usurio far no Eclipse para utilizar a linguagem de programao desejada, por exemplo: o usurio pode atravs de plugins, ter o mesmo Eclipse para desenvolver em C ou Java, bastando apenas adio dos mesmos nos lugares corretos. Outra curiosidade o Workbench, que a parte visual do Eclipse, onde o usurio trabalha. Se o usurio escolhe uma perspectiva para trabalhar com Java, o Workbench ajusta sua interface visual e suas barras de ferramentas para aquela perspectiva.

Figura 14: Eclipse com perspectiva para C/C++


Fonte: NASCIMENTO, E. B.2009 , Aplicao da programao de Microcontroladores.

57

Figura 15: Perspectiva ajustada para Java e QuantumDB


Fonte: NASCIMENTO, E. B.2009 , Aplicao da programao de Microcontroladores.

O que torna o Eclipse uma IDE especial, a extrema flexibilidade na qual podem ser combinadas views e editores. Dessa forma o workbench pode ser arrumado de uma forma livre e que melhor adapte o desenvolvedor. As views e editores podem ser adicionados em uma perspectiva aberta (mesmo se eles foram definidos em um plugin totalmente diferente). Portanto possvel ter a total liberdade para criar o ambiente de desenvolvimento que melhor agrade ao desenvolvedor, de uma forma agradvel e customizada. Existem inmeras verses do Eclipse, inclusive pacotes de instalao para ambientes Windows e Linux pr-configuradas j para o propsito do desenvolvedor, nesse trabalho ser usado a verso Eclipse Europa 3.3.0. Existem outras tais como: Eclipse 32, Ganymede, Europa fall, etc., e pacotes prontos para PHP, Mbile, entre outros.

4.1.2 Small Device C Compiler SDCC

O compilador C para pequenos dispositivos SDCC, um otimizador do compilador ANSI C que permite trabalhar com Microcontroladores Intel 8051, Maxim 80DS390, Zilog Z80, Atmel AT89S8252 e Motorola 68HC08, ambos baseados em MCUs

(Microcontroladores de consumo ultra baixo). Como no Eclipse, tambm um projeto open source, distribudo sob a Licena Geral Publica (GPL General Public License) da GNU. Com uso de plugins possvel integr-lo ao Eclipse e compilar software escritos no mesmo. O seu analisador sinttico (parser), segundo ROZA;BRUM & Silva (2001), pode ser incrementador para manipular extenses de linguagem para outros tipos de

microprocessadores. O SDCC possui ainda eliminao internar de sub-expresses,

58

implementao de copy-propagation, que segundo a enciclopdia on-line Wikipdia, o processo de substituio das ocorrncias de metas de trabalhos diretos com seus valores. A atribuio direta uma instruo da forma y = x, que simplesmente atribui o valor de x para y. O SDCC tambm possui otimizao de loop e eliminao de cdigo morto. J o seu back-end utiliza um esquema de alocao global de registradores, que pode ser configurado para outros processadores de 8 bits. Este sistema de alocao de registradores faz parte da otimizao realizada por este compilador. Ainda segundo ROZA;BRUM & Silva (2001), o otimizador trabalha com regra baseada em um mecanismo de substituio de registradores. Esta otimizao ocorre durante o processo de compilao, depois da gerao da linguagem intermediria, fazendo com que a otimizao seja independente do tipo de microprocessador para qual se deseja gerar o cdigo.

Tipo de Varivel SHORT CHAR INT LONG FLOAT

Qtd de bits / bytes 8 8 16 32

Qtd de Bytes 1 1 2 4

4 bytes IEEE 754 em preciso simples Tabela 3:Tipos de variveis contempladas pelo SDCC
Fonte: ROZA; BRUM & Silva, 2001, pag. 11. Modificado por Erick Barros Nascimento

As ferramentas ASXXXX (montador), ASLINK (linker) e SDCDB (debugador) so parte do compilador SDCC. As plataformas suportadas pelo SDCC so Linux / Unix e Windows. ROZA; BRUM & SILVA (2001) A verso do SDCC que esta sendo utilizada neste trabalho 2.9.0. Vale ressaltar que existe pouca documentao para esse software, mais para o desenvolvimento deste trabalho as informaes so suficientes.

4.1.3 PDS 52

O PDS-52 um Simuldor e Debugger para microcontroladores 8051. Como o SDCC tambm pode ser integrado ao Eclipse, pode-se fazer a simulao dos software desenvolvidos

59

no utilizando o Eclipse, bem como a debugao caso haja algum hardware especifico conectado no PC. O PDS-52 no um projeto open source, mais um software livre para download caso seja utilizado para fins no comerciais. Caso o usurio deseje utilizado para fins comerciais, dever notificar a empresa mantenedora do software.

Figura 16: Simulao de contagem binria de 8 bits e gravao no PORT P2.


Fonte: NASCIMENTO, E. B.2009 , Aplicao da programao de Microcontroladores.

A figura acima mostra o PDS-52 em tempo de execuo de simulao de um Microcontrolador Atmel AT89S52, com clock configurado para 20 Mhz, dentre as quais so mostrados algumas peculiaridades da compilao feita pelo SDCC. Logo abaixo temos:

1. Janela do source: Exibe o cdigo em C (apesar da possibilidade de alterao desse cdigo dentro do prprio PDS-52, no aconselhvel, porque pode haver conflito com as verses dos source files gerados dentro do Eclipse, que esto armazenados no workspace do mesmo;

2. Janela Disassembler: Apresenta o arquivo Assembly gerado pelo SDCC a partir do arquivo escrito na linguagem C;

60

3. Janela Execution Time: Apresenta o clock do Microcontrolador durante a simulao;

4. Janela Peripherals: Exibe o dispositivo que se deseja anlise na simulao, pode ser exibido todos os Ports, todos os Timers, etc., no caso da figura 16, esto sendo mostrado o armazenamento da contagem de 8 bits no Port P2.

Existem inmeras funes de analise de software neste simulador, como execuo passo a passo, etc.

4.1.4 SPI Flash Programmer

O SPI Flash Programmer um software de gravao prprio para Microcontroladores da Atmel. Ele foi desenvolvido pelo Professor Mohammad Asim Khan, da Escola Universitria de Medicina, Diviso de Reumatologia, na cidade de Cleveland, Ohio. Trata-se de uma distribuio gratuita para uso independente do fim, apenas para transferncia do arquivo *.HEX gerado pelo compilador utilizado (neste caso SDCC), do PC ou Notebook para o Kit de programao atravs da porta paralela (LPT1). O SPI Flash Programmer compatvel com os Microcontroladores Atmel modelo, AT89S51, AT89S52, AT89S53, AT89S8252 e AT89S8253, entre outros da famlia 8051 da Atmel.

Figura 17: Tela Principal do SPI-Flash Programmer


Fonte: NASCIMENTO, E. B.2009 , Aplicao da programao de Microcontroladores.

61

Sua tela principal composta de onze botes para tratamento de arquivos *.HEX, upload do software gravado no chip. Possuem 3 radios buttons para funes de proteo do software que esta sendo gravado no chip e um combobox para escolha do Microcontrolador que ser efetuado a gravao do software. Os detalhes das funes de cada um sero descritos abaixo:

1. READ: Efetua a leitura do programa gravado no Microcontrolador. Seu contedo salvo no buffer do programa;

2. PROGRAM: Efetua a gravao no KIT de programao;

3. ERASE: Apaga o programa que est gravado no Microcontrolador;

4. BLANK CHK: Informa se o Microcontrolador est apagado;

5. OPENFILE: Carrega no SPI o programa que ser levado para o Microcontrolador;

6. DISP_BUFFER: Buffer com o mapa Hexadecimal do programa;

7. VERIFY: Verifica se o programa salvo na memria do Microcontrolador igual aos dados carregados no buffer de memria do SPI Flsh Programmer, byte a byte;

8. WRITE LBS: Acione os Lock-Bits no Microcontrolador;

9. SIGNATURE: Verifica o modelo do Microcontrolador;

10. RESET CHIP: Reseta o Microcontrolador, sem a necessidade de pressionamento do boto no mesmo;

11. RELOAD_FILE: Recarrega o programa no buffer de memria do SPI Flash Programmer.

62

4.1.4.1 Os lock-bits

So bits de proteo no Microcontrolador disponibilizados pelo fabricante para evitar que outras pessoas, mal intencionadas, copiem o programa salvo na memria do Microcontrolador e os reproduza ou venha a modific-los. Existem 3 nveis de proteo disponveis no SPI Flash Programmer:

1. Lock-Bit-1: Desabilita o uso de instrues MOVC (Assembly) executadas em memria externa para ler bytes da memria interna, e desabilita gravao da memria interna;

2. Lock-Bit-2: Contm todas as funes do Lock-Bit-1, e tambm desabilita a memria de programa interna;

3. Lock-Bit-3: Contm todas as funes do Lock-Bit-2, e tambm desabilita a execuo de programas em memria externa.

Para acionar os Lock-Bits, basta acionar a proteo desejada (podem ser acionadas mais do que uma proteo) e pressionar o boto WRITE_LSB no SPI Flash Programmer, ou antes de gravar o Microcontrolador atravs da funo PROGRAM, acionar os Lock-Bits.

4.2 KIT de Programao 8051LS

Ser utilizado um KIT8051LS da marca Microgenios. Este Kit uma tima ferramenta para desenvolvimento de projetos microcontrolados na rea da Eletrnica e Informtica baseada na famlia 8051. O KIT8051LS composto por:

1 placa controladora 8051LS; 1 Microcontrolador AT90S52 (100% compatvel com a famlia 8051); 1 Modulo LCD 16X2 com BackLight (LCD Padro 44780A); 1 Fonte de alimentao 9V / 300mA 110/220V; 1 cabo de gravao kit-pc.

63

4.2.1 O KIT8051LS

Vem com o Microcontrolador AT89S52 da Atmel, e tem como principais caractersticas:

Compatibilidade de 100% com a famlia 8051; 8 kbytes de memria flash (memria de programa); 256 bytes de memria RAM (memria de dados); 32 portas de entrada e sada; Modo de programao serial ISP (In-system Programmable).

Desenvolvido especialmente para estudantes e profissionais da rea de Eletrnica e Tecnologia da Informao, que se interessem na programao, automao e controle de equipamentos. Com um KIT8051LS ser permitido:

Gravao do KIT utilizando a porta paralela do computador de uso geral; Desenvolvimento de software embarcado com a utilizao das linguagens Assembly, C e Basic;

Armazenamento do software em memria flash, evitando a perda do programa em caso de falta de energia no Microcontrolador;

Utilizao do KIT como terminal RS232 conectado a um PC.

64

Figura 18: KIT8051LS em funcionamento


Fonte: NASCIMENTO, E. B.2009 , Aplicao da programao de Microcontroladores.

4.2.2 Os seus componentes

O KIT8051LS possui diversas ferramentas que tornaram mais fcil o desenvolvimento dos projetos devido em uma nica pea j se encontrar montado: Teclado com 8 teclas do tipo push-botton; Barramento com 8 LEDS coloridos; Teclas de contadores e de interrupes; Display de LCD 16X2 com backlight; Cristal de 11,05920 Mhz; Canal serial RS232.

As ilustraes abaixo detalharam visualmente cada parte do KIT 8051LS.

1. A conexo do LCD de fcil instalao e remoo, eliminando o uso de solda e fios. Neste tipo de KIT, a conexo para o LCD ainda vem com potencimetro de ajuste de contraste da luminosidade do LCD. Este conector est ligado ao barramento de 8 bits P1 do Microcontrolador.

65

Figura 19: Conexo do LCD e Potencimetro


Fonte: NASCIMENTO, E. B.2009 , Aplicao da programao de Microcontroladores.

2. Porta de expanso, permite que voc expanda seus projetos utilizando um conector de 10 vias conectando outros perifricos para o KIT. A exemplo: uma placa controladora de drives para motores de passo.

Figura 20: Porta de expanso ligada ao Port P3 Fonte: NASCIMENTO, E. B.2009 , Aplicao da programao de Microcontroladores.

3. Barramento com 8 LEDs (indicador lgico), sendo fundamental para fixar a teoria doe Microcontroladores 8051, assim como testar a programao visualmente. Os LEDs esto ligados no Port P2 do Microcontrolador.

Figura 21: Barramento com 8 LED's


Fonte: Microgenios. Manual de operao pag. 04

66

4. Possui teclado com 8 botes do tipo push-button para desenvolver aplicaes de starup de equipamentos, bem como mais 4 botes tambm do tipo push-button para utilizao das interrupes de dos contadores atravs das teclas (INT0, INT1, T0, T1). Sendo de grande utilidade na simulao de eventos externos, tais como: sensores e contadores.

Figura 22: Teclados tipo push


Fonte: NASCIMENTO, E. B.2009 , Aplicao da programao de Microcontroladores.

5. Placa com conector de alimentao do tipo P4. Possui circuito de proteo que evita a queima caso haja inverso de polaridade na alimentao. Utiliza regulador de tenso com dissipador que permite fonte de 9V, 12V ou 15V DC / 300mA. Essa placa tambm possui entradas de comunicao serial atravs do protocolo RS232 (comunicao com computadores), para desenvolver aplicaes utilizando teclados alfanumricos e gravao do chip atravs da porta paralela do PC.

Figura 23: Conector da alimentao e Porta serial


Fonte: Microgenios. Manual de operao pag. 04

67

6. Microcontrolador Atmel AT89S52, 12 Mhz de clock, memria RAM/ROM, 32 portas de entrada e sada. O KIT8051LS compatvel com toda a famlia 8051 e tambm grava e roda nos modelos AT89S51, AT89S53, AT90S8252 e AT90C51/52/53, sendo esses ltimos requerentes de programao externa.

Figura 24: Microcontrolador AT89S8252 Fonte: Microgenios. Manual de operao pag. 04

4.3 Prottipo de teste do Microcontrolador 8051


No meio industrial e de saneamento, a instalao de motores eltricos significa levar o seu produto as casas dos clientes para poder gerar as contas de gua, conseqentemente os clientes efetuarem o pagamento trazendo o lucro para a empresa. Porque de outra forma, como a gua chegaria nas caixas dgua e reservatrios. No entanto, segundo Tecnologia e Eletrnica (1998), quando esses motores que movimentam as bombas de gua so mal instalados, significa dor de cabea, interrupo na produo, manuteno constante, queimas de componentes de proteo e comando, trazendo prejuzos financeiros e possibilidade de acidentes com pessoas. Vrios so os passos que devem ser seguidos para que uma empresa no tenha problemas com seus motores. O primeiro passo a sua escolha correta, tais como: definio da potncia necessria, em cv; escolha da marca e fabricante; se o motor deve ser monofsico ou trifsico; assim como a tenso de funcionamento; escolha da tenso; freqncia e outras caractersticas. Depois vem a instalao; onde a construo correta da base deve ser de tal forma que proporcione a menor vibrao possvel. Para os motores monofsicos no se deve esquecer o dispositivo aliviador de partida. TECNOLOGIA E TREINAMENTO (1998)

68

Ainda Segundo Tecnologia e Treinamento (1998), um dos grandes problemas da instalao de motores eltricos est nos custos elevados do sistema de proteo e comando e por isto muitos deixam de implant-lo corretamente. O sistema de comando define a vida til do motor. A proteo constituda de dispositivos que desconectam o motor da alimentao nos casos de curto-circuito e sobrecarga, no permitindo que o motor se queime nestas condies adversas. Logo, o uso de tecnologias lgicas com seu algoritmos monitorando o estado de equipamentos e dando valores corretos acerca de operao de equipamentos e outras atividades com baixo custo e automatizando processos que antes eram feito por operadores corpo a corpo em quadros de comando, atualmente est sendo de grande valia. Evitando assim, perdas financeiras considerveis. Um dos principais motivos da queima de motores no meio industrial :

1. A Sobrecarga: O motor no possui as protees contra sobrecarga e o operador exige dele potncia maior do que a especificada na placa. Por exemplo, um entupimento de uma adutora de gua, onde a bomba de gua fica em estado de shut- off9 (girando sem haver fluxo de passagem da gua) sobrecarregando o motor e acontecendo a queima do mesmo por conta da alta amperagem que o motor passa a ganhar.

Com um sensor medindo essa corrente e um Microcontrolador utilizando um algoritmo com uma condio em que, quando passar de determinado valor, desligue a alimentao eltrica do mesmo, emita uma mensagem em display ou dispare um sinal sonoro, alertariam a equipe tcnica sobre a manuteno do motor eltrico. Ento a proposta desse prottipo utilizando o Microcontrolador 8051 mostrar fisicamente um efeito de sobrecarga desligando a alimentao eltrica do motor.

4.3.1 Sistemtica do prottipo

Para mostrar o resultado do estudo da Aplicao da Programao de Microcontroladores 8051 utilizando a linguagem C foram executado os seguintes procedimentos:

Shut-off: o estado de uma bomba de gua centrifuga, quando ela se encontra em funcionamento mais com a passagem da gua interrompida, causando o elevamento da presso da gua ao mximo. Essa condio importante para clculos curvatura da bomba.

69

1. Levantamento dos requisitos para elaborao do projeto, tais como: KIT, Simulao, Teste e execuo; 2. Desenho da planta do circuito que ser implementado na linguagem C; 3. Aquisio dos materiais para elaborao do circuito; 4. Desenvolvimento de um software escrito em C para acionamento de um moto eltrico de 12V utilizando 1 cooler de gabinetes de computadores de uso geral; 5. Execuo e mostra de uma simulao de sobrecarga de um motor eltrico.

4.3.2 Especificao tcnica da parte fsica do prottipo

1. Motor eltrico do tipo Cooler: Mini Ventilador Cooler compatvel com AMD / DURON / ATHLON / INTEL / CELERON; 3500 RPM; Alimentao 12VDC.

Figura 25: Cooler de Ventilao Fonte: NASCIMENTO, E. B.2009 , Aplicao da programao de Microcontroladores.

2. Cabos e Conexes: Cabo Serial DB9 macho e fmea, para transaes PC Microcontrolador com leitura de teclado alfanumrico; Cabo DB25(macho) e DB9(fmea), para leitura e gravao no chip AT89S52;

Figura 26: Cabo Serial e Esquema da pinagem


Fonte: NASCIMENTO, E. B.2009 , Aplicao da programao de Microcontroladores.

70

3. Kit de programao: KIT de programao 8051LS da Microgenios Solues Eletrnicas (descrito no tpico 4.2)

4. Computador Desktop ou Notebook: Notebook CCE TCLD5, 1.73 Ghz, 1.5 GB de RAM.

5. Circuito que ser implementado: Ligando um rel a um Microcontrolador atravs de um transistor.

Figura 27: Desenho do circuito de um Microcontrolador acionando motor


Fonte: NASCIMENTO, E. B.2009 , Aplicao da programao de Microcontroladores.

71

CAPTULO 5 CONSIDERAES FINAIS

72

5. CONSIDERAES FINAIS

5.1 Concluso
Atualmente em quase todas as atividades humanas identificam-se a presena de Software Embarcado, embora a grande maioria deles passe despercebida aos olhos humanos, os exemplos de Software deste segmento so inmeros. Eles esto presentes no uso de tarefas cotidianas, como fornos microondas, mquinas de lavar, automveis, TVs digitais, etc. A automatizao de tarefas rotineiras causou um impacto profundo nos processos das empresas, porque antes, tarefas como ligar equipamentos, monitorar painis, evitar danos a equipamentos, eram exclusivamente feito por operadores que em muitos casos, devido ao no seguimento de planos de segurana ou simplesmente o no comprometimento com horrios e tarefas, gerou perca de tempo e dinheiro. No caso das residncias, com a chegada em massa dos computadores as casas das pessoas, tarefas maantes e demoradas, agora so executadas em minutos ou mesmo segundos. Durante dcadas, desde o nascimento da linguagem de programao Assembly, os software embarcados foram desenvolvidos para os Microcontroladores utilizando esse tipo de linguagem. Mas com o avano das linguagens de programao e o surgimento de Microcontroladores mais portveis, foram desenvolvidas ferramentas para acelerar o desenvolvimento dos software, e utilizao de linguagens de programao de alto nvel, com por exemplo: Java e C/C++. Devido existncia vrios tipos de Microcontroladores, foi escolhido para o estudo a famlia de Microcontroladores 8051, devido seu baixo custo de aquisio, bem como sua portabilidade de software com os demais chips pertencentes a esta famlia. Para implementao e mostra da real da aplicabilidade de um sistema microcontrolado, houve o uso de um KIT de programao para chips da famlia 8051, tendo assim uma visualizao em tempo real do que acontece por trs dos bastidores de muitos equipamentos eletrnicos, que esto to prximos das pessoas, mais a maioria dessas pessoas no se d conta de sua importncia em suas vidas. Nos software usados para implementao do prottipo, foi dado nfase aos ambientes de programao open-source, por trata-se de ferramentas robustas e de nenhum gasto adicional para obteno das mesmas, bem como a no existncia de dificuldade em instalao e configurao de parmetros.

73

Contudo, o estudo realizado nos captulos anteriores, tem o propsito de apoiar o desenvolvimento de software embarcado para alavancar ainda mais a automatizao de processos e criao de ferramentas que ajudem na tomada de decises, porque como software um grande potencial de mercado e gerador de oportunidades. Estas oportunidades podem gerar desenvolvimento de novos profissionais que em muitos casos podem estar to prximos, mais que pelo desconhecimento do desenvolvimento de sistemas para Microcontroladores o assunto cai em segundo plano ou at mesmo em esquecimento total.

74

REFERNCIAS

75

REFERNCIAS
AMADEU SOUZA, Vitor. Disponvel em: <http://www.cerne-

tec.com.br/Artigo3_Historia.pdf> , [21-] acessado em 30 de agosto de 2009.

BARRETO,

R.

S.

Barreto,

Raimundo,

Programao

8051.

Disponvel

em:

<www.dcc.ufam.edu.br/.../se/.../ISE-05-Programacao-8051-parteI.pdf>, acessado em: 12 de setembro de 2009.

BARRETO, R. S., 2006, Computao Brasil. Sistemas Embarcados: O novo boom da informtica? , <Disponvel em www.sbc.org.br/bibliotecadigital/download.php?paper=419>, acessado em 15 de setembro de 2009.

BILAR,

Luis.

2009.

Entendo

os

embarcados,

disponvel

em:

<http://www.webartigos.com/articles/13366/1/entendendo-o-mundo-dos embarcados/pagina1.html>, acessado em 19 de setembro de 2009.

CEOLIN

Fabrcio

Jos

Vieira,

2007.

Sistemas

embarcados,

disponvel

em:

<http://www.ulevel.com/index.php?option=com_content&task=view&id=203&Itemid=235>, acessados em 21 de setembro de 2009.

CHASE,

O.

A.,

2007

Sistemas

Embarcados.

Disponvel

em:

<

www.neoradix.com.br/_.../NEORADIX_01_Sistemas_Embarcados.pdf>, acessado em 12 de setembro de 2009.

FRED

COX,

2008,

Projeto

de

Alarme

residencial,

disponvel

em:

<http://www.embarcados.com.br/Noticias/Ultimas-Noticias/Central-de-Alarme-Residencialcom-PIC18F4620.html>,accessado em 19 de setembro de 2009.

76

ICEA, Instituto do Espao Areo, 2005. EAD Modulo V-linguagens, disponvel em: <http://www.icea.gov.br/ead/anexo/23101.htm>, acessado em 23 de setembro de 2009.

Intel 8051 , disponvel em: <pt.wikipedia.org/wiki/Intel_8051>, acessado em 12 de setembro de 2009.

GUSTAVO, Roberto, 2007. RELES DE SOBRECARGA TERMICO BIMETALICO, disponvel em <http://www.gustavoroberto.blog.br/2007/07/06/reles-de-sobrecarga-

%E2%80%93-termico-bimetalico/>, acessado em 19 de setembro de 2009.

LOPES,

Luis

Claudio

Gamba,

2006/2007.

Uso

de

Internet

Embedded

em

Microcontroladores para aplicaes de monitoramento e automao de baixo custo. Disponvel em: <http://www.leopoldina.cefetmg.br/~gamboa/viewer.

php?/orientacoes/bicjr/intemb/index.html>, acessado em 12 de setembro de 2009.

MATIC, Nebojsa. The PIC microcontrollers, book 1, Editora: mikroElektronika, ano 2003.

MARINHO, Jos Edson dos Santos & MARINHO, Ednaldo dos Santos, Mini Curso de Microcontrolador, Ed. Especial n 2, Saber Eletrnica, Janeiro 2001. Disponvel em: www.ivair.com.br/download/minicurso.pdf, acessado em 23 de setembro de 2009

MICROGENIOS. Manual de operao: Kit Microcontrolador 8051 LS. V. 2.0 So Paulo, SP, 2006. 15 P.

MOURA SANTOS, Danilo, 2006. Projeto de sistemas embarcados: Um estudo de caso baseado em Microcontrolador e seguindo AOSD, Disponvel em:

<www.lisha.ufsc.br/~guto/teaching/theses/danillo-bsc.pdf>, acessado em 16 de setembro de 2009.

77

NOBREGA FILHO, Raimundo de Gouveia, 1999, Fundamentos de Hardware, disponvel em: <http://www.di.ufpb.br/raimundo/ArqDI/Arq5.htm>, acessado em 6 de outubro de 2009.

OLIVEIRA, Luis Danilo. 2009, Desenvolvimento de software para Microcontroladores, disponvel em: <

http://www.grupointegrado.br/conccepar2009/?pg=anais_resumo&codigo=401>, acessado em 10 de novembro de 2009.

PEREZ, Marcelo G. & SANTOS, Rafael R. A. 2004, Sensores de proximidade embutidos, disponvel em: <japuneis0.tripod.com/Tecnologia/sensores-parte_I.doc.>, acessado em 15 de outubro de 2009.

PHPH

Engenharia

Informtica,

PIC

Watchdog

Timer,

disponvel

em:

<http://www.phph.com.br/Microcontroladores/pic-watchdog.html>, acessado em 15 de outubro de 2009. [20-]

QUADROS,

Daniel.

2008,

Microcontroladores

parte

5,

disponvel

em:

<http://dqsoft.blogspot.com/2008/08/microcontroladores-parte-5.html>, acessado em 12 de outubro de 2009.

RAMOS, Rodrigo. 2009, Microcontroladores e Microprocessadores Temporizadores (Timers), disponvel em : acessado

<http://www.univasf.edu.br/~rodrigo.ramos/MPU_MCU_files/PIC_Timers.pdf.> em 24 de novembro de 2009.

ROZA, Adriano Soli Rodrigues; BRUM, Carlos Eduardo Dutra & SILVA, Leonardo Santos. Compilador Configurvel para processadores embarcados. Disponvel em: <

78

www.inf.pucrs.br/~moraes/my_pubs/papers/tc_retargetable.pdf> novembro de 2009.

acessado em 12

de

SA, Mauricio Cardoso de, Programao C para Microcontroladores 8051 / Mauricio Cardoso de S. 1 ed. So Paulo: rica, 2005.

SICA, Carlos. Sistemas Automticos com Microcontroladores 8031/8051. 1.ed. So Paulo - SP: Novatec, 2006

SCHIMIDT

OLEQUES,

Ernesto.

SISTEMAS

EMBARCADOS.

Disponvel

em:

<http://www.scribd.com/doc/18503391/SISTEMAS-EMBARCADOS>, acessado em 25 de agosto de 2009.

SOUZA, Joo Paulo, 2003. Programao em C e Assembly, disponvel em: <http://paginas.fe.up.pt/~jms/SUC/AulaLab3.pdf>, acessado em 24 de setembro de 2009.

TAURION, Cezar. 2005, Software Embarcado: oportunidade e potencial de mercado / Cezar Taurion Rio de Janeiro:Brasport 2005

TECNOLOGIA E TREINAMENTO: Instalao de motores eltricos, Viosa MG, n. 129. Disponvel em: <http://www.tecnologiaetreinamento.com.br/sessao. acessado em 26 de novembro de 2009.

php?go=materiastecnicas&mat=0129 >

TUGATRNICA,

2007,

Introduo

porta

paralela ,

disponvel

em:

<http://www.tugatronica.com/introducao-a-porta-paralela/>, acessado em 15 de outubro de 2009.

79

VIANNA, Alexandre & MACHADO, Liliane, 2009, CONTROLE E GERENCIAMENTO DE AMBIENTES REAIS EDUCACIONAIS ATRAVS DE AMBIENTES VIRTUAIS, disponvel em: < www.de.ufpb.br/~labteve/publi/2009_icece1.pdf>, acessado em: 21 de setembro de 2009.