microcontroladores aula 2

23
MICROCONTROLADORES AULA 2 Microchip- 16F628A /648A Marcos Zamboni AULA 2 M.ZAMBONI 1

Upload: mayumiishihara

Post on 27-Nov-2015

38 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Microcontroladores Aula 2

MICROCONTROLADORESAULA 2

Microchip- 16F628A /648A

Marcos Zamboni

AULA 2 M.ZAMBONI

1

Page 2: Microcontroladores Aula 2

REGISTRADORESREGISTRADORESREGISTRADORESREGISTRADORES� Denominados de SFR ( Special Function Registers) Registradores de funções

especiais, servem para armazenar a configuração e o estado de funcionamento atual da maquina ( microcontrolador).

� 1. REGISTRADORES GERAIS: 1. REGISTRADORES GERAIS: 1. REGISTRADORES GERAIS: 1. REGISTRADORES GERAIS:

� STATUS E PCON, STATUS E PCON, STATUS E PCON, STATUS E PCON, Servem para mostrar o estado da ULA, o último RESET, configurar oscilador interno e externo, configurar página de programação

atual. No registrador STATUS temos a seleção do Banco de Memoria de Dados, algumas funções matemáticas como C = Carry, DC = Digit Carry, Z que indica quando um resultado foi zero, etc...

No Registrador PCON, a função mais utilizada é a escolha da Frequência do Oscilador Interno (OSCF) que pode ser 37kHz ou 4MHz.

AULA 2 M.ZAMBONI

2

Page 3: Microcontroladores Aula 2

AULA 2 M.ZAMBONI

3

OPTION:OPTION:OPTION:OPTION: Configura uma série de opções, tais como habilitação dos Pull-Ups do PORTB, Configurações do Prescaler, TMR0 e seleção de Borda para Interrupção externa. ( É referenciado no MPLAB como OPTION_REG.

INTCON, PIR1 e PIE1: INTCON, PIR1 e PIE1: INTCON, PIR1 e PIE1: INTCON, PIR1 e PIE1: Configuram e identificam todas as interrupções existentes. ( Veremos adiante no curso).

PCL E PCLATH: PCL E PCLATH: PCL E PCLATH: PCL E PCLATH: O PCL é o registrador que armazena os 8 bits menos significativos do PC ( PROGRAM COUNTER), ao qual indica a proximalinha que o programa deverá executar, a cada ciclo de máquina o PC é automaticamente alterado, mas também podemos altera-lo pelo software, como veremos adiante.

Page 4: Microcontroladores Aula 2

AULA 2 M.ZAMBONI

4

PORTASPORTASPORTASPORTAS

TRIS: TRIS: TRIS: TRIS: Estes registradores ( TRIS A e TRIS B) servem para configurar os pinos das portas, se entrada atribui-se UM se saída atribui-se ZERO .

Para configurarmos o PORTA utilizaremos o TRISA e para configurarmos o PORTB utilizaremos o TRISB, esta configuração será bit a bit, conforme vamos ver adiante.

Lembrando que: 1 lembra a letra I ( INPUT)0 lembra a letra O ( OUTPUT).

Page 5: Microcontroladores Aula 2

AULA 2 M.ZAMBONI

5

CONTADORESCONTADORESCONTADORESCONTADORESTIMER 0 : É um contador de 8 bits que pode ser acessado diretamente na memória tanto para ler ou escrever, seu incremento é automático pelo clock da máquina ou por sinal externo, seu estouro pode gerar uma Interrupção.

TIMER 1: TIMER 1: TIMER 1: TIMER 1: É um contador de 16 bits, também pode ser acesso diretamente da memória, mas devido ao seu tamanho ele é armazenado em dois endereços : TMR1H ( Parte alta), TRM1L )(Parte baixa),TMR1H ( Parte alta), TRM1L )(Parte baixa),TMR1H ( Parte alta), TRM1L )(Parte baixa),TMR1H ( Parte alta), TRM1L )(Parte baixa), o registrador TCON1 TCON1 TCON1 TCON1 é responsável pelas configurações relacionadas ao TIMER 1, como PRESCALER, Oscilador Externo Próprio, incremento interno ou externo, sincronismo de incremento. Seu estouro pode gerar uma interrupção. Ele é muito utilizado no modulo CCP.

TIMER 2: TIMER 2: TIMER 2: TIMER 2: Também é um contador de 8 bits, que pode ser acessado diretamente a memória, o registrador TCON2TCON2TCON2TCON2 é o responsável pelas configurações do TIMER2, como PRESCALER e POSTSCALER, para gerar uma interrupção o valor deste contador é comparado ao valor especificado em outro registrador, o PR2, em vez de esperar o estouro.

Page 6: Microcontroladores Aula 2

EEPROMEEPROMEEPROMEEPROM

� EEADR E EEDATA: EEADR E EEDATA: EEADR E EEDATA: EEADR E EEDATA: O primeiro EEADR é o registrador onde será endereçada a escrita ou leitura da EEPROM interna. O segundo EEDATA

possui duas funções distintas: Na escrita da EEPROM, preenchemos com o dado a ser armazenado, já nas operações de leitura, ele armazena o dado lido.

� EECON1 E EECON2:EECON1 E EECON2:EECON1 E EECON2:EECON1 E EECON2: O registrador EECON1 é responsavel pelas operações de escrita e leitura da EEPROM e detecção de erros.

O registrador EECON2 é utilizado como proteção de escrita na EEPROM, evitano que a memória seja alterada acidentalmente.

AULA 2 M.ZAMBONI

6

Page 7: Microcontroladores Aula 2

MÓDULO C.C.P.MÓDULO C.C.P.MÓDULO C.C.P.MÓDULO C.C.P.

� CCP1CON, CCPR1H e CCPR1L : CCP1CON, CCPR1H e CCPR1L : CCP1CON, CCPR1H e CCPR1L : CCP1CON, CCPR1H e CCPR1L : No módulo CCP temos três módulos distintos de operação:

CAPTURE,COMPARE e PWM, o registrador CCP1CON é o responsável

pela configuração destes modos.

O módulo CCP utiliza ainda o TMR1 como base de tempo e os registradores complementares CCPR1H e CCPR1L.

AULA 2 M.ZAMBONI

7

Page 8: Microcontroladores Aula 2

MÓDULO COMPARADOR DE TENSÃOMÓDULO COMPARADOR DE TENSÃOMÓDULO COMPARADOR DE TENSÃOMÓDULO COMPARADOR DE TENSÃO

� CMCON:CMCON:CMCON:CMCON: É um registrador utilizado para configuração de dois comparadores analógicos que este modelo possui, neste registro podemos escolher 8 possibilidades de programação conforme tabela:

AULA 2 M.ZAMBONI

8

Page 9: Microcontroladores Aula 2

MÓDULO TENSÃO DE REFERÊNCIAMÓDULO TENSÃO DE REFERÊNCIAMÓDULO TENSÃO DE REFERÊNCIAMÓDULO TENSÃO DE REFERÊNCIA� VRCON:VRCON:VRCON:VRCON: Este registrador é utilizado para configurar o modulo de tensão de referência, ou seja uma saída analógica com 16 valores de tensão configuráveis por software. Por este registrador podemos habilitar e desabilitar o módulo de tensão de referência, e selecionar o valor da saída. ( MALHA R2R INTERNA).

AULA 2 M.ZAMBONI

9

Page 10: Microcontroladores Aula 2

MÓDULO USARTMÓDULO USARTMÓDULO USARTMÓDULO USART

� TXSTA e RCSTA: TXSTA e RCSTA: TXSTA e RCSTA: TXSTA e RCSTA: Estes registradores configuram e monitoram todas as possibilidades para a comunicação USART, um para a Transmissão (TXSTA) e outro para Recepção (RCSTA).

� SPBRG:SPBRG:SPBRG:SPBRG: Registrador que configura o Baund Rate ( Taxa de Transferência).

� TXREG e RCREG: TXREG e RCREG: TXREG e RCREG: TXREG e RCREG: Buffers ( acumuladores) para dados a serem enviados (TXREG), e dados recebidos (RCREG).

AULA 2 M.ZAMBONI

10

Page 11: Microcontroladores Aula 2

ENDEREÇAMENTO INDIRETOENDEREÇAMENTO INDIRETOENDEREÇAMENTO INDIRETOENDEREÇAMENTO INDIRETO

� FSR e o INDF:FSR e o INDF:FSR e o INDF:FSR e o INDF: O FSR é um registrador que pode ser escrito em um outro endereço da memória que será acessado indiretamente, como se fosse apenas um ponteiro. O INDF na realidade não é um registrador, trata-se de um espelho do endereço apontado pelo FSR. Não se assuste, veremos tudo mais adiante.

AULA 2 M.ZAMBONI

11

Page 12: Microcontroladores Aula 2

CONHECENDO O MPLABCONHECENDO O MPLABCONHECENDO O MPLABCONHECENDO O MPLAB

� O MPLAB nada mais é que um software free para desenvolvimento em Assembly de programas para microcontroladores, nele esta também embutido o programa Hi-Tech C, linguagem C para PIC, mas na versão básica, pois a versão Full é paga. Voce pode baixar o software e tudo relativo ao microcontrolador no site www.microchip.com .

� Vamos conhecer o nosso ambiente de trabalho, utilizando um programa modelo para entendermos melhor seus aspectos básicos.

� Como em muitos casos não necessitamos mudar bruscamente suas características, podemos utilizar este modelo para desenvolvimento de todos os projetos relativos ao PIC.

AULA 2 M.ZAMBONI

12

Page 13: Microcontroladores Aula 2

AULA 2 M.ZAMBONI

13

Page 14: Microcontroladores Aula 2

AS CORES DAS LETRAS O QUE REPRESENTAM???AS CORES DAS LETRAS O QUE REPRESENTAM???AS CORES DAS LETRAS O QUE REPRESENTAM???AS CORES DAS LETRAS O QUE REPRESENTAM???

� Podemos observar que ao abrirmos o programa MODELO.ASM, temos três cores distintas de letras:

� VERDEVERDEVERDEVERDE significa que é um comentário não é compreendido pelo programa na compilação, observe que sempre precede um ponto e virgula, ou seja, tudo que escrever depois de um ponto e virgula é apenas comentário.

� AZUL AZUL AZUL AZUL toda vez que digitarmos instruções e elas sendo reconhecidas pelo programa, ficará em Azul escuro, algumas diretrizes ficam em azul claro.

� VERMELHO VERMELHO VERMELHO VERMELHO quando criamos Labels ou endereços .

� Podemos alterar as cores no menu Podemos alterar as cores no menu Podemos alterar as cores no menu Podemos alterar as cores no menu EditEditEditEdit���� PropertiesPropertiesPropertiesProperties....���� TextTextTextText............choosechoosechoosechoose colorscolorscolorscolors

� OBS: PALAVRAS COMPOSTAS DEVEM SER LIGADAS POR UNDER_LINEOBS: PALAVRAS COMPOSTAS DEVEM SER LIGADAS POR UNDER_LINEOBS: PALAVRAS COMPOSTAS DEVEM SER LIGADAS POR UNDER_LINEOBS: PALAVRAS COMPOSTAS DEVEM SER LIGADAS POR UNDER_LINE

� O programa difere MAIÚSCULAS de minúsculas.... Portanto O programa difere MAIÚSCULAS de minúsculas.... Portanto O programa difere MAIÚSCULAS de minúsculas.... Portanto O programa difere MAIÚSCULAS de minúsculas.... Portanto CUIDADO.CUIDADO.CUIDADO.CUIDADO.

AULA 2 M.ZAMBONI

14

Page 15: Microcontroladores Aula 2

# INCLUDE# INCLUDE# INCLUDE# INCLUDE

� Observe que a primeira diretriz que inserimos no programa é #INCLUDE, ela tem por finalidade inserir um arquivo de texto ou codigo-fonte, onde estarão definidos os nomes e endereços de todos os SFRs, e outras definições necessárias para o programa.

� `Para visualizarmos um arquivo Include, no MPLAB siga a sequência abaixo:

� C: Arquivos de C: Arquivos de C: Arquivos de C: Arquivos de ProgramaProgramaProgramaPrograma����MicrochipMicrochipMicrochipMicrochip����MPASMSuiteMPASMSuiteMPASMSuiteMPASMSuite\\\\p16F648Ap16F648Ap16F648Ap16F648A

� Voce verá o arquivo de SFRs relativos ao pic 16F648A.

AULA 2 M.ZAMBONI

15

Page 16: Microcontroladores Aula 2

__CONFIG ( CONFIGURAÇÕES BÁSICAS)

� Para iniciarmos o programa, devemos configurar alguns parâmetros que irão habilitar ou não certas condições, para isto temos duas maneiras de gerar esta configuração, através de dois underlines e a palavra config, ou diretamente em ConfigureConfigureConfigureConfigure���� ConfigurationConfigurationConfigurationConfiguration Bits...Bits...Bits...Bits...

� Podemos ver no programa Modelo o texto Config como abaixo:

� __CONFIG _BODEN_OFF & _CP_OFF & _PWRTE_ON & _WDT_OFF &

� _LVP_OFF & _MCLRE_ON & _INTOSC_OSC_NOCLKOUT

� Vamos agora estudar cada item deste CONFIG.

� Observe que sempre existe um underline iniciando e são ligados por &

� (E comercial)

AULA 2 M.ZAMBONI

16

Page 17: Microcontroladores Aula 2

_BODEN _OFF ( _BODEN _OFF ( _BODEN _OFF ( _BODEN _OFF ( ONONONON))))

� BROWN OUT DETECT ENABLE ( Detecta automaticamente quando a tensão de alimentação cai de 5V para menos de 4V, pelo tempo de 100 us, após este tempo o sistema será resetado, e somente voltará a funcionar quando a tensão se normalizar.

� É conveniente observar que ativamos esta função quando a variação de tensão pode ocorrer em mal funcionamento do software. Por exemplo numa comunicação Serial onde a tensão é o valor da Amplitude do sinal.

� Caso não seja necessário não o habilite, mantenha em OFF, pois o nosso Microcontrolador opera com tensões a partir de 2 Volts, o que significa que se o alimentarmos com duas pilhas (3,0V), o sistema não sairá do RESET.

AULA 2 M.ZAMBONI

17

Page 18: Microcontroladores Aula 2

____CP_OFFCP_OFFCP_OFFCP_OFF ((((ONONONON))))� CODE PROTECT CODE PROTECT CODE PROTECT CODE PROTECT ( código de proteção) tem por finalidade não permitir

quando habilitado ( ON), que consigam copiar ou ler o programa gravado.� Na realidade nem o operador poderá copiar ou ler o programa gravado,

mas se o programador inserir um codigo de identificação conforme abaixo:

� __IDLOCS 0X_ _ _ _ nos espaços em vermelho, colocamos 4 valores em Hexadecimal para podermos futuramente identificar o Software instalado.

� Podemos agora saber o codigo do software instalado, mas não seu conteúdo. Se voce é o dono do software, pelo código podeá verificar em seus arquivos do que se trata o programa.

� CUIDADO: CUIDADO: CUIDADO: CUIDADO: Em alguns programas de gravação quando ativamos o CP, pode aparecer erro de verificação, pois depois de gravado o programa verifica a gravação, mas o CP não permite ler o programa, indicando erro!!!!

AULA 2 M.ZAMBONI

18

Page 19: Microcontroladores Aula 2

____PWRTE_ONPWRTE_ONPWRTE_ONPWRTE_ON (OFF)(OFF)(OFF)(OFF)

� POWER UP TIMER ENABLE POWER UP TIMER ENABLE POWER UP TIMER ENABLE POWER UP TIMER ENABLE Na condição ON ON ON ON ele gera um delay de 72ms para o programa iniciar, tem por finalidade esperar a fonte de alimentação estabilizar para o programa trabalhar nos níveis corretos de tensão.

� Aconselho deixar sempre habilitado.

AULA 2 M.ZAMBONI

19

Page 20: Microcontroladores Aula 2

____WDT_OFFWDT_OFFWDT_OFFWDT_OFF ((((ONONONON))))� WATCHDOG TIMER (cão de guarda) WATCHDOG TIMER (cão de guarda) WATCHDOG TIMER (cão de guarda) WATCHDOG TIMER (cão de guarda) Basicamente é um

contador de ciclo de instruções separado do programa principal, sua função é RESETAR o programa caso o WDT não seja “limpo” pelo software.

� Quando ele atinge o valor máximo (ajustado pelo programador), reseta o programa principal, por esta razão antes do seu estouro, devemos zerá-lo através da instrução CLRWDT CLRWDT CLRWDT CLRWDT ( Clear Watchdog timer).

� Vale a pena ressaltar que devemos inserir o WDT apenas depois de pronto e funcionando corretamente o programa.

AULA 2 M.ZAMBONI

20

Page 21: Microcontroladores Aula 2

_LVP_OFF_LVP_OFF_LVP_OFF_LVP_OFF (ON)(ON)(ON)(ON)

� LOW VOLTAGE PROGRAM LOW VOLTAGE PROGRAM LOW VOLTAGE PROGRAM LOW VOLTAGE PROGRAM ( Programação por baixa tensão).

� Para entendermos a LVP, temos que saber como é a gravação de modo normal. Através do pino 4 ( MCLR) é aplicada uma tensão de 13,2V para o microcontrolador parar seu funcionamento e entrar em modo de gravação (Programação).

� Mas, em alguns casos o equipamento que esta inserido seu microcontrolador não dispõe desta tensão, então podemos habilitar sua gravação com apenas 5V (TTL), colocando ON em LVP, seu pic entra em modo de gravação quando aplicado 5Volts no pino 10, e o pino 4 neste momento perde esta função.

� CUIDADO:CUIDADO:CUIDADO:CUIDADO: Como a tensão é baixa, qualquer ruído pode fazer com que o PIC entre em modo de gravação, portanto devemos colocar preferencialmente um filtro para eliminar este problema.

AULA 2 M.ZAMBONI

21

Page 22: Microcontroladores Aula 2

____MCLRE_ONMCLRE_ONMCLRE_ONMCLRE_ON (OFF)(OFF)(OFF)(OFF)

� MASTER CLEAR ENABLE MASTER CLEAR ENABLE MASTER CLEAR ENABLE MASTER CLEAR ENABLE (Habilitação do RESET EXTERNO), quando em ON, o RESET será acionado através do pino 4 quando em VSS, ou seja quando aterrarmos o pino 4. É evidente que nesta condição ele perde a função de PORTA,5 (RA5), para trabalhar apenas como RESET, para tanto devemos ligar um resistor do pino para VDD, e uma chave do pino para VSS.

� Caso você coloque OFF, este pino será um PORT, e o RESET será feito internamente pelo software.

� OBS:OBS:OBS:OBS: Como este pino também é o pino de Gravação por alta tensão (13,2V), ele não pode nunca ser configurado como saída, apenas entrada. Não se esqueça disto.

AULA 2 M.ZAMBONI

22

Page 23: Microcontroladores Aula 2

TIPOS DE OSCILADORES TIPOS DE OSCILADORES TIPOS DE OSCILADORES TIPOS DE OSCILADORES

� Como item final do nosso __CONFIG temos as opções de osciladores.

� _INTOSC_OSC_NOCLKOUT _INTOSC_OSC_NOCLKOUT _INTOSC_OSC_NOCLKOUT _INTOSC_OSC_NOCLKOUT Habilita o oscilador interno, mantendo os pinos RA6 e RA7 como portas.

� _XT_OSC _XT_OSC _XT_OSC _XT_OSC Habilita o uso de um cristal externo ou ressonador ligado aos pinos RA6 e RA7.

� _HS_OSC _HS_OSC _HS_OSC _HS_OSC Para uso de ressonadores cerâmicos com frequências elevadas.

� _LP_OSC _LP_OSC _LP_OSC _LP_OSC Para cristais ou ressonadores de baixa frequência.

� _RC_CLKOUT RC_CLKOUT RC_CLKOUT RC_CLKOUT Para oscilador RC externo, e teremos no pino 15 o clocksaindo sua frequência dividida por 4 ( Onda quadrada de ¼ da frequência).

AULA 2 M.ZAMBONI

23