Prévia do material em texto
APOSTILA (MICROCONTROLADORES) Conteúdos: - Breve histórico da evolução dos Microcontroladores - Bloco básico dos microcontroladores (HARDWARE) - Entradas e saídas dos microcontroladores LINKS: - Breve histórico da evolução dos Microcontroladores http://oincrivelmundonerd.blogspot.com/2014/03/a-historia-dos-microcontroladores.html - Bloco básico dos microcontroladores (HARDWARE) http://www.mzeditora.com.br/artigos/mic_modernos.htm - Entradas e saídas dos microcontroladores https://tronicside.wixsite.com/sidetronic/digital-io A História dos Microcontroladores O microcontrolador foi inventado pela Texas Instruments no início da década de 1970. Os primeiros microcontroladores eram basicamente microprocessadores com memória incorporada tal como RAM e ROM. Posteriormente, eles evoluíram para uma vasta variedade de dispositivos adaptados para aplicações específicas de sistemas embarcados tais como carros, telefones sem fio e eletrodomésticos. Comment by Sr.David Ruan: O primeiro microcontrolador; Em 1971, o primeiro microcontrolador foi inventado por 2 engenheiros na Texas Instruments, de acordo com o Instituto Smithsoniano. Gary Boone e Michael Cochram criaram o TMS 1000, que era um microcontrolador de 4 bits com ROM e RAM incorporados. Esse microcontrolador era utilizando internamente pela empresa nas suas calculadoras, de 1972 a 1974, e foi melhorado ao longo dos anos. Em 1974, ele foi colocado à venda para as indústrias eletrônicas. O TMS 1000 estava disponível em várias configurações de tamanhos de RAM e ROM. Em 1983, cerca de 100 milhões de dispositivos TMS 1000 haviam sido vendidos. Microcontroladores Intel; Além de produzir o primeiro microprocessador, a Intel também desenvolveu muitos microcontroladores importantes, dois deles sendo o 8048 e o 8051. Introduzido em 1976, o 8048 foi um dos primeiros microcontroladores da Intel e foi utilizado como o processador no teclado do computador da IBM. É estimado que mais de um bilhão de dispositivos 8048 tenham sido vendidos. O 8051 o seguiu em 1980, e se tornou uma das famílias mais populares de microcontroladores. Variantes da arquitetura do 8051 ainda são produzidas atualmente, tornando o 8051 um dos projetos eletrônicos mais duradouros da história. Memória eletricamente apagável; Durante os anos 90, se tornaram disponíveis microcontroladores com memórias ROM (EEPROM) eletricamente apagáveis e programáveis, tal como a memória flash. Esses microcontroladores poderiam ser programados, apagados e reprogramados utilizando somente sinais elétricos. Antes desses dispositivos eletricamente reprogramáveis, geralmente era necessário programação especializada e hardwares para tal, sendo que o dispositivo tinha que ser removido do circuito, retardando o desenvolvimento de software e tornando-o mais caro. Ao se remover essa limitação, os microcontroladores puderam ser programados e reprogramados enquanto que em circuito, fazendo com que seus dispositivos pudessem ser atualizados com novos softwares sem a necessidade de serem devolvidos ao fabricante. Muitos microcontroladores atuais, como os da Microchip e da Atmel, incorporam a tecnologia de memória flash. Microcontroladores modernos; Além de dispositivos de uso geral, microcontroladores especializados estão sendo produzidos para áreas como automotiva, iluminação, comunicação e dispositivos de baixo consumo de energia. Eles também têm se tornado menores e mais potentes. Por exemplo, em 2010, a Atmel anunciou um microcontrolador flash em um pacote medindo 2 mm por 2 mm. Estes dispositivos minúsculos são pequenos e baratos o suficiente para serem utilizados em produtos como brinquedos e escovas de dentes. Diferenças de microprocessador e mocrocontrolador; Um microcontrolador difere de um microprocessador de diversas formas. Um microprocessador é um circuito integrado que realiza funções de cálculo e tomada de decisões do computador, como exemplos temos: Athlon, Sempron, o Pentium, a nova linha icore da intel, entre outros. Um microprocessador é um circuito muito complexo, em forma de circuito integrado, que pode conter entre alguns milhares a 7 milhões de transistores. Estes transistores internos constituem os mais diversos circuitos lógicos: como contadores, registradores, decodificadores, e centenas de outros. Estes circuitos lógicos são dispostos de maneira complexa, dando ao microprocessador a capacidade de executar operações lógicas, aritméticas, e de controle. Para utilizarmos um microprocessador outros componentes como a memória tem que ser conectados ao chip, por meio de circuitos externos que irão prover a comunicação correta entre o microprocessador e o dispositivo. Já um microcontrolador não exige circuitos externos para funcionar, dentro dele se encontram todos os periféricos necessários para o seu correto funcionamento. · Os microcontroladores são menos poderosos, mais lentos e possuem um espaço de endereçamento menor que os microprocessadores. · Microcontroladores permitem a implementação de sistemas mais compactos. · O conjunto de istruções de um microcontrolador limita-se as instruções mais simples de um microprocessador. Em um microcontrolador, as mémorias RAM e ROM, conversor AD, temporizadores, controladores serial e paralelo e a CPU em sí são todas integrados em um bloco. Por serem compostos apenas de uma peça, eles tem muito maior confiabilidade, são mais baratos, consomem menos energia, têm a fase de projeto reduzida, além de terem a manutenção facilitada. Ou seja, são muitas as vantagens em relaçao ao uso de um microprocessador com circuito. Bloco básico dos microcontroladores (HARDWARE) Conceito: (Arquitetura de um Microcontrolador); É uma arquitetura de computador que se distingue das outras por possuir duas memórias diferentes e independentes em termos de barramento e ligação ao processador. É utilizada nos microcontroladores PIC. Tem, como principal característica, o acesso à memória de dados de modo separado em relação à memória de programa. Exemplo> -Teremos como exemplo também a arquitetura do microcontrolador (8051) A arquitetura 8051 A arquitetura 8051 especifica os recursos que deverão estar presentes nos microcontroladores compatíveis com esta família. Um ponto interessante nesta arquitetura é que, ao contrário de nossos computadores, ela separa a memória de programa da memória de dados. Essa arrumação da memória em blocos distintos oferece maior versatilidade às aplicações. A imagem a seguir apresenta um diagrama em blocos com a arquitetura 8051. Vemos que está especificada uma CPU de 8 bits, para a qual já foi definido um conjunto mínimo de instruções. O contador de programa (PC) é de 16 bits, o que permite até 64 KB de memória de programa. Um outro registrador de 16 bits é usado para acessar a memória de dados, o que permite 64 KB de dados. Nota-se que existe a possibilidade da memória de programa (ROM 4KB) ser integrada junto com o chip do processador. A memória RAM interna tem 256 bytes e está dividida em dois blocos de 128 bits. O bloco inferior destina-se a trabalhar como uma outra memória de dados, enquanto que o bloco superior está dedicado aos registradores especiais que controlam os diversos recursos do microcontrolador. A arquitetura 8051 oferece quatro portas paralelas de 8 bits, denominadas de P0, P1, P2 e P3. Essas portas são bidirecionais e podem ser usadas para receber ou para gerar sinais digitais. Elas também podem ser acessadas bit a bit, ou seja, cada bit da porta pode ser programado como entrada ou como saída. Quando se usa memória externa ao CI, as portas P0 e P2 são consumidas na construção dos barramentos de endereços e dados. Para a geração de pulsos com duração precisa ou para a medição de intervalos de tempo em sinais digitais, existem dois contadores e temporizadores de 16 bits, denominados de "Timers". O bloco denominado "Controlador de Interrupções" trabalha com cinco interrupções. Duas dessas interrupções podem ser pedidas externamente através dos pinos INT0 e INT1, sendo queoutras duas interrupções podem ser provocadas pelos contadores e temporizadores. A quinta interrupção é gerada pela porta serial. Esta arquitetura especifica uma porta serial capaz de atender aos requisitos mais usuais de comunicação, por isso a quantidade de bits e a velocidade é programável, e a porta serial gera uma interrrupçãointerrupção tanto na transmissão quanto na recepção de um byte. Núcleo da família 8051. Entradas e saídas dos microcontroladores Os microcontroladores possuem entradas e saídas digitais e essas são totalmente configuráveis e podem receber ou enviar somente dados digitais logicamente, ou 0 ou 1, em outras palavras, podem estar em nível baixo ou em nível alto. Essas portas variam em quantidade e posição de acordo com o microcontrolador usado e portanto faz-se necessário conhecê-lo lendo o seu datasheet. Os pinos digitais são nomeados por letras e números. Para esse tópico usaremos o PIC16F628A. A figura abaixo lista todos os pinos do nosso microcontrolador. Perceba que logo no pino 1 tem escrito RA2 indicando que ali é o pino digital A2 que pode servir como entrada ou saída, isso veremos mais adiante. Há também descrito nesse pino outras coisas como AN2 que indica o pino analógico 2. Para conhecer todos os pinos e suas funcionalidades leia o datasheet do PIC16F628A que pode ser encontrado facilmente através de uma busca no Google ou no próprio site do fabricante,a MICROCHIP. PROGRAMAÇÃO PARA PINOS DIGITAIS. A programação para portas digitais conta com alguns comandos básicos, são eles: Output_high (nome_pino); Configura o pino como saída de dados (Output) digitais em nível alto (high). Output_low (nome_pino); Configura o pino como saída de dados (Output) digitais em nível baixo (low). O campo nome_pino deve ser preenchido com a palavra PIN_ seguida do nome do pino. Exemplo: Output_high (PIN_A0); Dessa forma eu configuro o pino digital A0 para ser saída em nível alto. Da mesma forma acontece com o comando Output_low (...) A entrada, ou captura, de dados digitais é realizada por um só comando: Input (nome_pino); Esse comando recebe algum valor digital (0 ou 1) e portanto deve possuir alguma variável para captura do mesmo. Exemplo: int X = Input (PIN_A0); EXEMPLIFICANDO... Vamos a um programa exemplo usando portas digitais? Que tal acender algum LED com o PIC? O programa a seguir faz isso. While(TRUE) { Output_high(PIN_A0); Delay_ms(1000); } O esquema de ligações elétricas para esse código será: