Microcontrolador – · PDF fileO PIC pode operar com 4 modos diferentes de osciladores, a...

download Microcontrolador – · PDF fileO PIC pode operar com 4 modos diferentes de osciladores, a saber: a) RC (resistor-capacitor) : modo simples e de baixo custo, mas que oferece instabilidade

If you can't read please download the document

Transcript of Microcontrolador – · PDF fileO PIC pode operar com 4 modos diferentes de osciladores, a...

  • AUTOR

    Maurcio Madeira Oliveira Pgina pessoal (fonte): www.seguidorsolar.com.br

    Este curso pode ser usado e divulgado, sem fins comerciais, citar fonte e autor

    Microcontrolador 16F84A

    Os microcontroladores (uC) podem ser chamados de microcomputadores de um s chip , so usados , pelos mais diversos equipamentos eletrnicos , como: Videocassetes, celulares, dvd, alarmes, eletrnica embarcada, televisores, controle-remoto, agendas eletrnicas, etc. Possuem em uma nica pastilha (ci), memria de dados, temporizadores, canal serial, vrios canais de I/O, eeprom, pwm e etc. Arquiteturas usadas em microcontroladores: Existe a tradicional Von Newman, baseada em um nico barramento por onde trafegam dados e instrues (8051) e Harvard que prev varias vias de comunicao entre CPU e perifricos permitindo a realizao de vrias operaes simultneas, os microcontroladores PIC da Microchip se baseiam nesta arquitetura. No PIC 16F84 os dados so de 8 bits e as instrues so de 14 bits. Com esta facilidade em uma palavra de 14 bits podemos ter cdigo de instruo (opcode) , onde vai atuar e o eventual operando ou dado. Criou-se uma terminologia chamada RISC (reduced instruction set computer) que no PIC so aproximadamente 35 instrues. Pinagem do PIC 16F84A (18 pinos):

    RA0 entrada ou sada PORTA (P17). RA1 entrada ou sada PORTA (P18).

  • RA2 entrada ou sada PORTA (P01). RA3 entrada ou sada PORTA (P02). RA4 entrada ou sada PORTA (P03), tambm entrada do Timer zero. RB0 entrada ou sada PORTB (P06), tambm interrupo externa. RB1 entrada ou sada PORTB (P07). RB2 entrada ou sada PORTB (P08). RB3 entrada ou sada PORTB (P09). RB4 entrada ou sada PORTB (P10). RB5 entrada ou sada PORTB (P11). RB6 entrada ou sada PORTB (P12). RB7 entrada ou sada PORTB (P13). RB4 a RB7 tambm sinalizam interrupo por mudana de estado. VDD alimentao ( 2V a 6V, tpico 5V) (P14). VSS referncia de terra (P05). MCLR\ - entrada de reset (em nvel 0) (P04). OSC1/CLKIN cristal ou entrada de clock externo (P16). OSC2/CLKOUT cristal ou sada do clock/4 quando usado sinal externo (P15). Principais caractersticas : 1 K (1024) palavras de 14 bits para programa. 68 bytes de uso geral. 64 bytes de EEPROM para dados. Stack com 8 nveis. 35 instrues . 15 registros especiais em RAM (SFRs) para controle do chip e perifricos. Timer 8 bits e prescaler. 13 pinos entrada/sada (cfe.config.) PORTA e PORTB. Alta capacidade de corrente nos pinos. Capacidade de gerenciar at 4 interrupes. Watch Dog para recuperao e reset em caso de travamento de software. Memria de programa protegida contra cpias. Modo sleep , economia de energia. Vrias opes de osciladores. O microcontrolador 16F84A pode operar de DC at 20 Mhz ( ou at 10 MHz no 16F84). Vamos usar em nossos estudos um clock de 4 MHz (a cristal), o que nos proporciona um ciclo de mquina de 1 uS. O PIC divide o sinal de clock por 4 internamente gerando as fase Q1, Q2, Q3 e Q4, que somadas formam 1 ciclo de mquina: Tc = 1/(Fosc/4) ou Tc = (1/Fosc) x 4 A caracterstica de buscar a informao em um ciclo de e executa-la no ciclo seguinte chama-se PIPELINE, as instrues so executadas em 1uS, com exceo das instrues que alteram o PC (program counter) , que usam dois ciclos. Os circuitos de CLOCK :

  • O PIC pode operar com 4 modos diferentes de osciladores, a saber: a) RC (resistor-capacitor) : modo simples e de baixo custo, mas que oferece instabilidade

    na frequncia, com variao do VCC e da temperatura, recomendado em aplicaes onde a preciso do clock no importante.

    Nota: na sada osc2 colocar um ociloscpio ou frequencimetro, para ajustar a frequncia de operao do sistema (por ex.: 4Mhz em osc1 terei 1Mhz em osc2). b) XT (modo cristal) : de 100Khz a 4Mhz.

  • Nota : as ligaes entre os pinos do ci, cristal e capacitor , devem ser as mais curtas possveis. c) HS (modo cristal) : acima de 4Mhz.

    Podemos usar cristal ou ressoador cermico. A ligao eltrica idntica a do modo XT.

    d) LP (modo cristal) : baixa potncia < 200 Khz .

    OBS.: tambm podemos um circuito de clock externo , gerado por um oscilador qualquer que entrando por osc1 ira determinar a frequncia de trabalho para um ou mais PIC . O circuito de Reset : a) O PIC pode ser resetado ao alimentar o mesmo, atravs do pino MCLR\ ligado em Vcc,

    esta seria a forma mais bsica :

    OBS.: acima , temos o circuito mnimo de POR (power-on-reset). b) Um circuito mais elaborado, seria com uma chave para reset manual, quando

    necessrio.

  • Nota : o pic possui ainda um sistema que gera 72 mS fixo, aps o final do POR usado, ficando por mais este tempo em reset. Nota : quando utilizamos o modo XT, LP ou HS, o timer de partida do oscilador (OST) automaticamente acionado por 1024 perodos do oscilador, para sair do reset; isto garante a estabilizao do cristal ou resonador. As memrias do PIC : A famlia PIC possui em sua arquitetura, segmentos de memria separados para programas e dados, e inclusive com palavras de tamanho diferentes. O PC (programa counter) da famlia 16Cxxx tem 13 bits, permitindo memria de programa de at 8Kbytes (2 exp.13). O pic 16F84A possui apenas 1K (000 at 3FFh). Qualquer referncia a outras posies de memria sero deslocadas para este bloco de 1K. No reset do PC ele aponta para o endereo 000 e ao atender uma interrupo o PC carregado com o endereo 004h. a) Memria de programa devido a estrutura Havard ela pode ter palavras de 12,14ou 16

    bits, no caso do 16F84 o tamanho da palavra manipulada na memria de 14 bits; esta rea reservada do microcontrolador onde ser gravado o programa de controle do mesmo ,em alguns modelos temos uma eprom, no CI em estudo a memria do tipo FLASH, o que nos permite gravar e apagar centenas de vezes esta memria, tornando-se o ci mais indicado para desenvolvimento de sistemas.

    b) Stack (pilha) : local separado da memria de programa para salvar endereos do PC, para o qual o programa principal retornara aps executar interrupes ou subrotinas que forem chamadas. O stack salva s o endereo de retorno, as condies do microcontrolador tem que serem tratadas pelo usurio. O stack do 16F84 tem 8 nveis , ou seja se passar deste nmero de interrupes ou subrotinas ele perdera a mais antiga.

  • c) Memria de dados : nada mais do que uma rea de RAM , utilizada para guardar as variveis e registradores usados pelo sistema microcontrolado, no PIC esta rea separada em bancos de memria, no caso do 16F84 temos o banco 0 e banco 1, que so selecionados pelos bits RP1 e RP0 do registro STATUS que veremos adiante.

    d) SFR (special function registers registros especiais de controle) : so usados pela CPU

    e ou perifricos para controlar o funcionamento do chip conforme o desejado. Se dividem em 2 tipos , controle e uso da CPU e controle e uso dos perifricos. So lidos e escritos tanto pelo usurio como pelo hardware, ocupam espao na RAM, e podem estar em um ou em ambos os bancos de memria, e so acessados atravs de seu endereo.

    e) Registradores de uso geral : rea destinada ao armazenamento de variveis definidas

    pelo usurio, para serem escritas ou lidas pelo programa. O tamanho desta rea de RAM depende do PIC usado.

    f) EEPROM : alguns PIC possuem esta memria especial no voltil (o 16F84 possui uma

    de 64 bytes), que podemos usar para escrever ou ler dados .

    Memria de dados e RAM de uso geral:

    BANCO 0 BANCO 1

  • As interrupes do PIC : Uma interrupo, para a execuo do programa que estiver em curso, desviado para o endereo 0004h no caso do PIC, onde teremos uma rotina de interrupo que ser executada pelo microcontrolador, e aps voltara para a instruo seguinte a que foi atendida a interrupo (o PC guarda o ltimo end.+1 para o retorno). No PIC 16F84 as interrupes podem acontecer por : Overflow do timer 0. Fim de escrita na EEPROM. Interrupo externa pelo pino RB0/INT. Mudana nos pinos RB4 a RB7. Como trata-las ser descrito nos registradores e rotinas adiante. Os registros de controle da CPU : Estudaremos a seguir os registros STATUS, OPTION, INTCON, e registros de controle das portas. Com eles e que inicializamos nosso microcontrolador. a) STATUS : Configura a pgina de memria atual (banco 0 ou 1), flags da ULA e forma

    do ltimo reset. BIT 7 IRP Seleciona bancos - no 16F84 sempre em 0 BIT 6 RP1 No 16F84 manter em 0 BIT 5 RP0 Seleciona

    bancos 0=banco 0 e 1=banco1

    BIT 4 TO\ Bit sinaliza time out/ 1=power-up,clrwdt,sleep, 0=time-out do watch dog BIT 3 PD\ Power Down/1=power-up,clrwdt, 0=inst.sleep BIT 2 Z Bit sinalizador 0,1 reg.estac/vlr.0 se =0 oreg.dif.de 0 BIT 1 DC Digit carry/borrow BIT 0 C Carry/borrow b) OPTION : Configura prescaler, timer, e outras opes. Na programao usa-se option-

    reg , pois em PICs mais antigos existia uma instruo option. BIT 7 RPBU\ Habilita os pull-up portB 1=desab. 0=hab. BIT 6 INTEDG Como aceitara int.externa (RB0) 1=borda de susbida 0=borda de descida BIT 5 TOCS Fonte do clock do timer 0 1=pino RA4/TOCKI 0=clock interno (f/4) BIT 4 TOSE Como o clock ext.inc.timer 0 1=borda descida 0=borda susbida BIT 3 PSA Atribuio do prescaler 1=Watch dog 0=timer 0 BIT 2 PS2 PS2 BIT 1 PS1 PS1 VER TABELA ABAIXO BIT 0 PS0 PS0

  • PS2 PS1 PS0 TIMER 0 WATCH DOG 0 0 0 1 para 2 1 para 1 0 0 1 1 para 4 1 para 2 0 1 0 1 para 8 1 para 4 0 1 1 1 para 16 1 para 8 1 0 0 1 para 32 1 para 16 1 0 1 1 para 64 1 para 32 1 1 0 1 para 128 1 para 64 1 1 1 1 para 256 1 para 128

    Nota : para assegurar uma taxa de 1:1 na frequncia de contagem do timer0 d