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.

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

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

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

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 .

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

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

10 CAPÍTULO 1 CONSIDERAÇÕES INICIAIS .

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

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

Sua programação através da porta USB. . bytes. Logo. etc. 1 Segundo Wikipédia. Jumper é uma ligação móvel entre dois pontos de um circuito eletrônico. enquanto Assembly trabalha com linguagem pura de máquina bits. 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.). uma pequena peça plástica que contém um metal no seu interior. palavras em memória. a contribuição que este projeto trará para seus leitores.13 (números inteiros. É.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. é conhecer a automação de processos e/ou equipamentos que utilizam este tipo de programação. geralmente. etc. reduzindo o tamanho físico da placa.4 Hipóteses KIT 8051 com Placa ISP (In-System Programmable) é um KIT de desenvolvimento de software para Microcontroladores. sua tecnologia de Dispositivos Montados em Superfície – SMD aumenta a resistência mecânica. etc. vetores. Robótica e Eletrônica Digital. esses fatores resultam em aumento da confiabilidade dos equipamentos que serão utilizados. 1. reais. visto que o trabalho que será apresentado utilizará a linguagem C? 1. responsável pela condução de eletricidade. evita a necessidade de mudança de jumpers1 para configuração de portas.

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

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

16 CAPÍTULO 2 SISTEMAS EMBARCADOS .

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

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

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

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

não os primeiros feitos em 1979. controlador de vídeo e outros componentes. mais sim em versões modernas dele. 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. Outro processador que pode ser citado como exemplo é o da Motorola 68000 que tinha os mesmos chips de 32 bits usados nos Macintosh. são fatiados em fatias muito finas que são repassadas para as empresas fabricarem seus circuitos. um dos exemplos mais importantes sobre esse processador é o game Boy que foi produzido com base no Z80. outro exemplo seria o de alguns MP4 players. e a saturação do oxigênio no sangue. são os chips Dragon Ball que incluíam um processador de 68000. outro um chip de memória flash (usado para armazenamento) e o terceiro um sintonizador de rádio AM/FM. o marca-passo poderá monitorar vários parâmetros.  Aplicações na medicina: Quando os transplantes. sendo um o controlador principal. os mesmos. que operam em freqüência mais alta. As empresas fornecem o silício em cilindros. 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. Ele também poderá transmitir dados usando comunicação sem fio onde. como o fluxo sangüíneo. Esses sistemas serão tão compactos que o paciente nem mesmo vai lembrar que eles são embutidos sem seu corpo. Ainda segundo Bilar (2009). .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). como marca-passos. 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. tudo no mesmo Wafer4 de silício. o Microcontrolador Z80 desempenhou muitas funções importantes de processamento. que vinha integrado com controle de áudio externo e outros circuitos. um grande exemplo são os chips usados nos primeiros palms. que utilizam apenas três chips. puderem ser administrados remotamente. Usando microsensores colocados em várias partes do corpo.

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

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

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

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

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

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

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

3. Sua sintaxe é sucinta e não restringe as maneiras como um resultado pode ser alcançado. . C é uma linguagem de programação profissional e é aceita para criação de sistemas operacionais como o Windows. Esta é a sua principal vantagem sobre as linguagens de nível mais baixo.29 2. SOUZA (2003) Ainda segundo Souza (2003). 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. com geração mínima de código e uso de memória.3. Os programas escritos nessas linguagens são convertidos para a linguagem Assembly através de um programa compilador ou de um interpretador. Seu conjunto de comando é bastante reduzido. SÁ (2005) 2.3. a linguagem é extremamente flexível e poderosa. o que a torna uma linguagem muito mais rápida. mas. etc.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.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.5 Linguagem C Segundo Sá (2005). 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. para alcançar esses objetivos. tornando os programas mais fáceis de serem lidos e escritos. apesar disso. Ela foi criada para ser tão pequena quanto possível. o Unix. ICEA (2005) 2. permitindo ao desenvolvedor fazer praticamente o que quiser para alcançar esses resultados. A filosofia de C é que desenvolvedor “sabe” exatamente o que quer e a maneira correta de instruir a linguagem e a máquina. o Linux.

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

