P. 1
Programa__o Micro Control Adores 8051 Utilizando Linguagem c

Programa__o Micro Control Adores 8051 Utilizando Linguagem c

|Views: 506|Likes:

More info:

Published by: Willians Ribeiro Mendes on Dec 01, 2011
Direitos Autorais:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

06/03/2013

pdf

text

original

FACULDADE SETE DE SETEMBRO – FASETE

Departamento de Sistemas de Informação Curso: Bacharelado em Sistemas de Informação

Erick Barros Nascimento

APLICAÇÃO DA PROGRAMAÇÃO DE MICROCONTROLADORES 8051 UTILIZANDO LINGUAGEM C

Paulo Afonso – BA Novembro/2009

i

Erick Barros Nascimento

APLICAÇÃO DA PROGRAMAÇÃO DE MICROCONTROLADORES 8051 UTILIZANDO LINGUAGEM C

Projeto apresentado ao curso de Bacharelado em Sistemas de Informação para

cumprimento da disciplina Trabalho de Conclusão de Curso - TCC, sob orientação do professor Msc. Igor Medeiros Vanderlei e co-orientação do professor Esp. Ricardo Azevedo Porto.

Paulo Afonso – BA Novembro/2009

ii

Erick Barros Nascimento

APLICAÇÃO DA PROGRAMAÇÃO DE MICROCONTROLADORES 8051 UTILIZANDO LINGUAGEM C

Projeto apresentado ao curso de Bacharelado em Sistemas de Informação para

cumprimento da disciplina Trabalho de Conclusão de Curso - TCC, sob orientação do professor do professor Msc. Igor

Medeiros Vanderlei e co-orientação 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. Aplicação da Programação de Microcontroladores 8051 utilizando Linguagem C. 2009, 80p. Monografia (Curso Bacharelado em Sistemas de Informação). Faculdade Sete de Setembro – FASETE, Paulo Afonso – BA.

Com o continuado avançado da tecnologia atualmente os Microcontroladores fazem parte das nossas vidas. As aplicações desses dispositivos são as mais variadas, sendo encontrados, por exemplo, em máquinas de lavar, televisores, DVDs, rádios, controles remotos, microondas, entretenimento, segurança, controle de acesso, etc. Esses dispositivos utilizam software que executam tarefas pré-programadas, são encontrados na maioria dos equipamentos, e na maioria das vezes, os usuários não percebem sua presença. Com a utilização da eletrônica 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 são necessários software e hardware específicos para cada família de Microcontrolador. Inicialmente, os Microcontroladores foram desenvolvidos para trabalharem com linguagens de programação de baixo nível, mas ao longo dos anos, esses dispositivos passaram a trabalhar com linguagens de alto nível, tornando o desenvolvimento de sistemas embarcados mais flexíveis e mais portáveis em relação ao hardware. A proposta da pesquisa está em apresentar um protótipo de um sistema embarcado funcionando na arquitetura de um Microcontrolador. Para realizar essa proposta foi utilizada pesquisa bibliográfica tendo como referências livros, artigos e sites além do uso de um KIT de programação para Microcontroladores para mostrar o uso de linguagens de alto nível nessa arquitetura.

Palavras chave: Microcontroladores, software, hardware.

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

................ 48 Figura 12:Organização de ROM interna/externa em função do valor lógico do pino EA........................................................... 56 Figura 15: Perspectiva ajustada para Java e QuantumDB........................................................................................................................... 39 Figura 7: Diferença que existe entre a transmissão em série com a transmissão em paralelo ......... 65 Figura 20: Porta de expansão ligada ao Port P3 ........................................................................................ 69 Figura 27: Desenho do circuito de um Microcontrolador acionando motor ....................................................................................................................................................... 35 Figura 6:Exemplo simplificado de uma unidade de E/S........ 61 Figura 18: KIT8051LS em funcionamento .................................... 66 Figura 23: Conector da alimentação e Porta serial .. 70 ...... 59 Figura 17: Tela Principal do SPI-Flash Programmer............................................................................ 49 Figura 13: Esquema de circuito com Reset automático e Reset forçado .... 66 Figura 24: Microcontrolador AT89S8252................................... 34 Figura 5: Modelo simplificado de uma unidade de memória de um Microcontrolador ............................ .......... 65 Figura 21: Barramento com 8 LED's ............................................................................................................ 57 Figura 16: Simulação de contagem binária de 8 bits e gravação no PORT P2...................................................................................... 18 Figura 2: Sensor de proximidade.................... 44 Figura 9: Núcleo de um Microcontrolador da família 8051............................ 30 Figura 4: Diferenças entre Microprocessador e Microcontrolador – Nº de circuitos .......................................... 67 Figura 25: Cooler de Ventilação.................. 47 Figura 11: Comprometimento do Port P3 sendo utilizado para funções especiais ................................ 64 Figura 19: Conexão do LCD e Potenciômetro ............... 50 Figura 14: Eclipse com perspectiva para C/C++ ....................... 69 Figura 26: Cabo Serial e Esquema da pinagem ................................... 45 Figura 10: Demultiplexação de dados e endereços usando o port P0...................................................................................................... 20 Figura 3: Arquitetura das Linguagens de Programação.................................................................v LISTA DE FIGURAS Figura 1: Lógica de funcionamento de um Sistema Embarcado ..................................................................................... 40 Figura 8: Exemplo da arquitetura de Von Neumann .. ângulo e atuador para freios.................... 65 Figura 22: Teclados tipo push .........................

.................................... 58 .......................... 49 Tabela 2: Grandes fabricantes e principais informações sobre suas características..vi TABELAS Tabela 1: Resumo das Funções especiais do Port P3 ............... 51 Tabela 3:Tipos de variáveis contempladas pelo SDCC .......................................................

vii LISTA DE ABREVIATURAS E SÍMBOLOS AD CMB DA EPROM ETA GSM IHM ISO LED RAM ROM SDCC USB Analógico / Digital Conjunto Motor Bomba Digital /Analógico Erasable Programmable Read Only Memory Estação de Tratamento de Água Global System for Mobile Communications Interface Homem .Máquina Organização Internacional para Padronização Light Emitting Diode Random Access Memory Read Only Memory Small Device C Compiler Universal Serial BUS .

.......4.......................... 29 2................................5 Comunicação Serial dos Microcontroladores .....................................................................................................................3 Forte acoplamento entre hardware s software............................................6 Metodologia da Pesquisa......................................................................................... 12 1........................................................P3...........2 Organização da Pinagem dos Microcontroladores 8051 .............................................................................................................................................2....................................................................... 26 2................7 Estrutura do Trabalho .......................... 37 3.......................... 46 3..2 Capacidade limitada de recursos............. 51 .............. 30 3......1 Introdução ..................................................3.................................. 35 3....................................... 14 1.........2 Microcontroladores versus Microprocessadores ... 15 1..3.................. 13 1.............................................................2................................................1 Port P0..............................................................................2....3............................................................................................... 13 1.......................1 Unidade de Memória ........................................... 22 2........................................2...................................... 43 3...............................3.... 14 1...P2...................... 36 3...................................3 Problema da Pesquisa ...................................3.... 41 3............3 Linguagens de Programação para Sistemas Embarcados ......................4 Hipóteses ............ 30 2................1 Linguagem de Máquina .... vii 1......................................3 Vantagens e Desvantagens da linguagem Assembly ..............viii SUMÁRIO LISTA DE FIGURAS .3 Barramentos ....... 29 2................................................................. 17 2...2 Justificativa.............................. 14 1........................................................... 26 2................................1 O que são os Microcontroladores ...............................3.... 42 3.......................1 Arquitetura física dos Microcontroladores 8051 ..... 47 3.................................................................................. 44 3.............7 TIMER.... 36 3.......................... 34 3.......................2 Ports uso geral para E/S e uso das memórias internas e externas-P1................................. 18 2...............................4......................................... 27 2...............................................................3 Fabricantes do Microcontrolador 8051 .................3.........2 Unidade Central de Processamento – CPU ........ 25 2............4 Unidade de Entradas e Saídas ......................................................................................3......... 39 3..................................................2.......................................3.....4...... 11 1............................................................................................4.........................5.............................................7 Linguagens de Quarta Geração ..... CONSIDERAÇÕES INICIAIS .............................. 40 3...............................3 Arquitetura dos Microcontroladores...... MICROCONTROLADORES ......................................................2................................................................................................ 23 2.............. 28 2.....................4 Importância das respostas de tempo real nos sistemas embarcados ............6 CLOCK – O relógio do Microcontrolador .......................3.........................3..........................3.....................2 Linguagem Assembly......... v TABELAS ......5............................... 24 2...........................................................................3......................................................................................................................................... 46 3..................................................................................... 15 2......5 Linguagem C.............6 Vantagens e Desvantagens da linguagem C ........5 Objetivos....... 11 1...................................... 29 2..............................................................................8 WatchDog – Cão de Guarda ........8 Análise e escolha da linguagem . vi LISTA DE ABREVIATURAS E SÍMBOLOS........................3..............................1 Interação com o ambiente.....3.2 Características dos Sistemas Embarcados .................................................................... SISTEMAS EMBARCADOS .........................3................................ 35 3.................................4 O Microcontrolador 8051.... 32 3..................1 Objetivo Geral.................................................... 33 3...............................................................................................................4..........4 Linguagens de Alto Nível.........................1 Definições e Aplicações dos Sistemas Embarcados ...........2 Objetivos Específicos ..................................................................................... 22 2........................................

........................................................................ 58 4...............................1............................1 Sistemática do protótipo ................................1.. 75 ................... CONSIDERAÇÕES FINAIS ................................. 55 4.................................................................................................3 Protótipo de teste do Microcontrolador 8051..................... 67 4.............................................................................4...............1 Os lock-bits .........1...........4 Microcontroladores 8051 mais potentes – Arquitetura ISAC .........3...................................................................... 62 4.............. 60 4................. 64 4......... 57 4........................................... 63 4.........................................................................1 Conclusão .............................................. 54 4..........................................3..........................................................................2 Os seus componentes........................ 68 4......................................2......................................................... 72 REFERÊNCIAS......................................................2..............................4....................................3 PDS – 52........1 O KIT8051LS ..................................... ...4 SPI – Flash Programmer..................... FERRAMENTAS DE PROGRAMAÇÃO PARA 8051...1.............................2 KIT de Programação 8051LS ... 72 5............................ 55 4...................................................... 69 5............................2 Especificação técnica da parte física do protótipo .....................................................2 Small Device C Compiler – SDCC ................................................ 62 4..............1................................ix 3..1 Eclipse...................... 52 4.....................1 Software de Desenvolvimento para Microcontroladores............

10 CAPÍTULO 1 CONSIDERAÇÕES INICIAIS .

As aplicações destes dispositivos são as mais variadas. até mesmo um sistema para controlar um elevador em um prédio. As combinações entre esses dois fatores denominam-se os Sistemas Embarcados. são responsáveis por uma função específica ou um conjunto restrito de funções específicas e co-relacionadas.1 Introdução Com o continuado avanço da tecnologia. O software escrito para Sistemas Embarcados. Basicamente. segurança. Logo. embora em alguns casos o usuário não chega a perceber sua presença. DVDs. dispositivos periféricos e interfaces de E/S que podem ir de um simples pino digital do componente a uma interface USB ou Ethernet nos mais avançados. qualquer equipamento autônomo que não seja um computador. controles remotos. executando tarefas que foram préprogramadas em linguagens de programação. por exemplo. acaba sendo considerado um Sistema Embarcado. controle de acesso. em máquinas de lavar. Além dos componentes lógicos e aritméticos. sendo utilizadas. EEPROM ou Memória FLASH para armazenamento de dados ou programas.. o Microcontrolador integra no próprio chip elementos adicionais tais como memória RAM. acompanhado esses Microcontroladores estão software instalados nos mesmos. cada um de nós tem acesso em média a nove Microcontroladores por dia. contendo um processador. ou seja. em contraste com os microprocessadores de uso geral (do tipo usado em computadores pessoais). É um microprocessador que enfatiza a alta integração. atualmente os Microcontroladores fazem parte de nossas vidas. televisores. CONSIDERAÇÕES INICIAIS 1. o propósito deste projeto é apresentar os conceitos de desenvolvimento de software para Sistemas Embarcados. entretenimento. Estão presentes na maioria dos equipamentos eletrônicos. Sistemas Embarcados podem ser desde um sistema para uma boneca cantar. um Microcontrolador é um computador-num-chip. microondas. Segundo Amadeu Souza (21-). ainda segundo Sica (2006). usuais de um microprocessador de uso geral. mais . rádios.11 1. utilizando os Microcontroladores da família 8051. Grande parte dos Microcontroladores utiliza a linguagem de programação Assembly. etc. (SCHIMIDT 2007) Segundo Sica (2006). memória e funções de entrada/saída. é muitas vezes chamado de firmware e não são armazenados em discos rígidos. os Sistemas Embarcados são sistemas que executam funções dedicadas.

transformando-os nos Sistemas Embarcados. 1. etc. Essa linguagem utiliza instruções de baixo nível que operam diretamente com registradores e memórias. é necessário conhecer a estrutura do processador para poder programar em Assembly. com a linguagem de programação C e o compilador freeware SDCC. LOPES (2006/2007) Como já dito anteriormente. os Microcontroladores estão sendo desenvolvidos para executarem software em linguagens de alto nível. começou a surgir a idéia de colocar todos estes periféricos dentro do chip da CPU.) e também da quantidade de conexões e do tamanho da placa. para o processador). pinos de entradas/saídas e memória.12 especificamente com o Microcontrolador da ATMEL. (MONSERRAT NETO) Atualmente. tornando em alguns casos o desenvolvimento dos sistemas um pouco mais difícil e pouco portável. ou seja. Estas aplicações tinham custo dependente da CPU e dos periféricos (ROM. passando uma sintaxe mais próxima da realidade humana. terão mais flexibilidade e portabilidade.2 Justificativa A automação de processos e o monitoramento remoto de equipamentos são tecnologias que garantem ganho de produção devido ao controle preciso do processo. RAM. a linguagem utilizada era Assembly. permitindo a manipulação dos dados nas mais diversas formas . Para reduzir o custo. BARRETO (2006) No inicio da programação desses chips – CPU. A linguagem Assembly é orientada a máquina (ou melhor. começou-se a usar as CPUs mais simples para implementar tarefas dedicadas. mais especificamente C. da linguagem de programação e os resultados as experiências práticas do desenvolvimento de um protótipo neste ambiente. Serão apresentados detalhes do hardware. diminuindo os custos e trazendo benefícios para as empresas que utilizam esse sistema. as instruções são executadas diretamente pelo processador. o emprego de Microcontroladores vêm sendo muito requisitado para um melhor desenvolvimento da produção. Com o avanço da tecnologia e a utilização da eletrônica digital por grande parte das empresas. os software desenvolvidos em linguagens deste tipo. D/A. Portas. Com o barateamento de Circuitos Integrados – CI e o surgimento dos microprocessadores (CPUs) mais poderosos. os Microcontroladores são chips que tem um processador. A/D.

). . responsável pela condução de eletricidade. etc. Logo. etc. reais. 1 Segundo Wikipédia. Robótica e Eletrônica Digital. bytes. palavras em memória. a contribuição que este projeto trará para seus leitores. reduzindo o tamanho físico da placa. visto que o trabalho que será apresentado utilizará a linguagem C? 1. evita a necessidade de mudança de jumpers1 para configuração de portas.3 Problema da Pesquisa  Como explicar fundamentos teóricos e práticos sobre os Microcontroladores?  Qual KIT de programação que será usado para exemplificar os exemplos práticos?  Este tipo de Microcontrolador possui alguma Interface Homem Máquina – IHM?  Será mostrado um exemplo na linguagem de programação Assembly. Serão explanados conceitos de hardware e software para Microcontroladores da família 8051 e os conceitos exemplificados através de uma aplicação exemplo para conhecimento de todos que se interessem por assuntos ligados a Automação Industrial. vetores. É. etc.13 (números inteiros. sua tecnologia de Dispositivos Montados em Superfície – SMD aumenta a resistência mecânica. Jumper é uma ligação móvel entre dois pontos de um circuito eletrônico. 1. esses fatores resultam em aumento da confiabilidade dos equipamentos que serão utilizados. uma pequena peça plástica que contém um metal no seu interior. Sua programação através da porta USB.4 Hipóteses KIT 8051 com Placa ISP (In-System Programmable) é um KIT de desenvolvimento de software para Microcontroladores. geralmente. é conhecer a automação de processos e/ou equipamentos que utilizam este tipo de programação. enquanto Assembly trabalha com linguagem pura de máquina bits.

e KIT físico para desenvolvimento dos software. depurador ou simulador. . para que possamos associar a pesquisa com os controladores de dispositivos que estão em quase todos os equipamentos que utilizamos no dia-a-dia. Ele contém funções do tipo: montador.5 Objetivos 1. técnicos e estudantes da área de Tecnologia da Informação.1 Objetivo Geral Exemplificar de forma clara e objetiva aos profissionais. modelo AT89S8251 e/ou AT89S8252. seria necessário a utilização de uma fonte gráfica para visualização.2  Objetivos Específicos Explicar o que são Sistemas Embarcados. para Microcontroladores. Small Device C Compiler – SDCC. LCD 4x16 com ou sem Back Light2. conceitos teóricos e práticos sobre Microcontroladores. 1.5.5. Tendo como premissa ao final da mostra do projeto. parcialmente portável. Mostrando fisicamente o que é utilizado na elaboração de softwares para sistemas embarcados.  Executar aplicação exemplo mostrando o Microcontrolador 8051 em operação.14 Para exemplificar a saída de informações dos software gravados do Microcontrolador Atmel AT89S8251 e/ou AT89S8252. que é open source. marca Atmel.  Fazer uma abordagem rápida sobre as linguagens de programação Assembly e C utilizada nos Microcontroladores 8051. 1. a execução de uma aplicação para Microcontroladores da família 8051. 2 BackLight é quando um dispositivo de saída do tipo LCD possui luminosidade de fundo para enxergarmos as informações em salas escuras. visto que este KIT disponibiliza um conector de pinos onde pode ser ligado um display de LCD 2x6. Poderemos utilizar o Compilador C para Dispositivos Pequenos.

Análise das referências bibliográficas.15 1. mostraremos as ferramentas utilizadas no desenvolvimento de software para o Microcontrolador 8051. o que é um sistema embarcado e Microcontroladores. o simulador PDS-52 e o software de gravação SPI – Flash Programmer. colocaremos os conceitos sobre os Microcontroladores. Explanaremos a arquitetura dos Microcontroladores 8051. a integração do Eclipse. . Observação de características e pressupostos teóricos. o que é. o recurso de conhecimento aberto para o SDCC e o modelo de uma aplicação escrita. o código Assembly gerado pela compilação do SDCC e o KIT de programação com software em funcionamento.sua importância na tecnologia. ferramentas utilizadas para programação dos mesmos bem como.6 Metodologia da Pesquisa A pesquisa se caracterizará por um estudo qualitativo. Analise teórica e prática dos equipamentos que serão utilizados para desenvolvimento da tarefa. Seu principais conceitos. que poderá ser de revistas. do tipo exploratório. No capitulo 3(três). o compilador SDCC. No capitulo 4(quatro).7 Estrutura do Trabalho O presente trabalho está dividido em 5 (cinco) capítulos como descritos a seguir: No capitulo 1(um) faremos a introdução ao trabalho. Apresentação de um programa escrito em linguagem de alto nível. bibliográfico e instrumental. mostrando onde os Microcontroladores estão inseridos em nossas vidas. livros. como surgiram.  Desenvolvimento e testes no software de exemplo para uma sobrecarga de equipamento. No capitulo 2(dois) falaremos sobre Sistemas Embarcados. Analise teórica das bases dos software de desenvolvimento para Microcontroladores. 1. internet ou publicações relacionadas baseadas em etapas como descrito abaixo:      Levantamento de bibliografias. para que servem. programação especifica para os Microcontroladores dessa família utilizando a linguagem C.

16 CAPÍTULO 2 SISTEMAS EMBARCADOS .

esse processador é um mero detalhe. hoje as pessoas sabem responder qual configuração da CPU que utilizam em casa ou no trabalho. os sistemas embarcados já estão presentes em todo o mundo e hoje esses sistemas convivem com as pessoas e em suas vidas. Logo. .17 2. porque as configurações são requisitos decisivos na hora que uma pessoa vai efetuar a compra de um computador de uso geral. linguagens computacionais utilizadas. Por exemplo. mas uma coisa é certa: grande parte das pessoas utilizam computadores embarcados todos os dias e em diversas atividades cotidianas do seu dia-a-dia. benefícios e limitações desses sistemas. a maioria não é vista pelas pessoas porque. Entretanto. Só que. Entretanto. tipos de Sistemas Embarcados. os Sistemas Embarcados operam de forma semelhante aos dos computadores de uso geral. se perguntarem qual CPU essas pessoas tem no seu carro ou no seu celular. um dos primeiros sistemas embarcados data do início dos anos 60. Atualmente. Em geral. como insinua o próprio nome. controle de acesso. Logo. nesse contexto. suas principais características. nesse capítulo serão mostrados conceitos teóricos sobre Sistemas Embarcados. (BARRETO 2006) Segundo Barreto (2006). utilizando-se de dispositivos para monitorar estados de clima. muitas dessas pessoas compram equipamentos de má qualidade pelo fato de não atentarem para requisitos que também são importantes. estão para atender necessidades de produtividade dos usuários com o máximo de desempenho. desde eletrodomésticos até naves espaciais. os sistemas de computadores de uso geral. certamente essas pessoas não saberão responder. Eles já são universais porque estão presentes em muitos dispositivos. enquanto que os sistemas de tarefas dedicadas (como no caso dos Embarcados) estão para atender condições de ambiente. O primeiro que se tem notícia foi um computadorguia para o projeto Apollo. Entretanto. só que esse tipo de sistema não é novo. Sistemas Embarcados usam algum tipo de elemento processador. SISTEMAS EMBARCADOS Atualmente se ouve muito falar de sistemas embarcados. eles não são percebidos. estão embutidos dentro de outros sistemas que são usados no cotidiano do dia-a-dia dos seres humanos. etc. o qual levou o primeiro homem à lua. De acordo com a enciclopédia on-line Wikipédia. segurança. Em linhas gerais. as pessoas não têm conhecimento deles em sua totalidade. usualmente. ou seja.

A denominação “embarcada” (do inglês Embedded Systems) vem do fato de que estes sistemas são projetados geralmente para serem independentes de uma fonte de energia fixa como uma tomada ou gerador e ainda são embutidos tornando-se abstratamente invisíveis. Software embarcado. independente se é dentro de um PC de uso geral ou um controle remoto de uma TV. dentre os quais estão alguns exemplos:  Aplicações Industriais: São utilizados nas industriais dos mais variados tipos. 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. Possuem uma capacidade de processamento de informações vinda de um software que está sendo processado internamente nessa unidade. dependendo do clock do Microcontrolador.18 2. sendo utilizadas em vários segmentos. fixado a uma placa de circuito impresso. Geralmente são aplicações mais robustas. Sistemas Embarcados. ainda sim este não seja um desktop comum. com placas dedicadas e múltiplos sensores de entrada e saída. que é um circuito integrado. Modificado por: Erick Barros Nascimento As aplicações dos Sistemas Embarcados são as mais variadas. é em muitos casos classificado de firmware. Todo sistema embarcado é composto por uma unidade de processamento. logo o software está embarcado na unidade de processamento.1 Definições e Aplicações dos Sistemas Embarcados Não existe uma definição universal para o termo “Sistema Embarcado”. é classificado como embarcado. geralmente aplicadas em sistemas de automação industrial. por exemplo: Sistemas de controle de Estações de Tratamento de Água – ETA. . 2007. (CHASE 2007) Figura 1: Lógica de funcionamento de um Sistema Embarcado Fonte: CHASE.

etc. motor emperrando) o mesmo desliga a alimentação protegendo o motor. devido a um trabalho acima do previsto que pode ultrapassar a corrente nominal do motor. é programado o parâmetro limite em que a corrente pode chegar. etc. Logo. essas informações são condensadas e é emitida ordem de entrega dos produtos e nota fiscal de venda a pessoa do despacho. são capazes de realizar boa parte das tarefas que geralmente são realizadas em PCs de uso geral. quantidade. segundo Gustavo Roberto (2007). que executam Sistemas Operacionais Embarcados. Ele sai pela cidade efetuando as vendas dos produtos da distribuidora. água mineral. Dispositivos como Palm Tops. eles usados para proteger os motores elétricos contra sobrecargas. seja qualquer produto que esteja disponível (cerveja. Essas sobrecargas são elevações de corrente por tempo prolongado. Com aplicações especificas. os produtos são entregues nos estabelecimentos que estão espalhados pela cidade. . Entre o cabo de alimentação elétrica desse CMB está um equipamento chamado de relé térmico. refrigerante.). e em muitos casos envia um pulso de sinal Analógico / Digital para acender um LED. Ao chegar à sede. como o Windows Móbile.) são armazenadas no Palm Top na hora que ele faz a venda corpo a corpo.19  Considere o exemplo de um conjunto motor-bomba – CMB para bombeamento de água que está com superaquecimento. entretanto proporcionam uma maior mobilidade que pode contribuir para a disponibilidade das informações. o relé passa a monitorar essa corrente.  Aplicações empresariais: A área empresarial também pode se beneficiar com a utilização de sistemas embarcados. Possuem aplicações básicas conhecidas em qualquer PC de uso geral. se ela começar a subir (ex. tais como Excel e Windows Media Player.  Considere o exemplo de um vendedor de uma distribuidora de bebidas. ou até mesmo um pulso para que o sistema escreva uma mensagem na tela de uma IHM para avisar da sobrecarga. Assim. As informações sobre as vendas dos produtos (cliente que solicitou o pedido. as informações do Palm Top do vendedor são descarregadas através de uma porta Serial e/ou USB para um PC de uso geral.

Para cada usuário do veículo até a central que gerencia o funcionamento do motor. cujo protocolo CANbus3 tem se tornado o padrão. Esta comunicação geralmente se dá através de redes. Centenas de sensores fornecem informações sobre todo o funcionamento do veículo. tais como:  Interagem com Teclados matriciais  Displays LCD  Discador via celulares GSM  Armazenamento de memória para alguns números de telefone  Sirenes 3 CANbus: é um protocolo de comunicação serial síncrono. volante. Figura 2: Sensor de proximidade. um veículo top de linha é um excelente exemplo de um complexo sistema literalmente “embarcado”. etc.é utilizado em Microcontroladores modernos que tem sua aplicabilidade quase a de um computador de uso geral. Várias unidades de processamento independentes atuam em regiões diferentes e se comunicam entre si. espelhos. Sistemas Embarcados. Modificado por: Erick Barros Nascimento  Aplicações residenciais: Segundo Fred Cox (2008). ângulo e atuador para freios. possuem as seguintes características de interação. captando os sinais destes sensores e fazendo com que as ações referentes a cada caso sejam tomadas. 2007. Sistemas Embarcados para projetos de construção de alarmes residenciais.20  Aplicações Automotivas: Segundo Chase (2007). Fonte: CHASE. Isto acontece desde a central que memoriza a posição dos bancos. .

os mesmos.21  Monitoramento de sensores de portas e janelas  Interface Serial ou USB para conexão com o PC de uso geral  Persistência no caso de quedas de energia  Aplicações de entretenimento: Segundo Bilar (2009). que utilizam apenas três chips. o marca-passo poderá monitorar vários parâmetros. um dos exemplos mais importantes sobre esse processador é o game Boy que foi produzido com base no Z80. como marca-passos. outro exemplo seria o de alguns MP4 players. sendo um o controlador principal. Esses sistemas serão tão compactos que o paciente nem mesmo vai lembrar que eles são embutidos sem seu corpo. tudo no mesmo Wafer4 de silício. o Microcontrolador Z80 desempenhou muitas funções importantes de processamento. puderem ser administrados remotamente. outro um chip de memória flash (usado para armazenamento) e o terceiro um sintonizador de rádio AM/FM. são os chips Dragon Ball que incluíam um processador de 68000. como o fluxo sangüíneo. .  Aplicações na medicina: Quando os transplantes. Ainda 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 elétrico e. são fatiados em fatias muito finas que são repassadas para as empresas fabricarem seus circuitos. As empresas fornecem o silício em cilindros. e a saturação do oxigênio no sangue. partindo do principio de que é impossível colocar um Core 2 Duo em um controle remoto. no caso de uma 4 Wafer de Silício: São cilindros de silício fabricados para construção de componentes eletrônicos. não os primeiros feitos em 1979. que operam em freqüência mais alta. mais sim em versões modernas dele. Ele também poderá transmitir dados usando comunicação sem fio onde. controlador de vídeo e outros componentes. Outro processador que pode ser citado como exemplo é o da Motorola 68000 que tinha os mesmos chips de 32 bits usados nos Macintosh. outros exemplos baseado no Z80 foi os antigos S1 MP3 players que tinha um formato de pendriver e começou a ser produzido em massa por diversos fabricantes. um grande exemplo são os chips usados nos primeiros palms. que vinha integrado com controle de áudio externo e outros circuitos. Usando microsensores colocados em várias partes do corpo.

tecnologias de aquisição de dados. foi desenvolvido pelo cientista Peter Meijer. os pontos chave são a capacidade de modificar o ambiente real. os sensores nos sistemas embarcados. da mesma forma que sistemas traduziriam imagens para cegos. Para o projetista. o médico será contatado e poderá entrar em ação imediatamente.1 Interação com o ambiente Segundo Ceolin (2007). é que eles são desenvolvidos para uma tarefa especifica ou um conjunto de tarefas dos quais a interferência humana é muito pouca e. servem para diversas finalidades. algumas características são comuns a todos os ambientes. tais como: abertura de portas (porta de shopping). segurança nas portas de elevadores (impedir que elas se fechem quando alguém estiver passando). Já existe um sistema há quase 18 anos. seja de forma automática ou por meio de interfaces. medição de presença (checar se algo atravessou uma área não permitida). com utilização de dispositivos que implementam a monitoração física de um fenômeno que está acontecendo um ambiente. apesar da grande diversidade de aplicações para sistemas embarcados. 2. medição de pH de águas (para ver se a água está boa pra consumo). .2. (BARRETO 2006)  Aplicações no bem-estar dos deficientes físicos: Considere os sistemas que traduzem imagens em sons para cegos. o mesmo deve conhecer sobre o hardware.22 anormalidade. a característica da interação contínua com o ambiente traduz em um maior grau de dificuldade nas soluções. 2. atuadores e interfaces é essencial. Em um ambiente que interage fortemente com a realidade. um sistema de reconhecimento de gestos seria outra ajuda importante para os surdos mudos interagirem com os computadores e outros equipamentos. uma vez que além de conhecimento de programação clássica. até mesmo de locais remotos. uma característica marcante em um sistema embarcado é sua interação constante com o meio a sua volta. na Holanda. e se chama The vOICe. do Laboratório de Pesquisas Philips. Segundo Barreto (2006). etc.2 Características dos Sistemas Embarcados A principal característica comum a maioria dos sistemas embarcados.

motores. Logo. o fato de adotar um sistema operacional e se utilizar de recursos do tipo “Recursividade” é totalmente proibitivo. no caso de muitos Sistemas Embarcados. sensores (presença. no inicio da implementação dos Sistemas Embarcados os programadores/analistas de sistemas tiveram dificuldade para programar os software que iriam ser executados nos Microcontroladores. porque essas linguagens consomem poucos recursos computacionais. nos Sistemas Embarcados. os sistemas embarcados não operam em um ambiente estritamente controlado. Esses também controlam sistemas mais complexos como sistemas de incêndio. câmeras e dispositivos hápticos5. outros são sensíveis à vibração. A interação pode acontecer através de entidades presentes no ambiente real. os sensores estão diretamente ligados a outros dispositivos. 5 Háptico: Significa que é próprio para tocar. 2. E mais. da mesma forma que é muito comum os mesmos possuírem barramento de dados de 8 bits e de endereços de 16 bits. luminosidade. temperatura e etc.2. o poder de processamento é somente de algumas dezenas de MHz. esses que vão realmente e a olho humano modificador o estado do ambiente em que se encontram.2 Capacidade limitada de recursos Os Sistemas Embarcados são implementados em arquiteturas muito restritas. o software tem que ser altamente otimizado para funcionar com robustez nessa arquitetura. entre diversas outras características físicas. quando sensores enviam pulso de sinal para os Microcontroladores e os mesmos fazem com que os atuadores modifiquem o estado do ambiente. sistemas elétricos e sistemas hidráulicos. (BARRETO 2006) Ainda segundo Barreto (2006). Portanto. porque os Microcontroladores não dispõe de grandes quantidades de memória RAM/ROM. .23 Contudo. que atuam modificando o ambiente ou lendo o estado do ambiente.). Essas entidades do ambiente podem ser lâmpadas. o uso de teclados matriciais. Os atuadores são elementos que produzem movimento através de comandos que podem ser manuais (apertando-se botões) ou automáticos. como por exemplo. outros à iluminação. esses dispositivos são chamados de atuadores. Alguns não podem sofrer calor intenso. Por isso é que a maioria dos software embarcados ainda é implementado em Assembly ou C.

Se o software que controla o freio levasse alguns segundos para responder a frenagem.3 Forte acoplamento entre hardware s software Os Sistemas Embarcados possuem forte acoplamento entre hardware e software. O nível de exigência em qualidade tende a ser muito maior que a exigência na maioria das aplicações comerciais que vemos hoje nos computadores das empresas ou nas residências. Por exemplo.2. sendo que a CPU atende cada processo por um pequeno tempo. Além disso. pois um elo falhando eventualmente pode levar toda a rede a ser colocada em cheque.  Dispositivos de E/S gerenciados por um único microprocessador. aumenta a complexidade da tarefa e a demanda por qualidade. pois tendem a operar em condições criticas de segurança e disponibilidade. interconectados e integrados a outros equipamentos. a espera por uma resposta vinda de outro sistema pode comprometer todos os sistemas. considerando o ato de pisar no freio de um carro.  Alta dependência da resposta as solicitações de processos. Algumas das características deste forte acoplamento podem ser identificadas.  Todo o sistema é centralizado  tudo funciona em um único Microcontrolador. 2. a forte tendência de operarem em rede. um a um em seqüência. (TAURION 2005) . enquanto que uma falha em um sistema médico pode matar uma pessoa. Isso significa que os software embarcados dependem muito de hardware para executem tudo que lhe é proposto com qualidade e robustez . Estes software. a sensação de desespero por parte das pessoas que estão naquele veículo seria catastrófica. no caso de sistema aviônicos. por exemplo:  Sistema voltado para uma tarefa especifica.24 Tais sistemas têm que trabalhar todo o tempo e dentro do tempo esperado. em sua maioria demanda alta qualidade de código. Múltiplos processos são executados simultaneamente. Uma falha no software de um desktop caseiro é apenas um incômodo para o seu usuário.

Nestes sistemas os resultados não apenas devem estar corretos. cada processo tem acessos iguais ao processador. se a tarefa não for completada em um período de tempo determinado.2. no qual se o robô não reconhecer um objeto no instante preciso. (TAURION 2005) Um sistema de tempo real pode ser hard real-time ou soft real-time. mais nunca afeta a vida física de ninguém. esse tempo muitas vezes medido em microssegundos. Ainda segundo Taurion (2005). a tarefa terá falhado. ou seja. quando estiver passando pelo ponto de solda 6 Flaps: São superfícies hipersustentadoras. Se um processo de alta prioridade precisa executar e um outro processo. Nestes sistemas de uso geral. eles servem para aumentar a sustentação da asa do avião. que devem apresentar um bom comportamento médio e inexiste a preocupação com previsibilidade temporal. de menor prioridade. ao contrário de sistemas computacionais de uso geral. Já um sistema de tempo real. está ocupando o processador. ou seja. Processos de alta prioridade não esperam por processos de prioridade inferior. Considerando o acionamento de flaps6 de uma aeronave. Os Sistemas Embarcados que operam em tempo real são chamados de determinísticos. Portanto. Nos sistemas computacionais de uso geral. como a decolagem e o pouso. Não pode haver atraso ou variações.25 2. Um sistema hard real-time opera sob requerimentos críticos de resposta. a resposta deve ser no mesmo tempo em que o piloto movimenta o manche da aeronave. porque são projetados para tarefas de controle dependentes do tempo. Um exemplo simples seria a linha de montagem de veiculo. o processo de alta prioridade precisa esperar. devendo operar sobre restritas condições de desempenho. eles são usados em situações nas quais é necessário aumentar a sustentação das asas. mas também devem ser gerados no momento correto. uma demora de resposta pode apresentar um desconforto para o usuário. . os Sistemas Embarcados de Tempo Real são chamados de “Tempo Real”. pois devem executar suas tarefas em um conhecido e previsível período de tempo.4 Importância das respostas de tempo real nos sistemas embarcados Segundo Taurion (2005). Este mecanismo é chamado de “preemptive scheduling”. um sistema de alta prioridade assume o controle do processador de imediato sem espera. não pode haver demoras ou imprevisibilidade de tempo de resposta.

Os Sistemas Embarcados são uma fusão entre um software desenvolvido em alguma linguagem de programação e um hardware específico que no caso desse trabalho será um Microcontrolador 8051. qual a eficiência dos dispositivos de E/S. 2. uma linguagem de programação é um vocabulário e um conjunto de regras gramaticais usadas para escrever programas de computador. Linguagem C. Linguagem de Alto Nível.26 o mesmo seguirá para a próxima etapa sem ter sido soldado e a operação terá falhado. Linguagem Assembly. se possuem recursos de comunicação do tipo: IPsec. . se tem uma boa relação entre a arquitetura do sistema. Esses programas instruem o computador a realizar determinadas tarefas específicas. Linguagem de Quarta Geração. alguma variação de tempo é permitida. tais como: Ambiente de desenvolvimento. entendida pelo processador (CPU). É constituída inteiramente de números. Para tanto.3 Linguagens de Programação para Sistemas Embarcados Segundo o ICEA (2005). 2. Já nos sistemas soft real-time. (TAURION 2005) Classificar sistemas de tempo real não é uma tarefa simples e muitos aspectos técnicos devem ser levados em consideração. IPv6. em uma escala relativa à sua semelhança com a linguagem humana em:      Linguagem de Máquina. No caso de aeronaves. as linguagens de programação podem ser classificadas. na verdade. pode se perder centenas de vidas humanas. uma falha.3. se suportam comunicação síncrona e assíncrona. Cada linguagem possui um conjunto único de palavras-chave (palavras que ela reconhece) e uma sintaxe (regras) específica para organizar as instruções (instruções mesmo) dos programas.1 Linguagem de Máquina É a linguagem de mais baixo nível de entendimento pelo ser humano e a única.Bluetooth e mais. existe o alto nível de programação e o baixo nível de programação para esses Microcontroladores. e novamente segundo o ICEA. linguagem de programação que foi desenvolvido.

Delphi. Hoje. (ICEA 2005) 2. A linguagem Assembly é também única para cada tipo de Microcontrolador. Cada CPU tem seu conjunto único de linguagem de máquina. Todos os programas escritos nessas linguagens são convertidos para a linguagem de máquina para serem executados pelo processador. de forma que um programa escrito em linguagem Assembly para um modelo de Microcontrolador poderá não ser executado em outro Microcontrolador de uma família diferente. é utilizada quando a velocidade de execução ou o tamanho do programa executável gerado são essenciais. devido à facilidade de criação e manutenção dos programas. Visual Basic. Ela possui a mesma estrutura e conjunto de instruções que a linguagem de máquina. Kylix. e é feita por um programa chamado montador (ou assembler). Uma típica instrução em Assembly seria: . nos primórdios da programação todos os programas eram escritos nessa linguagem. Pascal . C. a linguagem Assembly. Uma instrução típica em linguagem de máquina seria algo como: 0100 1111 1010 0110 As instruções presentes na linguagem de máquina são as mesmas da linguagem do nível mais acima (linguagem Assembly).(ICEA 2005) Ainda segundo o ICEA (2005). C++ e até mesmo JAVA. hoje temos.27 o que torna praticamente impossível entendê-la diretamente. impactando na portabilidade de software entre diferentes hardware. porém permite que o programador utilize nomes (chamados mnemônicos) e símbolos em lugar dos números. Um programa em linguagem de alto nível que foi compilado para executar determinada CPU precisa ser recompilado (e muitas vezes reescrito).3. No caso dos software para os Microcontroladores. para que possa ser executado em outra CPU que não tenha o mesmo conjunto de instruções. Atualmente a maioria dos programas é escrita em linguagens de alto nível. etc. definido pelo fabricante do chip. A conversão da linguagem Assembly para a linguagem de máquina se chama montagem.2 Linguagem Assembly É a linguagem de nível imediatamente acima da linguagem de máquina. tal como C.

a grande vantagem de programar em Assembly é aproveitar ao máximo as características particulares do hardware onde vai ser executado. é considerada uma linguagem de baixo nível. O mesmo já não acontece com as linguagens de alto nível. As desvantagens de uma linguagem de baixo nível são:  Grande desproporção entre o conjunto de instruções e as tarefas que o microprocessador normalmente é chamado a executar. não ajuda a manter o código estruturado.28 ORG 100 LDAA # $10 END Essa linguagem é também classificada como linguagem de segunda geração. assim como a linguagem de máquina. onde nem sempre é possível encontrar um compilador nessas condições para um dado Microcontrolador. 2. alem de ser um processo demorado e sujeito a erros.3. SOUZA (2003) . Outra vantagem é a existência de assembladores gratuitos ou de baixo custo para a totalidade dos Microcontroladores pelo que é sempre possível programar em Assembly. Ainda segundo Souza (2003). e.  Grande dependência relativamente aos detalhes internos do hardware que tem como conseqüência direta a reduzida portabilidade dos software. a programação em Assembly é o nível mais baixo em que se pode programar com alguma comodidade. conseguindo assim resultados otimizados quer em tempo de execução quer em tamanho de código. Esta desproporção obriga a decompor manualmente cada tarefa em operações elementares que.3 Vantagens e Desvantagens da linguagem Assembly Segundo Souza (2003). qualquer que seja o Microcontrolador escolhido.

com geração mínima de código e uso de memória. a linguagem é extremamente flexível e poderosa. mas.3. ICEA (2005) 2. Ela foi criada para ser tão pequena quanto possível.3. SOUZA (2003) Ainda segundo Souza (2003). Sua sintaxe é sucinta e não restringe as maneiras como um resultado pode ser alcançado. igualmente bem conhecidas são as desvantagens da linguagem: sintaxe demasiadamente livre e propensa a erros difíceis de detectar e demasiados pontos onde a norma ISO não define o comportamento da linguagem ou remete para a implementação de cada compilador. Seu conjunto de comando é bastante reduzido. os baixos requisitos de memória e elevado desempenho dos atuais compiladores facilitam o rápido desenvolvimento de aplicações eficientes e de fácil manutenção. permitindo ao desenvolvedor fazer praticamente o que quiser para alcançar esses resultados. SÁ (2005) 2. para alcançar esses objetivos. C é uma linguagem de programação profissional e é aceita para criação de sistemas operacionais como o Windows. o Unix.5 Linguagem C Segundo Sá (2005). etc. A filosofia de C é que desenvolvedor “sabe” exatamente o que quer e a maneira correta de instruir a linguagem e a máquina. apesar disso. .29 2.3.4 Linguagens de Alto Nível São as linguagens de programação que possuem uma estrutura e palavraschave que são mais próximas da linguagem humana. o que a torna uma linguagem muito mais rápida. Os programas escritos nessas linguagens são convertidos para a linguagem Assembly através de um programa compilador ou de um interpretador.6 Vantagens e Desvantagens da linguagem C As razões para a popularidade da linguagem C em aplicações embutidas são bem conhecidas: o acesso fácil ao hardware. Esta é a sua principal vantagem sobre as linguagens de nível mais baixo. tornando os programas mais fáceis de serem lidos e escritos. o Linux.

30 2. .3. quando requerem eficiência de código e o tempo de resposta dos mesmos seja o alvo principal.7 Linguagens de Quarta Geração Usualmente abreviada por 4GL. 2005. a SQL (Select Query Language) é um bom exemplo dessa geração.8 Análise e escolha da linguagem Diante das informações expostas nos subtópicos acima. São linguagens de programação com estrutura mais próxima da linguagem humana do que as linguagens de programação de alto nível. está em alta com o mercado dos Microcontroladores e a tendência do mercado é obrigar o encurtamento do tempo de desenvolvimento dos software e a produção de um código que seja de fácil manutenção. a linguagem escolhida para dar continuidade no estudo da Aplicação da Programação de Microcontroladores 8051 será a linguagem C.3. ”SP”. ICEA (2005) Um bom exemplo seria: SELECT NOME MATRICULA FROM ALUNOS WHERE NOME = "Carlos" AND ESTADO IN (“RJ”. o objetivo maior é apenas explanar esses conceitos. Modificado por: Erick Barros Nascimento 2. ”MG”) Figura 3: Arquitetura das Linguagens de Programação. Fonte: ICEA. As aplicações em Assembly são mais usadas atualmente. Porque além de se tratar de uma linguagem de alto nível. no caso deste trabalho. A maioria delas é usada para acessar banco de dados. EAD – Modulo V – Linguagens.

31 CAPÍTULO 3 MICROCONTROLADORES .

a Intel lança seu primeiro processador de 4 bits. Esse foi o primeiro processador de 4 bits e conseguia processar 6000 operações por segundo (6kHz). . No mesmo ano a Intel lançou o 8085. graças ao seu poderoso conjunto de instruções. conseguia rodar programas já desenvolvidos para este processador com mais vantagens. que ficou conhecido por sua facilidade de programação em linguagem Assembly. Wikipédia. da Intel Corporation. que era compatível com o 8080 da Intel e apresentava inúmeras vantagens frente a este. o 8008. tornando-se padrão no mercado dos processadores.32 3. pois existem milhares de aplicações para o mesmo. sendo a primeira a Motorola Corporation. porém o Z80 ainda era superior devido sua relação RAM versus Circuitos. Além de ser totalmente compatível com o 8080. Em 1976. Por ser um Microcontrolador CISC. segundo a enciclopédia On-Line. uma empresa japonesa chamada Busicom iniciou um projeto de uma calculadora eletrônica. já começam a aparecer os primeiros concorrentes da Intel. Esta empresa enviou para os Estados Unidos uma equipe de engenheiros responsáveis pelo projeto à procura de Marcian Hoff. oferece um conjunto de instruções muito vasto que permite executar desde um simples programa que faz piscar um LED até um programa de controle de acesso controlado por rede. denominado 4004. (AMADEU SOUZA) Logo. Após a compra da licença da empresa japonesa. a Intel em 1977 lançou o Microcontrolador 8051. e existem pelo menos dois mil fabricantes produzindo variantes e clones do modelo. Devido ao baixo custo dos 65xx. Já no próximo ano. Um engenheiro da Motorola sai da empresa e entra para a MOS Technology que em 1975. conseguia processar até 300000 operações por segundo. a Zilog (empresa fundada por um engenheiro ex-Intel) lança o Z80. mais precisamente em abril de 1972. desenvolver algo que funcionasse como um programa. É tido como o Microcontrolador mais popular do mundo. Este processador além de ter um barramento de dados maior. em 1971. a Intel anuncia seu primeiro processador de 8 bits. Ela lança o 6800. Atualmente possui diversos modelos clones sendo produzidos por empresas diversas à Intel. Comodore e até no Atari. Ele pensou que ao invés de desenvolver um chip que somente seria uma calculadora. MICROCONTROLADORES Em 1969. lança o 6501 e o 6502 por um preço muito mais baixo do que os processadores da Intel e Motorola. Marcian Hoff que já tinha experiência com computadores e vislumbrou de forma diferente aquele projeto. e registros internos novos. estes se tornaram rapidamente utilizados pelo mercado nos computadores da Apple. (AMADEU SOUZA) Nesta mesma época.

RAM. esquentar alimentos (forno microondas). Por serem voltados para aplicações específicas. Baseado na arquitetura de um microprocessador e seus periféricos. O microprocessador Intel foi um dos precursores. todas ou a maior parte dos elementos necessários a um controlador. assim surgiram os Microcontroladores. dispositivos de E/S e controladores de interrupções para interfaces paralelas e seriais. o Microcontrolador que será abordado com mais detalhes será o da família 8051. Este Microcontrolador é largamente utilizado no Brasil e no mundo e está presente discretamente na vida dos seres humanos. Considerando a relação custo/benefício. na substituição componentes digitais. MARINHO & MARINHO (2001) Neste capítulo. Um Microcontrolador típico tem instruções de manipulação de bits.33 3. trocar de canal na TV (controle remoto). foi criado um componente que (fisicamente em um chip de silício) comportasse todo um sistema e fosse equivalente a um microprocessador e seus periféricos. acesso fácil e direto aos dispositivos de E/S e processamento eficiente de interrupções. os Microcontroladores não são usados apenas em empresas de médio/grande porte.1 O que são os Microcontroladores Os Microcontroladores são chips altamente integrados que incluem. Tipicamente incluem: CPU. num único chip. EPROM/RAM/ROM. uma vez que todos os comandos a tarefa dedicada em si. houve uma preocupação em melhorar cada vez mais o sistema de processamento de dados através desses componentes. na década de 70 começaram a ser utilizados microprocessadores em computadores para dar uma maior eficiência no processamento dos dados. obtendo-se assim no final do projeto um melhor acabamento e um baixo custo. e partir daí. MARINHO & MARINHO (2001) Como já dito no capítulo 1. são executados via software. Eles podem ser definidos como uma solução "de um único chip". sendo utilizado no cotidiano de tarefas diárias tais como: Lavar roupas (maquinas de lavar). etc. pois um Microcontrolador ocuparia um menor espaço físico e daria uma maior eficiência e praticidade. também são utilizados em vários projetos de eletrônica. seu custo é relativamente baixo. .

e conversor A/D para aquisição de dados analógicos de sensores e outros periféricos necessários conforme aplicação do sistema. memória FLASH. interfaces de comunicação serial. 6 Segundo Chase (2007). controle e endereços para fazer acesso aos periféricos de entrada e saída.2 Microcontroladores versus Microprocessadores Os Microprocessadores são componentes dedicados ao processamento de informações com capacidade de cálculos matemáticos e endereçamento de memória externa. através de CI´s “driver´s”. pilha do TCP/IP. periféricos importantes como a memória RAM. A vantagem dos Microcontroladores é que além de possuir os periféricos integrados a um único chip. Com o . os Microcontroladores englobam em um único chip: interfaces de entrada/saída digitais e analógicas. (CHASE 2007) Figura 4: Diferenças entre Microprocessador e Microcontrolador – Nº de circuitos Fonte: CHASE. assim como a capacidade de absorver mais funções com o incremento de periféricos. como comunicação USB. A vantagem dos Microprocessadores de uso geral é que ainda possuem maior velocidade de processamento e são usados em soluções mais complexas. são responsáveis por executar e armazenar os programas escritos para eles (firmware). 2007. Sistemas Embarcados. pág. comunicação Serial e porta PS/2. Utilizam barramentos de dados. Com o advento dos Microcontroladores de 16 e 32 bits (atualmente o padrão é de 8bits) a capacidade de gerenciar soluções mais complexas e maior velocidade de processamento se iguala em alguns casos. ao do microprocessador de uso geral.34 3. conversores analógico-digitais e temporizadores/contadores.

também é possível escrever um registro nesse endereço de memória. o crescimento e funcionalidade dos Microcontroladores se deve muito por conta dos microprocessadores de uso geral. Modificado por: Erick Barros Nascimento Segundo MATIC (2003). Além disso. Figura 5: Modelo simplificado de uma unidade de memória de um Microcontrolador Fonte: MATIC. mais especificamente sobre o . Cada parte da memória de um Microcontrolador tem seu endereço de memória respectivo. caso contrário é executada uma operação de escrita no endereço de memória. é executado uma operação de leitura. The PIC Microcontroller. Dois conceitos básicos são apresentados: endereçamento e memória. se for pedido pelo software o valor de um determinado endereço de memória. A memória é o conjunto de todos os locais de armazenamento de registros e endereçamento é a busca ou armazenamento de um registro gravado em um endereço de memória específico. isso é feito através de linhas de controle que podem ser exemplificadas como no exemplo: utilizando a nomenclatura R/W (read/write – ler/escrever). 2003.35 estudo e avanço da tecnologia. nos Microcontroladores é usado o seguinte modo: se r/w = 1.1 Unidade de Memória A memória é a parte do Microcontrolador cuja função é guardar os dados. esse valor é conhecido. Isso significa que.3 Arquitetura dos Microcontroladores 3. de modo que se um endereço “XXXX” for solicitado seu conteúdo será conhecido (READ) ou receberá algum registro a ser armazenado (WRITE). Adiante. 3.3. os componentes da memória são basicamente a mesma coisa.

2 Unidade Central de Processamento – CPU Segundo Marinho & Marinho (2001). Portanto. também é chamado de “bus”. 3. Semelhantemente. quando a CPU solicita um registro que está alocado em algum endereço de memória.3. serão explanados os tipos de memórias existentes para Microcontroladores.36 Microcontrolador 8051. seja de ida ou de volta dessas solicitações de CPU. por onde trafegam as informações e interligam todos os componentes que formam um Microcontrolador.  Unidade de controle e sincronização: A unidade de controle e sincronização coordena e controla todas as unidades funcionais em uma seqüência lógica e sincronizada. Esse caminho é chamado de “Barramento”. 3. gerando uma outra palavra na saída. a Unidade Central de Processamento controla todas as funções do sistema. utiliza-se um caminho para que esses dados sejam transferidos. A memória e a CPU estão interligadas. um microprocessador de 64 bits necessita de um barramento de dados de 64 linhas para transmitir dados de 64 bits em . A CPU de qualquer sistema computacional contém os seguintes grupos de unidades funcionais:  Registradores e Contadores: Os registradores e contadores são unidades funcionais usadas para o armazenamento temporário de bits dentro da CPU.  Unidade Lógica e Aritmética – ULA: A unidade lógica e aritmética é a unidade funcional da CPU que executa as funções lógicas e aritméticas entre palavras binárias. um microprocessador de 8 bits requer um barramento de dados de 8 linhas para transmitir dados de 8 bits em paralelo.3 Barramentos Esse “caminho”.3. Existem três tipos de bus:  O Barramento de Dados (Data Bus): transmite dados entre as unidades.

Mas nem todos os pinos podem ser utilizados para este fim. NOBREGA FILHO (1999) Mas para os Microcontroladores apenas o barramento de endereços e de dados são mais utilizados.4 Unidade de Entradas e Saídas A função desta unidade consiste em poder ler (entrada) ou escrever (saída) um sinal digital (0 ou 1) em um pino de Microcontrolador. 3. os Barramentos são implementados como linhas de comunicação reais. tornando o sistema mais lento. Os barramentos externos podem ser expandidos para facilitar a conexão de dispositivos especiais. ao menos 10 (geralmente são mais) linhas de controle são necessárias. Ele conduz endereços. seriam necessárias oito transmissões sucessivas. Apesar de parecer pouco. Eles podem ser posicionados como parte do circuito no próprio Chip (Barramentos internos) ou podem servir de comunicação externa entre os Chips (Barramentos externos). O Barramento de Dados é bi-direcional. Segundo Nóbrega Filho (1999). pode transmitir em ambas as direções. NOBREGA FILHO (1999)  O Barramento de Endereço (Address Bus): é usado para selecionar a origem ou destino de sinais transmitidos num dos outros barramentos ou numa de suas linhas. É comum os Microcontroladores oferecerem uma grande quantidade de entradas e saídas digitais. quais para saída e quais . Para um Barramento de Controle ser formado. Ele conduz o status e a informação de controle de/para o Microprocessador. registradores de configuração permitem definir quais pinos serão usados para entrada. Se o barramento de dados para um microprocessador de 64 bits fosse formado por 8 linhas.37 paralelo. isto é. Uma função típica do Barramento de Endereço é selecionar um registrador num dos dispositivos do sistema que é usado como a fonte ou o destino do dado. este recurso é um dos mais importantes e mais utilizados. NOBREGA FILHO (1999)  O Barramento de Controle (Control Bus): sincroniza as atividades do sistema.3.

Por exemplo.  Entradas analógicas: Novamente segundo Quadros (2008) uma entrada analógica fornece um número que depende da tensão que está presente no pino correspondente. uma chave se fechando quando um imã se aproxima. As aplicações são as mais variadas. para circuitos com comunicação via rádio. podemos ligar um alto-falante (buzzer7) a um pino digital do Microcontrolador e gerar sons. 10. Só que está prática não 7 Buzzer: micro alto-falante que é também usado em grande variedade de placas-mãe para gerar sons de bips sonoros . A capacidade de acionamento de uma saída digital normalmente é limitada. O software pode controlar mudanças rápidas e periódicas das saídas digitais. Obviamente no lugar do botão pode-se ter qualquer tipo de sensor ou dispositivo com uma saída digital. para avaliar se está cheio ou vazio. que o Microcontrolador utilize apenas um conversor para todos os pinos. Verificar o nível de um aquário. E também a casos.  Saídas Digitais: Ainda segundo Quadros (2008) um uso básico de uma saída digital é acionar um LED. um motor.38 serão usados para outras funções. logo essa configuração torna um sensor que indica se a porta está aberta ou fechada. é comum que Microcontroladores utilizem conversores para transformar um sinal analógico em digital. Verificar o nível de sinal recebido. logo segundo Quadros (2008) um exemplo típico do uso de entradas digitais é para detectar se um botão está pressionado. Verificar o pH da água. um transistor ou um relê pode ser utilizado para controlar cargas maiores. Por exemplo. para decidir se é necessário a adição de sulfato ferroso. Logo. valores típicos estão correspondidos entre 8. Nas entradas e saídas analógicas. O numero de bits presente no número define a precisão da conversão. Prende-se o imã em uma porta e a chave no batente. Desta forma uma saída digital pode controlar uma lâmpada. dentre as quais podemos citar:     Verificar o nível da alimentação. para indicar bateria baixa. uma sirene. as entradas e saídas de um Microcontrolador podem ser classificadas como:  Entradas Digitais: Um sinal digital só lê valores compreendidos entre “0 e 1”. etc. 12 e 16 bits.

Nebjosa. evitando assim sua queima. assim que a transferência se inicia. a unidade passa a ter valor lógico “0” durante um período “T” de .  Saídas analógicas: Em uma saída analógica a tensão de um pino é controlada escrevendo um valor em um registrador. O protocolo de comunicação deve ser bem definido de modo que não haja problemas entre as partes que estão a se comunicar.39 muito aceitável segundo Quadros (2008). onde a função principal é alertar sobre a sobrecarga. outra para receber esses dados e a terceira é usada como referência tanto do lado da entrada dos dados como na saída dos dados. Ideal para monitoramento de sobrecarga de motores. The PIC Microcontroller 3. Esse conjunto de regras forma o protocolo RS-232. porque consome muita energia e o tempo de conversão é um pouco demorado para um Microcontrolador.5 Comunicação Serial dos Microcontroladores Basicamente os Microcontroladores se comunicam da forma serial ou tecnicamente RS-232. Este tipo de recurso é mais incomum. onde o Microcontrolador indica somente se a tensão do pino é maior ou menor que um valor (fixo) armazenado em uma variável interna. Uma alternativa bastante usada são os comparadores analógicos. Segundo Matic (2003) eles trabalham apenas com três linhas onde uma é usada para enviar dados.3. Figura 6:Exemplo simplificado de uma unidade de E/S Fonte: MATIC. logo considerando que se tem uma unidade lógica de valor “1” e que é colocada na linha de transmissão até que a transmissão se inicie. insistindo a anomalia do motor é desligado.

entre as quais pinos.6 CLOCK – O relógio do Microcontrolador O processador e vários de seus periféricos necessitam de uma base de tempo (clock). Então o lado da recepção fica a espera dos dados e um mecanismo de recepção entra em atividade. http://www. 16. que segundo Tugatronica (2007) a transmissão paralela precisa de vários fios para transportar a informação. com precisão e custo diferenciados:  Cristal de quartzo: é o mais preciso e está disponível em uma faixa grande de valores. Existem diversas formas de gerar o Clock. A comunicação Serial RS-232 é chamada serial devido os bits de dados se moverem bit a bit em série. Esta informação pode ser enviada em palavras de 4. permaneceram na linha de transmissão por um período “T” de tempo e após a passagem do oitavo bit a comunicação se dará por encerrada e a unidade lógica receará o valor “1”. ao contrário da transmissão em paralelo. Por outro lado.3.com/introducao-a-porta-paralela/ 3.40 tempo. 32 ou 64 bits simultaneamente ao receptor por várias vias. Figura 7: Diferença entre a transmissão em série com a transmissão em paralelo Fonte: TUGATRONICA. Essa troca de dados colocará os bits menos significativos e os mais significativos no mecanismo de recepção. 8.tugatronica. fios ou outros meios físicos. . é o mais caro.

mais barato. o contador for decrementado a cada clock e interromper quando chegar à zero. 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. assim. Um outro recurso disponível em alguns timers é a possibilidade de iniciar e parar a contagem por um sinal externo. Por exemplo. permitindo usar clocks diferentes para o processador e periféricos ou mesmo mudar dinamicamente o clock do processador conforme a tarefa requer velocidade ou economia. é descoberta a quantidade de tempo decorrida. A cada 15 interrupções teremos aproximadamente 1 segundo. considerando um Microcontrolador operando a 1MHz com um timer que interrompe o processador a cada 65536 ciclos do clock.41    Ressonador: uma alternativa mais barata e menos precisa aos cristais. A partir desta interrupção o software gera as temporizações necessárias.3. se pudermos carregar 10000. o tempo entre as interrupções será de 65536/1000000 = 65. Em alguns modelos é possível ter mais de uma fonte de clock. É comum um Microcontrolador suportar várias opções.535 milissegundos. o Microcontrolador terá uma interrupção precisamente a cada 10 milissegundos). Quadros (2008) 3. Oscilador interno ao Microcontrolador: o mais barato (está embutido). mas não costuma ter muita precisão. anotando o seu valor durante os instantes de tempo supostamente T1 e T2 e calculando a sua diferença. . Isto permite usar o timer para medir o tempo entre as variações em um sinal digital. Circuito RC externo: pouco preciso. segundo Quadros (2008) a unidade básica do temporizador é um contador que é na realidade um registro cujo conteúdo aumenta de uma unidade num intervalo de tempo fixo. Quadros (2008) Logo. Na forma mais simples é um contador que é incrementado ou decrementado pelo clock. Neste caso. ao chegar a zero uma interrupção pode ser gerada.7 TIMER O timer é um periférico básico encontrado praticamente em todo Microcontrolador.

Embora o programa deva ser testado corretamente antes de colocá-lo em produção. o WDT proporciona uma opção de “programação defensiva” que deve ser utilizado em aplicações críticas e mesmo em outras aplicações triviais. ninguém deseja ter o sistema travado inesperadamente durante longos períodos. 8 Segundo Ramos (2009). Portanto o WDT deve ser utilizado em qualquer tipo de aplicação. quando se trata de automatização que requer tempo para execução de tarefas e reinicio do sistema microcontrolado. Essas são as características comuns a maioria dos Microcontroladores disponíveis no mercado.  Bug no código do programa (um loop infinito.   Instabilidade de alimentação do Microcontrolador. porque o hardware do Microcontrolador está exposto a uma condição que não tem garantia de funcionamento. o Watchdog timer (WDT) tem uma função muito importante não apenas contra bugs de software. possui tempo de incremento constante). Neste caso. Esse insucesso do Microcontrolador de manter o fluxo do programa adequadamente pode ter várias causas:  Condições Ambientais: que excedem os limites do Microcontrolador. E seu uso é imprescindível. . Falha no oscilador externo: A diferença do WDT em relação ao restante do sistema é justamente o fato dele possuir um oscilador independente do clock principal. este é usado para prolongar um período de tempo que o temporizador pode gerar (alguns segundos). por isso. Sob condições normais resseta o dispositivo no fim da contagem de tempo. por exemplo).3. slide 25: RC (Resistor – Capacitor) que não requer componentes externos. Mesmo que a aplicação não tenha relevância. O WDT oferece a possibilidade de restabelecer o controle da aplicação pelo Microcontrolador através da reinicializarão do sistema (um simples reset) mesmo que a falha esteja no próprio oscilador do Microcontrolador (o WDT possui clock independente através de um RC8 interno e. o estouro do temporizador pode ocorrer após um tempo maior do que o especificado pelo postscaler. mas também em situações ambientais agressivas.42 3.8 WatchDog – Cão de Guarda Segundo PHPH [20-].

Os Microcontroladores da família 8051 seguem a arquitetura de Von Neumann. Essa arquitetura é denominadamente conhecida como: Complex Instruction Set Computer – CISC ou “Computador com Conjunto Complexo de Instruções”. 2). quando a CPU está acessando a memória de programa não pode acessar a memória de dados. aos quais reduzem os problemas decorrentes de desenvolvimento ao mínimo e provêm a máxima flexibilidade. porque usam os mesmos barramentos para as duas memórias. contudo seu conjunto de instruções é projetado para tarefas mais dedicadas possíveis.43 3. a família 8051 é constituída por Microcontroladores robustos e flexíveis para o uso de aplicações de controle industrial e periféricos inteligentes. os barramentos de dados e endereços são compartilhados entre memórias de programa e memórias de dados na comunicação com a CPU (figura 8).4 O Microcontrolador 8051 Segundo LEAL (2001. pag. Ao contrário da arquitetura de Von Neumann começaram a surgir microcontroladores com a arquitetura de Harvard. que segundo Marinho & Marinho (2001). Ter em um Microcontrolador com uma arquitetura que pode possuir um vasto conjunto de instruções pode ser vantajoso no sentido de que se pode ter muitas instruções para execução de várias tarefas. porque vai afetar diretamente o desempenho do Microcontrolador. colocando em xeque aplicações que requerem por exemplo. respostas em tempo real. Basicamente existem três versões (pino compatíveis) desse componente. que é também é conhecida por: Reduced Instruction Set Computer – RISC ou “Computador com um Conjunto Reduzido de Instruções”. onde o acesso as memórias de dados e de programas podem ser feitos simultaneamente. arquitetura e novas instruções fazem dele um controlador de boa performance e de custo relativamente baixo para aplicações que requerem até 64 Kbytes de memória de programa e 64 Kbytes de memória de dados. 8051 e 8071. . Nesse tipo de arquitetura. Suas características de hardware. o 8031. mas pode não ser tão vantajoso quando o conjunto de instruções passa a ser grande demais.

Um ponto interessante nesta arquitetura é que. enquanto que o bloco superior está dedicado aos registradores especiais que controlam os diversos recursos do Microcontrolador. Essa arrumação da memória em blocos distintos oferece maior versatilidade às aplicações. A figura 9 apresenta um diagrama em blocos com a arquitetura 8051. Um outro registrador de 16 bits é usado para acessar a memória de dados.44 Figura 8: Exemplo da arquitetura de Von Neumann Fonte: MARINHO & MARINHO 2001. o que permite até 64 KB de memória de programa. Modificado por Erick Barros Nascimento 3.4.1 Arquitetura física dos Microcontroladores 8051 Segundo Zelenovsky & Marinho (2002). Nota-se que existe a possibilidade da memória de programa (ROM 4KB) ser integrada junto com o chip do processador. Microcontrolador 8051 está especificada uma CPU de 8 bits. ao contrário de computadores de uso geral. o que permite 64 KB de dados. a arquitetura 8051 especifica os recursos que deverão estar presentes nos Microcontroladores compatíveis com esta família. Ainda segundo Zelenovsky & Marinho (2002). para a qual já foi definido um conjunto mínimo de instruções. O bloco inferior destina-se a trabalhar como uma outra memória de dados. . O contador de programa (PC) é de 16 bits. essa arquitetura separa a memória de programa da memória de dados. A memória RAM interna tem 256 bytes e está dividida em dois blocos de 128 bits.

denominadas de P0. ZELENOVSKY & MARINHO (2002) Figura 9: Núcleo de um Microcontrolador da família 8051 Fonte: ZELENOVSKY & MARINHO. sendo que outras duas interrupções podem ser provocadas pelos contadores e temporizadores. Modificado por Erick Barros Nascimento . Elas também podem ser acessadas bit a bit. as portas P0 e P2 são consumidas na construção dos barramentos de endereços e dados. por isso a quantidade de bits e a velocidade é programável. P1. Esta arquitetura especifica uma porta serial capaz de atender aos requisitos mais usuais de comunicação. Para a geração de pulsos com duração precisa ou para a medição de intervalos de tempo em sinais digitais. A quinta interrupção é gerada pela porta serial. P2 e P3. cada bit da porta pode ser programado como entrada ou como saída. denominados de "Timers". e a porta serial gera uma interrupção tanto na transmissão quanto na recepção de um byte.45 A arquitetura 8051 oferece quatro portas paralelas de 8 bits. Essas portas são bidirecionais e podem ser usadas para receber ou para gerar sinais digitais. O bloco denominado "Controlador de Interrupções" trabalha com cinco interrupções. existem dois contadores e temporizadores de 16 bits. Duas dessas interrupções podem ser pedidas externamente através dos pinos INT0 e INT1. Quando se usa memória externa ao Circuito Integrado – CI. ou seja.

Na mesma via num dado tempo estão trafegando dados. Isso porque o P0 é um port que serve de via multiplexada de tempos em tempos entre dados e endereços quando se usa memória externa.4. Os Ports ou “Portas” são os um conjunto de 8 pinos dos Microcontroladores e dependendo do Port seja ele P0. P2 e P3.4. Compõem-se os Ports. O port P0(decrementado de pino 39 a 32) é um port de propósito geral desde que não se utilize de memória RAM. terão funções de E/S. 32 pinos.0 e o pino 32 é o port P0. etc. . ALE (pino de demultiplexação). A maioria desses pinos estão divididos em quatro partes que são chamadas de PORTS. ROM ou EPROM internas do chip. os outros 8 pinos restantes são para funções especificas. tais como: Reset do sistema. etc. justificando assim sua arquitetura baseada em Von Neumann. uso da RAM/ROM. VSS (terra). alimentação do Chip. 3.1 Port P0 Segundo Nicolosi (2001). P1. Alimentação VCC (alimentação elétrica). onde o pino 39 corresponde ao por P0.7. e em outro dado tempo estão trafegando endereços. Os pinos que compõem o port P0 são os que decrementam de 39 a 32.2.46 3.2 Organização da Pinagem dos Microcontroladores 8051 Os Microcontroladores 8051 são compostos de 40 pinos.

 Port P2 (pino 21 ao 28): Port de uso geral. os pinos P1.2 também serão ocupados para realização da tarefa. isso se não for utilizado nenhum periférico externo ao chip. Modificado por Erick Barros Nascimento 3. Figura 10: Demultiplexação de dados e endereços usando o port P0 Fonte: Microcontrolador 8051: Detalhado. por exemplo. isto é. caso não use memórias RAM/ROM/EPROM. que se esse pino do 8051 for ligado a um chip de latch. no sentido que ocupará em um determinado tempo a via de dados onde deveria passar endereços.0 é ocupado com Timer.P2.  Port P3 (pino 10 ao 17): Port de propósito geral como E/S.4. porque um chip de latch ligado ao pino ALE. usando oito vias de comunicação. utilizando-se de um pino chamado de ALE (Address Latch Enable).47 Ainda segundo Nicolosi (2001). eu posso ler ou escrever nesse port.2. Em alguns modelos de Microcontroladores mais avançados. você terá separado 8 via com endereços para dados e 8 vias de endereços para trafegar endereços.2 Ports uso geral para E/S e uso das memórias internas e externas-P1. se o port P1. Via software. Em outras versões de Microcontroladores os pinos do Port P2 são utilizados para endereçar RAM/ROM/EPROM externas ao chip.1 e P1.P3  Port P1 (pino 1 ao 8): Port de propósito geral como E/S. externas ao chip. é possivel demultiplexar externamente as vias de dados e endereço. nenhuma interrupção externa e também se não utilizar . pag. 77. o programador não precisa se preocupar com uma determinada implementação que venha a fazer. caso utilize Timers consecutivos pode-se ocupar 2 pinos do referido Port.

1 P3. Modificado por Erick Barros Nascimento Nome P3. como interrupção e dói pinos que gerencia a memória RAM externa (pinos de READ – RD e Write – WR).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.6 16 WR E/S P3. além de ter entradas programáveis. Sinaliza que o microprocessador vai ”ler” na RAM P3. etc. interrupções. Transmit data Eternal interrupt 0 Comentários da função 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. em geral. Esse port é utilizado entre os periféricos internos do chip para fora do mesmo. pag. Então se o programador não utiliza algum desses pinos com propósito especifico eles estarão livres para serem utilizados como pinos de E/S geral. 78. é comprometido parcialmente com alguma utilização que se deseja dos periféricos internos.0 P3.2 Numero do Pino* 10 11 12 Função especial** RXD TXD INT 0 Função Normal E/S E/S E/S Função especial RXD. Figura 11: Comprometimento do Port P3 sendo utilizado para funções especiais Fonte: Microcontrolador 8051: Detalhado. esse port também.4 14 T0 E/S P3.7 17 RD E/S External data: Memory Read strobe . Receive data TXD. Sinaliza que o microprocessador vai ”escrever” na RAM Usado quando se conecta a RAM externa no chip.5 15 T1 E/S P3.48 RAM externa. Logo.

o chip irá ler sua ROM/EPROM interna. e após acabar todo espaço de memória interna. caso ela exista. Ele aciona a ROM/EPROM externa (chamada memória de código) quando o Microcontrolador vai fazer uma busca de instrução na ROM. ** Obeservação 2: Estas configurações devem ser programadas no chip para ativá-las. assim como os pinos de características especiais INT 0. Se o pino EA estiver setado com valor lógico em “1”.  ALE – Address Latch Enable (pino 30): Pino que comanda a demultiplexação das informações de dados e endereços do port P0 e é automaticamente gerado pelo Microcontrolador.  EA – External Access (pino 31): É um pino de comando externo. Figura 12:Organização de ROM interna/externa em função do valor lógico do pino EA Fonte: Microcontrolador 8051: Detalhado. para. Também é acionado (sempre automaticamente) quando se faz uma consulta em alguma tabela fixa. Modificado por Erick Barros Nascimento . Modificado por Erick Barros Nascimento  PSEN . em seguida. executá-la. 80. por meio de uma instrução especial para isto. irá trabalhar automaticamente com a ROM/EPROM externa. gravada na ROM. que determina se vamos usar ROM/EPROM interna do chip ou se vamos ler somente uma ROM /EPROM externa ao chip. Esse pino também possui a característica de ser ativo quando seu valor lógico se encontra em “0”.Program Store Enable (pino 29): É um dos quatro pinos de controle do chip. 78. INT 1. enxergará somente ROM/EPROM externa. Com o pino EA setado para valor lógico “0”. pag. pag. WR e RD. Tabela 1: Resumo das Funções especiais do Port P3 Fonte: Microcontrolador 8051: Detalhado.49 * Observação 1: Os números dos pinos são referentes à pastilha de 40 pinos (DIP).

que se tornará o clock ou padrão de tempo para o Microcontrolador trabalhar. Deve-se ter um circuito no referido pino para que no ligamento do chip em +Vcc de 5 volts. pag. cabendo apenas a quem vai implementar software para esse tipo de Microcontrolador saber operá-la. .  VCC e VSS – Alimentação elétrica do chip: É por onde se alimenta o chip: +5Vdc em Vcc. Ele organiza os valores internos do chip para iniciar o trabalho adequadamente e sempre da mesma maneira (Watchdog). porque assim se terá a garantia que o sistema iniciou corretamente. pino 40 e terra em Vss no pino 20. o RST fique ao menos dois ciclos de máquina no estado “1” ou “High”. 104. Modificado por Erick Barros Nascimento  XTAL1 e XTAL2 – Cristal/Oscilador (pinos 18 e 19): Os Microcontroladores 8051 possuem um sistema de oscilação interna que só exige do exterior o cristal e dois capacitores para gerar o oscilação. Figura 13: Esquema de circuito com Reset automático e Reset forçado Fonte: Microcontrolador 8051: Detalhado. essas ligações já estão prontas. Também é ideal que o circuito tenha um reset forçado por chave.50  RST – Resest (pino 9): É o disparador do chip quando se quer iniciar adequadamente sua função. A exemplo o KIT 8051LS oferecido pela Microgenios Soluções Eletrônicas Ltda. Em placas programadoras que já vem prontas de fabrica.

51

3.4.3

Fabricantes do Microcontrolador 8051

Segundo Zelenovsky & Mendonça (2002), são 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é relógio permanente, de acordo com o mercado a que se dedicam. Esses recursos todos são mapeados e controlados através de registradores na porção superior da RAM Interna. O projeto original especifica que este processador deveria trabalhar com um relógio de 12 MHz. Entretanto, hoje em dia já se oferece 8051 operando a 60 MHz, onde a maioria desses dispõe da arquitetura ISAC. Logo, e ainda segundo Zelenovsky & Mendonça (2002), devido à sua grande aceitação, a família dos Microcontroladores 8051 passou a ser produzida por outros fabricantes e, é claro, cada um deles introduziu inovações, tais como: Interface serial (para comunicação com PC’s), Vigilância de alimentação, protocolos de comunicação I²C e CANBus, etc. Por isso, atualmente a família 8051 é uma das famílias de Microcontroladores que oferece uma boa variedade de opções. Outra vantagem desta família é o fato da independência de um único fabricante, pois existem grandes empresas fabricantes de produtos eletrônicos que produzem chips desta família, 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

Relógio 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 não 4 KB 4 KB não 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 não não não não 8/10 bits não não 8/10 bits 8/10 bits

Tabela 2: Grandes fabricantes e principais informações sobre suas características
Fonte: ZELENOVSKY & MENDONÇA (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 memória Flash. O primeiro chamou-se ADuC812 e foi lançado em 1999. Normalmente, esses chips trazem conversores AD de 12, 16 ou 24 bits multiplexados em 8 canais. Essa quantidade de bits permite uma relação sinal-ruído perto de 70 dB. Usualmente, os dois conversores DA são de 12 bits. Além disso, para garantir precisão nas conversões, existe um circuito que oferece referência interna de 2,5V e um sensor de temperatura. Para fornecer alguns dados mais técnicos, os conversores AD podem trabalhar na taxa de 20 mil conversões por segundo e ainda têm capacidade de fazer transferência via DMA. O DMA é importante para permitir que o conversor trabalhe à velocidade plena sem consumir recurso do processador. ZELENOVSKY & MENDONÇA (2002) A memória 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 gravação na memória flash. Assim, não são necessários recursos externos para a gravação desta memória. Também existem versões com memória de dados flash, o que é interessante para gravar dados que serão mantidos mesmo na ausência de alimentação. A memória de dados externa pode chegar a até 16 MB, quantidade mais que suficiente para qualquer aplicação de microconversores. Dependendo da versão, esses microconversores podem trazer outros recursos tais como cão de guarda, vigia para tensão de alimentação, interface serial, porta USB, I2C e barramento CAN. Como já foi citado, cão de guarda – Watchdog, é um circuito que periodicamente verifica o funcionamento do processador e, caso este fique preso em um laço infinito, provoca o reset, obrigando assim o reinício do programa. A vigia de alimentação monitora a tensão de entrada do processador e alerta quando esta atinge um certo limite inferior, antecipando-se a uma falta de alimentação e dando tempo ao processador para guardar na memória flash os dados essenciais. ZELENOVSKY & MENDONÇA (2002) Logo, a utilização e o estudo de modernas tecnologias prevê Microcontroladores operando sob clocks cada vez mais rápidos, atingindo em um único chip, clock de máquina que era possível 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

CAPÍTULO 4 FERRAMENTAS DE PROGRAMAÇÃO

54

4. FERRAMENTAS DE PROGRAMAÇÃO PARA 8051
Segundo Danilo Oliveira (2009), é mais do que correto afirmar que software é um termo que já está integrado ao vocabulário universal, apesar de não poder ser definido por boa parte dos indivíduos que fazem uso do mesmo. Até dez anos atrás, Microcontrolador era uma novidade no mercado da eletrônica, que até então era inundado de portas lógicas, o que fazia do tamanho de um circuito proporcional à sua complexidade. Programar um Microcontrolador era privilégio de raros profissionais. Além da linguagem de programação, o desenvolvedor de sistemas para Microcontroladores deve possuir conhecimento acerca dos registradores internos quando não puder contar com guias de consulta, além de se fazer necessário uma noção, no mínimo, básica de eletrônica. Novamente segundo Danilo Oliveira (2009), grandes empresas como a Microchip, obtiveram grandes resultados ao dar ênfase na elaboração de softwares em Assembly para seus Microcontroladores, inicialmente algumas versões 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 lançou um compilador C para Microcontroladores PIC, chamado PICC, acelerando ainda mais sua expansão no mercado. Entretanto, assim como no mundo dos computadores de uso geral, grande parte dessas ferramentas de programação são proprietárias, tanto software de ambiente de

desenvolvimento integrado, como software de compilação, software de simulação e software de gravação dos programas desenvolvidos. Porque estes software que são projetados para a grande imensidão dos Microcontroladores, afinal, precisam ser gravados nos mesmos. Logo até bem pouco atrás, encontrar ferramentas gratuitas para realizar estas tarefas era praticamente impossível, até pelo fato da não portabilidade existente de um chip para o outro, empresas acabaram por desenvolver seus ambientes de programação, afim de que os mesmos só funcionem nos seus equipamentos. Muitos desenvolvedores optaram por utilizar Microcontroladores da Microhip, mesmo com seus altos custos de aquisição, devido à disponibilização de ferramentas de desenvolvimento integrado próprios 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 não conseguiam encontrar ferramentas de programação para os seus chips, principalmente para os modelos 8051. Mas o fato é que: com

é uma plataforma de desenvolvimento de software composta por: editor. Assim tendo todo esse conjunto de ferramentas e como hoje em dia. compilador. por . com a mesma linguagem para os chips. C. Aliado a todos esses aspectos de desenvolvimento e de ambientes integrados de desenvolvimento. portas de expansão. às vezes. 4.1 Software de Desenvolvimento para Microcontroladores 4. Isso porque em alguns casos. a exemplo o kit8051LS da Microgenios. linker. suporte integração com outros software. quando se tem um desenvolvedor que implementa em linguagem C perfeitamente para computadores pessoais.55 o crescente e constante avanço dos software livres e/ou de código aberto acabaram atingindo de forma bastante positiva o universo dos Microcontroladores. O Eclipse tem tido grande repercussão e uso porque trata-se de um projeto “open source”. esses Kits são excelentes fermentas para desenvolvimento de software microcontrolados. ou seja.1. o estado da arte de eletrônica. entre outras ferramentas. pelo fato de desconhecer a eletrônica. esse mesmo é projetado para a família dos Microcontroladores 8051. fica mais complicado desenvolver os mesmos software. bastando apenas adição de plugins e download de atualizações para possibilitar essa integração. também estão os Kits de Desenvolvimento. etc. o próprio Microcontrolador. C++. ainda está carente do profissional desenvolvedor de software para Microcontroladores. depurador. Ambientes de desenvolvimento integrado capazes de realizar integrações com outros sistemas de Microcontroladores.1 Eclipse Eclipse é uma IDE. displays de LCD. novos profissionais nasceram para o universo da Automação Industrial. vem equipados com placas controladoras. Essas ferramentas já dispõem de grande parte do que é necessário para o desenvolvimento e testes de aplicações para um Microcontrolador. elevou consideravelmente o desenvolvimento de software para Microcontroladores. do inglês Integrade Development Evironment (Ambiente de desenvolvimento integrado). então utilizando-se de Kit de desenvolvimento e ambientes de desenvolvimento integrado ao alcance de todos. outra característica importante é sua capacidade de trabalhar com linguagens de programação diferentes (Java. logo não é necessário pagar licença de uso.

que são geralmente arquivos no disco rígido dos computadores de uso geral. Eles residem no seu workspace. Tendo seus próprios recursos para gerenciamento de mecanismo. Como já dito. wizards. ter o mesmo Eclipse para desenvolver em C ou Java. O projeto CDT provê um conjunto de plugins que implementa uma IDE de C/C++. todas as outras aplicações instaladas serão notificadas sobre essa mudança. com isso. é onde o usuário trabalha. As aplicações instaladas comunicam-se entre si. Outra curiosidade é o Workbench. o Workbench ajusta sua interface visual e suas barras de ferramentas para aquela perspectiva. uma pasta especial localizada no seu sistema de arquivos. a qual já vem com o Eclipse. diferentemente da JDT – Java Development Tooling. e um depurador. Aplicação da programação de Microcontroladores. que é a parte visual do Eclipse. Ele adiciona uma perspectiva C/C++ ao Workbench do Eclipse. Se o usuário escolhe uma perspectiva para trabalhar com Java. garantindo uma consistência e integração em todo o seu ambiente de desenvolvimento. Uma das suas aplicações é a CDT – C/C++ Development Tooling.2009 . um editor. Para Microcontroladores 8051. se uma aplicação altera um recurso qualquer. E. que dará suporte a integração de ferramentas desenvolvidas por distribuidores de software independentes. porque a implementação que será utilizada para o Microcontrolador 8051 será com a linguagem C. o Eclipse é um Framework para integrar diferentes tipos de aplicações. bastando apenas à adição dos mesmos nos lugares corretos. O CDT foi desenvolvido para prover uma arquitetura extensível. Figura 14: Eclipse com perspectiva para C/C++ Fonte: NASCIMENTO. B. além de trabalhar com linguagens de quarta geração (SQL) utilizando-se do plugin QuantumDB. . utiliza-se as aplicações CDT. por exemplo: o usuário pode através de plugins.56 exemplo) e suas aplicações. que suporta desenvolvimento C/C++ com vários views. Perspectiva quer dizer qual configuração e ajuste o usuário fará no Eclipse para utilizar a linguagem de programação desejada. Essas aplicações são oferecidas em forma de plugins e automaticamente se integram a plataforma.

Com uso de plugins é possível integrá-lo ao Eclipse e compilar software escritos no mesmo.57 Figura 15: Perspectiva ajustada para Java e QuantumDB Fonte: NASCIMENTO. Como no Eclipse. Existem outras tais como: Eclipse 32. Dessa forma o workbench pode ser arrumado de uma forma livre e que melhor adapte o desenvolvedor. Aplicação da programação de Microcontroladores. é um otimizador do compilador ANSI – C que permite trabalhar com Microcontroladores Intel 8051. Ganymede. Portanto é possível ter a total liberdade para criar o ambiente de desenvolvimento que melhor agrade ao desenvolvedor. B. inclusive pacotes de instalação para ambientes Windows e Linux pré-configuradas já para o propósito do desenvolvedor. O SDCC possui ainda eliminação internar de sub-expressões. distribuído sob a Licença Geral Publica (GPL – General Public License) da GNU. é a extrema flexibilidade na qual podem ser combinadas views e editores. E.2009 . O que torna o Eclipse uma IDE especial. entre outros.BRUM & Silva (2001). As views e editores podem ser adicionados em uma perspectiva aberta (mesmo se eles foram definidos em um plugin totalmente diferente).1. etc. Existem inúmeras versões do Eclipse. . e pacotes prontos para PHP.0. Europa fall. de uma forma agradável e customizada.. também é um projeto open source.2 Small Device C Compiler – SDCC O compilador C para pequenos dispositivos – SDCC. Atmel AT89S8252 e Motorola 68HC08. Zilog Z80. Móbile. 4. O seu analisador sintático (parser). pode ser incrementador para manipular extensões de linguagem para outros tipos de microprocessadores. Maxim 80DS390. segundo ROZA. nesse trabalho será usado a versão Eclipse Europa 3. ambos baseados em MCU’s (Microcontroladores de consumo ultra baixo).3.

Este sistema de alocação de registradores faz parte da otimização realizada por este compilador.58 implementação de copy-propagation. Já o seu back-end utiliza um esquema de alocação global de registradores. O SDCC também possui otimização de loop e eliminação de código morto.0. é o processo de substituição das ocorrências de metas de trabalhos diretos com seus valores. Esta otimização ocorre durante o processo de compilação. o otimizador trabalha com regra baseada em um mecanismo de substituição de registradores.9. Ainda segundo ROZA. Vale ressaltar que existe pouca documentação para esse software. Modificado por Erick Barros Nascimento As ferramentas ASXXXX (montador). que simplesmente atribui o valor de x para y. BRUM & Silva. 11. fazendo com que a otimização seja independente do tipo de microprocessador para qual se deseja gerar o código. Tipo de Variável 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 precisão simples Tabela 3:Tipos de variáveis contempladas pelo SDCC Fonte: ROZA.3 PDS – 52 O PDS-52 é um Simuldor e Debugger para microcontroladores 8051.BRUM & Silva (2001). BRUM & SILVA (2001) A versão do SDCC que esta sendo utilizada neste trabalho é 2. ROZA. 4. A atribuição direta é uma instrução da forma y = x.1. pode-se fazer a simulação dos software desenvolvidos . ASLINK (linker) e SDCDB (debugador) são parte do compilador SDCC. que segundo a enciclopédia on-line Wikipédia. depois da geração da linguagem intermediária. As plataformas suportadas pelo SDCC são Linux / Unix e Windows. que pode ser configurado para outros processadores de 8 bits. mais para o desenvolvimento deste trabalho as informações são suficientes. 2001. pag. Como o SDCC também pode ser integrado ao Eclipse.

porque pode haver conflito com as versões dos “source files” gerados dentro do Eclipse. não é aconselhável. que estão armazenados no workspace do mesmo. dentre as quais são mostrados algumas peculiaridades da compilação feita pelo SDCC. . Logo abaixo temos: 1. E. deverá notificar a empresa mantenedora do software. O PDS-52 é não é um projeto open source. bem como a debugação caso haja algum hardware especifico conectado no PC. com clock configurado para 20 Mhz. Janela do source: Exibe o código em C (apesar da possibilidade de alteração desse código dentro do próprio PDS-52. Janela Disassembler: Apresenta o arquivo Assembly gerado pelo SDCC a partir do arquivo escrito na linguagem C. Aplicação da programação de Microcontroladores.59 no utilizando o Eclipse. mais é um software livre para download caso seja utilizado para fins não comerciais. Fonte: NASCIMENTO. 2.2009 . Caso o usuário deseje utilizado para fins comerciais. B. A figura acima mostra o PDS-52 em tempo de execução de simulação de um Microcontrolador Atmel AT89S52. Figura 16: Simulação de contagem binária de 8 bits e gravação no PORT P2.

AT89S51. como execução passo a passo. na cidade de Cleveland. Janela Peripherals: Exibe o dispositivo que se deseja análise na simulação. O SPI – Flash Programmer é compatível com os Microcontroladores Atmel modelo. Divisão de Reumatologia.1. 4. da Escola Universitária de Medicina. todos os Timers. etc.. Existem inúmeras funções de analise de software neste simulador. etc. entre outros da família 8051 da Atmel. AT89S52. no caso da figura 16. AT89S53.60 3. Ele foi desenvolvido pelo Professor Mohammad Asim Khan.HEX gerado pelo compilador utilizado (neste caso SDCC). do PC ou Notebook para o Kit de programação através da porta paralela (LPT1). estão sendo mostrado o armazenamento da contagem de 8 bits no Port P2. Ohio. 4. pode ser exibido todos os Ports. Trata-se de uma distribuição gratuita para uso independente do fim. apenas para transferência do arquivo *. AT89S8252 e AT89S8253. Janela Execution Time: Apresenta o clock do Microcontrolador durante a simulação. .4 SPI – Flash Programmer O SPI – Flash Programmer é um software de gravação próprio para Microcontroladores da Atmel.

byte a byte.HEX. ERASE: Apaga o programa que está gravado no Microcontrolador. 10. SIGNATURE: Verifica o modelo do Microcontrolador. 11. 6. 2. DISP_BUFFER: Buffer com o mapa Hexadecimal do programa. 9. sem a necessidade de pressionamento do botão no mesmo.2009 . Os detalhes das funções de cada um serão descritos abaixo: 1. 3. B. 5. Sua tela principal é composta de onze botões para tratamento de arquivos *. VERIFY: Verifica se o programa salvo na memória do Microcontrolador é igual aos dados carregados no buffer de memória do SPI – Flsh Programmer. RESET CHIP: Reseta o Microcontrolador. OPENFILE: Carrega no SPI o programa que será levado para o Microcontrolador. 4. 8. BLANK CHK: Informa se o Microcontrolador está apagado.61 Figura 17: Tela Principal do SPI-Flash Programmer Fonte: NASCIMENTO. Possuem 3 radios buttons para funções de proteção do software que esta sendo gravado no chip e um combobox para escolha do Microcontrolador que será efetuado a gravação do software. Aplicação da programação de Microcontroladores. E. WRITE LBS: Acione os Lock-Bits no Microcontrolador. upload do software gravado no chip. 7. . RELOAD_FILE: Recarrega o programa no buffer de memória do SPI – Flash Programmer. Seu conteúdo é salvo no buffer do programa. READ: Efetua a leitura do programa gravado no Microcontrolador. PROGRAM: Efetua a gravação no KIT de programação.

mal intencionadas.1 Os lock-bits São bits de proteção no Microcontrolador disponibilizados pelo fabricante para evitar que outras pessoas. 1 Microcontrolador AT90S52 (100% compatível com a família 8051). 1 cabo de gravação kit-pc. 3. Para acionar os Lock-Bits.2 KIT de Programação 8051LS Será utilizado um KIT8051LS da marca Microgenios. e também desabilita a memória de programa interna.1. . copiem o programa salvo na memória do Microcontrolador e os reproduza ou venha a modificá-los.4. Lock-Bit-1: Desabilita o uso de instruções MOVC (Assembly) executadas em memória externa para ler bytes da memória interna. basta acionar a proteção desejada (podem ser acionadas mais do que uma proteção) e pressionar o botão WRITE_LSB no SPI – Flash Programmer.62 4. 1 Fonte de alimentação 9V / 300mA – 110/220V. 1 Modulo LCD 16X2 com BackLight (LCD Padrão 44780A). 2. O KIT8051LS é composto por:      1 placa controladora 8051LS. Este Kit é uma ótima ferramenta para desenvolvimento de projetos microcontrolados na área da Eletrônica e Informática baseada na família 8051. ou antes de gravar o Microcontrolador através da função PROGRAM. Lock-Bit-3: Contém todas as funções do Lock-Bit-2. e desabilita gravação da memória interna. Existem 3 níveis de proteção disponíveis no SPI – Flash Programmer: 1. e também desabilita a execução de programas em memória externa. Lock-Bit-2: Contém todas as funções do Lock-Bit-1. acionar os Lock-Bits. 4.

1 O KIT8051LS Vem com o Microcontrolador AT89S52 da Atmel.  Armazenamento do software em memória flash. 8 kbytes de memória flash (memória de programa). 256 bytes de memória RAM (memória de dados). automação e controle de equipamentos.63 4. C e Basic. Com um KIT8051LS será permitido:   Gravação do KIT utilizando a porta paralela do computador de uso geral. evitando a perda do programa em caso de falta de energia no Microcontrolador. e tem como principais características:      Compatibilidade de 100% com a família 8051. Modo de programação serial ISP (In-system Programmable). 32 portas de entrada e saída. que se interessem na programação. .  Utilização do KIT como terminal RS232 conectado a um PC. Desenvolvido especialmente para estudantes e profissionais da área de Eletrônica e Tecnologia da Informação. Desenvolvimento de software embarcado com a utilização das linguagens Assembly.2.

4. Teclas de contadores e de interrupções. B. Neste tipo de KIT. As ilustrações abaixo detalharam visualmente cada parte do KIT 8051LS. Este conector está ligado ao barramento de 8 bits P1 do Microcontrolador. eliminando o uso de solda e fios. a conexão para o LCD ainda vem com potenciômetro de ajuste de contraste da luminosidade do LCD.2. Barramento com 8 LEDS coloridos. Canal serial RS232.05920 Mhz. Aplicação da programação de Microcontroladores. 1. Cristal de 11. E.2 Os seus componentes O KIT8051LS possui diversas ferramentas que tornaram mais fácil o desenvolvimento dos projetos devido em uma única peça já se encontrar montado:       Teclado com 8 teclas do tipo push-botton. Display de LCD 16X2 com backlight.2009 . A conexão do LCD é de fácil instalação e remoção. .64 Figura 18: KIT8051LS em funcionamento Fonte: NASCIMENTO.

04 . 2.2009 . Os LED’s estão ligados no Port P2 do Microcontrolador. 3. sendo fundamental para fixar a teoria doe Microcontroladores 8051. B. Aplicação da programação de Microcontroladores.2009 .65 Figura 19: Conexão do LCD e Potenciômetro Fonte: NASCIMENTO. assim como testar a programação visualmente. permite que você expanda seus projetos utilizando um conector de 10 vias conectando outros periféricos para o KIT. E. Aplicação da programação de Microcontroladores. A exemplo: uma placa controladora de drive´s para motores de passo. Manual de operação pag. Figura 21: Barramento com 8 LED's Fonte: Microgenios. Figura 20: Porta de expansão ligada ao Port P3 Fonte: NASCIMENTO. Porta de expansão. B. Barramento com 8 LED’s (indicador lógico). E.

INT1. tais como: sensores e contadores. B. Aplicação da programação de Microcontroladores. T1). Possui circuito de proteção que evita a queima caso haja inversão de polaridade na alimentação. Utiliza regulador de tensão com dissipador que permite fonte de 9V. T0. Figura 23: Conector da alimentação e Porta serial Fonte: Microgenios. 5. 12V ou 15V DC / 300mA. bem como mais 4 botões também do tipo push-button para utilização das interrupções de dos contadores através das teclas (INT0. Placa com conector de alimentação do tipo P4. 04 . Figura 22: Teclados tipo push Fonte: NASCIMENTO.66 4. Sendo de grande utilidade na simulação de eventos externos. Manual de operação pag. Possui teclado com 8 botões do tipo push-button para desenvolver aplicações de starup de equipamentos.2009 . para desenvolver aplicações utilizando teclados alfanuméricos e gravação do chip através da porta paralela do PC. Essa placa também possui entradas de comunicação serial através do protocolo RS232 (comunicação com computadores). E.

No entanto. em cv. interrupção na produção. Vários são os passos que devem ser seguidos para que uma empresa não tenha problemas com seus motores. Manual de operação pag. onde a construção correta da base deve ser de tal forma que proporcione a menor vibração possível. segundo Tecnologia e Eletrônica (1998). AT90S8252 e AT90C51/52/53. queimas de componentes de proteção e comando. assim como a tensão de funcionamento. significa dor de cabeça. 32 portas de entrada e saída. Figura 24: Microcontrolador AT89S8252 Fonte: Microgenios. conseqüentemente os clientes efetuarem o pagamento trazendo o lucro para a empresa. freqüência e outras características. a instalação de motores elétricos significa levar o seu produto as casas dos clientes para poder gerar as contas de água. TECNOLOGIA E TREINAMENTO (1998) . 12 Mhz de clock. manutenção constante. Depois vem a instalação. escolha da marca e fabricante. Porque de outra forma. como a água chegaria nas caixas d’água e reservatórios. Microcontrolador Atmel AT89S52. memória RAM/ROM.67 6. escolha da tensão. 04 4. trazendo prejuízos financeiros e possibilidade de acidentes com pessoas. AT89S53. se o motor deve ser monofásico ou trifásico. tais como: definição da potência necessária. O primeiro passo é a sua escolha correta. Para os motores monofásicos não se deve esquecer o dispositivo aliviador de partida. quando esses motores que movimentam as bombas de água são mal instalados. sendo esses últimos requerentes de programação externa.3 Protótipo de teste do Microcontrolador 8051 No meio industrial e de saneamento. O KIT8051LS é compatível com toda a família 8051 e também grava e roda nos modelos AT89S51.

Então a proposta desse protótipo utilizando o Microcontrolador 8051 é mostrar fisicamente um efeito de sobrecarga desligando a alimentação elétrica do motor. um dos grandes problemas da instalação de motores elétricos está nos custos elevados do sistema de proteção e comando e por isto muitos deixam de implantá-lo corretamente. quando passar de determinado valor. A proteção é constituída de dispositivos que desconectam o motor da alimentação nos casos de curto-circuito e sobrecarga. Um dos principais motivos da queima de motores no meio industrial é: 1.1 Sistemática do protótipo Para mostrar o resultado do estudo da Aplicação da Programação de Microcontroladores 8051 utilizando a linguagem C foram executado os seguintes procedimentos: 9 Shut-off: É o estado de uma bomba de água centrifuga. causando o elevamento da pressão da água ao máximo. atualmente está sendo de grande valia. quando ela se encontra em funcionamento mais com a passagem da água interrompida. O sistema de comando define a vida útil do motor. 4. Essa condição é importante para cálculos curvatura da bomba. onde a bomba de água fica em estado de shut. não permitindo que o motor se queime nestas condições adversas.68 Ainda Segundo Tecnologia e Treinamento (1998). Com um sensor medindo essa corrente e um Microcontrolador utilizando um algoritmo com uma condição em que. alertariam a equipe técnica sobre a manutenção do motor elétrico. emita uma mensagem em display ou dispare um sinal sonoro. desligue a alimentação elétrica do mesmo. perdas financeiras consideráveis. Evitando assim. um entupimento de uma adutora de água.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. A Sobrecarga: O motor não possui as proteções contra sobrecarga e o operador exige dele potência maior do que a especificada na placa. Por exemplo. Logo.3. o uso de tecnologias lógicas com seu algoritmos monitorando o estado de equipamentos e dando valores corretos acerca de operação de equipamentos e outras atividades com baixo custo e automatizando processos que antes eram feito por operadores corpo a corpo em quadros de comando. .

Alimentação 12VDC. Teste e execução. Desenho da planta do circuito que será implementado na linguagem C. tais como: KIT. Desenvolvimento de um software escrito em C para acionamento de um moto elétrico de 12V utilizando 1 cooler de gabinetes de computadores de uso geral. Execução e mostra de uma simulação de sobrecarga de um motor elétrico. Motor elétrico do tipo Cooler: Mini Ventilador Cooler compatível com AMD / DURON / ATHLON / INTEL / CELERON.69 1. Figura 26: Cabo Serial e Esquema da pinagem Fonte: NASCIMENTO. . Levantamento dos requisitos para elaboração do projeto. Cabos e Conexões: Cabo Serial DB9 – macho e fêmea. Simulação. 3500 RPM. Figura 25: Cooler de Ventilação Fonte: NASCIMENTO. 3. 2. B. Aplicação da programação de Microcontroladores. E. 4. B.2009 . 4. Aquisição dos materiais para elaboração do circuito.2 Especificação técnica da parte física do protótipo 1.3. Aplicação da programação de Microcontroladores. E.2009 . Cabo DB25(macho) e DB9(fêmea). para leitura e gravação no chip AT89S52. 2. 5. para transações PC  Microcontrolador com leitura de teclado alfanumérico.

B. Kit de programação: KIT de programação 8051LS da Microgenios Soluções Eletrônicas (descrito no tópico 4. 1.2009 . . Figura 27: Desenho do circuito de um Microcontrolador acionando motor Fonte: NASCIMENTO. Computador Desktop ou Notebook: Notebook CCE TCLD5.2) 4. 1.73 Ghz.70 3. Circuito que será implementado: Ligando um relé a um Microcontrolador através de um transistor.5 GB de RAM. E. 5. Aplicação da programação de Microcontroladores.

71 CAPÍTULO 5 CONSIDERAÇÕES FINAIS .

os exemplos de Software deste segmento são inúmeros.72 5. com a chegada em massa dos computadores as casas das pessoas.1 Conclusão Atualmente em quase todas as atividades humanas identificam-se a presença de Software Embarcado. tendo assim uma visualização em tempo real do que acontece por trás dos bastidores de muitos equipamentos eletrônicos. houve o uso de um KIT de programação para chips da família 8051. Para implementação e mostra da real da aplicabilidade de um sistema microcontrolado. agora são executadas em minutos ou mesmo segundos. por trata-se de ferramentas robustas e de nenhum gasto adicional para obtenção das mesmas. bem como sua portabilidade de software com os demais chips pertencentes a esta família. desde o nascimento da linguagem de programação Assembly. monitorar painéis. embora a grande maioria deles passe despercebida aos olhos humanos. TVs digitais. e utilização de linguagens de programação de alto nível. evitar danos a equipamentos. os software embarcados foram desenvolvidos para os Microcontroladores utilizando esse tipo de linguagem. etc. mais a maioria dessas pessoas não se dá conta de sua importância em suas vidas. Durante décadas. gerou perca de tempo e dinheiro. A automatização de tarefas rotineiras causou um impacto profundo nos processos das empresas. foi dado ênfase aos ambientes de programação open-source. máquinas de lavar. Devido à existência vários tipos de Microcontroladores. eram exclusivamente feito por operadores que em muitos casos. CONSIDERAÇÕES FINAIS 5. Mas com o avanço das linguagens de programação e o surgimento de Microcontroladores mais portáveis. Eles estão presentes no uso de tarefas cotidianas. tarefas como ligar equipamentos. Nos software usados para implementação do protótipo. foram desenvolvidas ferramentas para acelerar o desenvolvimento dos software. devido seu baixo custo de aquisição. como fornos microondas. com por exemplo: Java e C/C++. porque antes. devido ao não seguimento de planos de segurança ou simplesmente o não comprometimento com horários e tarefas. foi escolhido para o estudo a família de Microcontroladores 8051. No caso das residências. automóveis. . tarefas maçantes e demoradas. que estão tão próximos das pessoas. bem como a não existência de dificuldade em instalação e configuração de parâmetros.

tem o propósito de apoiar o desenvolvimento de software embarcado para alavancar ainda mais a automatização de processos e criação de ferramentas que ajudem na tomada de decisões. mais que pelo desconhecimento do desenvolvimento de sistemas para Microcontroladores o assunto cai em segundo plano ou até mesmo em esquecimento total. 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 tão próximos. o estudo realizado nos capítulos anteriores. .73 Contudo.

74 REFERÊNCIAS .

. S.. R. 2006. R.br/_./ISE-05-Programacao-8051-parteI.br/bibliotecadigital/download. acessado em 19 de setembro de 2009. Vitor. Sistemas Embarcados: O novo boom da informática? . 2007. acessado em 15 de setembro de 2009..pdf>.75 REFERÊNCIAS AMADEU SOUZA. Luis.neoradix. BILAR..com.. Raimundo. Barreto. acessado em 12 de setembro de 2009. acessado em: 12 de setembro de 2009. <Disponível em www. Sistemas embarcados.php?paper=419>. Disponível em: < www.pdf> .br/. 2008.sbc. O. A.ulevel.webartigos.embarcados..br/Artigo3_Historia.accessado em 19 de setembro de 2009. BARRETO. Entendo os embarcados. disponível em: <http://www.com.html>.pdf>.dcc./se/. .org. Computação Brasil. S. disponível em: <http://www. BARRETO.. CHASE. Disponível em: <http://www. 2009.php?option=com_content&task=view&id=203&Itemid=235>.edu./NEORADIX_01_Sistemas_Embarcados.cerne- tec.com/index.com. 2007 Sistemas Embarcados. [21-] acessado em 30 de agosto de 2009. CEOLIN Fabrício José Vieira. FRED COX.com/articles/13366/1/entendendo-o-mundo-dos embarcados/pagina1. disponível em: <http://www. Programação 8051. Disponível em: <www.. acessados em 21 de setembro de 2009. Projeto de Alarme residencial.ufam.html>.br/Noticias/Ultimas-Noticias/Central-de-Alarme-Residencialcom-PIC18F4620.

Ed. Disponível em: <http://www. Danilo. MOURA SANTOS. SP.wikipedia. RELES DE SOBRECARGA – TERMICO BIMETALICO. Mini Curso de Microcontrolador. V. ano 2003. acessado em 16 de setembro de 2009.br/~guto/teaching/theses/danillo-bsc. Nebojsa. 2006/2007. José Edson dos Santos & MARINHO.br/2007/07/06/reles-de-sobrecarga- %E2%80%93-termico-bimetalico/>. 2005.ivair. EAD Modulo V-linguagens. disponível em <http://www. . php?/orientacoes/bicjr/intemb/index. Disponível em: <www. Editora: mikroElektronika. Manual de operação: Kit Microcontrolador 8051 LS.ufsc. MARINHO.76 ICEA.com. Intel 8051.cefetmg.br/download/minicurso.br/~gamboa/viewer. acessado em 23 de setembro de 2009 MICROGENIOS. Uso de Internet Embedded em Microcontroladores para aplicações de monitoramento e automação de baixo custo. LOPES.pdf.gov. acessado em 12 de setembro de 2009.html>.blog.pdf>. 2006. Instituto do Espaço Aéreo. The PIC microcontrollers. acessado em 12 de setembro de 2009. disponível em: <pt. MATIC. 15 P.br/ead/anexo/23101.leopoldina.org/wiki/Intel_8051>. 2. acessado em 23 de setembro de 2009. book 1. Especial nº 2. disponível em: <http://www. Janeiro 2001.0 São Paulo. Ednaldo dos Santos. Disponível em: www. acessado em 19 de setembro de 2009. GUSTAVO.htm>.icea. 2006. Saber Eletrônica. Roberto. 2007.gustavoroberto.lisha. Projeto de sistemas embarcados: Um estudo de caso baseado em Microcontrolador e seguindo AOSD. Luis Claudio Gambôa.

disponível em: <http://dqsoft. acessado em 12 de outubro de 2009.br/conccepar2009/?pg=anais_resumo&codigo=401>. Leonardo Santos.html>.univasf. acessado em 15 de outubro de 2009. RAMOS. disponível em: <http://www.doc. Luis Danilo. Desenvolvimento de software para Microcontroladores. Adriano Soli Rodrigues. A. Rafael R. OLIVEIRA. Compilador Configurável para processadores embarcados. Sensores de proximidade embutidos. Marcelo G. acessado em 10 de novembro de 2009. Rodrigo. Microcontroladores e Microprocessadores – Temporizadores (Timers).ramos/MPU_MCU_files/PIC_Timers.grupointegrado. 2009.br/Microcontroladores/pic-watchdog.pdf. Disponível em: < . Raimundo de Gouveia.br/raimundo/ArqDI/Arq5. disponível em: <http://www. PIC Watchdog Timer. 2004. Carlos Eduardo Dutra & SILVA. Daniel.html>. Microcontroladores – parte 5. ROZA.edu.com/Tecnologia/sensores-parte_I.blogspot. BRUM. PHPH – Engenharia e Informática.com. acessado em 15 de outubro de 2009. acessado em 6 de outubro de 2009. Fundamentos de Hardware. & SANTOS.di.br/~rodrigo. 2009. [20-] QUADROS.com/2008/08/microcontroladores-parte-5.>.77 NOBREGA FILHO. 1999. 2008. disponível em: <japuneis0.phph. disponível em : acessado <http://www.htm>.tripod. PEREZ. disponível em: < http://www.ufpb.> em 24 de novembro de 2009.

tecnologiaetreinamento. Programação em C e Assembly. acessado em 15 de outubro de 2009. São Paulo: Érica. Software Embarcado: oportunidade e potencial de mercado / Cezar Taurion – Rio de Janeiro:Brasport 2005 TECNOLOGIA E TREINAMENTO: Instalação de motores elétricos. disponível em: <http://www.pucrs. Mauricio Cardoso de. João Paulo. php?go=materiastecnicas&mat=0129 > TUGATRÓNICA.fe. SOUZA. n.up.br/~moraes/my_pubs/papers/tc_retargetable. disponível em: <http://paginas. TAURION. acessado em 24 de setembro de 2009. São Paulo .78 www. 1 ed.tugatronica. acessado em 25 de agosto de 2009. Disponível em: <http://www.com/introducao-a-porta-paralela/>. acessado em 12 de SA. 2007.pdf>. Introdução a porta paralela. . Viçosa – MG. Carlos.pdf> novembro de 2009.ed. acessado em 26 de novembro de 2009. Disponível em: <http://www. Cezar. 2005. 2003. Programação C para Microcontroladores 8051 / Mauricio Cardoso de Sá.inf.br/sessao.scribd. 2006 SCHIMIDT OLEQUES. SISTEMAS EMBARCADOS.pt/~jms/SUC/AulaLab3. Sistemas Automáticos com Microcontroladores 8031/8051. SICA. 129. Ernesto.com/doc/18503391/SISTEMAS-EMBARCADOS>.com. 1. 2005.SP: Novatec.

acessado em: 21 de setembro de 2009. CONTROLE E GERENCIAMENTO DE AMBIENTES REAIS EDUCACIONAIS ATRAVÉS DE AMBIENTES VIRTUAIS.pdf>.79 VIANNA.de. Alexandre & MACHADO. 2009. Liliane.br/~labteve/publi/2009_icece1. disponível em: < www.ufpb. .

You're Reading a Free Preview

Descarregar
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->