Your SlideShare is downloading. ×
  • Like
Programação básica de microcontroladores
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Programação básica de microcontroladores

  • 33,800 views
Published

Apresentação dos microntroladores, especialmente da linha pic16f, onde o alvo foi o PIC16f628a, que é bem simples de encontrar para comprar e de programar. Apesar de trabalhar com apenas 8 bits, é o …

Apresentação dos microntroladores, especialmente da linha pic16f, onde o alvo foi o PIC16f628a, que é bem simples de encontrar para comprar e de programar. Apesar de trabalhar com apenas 8 bits, é o robusto o suficiente para realizar automação que requeira PWM, comparação, USART; 16 I/O; e uma série de outras vantagens.

Published in Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • http://www.youtube.com/watch?v=R5JB08ZP-O4
    Are you sure you want to
    Your message goes here
  • http://www.youtube.com/watch?v=QYS1bWfp5SA
    Are you sure you want to
    Your message goes here
  • pic para iniciantes
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
33,800
On SlideShare
0
From Embeds
0
Number of Embeds
6

Actions

Shares
Downloads
890
Comments
3
Likes
6

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Danilo Morais Pagano Mestrando em Mecânica Computacional - UNICAMP
  • 2.
    • Microprocessadores: 4 bits, 8 bits, 16...
    • É um chip:
      • com alta integração de componentes
      • RAM externa
      • memória EEPROM externa
      • HD para armazenamento de programas
      • outros diversos periféricos.
    • Ou seja, você usa um microprocessador dentro de um microcomputador e ele, em conjunto com um monte de outros CIs, trabalham direitinho.
  • 3.
    • Microcontrolador é um componente completo por si só.
    • Basta um programa e ele executa uma função específica.
    • Dentro do microcontrolador temos memória RAM, FLASH, EEPROM ou E2PROM.
  • 4.
    • Vamos simplificar resumindo a lógica em dois números ou como falamos muito, em dois dígitos: O 0 (zero) e o 1 (um).
    • Quando falamos em 0 (zero), estamos nos referindo a zero Volt DC e quando falamos em 1 (um) estamos falando em + Vcc.
    • No caso dos microcontroladores PIC, geralmente, estaremos falando que:
    • 0 = GND e 1 = 5Vcc
  • 5.
    • Memória ROM
    • Memória RAM
    • Memória EPROM
    • Memória EEPROM ou E2PROM
    • Memória FLASH
  • 6.
    • É um endereço na memória
    • Formados por 8 números, ou melhor, 8 bits.
    • Estes bits podem ser 0 (zero) ou 1 (um).
    • Muitas vezes chamamos estes bits de Flags.
    • Flag então é um bit dentro de um registrador.
  • 7.
    • Imaginemos 8 posições:
    • Cada posição pode ter um valor de 0 (zero) ou 1 (um). Esta posição com um valor é um bit, ou melhor, bit é o valor que há dentro da posição.
    • Quando juntamos 8 bits, como no exemplo a seguir:
    • “ 00110011” ⇒ Chamamos isto de byte. Um byte então é um conjunto de 8 bits.
  • 8.
    • Às vezes os bits podem ser agrupados em números de 4, veja:
    • “ 0101” ⇒ Damos a isto o nome de “nibble”.
    • Outras vezes os bits podem se agrupar com números maiores que 8, veja:
    • “ 001100110011” ⇒ Chamamos isto de “Word”: 16 bits ou 2 bytes
  • 9.
    • Nos PICS existem registradores especiais
    • Podemos através dos bits ou flags destes registradores
    “ ajustar” o funcionamento do PIC ou saber como ele está operando, para isto basta escrever ou ler os flags destes registradores.
  • 10.
    • Os primeiros microcontroladores usavam uma estrutura interna que tinha apenas um caminho para trafegar os dados e endereços.
    • Lembre-se, dados são informações e endereços são os locais onde serão armazenados os dados.
    • O nome mais correto para este “caminho” é Bus. Com apenas um bus tínhamos que trafegar hora endereços, hora dados.
    • Esta arquitetura de construção recebe o nome de “Von Neumann”.
  • 11.
    • Hoje em dia, os PICs particularmente, trabalham com dois bus. Um para dados e outro para endereços.
    • Este tipo de arquitetura recebe o nome de “Harvard”.
    • Os PICs possuem ainda um outro recurso, chamado de “Pipeline”.
  • 12.
    • “ CISC” : possuía mais de 100 instruções, o que dificultava a memorização do programador.
    • “ RISC”: Este set tem entre 33 a 35 instruções dependendo do PIC. Isto ajuda na memorização, mas, exige mais do programador. É como falar fluentemente um outro idioma, conhecendo poucas palavras, all right?
    • C omplex
    • I nstruction
    • S et
    • C omputer
    • R educed I nstruction
    • S et
    • C omputer
  • 13.
    • Introdução à arquitetura interna e suas configurações
  • 14.
    • Fabricado pela Microchip ( www.microchip.com )
    • Possui 18 pinos
    • Possui 35 instruções
    • Clock até 20MHz
    • Memoria de programa tipo Flash de 2k words
    • 224 bytes de memoria RAM de dados
  • 15.
    • 128 bytes de memoria EEPROM para dados
    • Instruções de 14 bits com 200ns de execução
    • Dados de 8 bits
    • 15 registradores especiais
    • 16 pinos de entrada/saida (I/O)
    • ICPS, timer interno, watchdog, CPP, USART, etc...
  • 16.  
  • 17.  
  • 18.  
  • 19.  
  • 20.  
  • 21.  
  • 22. 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1
  • 23.
    • Com 8 níveis (imagine que você quer guardar 8 caixas iguais uma sobre a outra, cada caixa contém algumas coisas. Pois bem, cada caixa é um nível). Há de se ter cuidado para não “derrubar” esta pilha ou como se diz em programação, estourar a pilha (vai que dentro de uma pilha você colocou dinamite.).
  • 24.
    • O Watch dog é um contador independente de tudo dentro do PIC, que reseta o mesmo, após um certo período.
    • Para que serve isto?
    • Digamos que você fez um projeto com um PIC para controlar um elevador, de repente um pico de tensão o PIC trava-o fazendo com que o elevador pare. Depois de um curto período o Watch dog reseta o PIC, o programa volta a funcionar e o elevador volta a funcionar também.
    • Há de saber como se travar bem este cão, mas isto é, literalmente, outro capítulo...
  • 25.
    • Uma USART serial, mas o que é isto?
    • É um recurso que permitirá que você converse com outros equipamentos, como uma porta serial de um microcomputador.
    • USART significa “Universal Synchronous Asynchrous Receiver transmiter” ou Transmissor Universal Síncrono ou Assíncrono.
  • 26.
    • Só para lembrar PWM quer dizer modulação por largura de pulso, com este recurso você conseguirá variar o brilho de uma lâmpada, a velocidade de um motor DC ou até fazer uma fonte chaveada.
  • 27.
    • 2 comparadores analógicos com referência interna, programável, de tensão. Quem gosta de amplificadores operacionais prepare-se para se divertir, e quem não os conhece vamos ler um livro sobre AOPs.
  • 28.
    • É um sinal de onda quadrada que serve para fazer um circuito lógico funcionar ou para sincronizar diversos dispositivos ou circuitos.
    • O nível alto do clock =+Vcc
    • O nível baixo = zero volt.
    • O período alto (+Vcc) é chamado de “Ton” e o período baixo de “Toff”.
    • Ton = Toff. É melhor que sejam iguais
    • T = Ton + ToFF ( a soma resulta no periodo)
    • T = 1
    • F
  • 29.
    • Ao usarmos um cristal de 4MHz teremos uma freqüência de 4MHz e o período de:
    • T = 1 = 1 = 250ns ou 250 nano segundos
    • F 4.000,000
    • Ou 0,000. 000.25 segundos.
  • 30.
    • Divide-se clock por quatro, formando as fases Q1, Q2, Q3 e Q4
    • PIPELINE: Busca a informação em um ciclo e a executa no próximo
    • Para um clock de 4MHz, cada instrução é executada 1  s, desde que não afete o Program Counter
  • 31.
    • RC_CLKOUT = oscilador RC externo que deve estar ligado no pino 16. No pino 15 teremos este sinal dividido por 4.
    • RC_I/O = Oscilador externo mais que usa o pino 15 como I/O.
  • 32.
    • XT = cristal de 200kHz até 4MHz
    • HS = cristal acima de 4MHz
    • LS = cristal abaixo de 200kHz
    • INTOSC_I/O = oscilador interno com o pino 15 operando como I/O.
    • INTOSC_CLKOUT = o pino 15 teremos este sinal dividido por 4
  • 33.  
  • 34.  
  • 35.
    • O nome registrador W vem de “Registrador Work”, que traduzindo, quer dizer trabalho.
    • É através dele que carregamos os outros registradores com valores diversos e corretos para um perfeito funcionamento de nosso projeto.
    • Caso desejamos colocar um determinado valor em um registrador de uso geral (GPR), primeiro temos que “carregar” o registrador W e depois passar para o outro registrador.
  • 36.
    • O início de tudo...
  • 37.
    • Fique atento!
  • 38.  
  • 39.
    • LIST p=16f628a
    • #INCLUDE "P16F628.INC"
  • 40.
    • Abrir arquivo do word.
    • Exemplo:
    • __CONFIG _CP_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT & _PWRTE_ON & _LVP_OFF & _MCLRE_OFF
  • 41.
    • #DEFINE BANK0 BCF STATUS, RP0
    • #DEFINE BANK1 BSF STATUS, RP0
    • #DEFINE BOTAO PORTB, 4
    • #DEFINE LED PORTB, 0
  • 42.
    • ORG 0X00 ; inicio do programa
    • GOTO INICIO ; pula para o label INICIO
    • ORG 0X04 ; inicio da interrupção
    • RETFIE ; retorna da interrupção
  • 43.
    • INICIO
    • CLRF PORTA
    • CLRF PORTB
    • BANK1
    • MOVLW B‘00000000'
    • MOVWF TRISA
    • MOVLW B'00110000'
    • MOVWF TRISB
  • 44.
    • MOVLW B'10000011'
    • MOVWF OPTION_REG
    • MOVLW B'00000000'
    • MOVWF INTCON
    • BANK0
    • MOVLW B'00000111'
    • MOVWF CMCON
    • CLRF PORTA
    • CLRF PORTB
  • 45.
    • MAIN
    • BTFSS BOTAO
    • GOTO BOTAO_LIB
    • GOTO BOTAO_PRES
    • BOTAO_LIB
    • BCF LED
    • GOTO MAIN
    • BOTAO_PRES
    • BSF LED
    • GOTO MAIN
    • END
  • 46.
    • 1º passo: Abra o proteus Isis
    • 2º passo: Monte o circuito (fique atento!)
    • 3º passo: Adicione um source.
    • 4º passo: Edite o source.asm que você criou com o código apresentado
    • 5º passo: Compile o programa pelo comando BUILD
    • 6º passo: Carregue o programa para a memória do microcontrolador
    • 7º passo: Execute o programa.
  • 47.
    • Agora sim é pra valer... Cuidado ao errar, pois pode ser que você erre somente uma vez, pois o PIC é frágil...
  • 48.
    • 1º passo: Abra o IC-PROG
    • 2º passo: Mude o idioma para portugues.
    • 3º passo: Ative o driver para windows XP
    • 4º passo: Utilize a API do Windows
    • 5º passo: Selecione o PIC
    • 6º passo: Carregue o programa em HEX para a memória do IC-PROG
    • 7º passo: Configure os Fuses, caso necessário
    • 8º passo: Apague a memoria do PIC e faça a gravação do novo programa.
  • 49.
    • Agora chega de baixaria... Somos de alto nível...
    Serão apresentados 3 programas: Liga simples Pisca Pisca Sequencial de 4 LEDs Temos tempo ainda? SIM NÃO
  • 50.
    • #include "16f628a.h“
    • #fuses INTRC_IO, NOMCLR, NOWDT
  • 51.
    • Void main (){
    • SET_TRIS_A(255);
    • SET_TRIS_B(0);
    • while(true)
    • {
    • output_bit( PIN_B0, input(PIN_A0));
    • }
    • }
  • 52.
    • #include "16f628a.h"
    • #use delay(clock=4000000)
    • #fuses INTRC_IO, NOMCLR, NOWDT
  • 53.
    • void main() {
    • byte i=1;
    • SET_TRIS_A(255);
    • SET_TRIS_B(0);
    • while(true){
    • OUTPUT_LOW(PIN_B0);
    • delay_ms(1000);
    • OUTPUT_HIGH(PIN_B0);
    • delay_ms(1000); }
    • }
  • 54.
    • #include "16f628a.h"
    • #fuses INTRC_IO, NOMCLR, NOWDT
    • void main()
    • {
    • static boolean led=0;
    • SET_TRIS_A(255);
    • SET_TRIS_B(0);
    • OUTPUT_B(0);
    • while(true)
    • {
    • if(input(PIN_A0))
    • {
    • output_bit(PIN_B0, led); //Quando pressiona A0, manda o bit da variável led para o B0
    • led=!led; //inverte o bit da variável led
    • while(input(PIN_A0)) //Este laço deixa o microcontrolador sem fazer nada enquanto
    • {// o botão A0 ainda estiver pressionado, só voltando a rodar o programa quando soltar
    • }// o botão A0. Isto evita totalmente que o programa pense que o botão foi
    • }// pressionado sem querer...
    • }
    • }
  • 55.
    • Com o código compilado, você pode carregá-lo para a memória do microcontrolodor tanto do Proteus quanto o real.
  • 56.
    • Aumentando o nível ainda mais...
    Temos tempo ainda? SIM NÃO
  • 57.
    • Abra o programa Ldmicro
    • Escolha no menu configurações o modelo do microcontrolador
  • 58.
    • Insira um contato em série com uma saída.
    • Xbotao YLamp
    • |----] [---------------------------( )----|
    • Dê um nome ao contato e um nome à saída.
    • Determine um pino (bit de um port) para corresponder àquela instrução
    • Compile e carregue para a memória do uC (Proteus ou real).
  • 59.
    • Onde pesquisar...
    • Site da Microchip – www.microchip.com
    • Livros:
      • Desbravando o PIC – (Davi José)
      • Microcontroladores PIC: Técnicas avançadas ( Fábio Pereira)
      • PIC: Programação em C (Fábio Pereira)
    • Buscar no google...
  • 60.
    • Esta foi a ponta do Iceberg...
    • Agora cabe a cada um buscar/aprofundar mais no assunto...
    • Danilo Pagano
    • Departamento de Mecanica Computacional
    • Faculdade de Engenharia Mecanica
    • Universidade Estadual de Campinas - UNICAMP