31 CAPÍTULO 3 MICROCONTROLADORES .

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

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

Utilizam barramentos de dados. através de CI´s “driver´s”. controle e endereços para fazer acesso aos periféricos de entrada e saída. 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. 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. comunicação Serial e porta PS/2. os Microcontroladores englobam em um único chip: interfaces de entrada/saída digitais e analógicas.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. ao do microprocessador de uso geral. pág. Sistemas Embarcados. Com o . pilha do TCP/IP. e conversor A/D para aquisição de dados analógicos de sensores e outros periféricos necessários conforme aplicação do sistema. são responsáveis por executar e armazenar os programas escritos para eles (firmware). 2007. (CHASE 2007) Figura 4: Diferenças entre Microprocessador e Microcontrolador – Nº de circuitos Fonte: CHASE. periféricos importantes como a memória RAM. interfaces de comunicação serial. A vantagem dos Microcontroladores é que além de possuir os periféricos integrados a um único chip.34 3. assim como a capacidade de absorver mais funções com o incremento de periféricos. 6 Segundo Chase (2007). memória FLASH. conversores analógico-digitais e temporizadores/contadores.

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

3. um microprocessador de 64 bits necessita de um barramento de dados de 64 linhas para transmitir dados de 64 bits em . 3.2 Unidade Central de Processamento – CPU Segundo Marinho & Marinho (2001). Existem três tipos de bus:  O Barramento de Dados (Data Bus): transmite dados entre as unidades. por onde trafegam as informações e interligam todos os componentes que formam um Microcontrolador. Portanto.3.36 Microcontrolador 8051. quando a CPU solicita um registro que está alocado em algum endereço de memória. utiliza-se um caminho para que esses dados sejam transferidos. 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.3 Barramentos Esse “caminho”. a Unidade Central de Processamento controla todas as funções do sistema. também é chamado de “bus”. serão explanados os tipos de memórias existentes para Microcontroladores. Esse caminho é chamado de “Barramento”.3.  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. Semelhantemente. A memória e a CPU estão interligadas. seja de ida ou de volta dessas solicitações de CPU. gerando uma outra palavra na saída. um microprocessador de 8 bits requer um barramento de dados de 8 linhas para transmitir dados de 8 bits em paralelo.

3. registradores de configuração permitem definir quais pinos serão usados para entrada. É comum os Microcontroladores oferecerem uma grande quantidade de entradas e saídas digitais. seriam necessárias oito transmissões sucessivas.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. quais para saída e quais . tornando o sistema mais lento. NOBREGA FILHO (1999)  O Barramento de Controle (Control Bus): sincroniza as atividades do sistema. NOBREGA FILHO (1999) Mas para os Microcontroladores apenas o barramento de endereços e de dados são mais utilizados.37 paralelo. Apesar de parecer pouco.3. os Barramentos são implementados como linhas de comunicação reais. Ele conduz o status e a informação de controle de/para o Microprocessador. Ele conduz endereços. 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. 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). pode transmitir em ambas as direções. Se o barramento de dados para um microprocessador de 64 bits fosse formado por 8 linhas. este recurso é um dos mais importantes e mais utilizados. Mas nem todos os pinos podem ser utilizados para este fim. ao menos 10 (geralmente são mais) linhas de controle são necessárias. isto é. O Barramento de Dados é bi-direcional. Os barramentos externos podem ser expandidos para facilitar a conexão de dispositivos especiais. Segundo Nóbrega Filho (1999). Para um Barramento de Controle ser formado. 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.

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

The PIC Microcontroller 3.3. Ideal para monitoramento de sobrecarga de motores. 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.39 muito aceitável segundo Quadros (2008). Uma alternativa bastante usada são os comparadores analógicos. 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. Esse conjunto de regras forma o protocolo RS-232. onde o Microcontrolador indica somente se a tensão do pino é maior ou menor que um valor (fixo) armazenado em uma variável interna. assim que a transferência se inicia. porque consome muita energia e o tempo de conversão é um pouco demorado para um Microcontrolador. Este tipo de recurso é mais incomum. 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. insistindo a anomalia do motor é desligado.  Saídas analógicas: Em uma saída analógica a tensão de um pino é controlada escrevendo um valor em um registrador. Segundo Matic (2003) eles trabalham apenas com três linhas onde uma é usada para enviar dados. Nebjosa.5 Comunicação Serial dos Microcontroladores Basicamente os Microcontroladores se comunicam da forma serial ou tecnicamente RS-232. Figura 6:Exemplo simplificado de uma unidade de E/S Fonte: MATIC. evitando assim sua queima. a unidade passa a ter valor lógico “0” durante um período “T” de .

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

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

3. 8 Segundo Ramos (2009). ninguém deseja ter o sistema travado inesperadamente durante longos períodos. possui tempo de incremento constante).42 3. Embora o programa deva ser testado corretamente antes de colocá-lo em produção.8 WatchDog – Cão de Guarda Segundo PHPH [20-]. Neste caso. por exemplo). 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. . Portanto o WDT deve ser utilizado em qualquer tipo de aplicação. E seu uso é imprescindível. este é usado para prolongar um período de tempo que o temporizador pode gerar (alguns segundos). 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. Mesmo que a aplicação não tenha relevância. o Watchdog timer (WDT) tem uma função muito importante não apenas contra bugs de software. 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. 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. 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. porque o hardware do Microcontrolador está exposto a uma condição que não tem garantia de funcionamento. o estouro do temporizador pode ocorrer após um tempo maior do que o especificado pelo postscaler. slide 25: RC (Resistor – Capacitor) que não requer componentes externos. mas também em situações ambientais agressivas. por isso. Sob condições normais resseta o dispositivo no fim da contagem de tempo.  Bug no código do programa (um loop infinito.   Instabilidade de alimentação do Microcontrolador.

Ao contrário da arquitetura de Von Neumann começaram a surgir microcontroladores com a arquitetura de Harvard. Essa arquitetura é denominadamente conhecida como: Complex Instruction Set Computer – CISC ou “Computador com Conjunto Complexo de Instruções”. . 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. onde o acesso as memórias de dados e de programas podem ser feitos simultaneamente.43 3. 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. que é também é conhecida por: Reduced Instruction Set Computer – RISC ou “Computador com um Conjunto Reduzido de Instruções”. Suas características de hardware. o 8031. 8051 e 8071. 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. 2). contudo seu conjunto de instruções é projetado para tarefas mais dedicadas possíveis. Os Microcontroladores da família 8051 seguem a arquitetura de Von Neumann. 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). porque vai afetar diretamente o desempenho do Microcontrolador. que segundo Marinho & Marinho (2001). Nesse tipo de arquitetura. 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. colocando em xeque aplicações que requerem por exemplo. respostas em tempo real. Basicamente existem três versões (pino compatíveis) desse componente.4 O Microcontrolador 8051 Segundo LEAL (2001. quando a CPU está acessando a memória de programa não pode acessar a memória de dados. pag. mas pode não ser tão vantajoso quando o conjunto de instruções passa a ser grande demais.

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

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

Alimentação VCC (alimentação elétrica). Os pinos que compõem o port P0 são os que decrementam de 39 a 32. etc.4. VSS (terra). uso da RAM/ROM. tais como: Reset do sistema. e em outro dado tempo estão trafegando endereços. P2 e P3.0 e o pino 32 é o port P0. 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. ALE (pino de demultiplexação). justificando assim sua arquitetura baseada em Von Neumann. 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.2 Organização da Pinagem dos Microcontroladores 8051 Os Microcontroladores 8051 são compostos de 40 pinos. os outros 8 pinos restantes são para funções especificas. alimentação do Chip. Os Ports ou “Portas” são os um conjunto de 8 pinos dos Microcontroladores e dependendo do Port seja ele P0. P1. Compõem-se os Ports.7. Na mesma via num dado tempo estão trafegando dados.2. etc. 32 pinos. 3. terão funções de E/S.4.46 3. onde o pino 39 corresponde ao por P0. A maioria desses pinos estão divididos em quatro partes que são chamadas de PORTS. .1 Port P0 Segundo Nicolosi (2001). ROM ou EPROM internas do chip.

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

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

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

. 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. pag. Também é ideal que o circuito tenha um reset forçado por chave. porque assim se terá a garantia que o sistema iniciou corretamente. Deve-se ter um circuito no referido pino para que no ligamento do chip em +Vcc de 5 volts. que se tornará o clock ou padrão de tempo para o Microcontrolador trabalhar. cabendo apenas a quem vai implementar software para esse tipo de Microcontrolador saber operá-la. pino 40 e terra em Vss no pino 20. Em placas programadoras que já vem prontas de fabrica. Ele organiza os valores internos do chip para iniciar o trabalho adequadamente e sempre da mesma maneira (Watchdog). essas ligações já estão prontas. o RST fique ao menos dois ciclos de máquina no estado “1” ou “High”. 104. Figura 13: Esquema de circuito com Reset automático e Reset forçado Fonte: Microcontrolador 8051: Detalhado.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.  VCC e VSS – Alimentação elétrica do chip: É por onde se alimenta o chip: +5Vdc em Vcc.

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

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

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

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

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

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

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

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

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

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

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. Neste tipo de KIT. Este conector está ligado ao barramento de 8 bits P1 do Microcontrolador. a conexão para o LCD ainda vem com potenciômetro de ajuste de contraste da luminosidade do LCD.2009 . eliminando o uso de solda e fios. B. 1.64 Figura 18: KIT8051LS em funcionamento Fonte: NASCIMENTO. Canal serial RS232. Teclas de contadores e de interrupções. . Barramento com 8 LEDS coloridos.2.05920 Mhz. Cristal de 11. Display de LCD 16X2 com backlight. 4. Aplicação da programação de Microcontroladores. E. A conexão do LCD é de fácil instalação e remoção. As ilustrações abaixo detalharam visualmente cada parte do KIT 8051LS.

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

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

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

atualmente está sendo de grande valia. causando o elevamento da pressão da água ao máximo. O sistema de comando define a vida útil do motor. alertariam a equipe técnica sobre a manutenção do motor elétrico. A proteção é constituída de dispositivos que desconectam o motor da alimentação nos casos de curto-circuito e sobrecarga. perdas financeiras consideráveis. emita uma mensagem em display ou dispare um sinal sonoro. quando ela se encontra em funcionamento mais com a passagem da água interrompida. Com um sensor medindo essa corrente e um Microcontrolador utilizando um algoritmo com uma condição em que.68 Ainda Segundo Tecnologia e Treinamento (1998). Evitando assim. 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. não permitindo que o motor se queime nestas condições adversas. 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. 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. um entupimento de uma adutora de água. quando passar de determinado valor. 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. onde a bomba de água fica em estado de shut. Essa condição é importante para cálculos curvatura da bomba.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. Um dos principais motivos da queima de motores no meio industrial é: 1.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. Por exemplo. 4. Logo. desligue a alimentação elétrica do mesmo. .3.

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

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

71 CAPÍTULO 5 CONSIDERAÇÕES FINAIS .

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

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. o estudo realizado nos capítulos anteriores. mais que pelo desconhecimento do desenvolvimento de sistemas para Microcontroladores o assunto cai em segundo plano ou até mesmo em esquecimento total. Estas oportunidades podem gerar desenvolvimento de novos profissionais que em muitos casos podem estar tão próximos. .73 Contudo. porque como software é um grande potencial de mercado e gerador de oportunidades.

74 REFERÊNCIAS .

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful