Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Programação microcontroladores 8051 utilizando linguagem c, Notas de estudo de Informática

Monografia

Tipologia: Notas de estudo

2010

Compartilhado em 08/03/2010

erick-barros-nascimento-5
erick-barros-nascimento-5 🇧🇷

5

(1)

1 documento

1 / 80

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
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
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50

Pré-visualização parcial do texto

Baixe Programação microcontroladores 8051 utilizando linguagem c e outras Notas de estudo em PDF para Informática, somente na Docsity!

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/

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/

iii NASCIMENTO, E. B. Aplicação da Programação de Microcontroladores 8051 utilizando Linguagem C. 2009, 80 p. 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.

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

vi

TABELAS

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

vii

LISTA DE ABREVIATURAS E SÍMBOLOS

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

  • Figura 1: Lógica de funcionamento de um Sistema Embarcado LISTA DE FIGURAS
  • Figura 2: Sensor de proximidade, ângulo e atuador para freios.
  • Figura 3: Arquitetura das Linguagens de Programação.........................................................
  • Figura 4: Diferenças entre Microprocessador e Microcontrolador – Nº de circuitos
  • Figura 5: Modelo simplificado de uma unidade de memória de um Microcontrolador
  • Figura 6:Exemplo simplificado de uma unidade de E/S........................................................
  • Figura 7: Diferença que existe entre a transmissão em série com a transmissão em paralelo
  • Figura 8: Exemplo da arquitetura de Von Neumann
  • Figura 9: Núcleo de um Microcontrolador da família 8051...................................................
  • Figura 10: Demultiplexação de dados e endereços usando o port P0.....................................
  • Figura 11: Comprometimento do Port P3 sendo utilizado para funções especiais
  • Figura 12:Organização de ROM interna/externa em função do valor lógico do pino EA.......
  • Figura 13: Esquema de circuito com Reset automático e Reset forçado
  • Figura 14: Eclipse com perspectiva para C/C++
  • Figura 15: Perspectiva ajustada para Java e QuantumDB......................................................
  • Figura 16: Simulação de contagem binária de 8 bits e gravação no PORT P2.......................
  • Figura 17: Tela Principal do SPI-Flash Programmer.............................................................
  • Figura 18: KIT8051LS em funcionamento
  • Figura 19: Conexão do LCD e Potenciômetro
  • Figura 20: Porta de expansão ligada ao Port P3
  • Figura 21: Barramento com 8 LED's
  • Figura 22: Teclados tipo push
  • Figura 23: Conector da alimentação e Porta serial
  • Figura 24: Microcontrolador AT89S8252.............................................................................
  • Figura 25: Cooler de Ventilação...........................................................................................
  • Figura 26: Cabo Serial e Esquema da pinagem
  • Figura 27: Desenho do circuito de um Microcontrolador acionando motor
    1. CONSIDERAÇÕES INICIAIS LISTA DE ABREVIATURAS E SÍMBOLOS vii
  • 1.1 Introdução
  • 1.2 Justificativa
  • 1.3 Problema da Pesquisa
  • 1.4 Hipóteses
  • 1.5 Objetivos
  • 1.5.1 Objetivo Geral............................................................................................................
  • 1.5.2 Objetivos Específicos
  • 1.6 Metodologia da Pesquisa
  • 1.7 Estrutura do Trabalho
    1. SISTEMAS EMBARCADOS
  • 2.1 Definições e Aplicações dos Sistemas Embarcados
  • 2.2 Características dos Sistemas Embarcados
  • 2.2.1 Interação com o ambiente...........................................................................................
  • 2.2.2 Capacidade limitada de recursos.................................................................................
  • 2.2.3 Forte acoplamento entre hardware s software
  • 2.2.4 Importância das respostas de tempo real nos sistemas embarcados
  • 2.3 Linguagens de Programação para Sistemas Embarcados
  • 2.3.1 Linguagem de Máquina
  • 2.3.2 Linguagem Assembly.................................................................................................
  • 2.3.3 Vantagens e Desvantagens da linguagem Assembly
  • 2.3.4 Linguagens de Alto Nível...........................................................................................
  • 2.3.5 Linguagem C..............................................................................................................
  • 2.3.6 Vantagens e Desvantagens da linguagem C
  • 2.3.7 Linguagens de Quarta Geração
  • 2.3.8 Análise e escolha da linguagem
    1. MICROCONTROLADORES
  • 3.1 O que são os Microcontroladores
  • 3.2 Microcontroladores versus Microprocessadores
  • 3.3 Arquitetura dos Microcontroladores
  • 3.3.1 Unidade de Memória
  • 3.3.2 Unidade Central de Processamento – CPU
  • 3.3.3 Barramentos
  • 3.3.4 Unidade de Entradas e Saídas
  • 3.3.5 Comunicação Serial dos Microcontroladores
  • 3.3.6 CLOCK – O relógio do Microcontrolador
  • 3.3.7 TIMER.......................................................................................................................
  • 3.3.8 WatchDog – Cão de Guarda
  • 3.4 O Microcontrolador
  • 3.4.1 Arquitetura física dos Microcontroladores
  • 3.4.2 Organização da Pinagem dos Microcontroladores
  • 3.4.2.1 Port P0.....................................................................................................................
  • 3.4.2.2 Ports uso geral para E/S e uso das memórias internas e externas-P1,P2,P3...............
  • 3.4.3 Fabricantes do Microcontrolador
  • 3.4.4 Microcontroladores 8051 mais potentes – Arquitetura ISAC ix
    1. FERRAMENTAS DE PROGRAMAÇÃO PARA
  • 4.1 Software de Desenvolvimento para Microcontroladores
  • 4.1.1 Eclipse....
  • 4.1.2 Small Device C Compiler – SDCC..............................................................................
  • 4.1.3 PDS –
  • 4.1.4 SPI – Flash Programmer
  • 4.1.4.1 Os lock-bits
  • 4.2 KIT de Programação 8051LS
  • 4.2.1 O KIT8051LS
  • 4.2.2 Os seus componentes...................................................................................................
  • 4.3 Protótipo de teste do Microcontrolador
  • 4.3.1 Sistemática do protótipo
  • 4.3.2 Especificação técnica da parte física do protótipo
    1. CONSIDERAÇÕES FINAIS
  • 5.1 Conclusão
  • REFERÊNCIAS

CAPÍTULO 1

CONSIDERAÇÕES INICIAIS

especificamente com o Microcontrolador da ATMEL, com a linguagem de programação C e o compilador freeware SDCC. Serão apresentados detalhes do hardware , da linguagem de programação e os resultados as experiências práticas do desenvolvimento de um protótipo neste ambiente.

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

(números inteiros, reais, vetores, etc.), enquanto Assembly trabalha com linguagem pura de máquina bits, bytes, palavras em memória, etc. Logo, a contribuição que este projeto trará para seus leitores, é conhecer a automação de processos e/ou equipamentos que utilizam este tipo de programação. 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, Robótica e Eletrônica Digital.

1.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 , visto que o trabalho que será apresentado utilizará a linguagem C?

1.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, reduzindo o tamanho físico da placa, esses fatores resultam em aumento da confiabilidade dos equipamentos que serão utilizados. Sua programação através da porta USB, evita a necessidade de mudança de jumpers^1 para configuração de portas, etc. (^1) Segundo Wikipédia, Jumper é uma ligação móvel entre dois pontos de um circuito eletrônico. É, geralmente, uma pequena peça plástica que contém um metal no seu interior, responsável pela condução de eletricidade.

1.6 Metodologia da Pesquisa

A pesquisa se caracterizará por um estudo qualitativo, do tipo exploratório, bibliográfico e instrumental, que poderá ser de revistas, livros, internet ou publicações relacionadas baseadas em etapas como descrito abaixo:  Levantamento de bibliografias;  Análise das referências bibliográficas;  Observação de características e pressupostos teóricos;  Analise teórica das bases dos software de desenvolvimento para Microcontroladores;  Analise teórica e prática dos equipamentos que serão utilizados para desenvolvimento da tarefa;  Desenvolvimento e testes no software de exemplo para uma sobrecarga de equipamento.

1.7 Estrutura do Trabalho

O presente trabalho está dividido em 5 (cinco) capítulos como descritos a seguir: No capitulo 1(um) faremos a introdução ao trabalho, mostrando onde os Microcontroladores estão inseridos em nossas vidas, o que é um sistema embarcado e Microcontroladores. No capitulo 2(dois) falaremos sobre Sistemas Embarcados. Seu principais conceitos, como surgiram, o que é, para que servem,sua importância na tecnologia. No capitulo 3(três), colocaremos os conceitos sobre os Microcontroladores. Explanaremos a arquitetura dos Microcontroladores 8051, ferramentas utilizadas para programação dos mesmos bem como, programação especifica para os Microcontroladores dessa família utilizando a linguagem C. No capitulo 4(quatro), mostraremos as ferramentas utilizadas no desenvolvimento de software para o Microcontrolador 8051, a integração do Eclipse, o compilador SDCC, o recurso de conhecimento aberto para o SDCC e o modelo de uma aplicação escrita, o simulador PDS-52 e o software de gravação SPI – Flash Programmer. Apresentação de um programa escrito em linguagem de alto nível, o código Assembly gerado pela compilação do SDCC e o KIT de programação com software em funcionamento.

CAPÍTULO 2

SISTEMAS EMBARCADOS

2.1 Definições e Aplicações dos Sistemas Embarcados

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

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