·

Engenharia Elétrica ·

Microprocessadores

· 2021/2

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta
Equipe Meu Guru

Prefere sua atividade resolvida por um tutor especialista?

  • Receba resolvida até o seu prazo
  • Converse com o tutor pelo chat
  • Garantia de 7 dias contra erros

Texto de pré-visualização

1 Microprocessadores Prof. Arthur Braga Tópicos n Microcontrolador PIC16F628A ¤ Características Gerais ¤ Memórias no PIC n Memória RAM n Memória EEPROM n Memória de Programa ¤ Sintaxe Assembly do PIC16F628A n Instruções n Diretivas ¤ Acessando as Memórias de Programa e de Dados 2 Microcontrolador x Microprocessador n Um microcontrolador difere de um microprocessador em vários aspectos. O mais importante deles é a sua funcionalidade. n Para que um microprocessador possa ser utilizado, outros componentes devem ser adicionados, tais como memória, chipsets e componentes para receber e enviar dados. n Por outro lado, o microcontrolador foi projetado para ter todas estas funcionalidades em um único dispositivo. Desta forma, para fins didáticos, um microcontrolador pode ser visto como um computador em um único chip. Microcontrolador x Microprocessador Há diversos fabricantes, e modelos... 3 Microcontroladores PIC Os PIC (Peripheral Integrated Controler) são uma família de microcontroladores fabricados pela Microchip TechnologyTM, que processam dados de 8 e 16 bits com extensa variedade de modelos e periféricos internos, com arquitetura Harvard e conjunto de instruções RISC (sets de 35 instruções e de 76 instruções), com recursos de programação por memória FLASH, EEPROM e OTP. PIC 16F628A 4 PIC 16F628A Arquitetura Interna do PIC 16F628A PIC 16F628A 5 Contador de Programa - PC Instruções - Temporização Como funcionam as memórias ? Memórias no PIC (RAM, EEPROM e Programa) 6 Arquitetura Interna do PIC 16F628A PIC 16F628A Memória RAM A memória RAM é dividida em quatro bancos, e é compartilhada pelos Registradores de Propósito Geral (GPRs) e pelos Registradores com Finalidades Específicas (SFRs). Registradores de Propósito Geral (GPRs) – são utilizados para o armazenamento temporário de dados e informações do programa do usuário. Registradores com Finalidades Específicas (SFRs) – são utilizados para controlar os periféricos e dispositivos internos, flags de estado do processador, entre outras funções. EXEMPLO de SFR ? 7 Registradores SFR Registradores SFR 8 Registradores SFR Registradores SFR Esses e outros registradores SFR serão detalhados conforme forem apresentados os recursos do PIC16F628A ! 9 Arquitetura Interna do PIC 16F628A PIC 16F628A Memória EEPROM O PIC16F628A possui 128 posições de memória EEPROM, com capacidade de armazenamento de 1 byte em cada posição. A faixa de endereços usada para acesso a essa memória é 00h – 7Fh. Esta é uma memória não-volátil, o que significa que os dados continuam armazenados em suas localidades mesmo sem alimentação. O acesso a essa memória é feito por meio de alguns registradores especiais: • EECON1 • EECON2 • EEDATA • EEADR 10 Arquitetura Interna do PIC 16F628A PIC 16F628A 11 O Contador de Programa (PC – Program Counter) é o responsável pelo controle da sequência de execução das instruções no PIC. O registrador aponta sempre para a próxima instrução a ser executada pela CPU, desta forma, para alterar o fluxo do programa, o conteúdo do PC deve ser alterado. EXEMPLO: PC Linguagem Assembly Linguagem de Máquina (MONTADOR / COMPILADOR) Linguagem Assembly 12 Instruções Instruções De forma geral, os mneumônicos (nomes) das instruções são formados por uma raiz que indica sua função, e letras que indicam os operandos utilizados: 13 Instruções De forma geral, os mneumônicos (nomes) das instruções são formados por uma raiz que indica sua função, e letras que indicam os operandos utilizados: Instruções Instruções Operações com registradores Instrução Argumentos Descrição ADDWF f,d Soma W e f, guardando o resultado em d. ANDWF f,d Lógica 'E' entre W e f, guardando o resultado em d. CLRF f Limpa f. COMF f,d Calcula o complemento de f, guardando o resultado em d. DECF f,d Decrementa f, guardando o resultado em d. DECFSZ f,d Decrementa f, guardando o resultado em d e pula a próxima linha se o resultado for zero. INCF f,d Incrementa f, guardando o resultado em d. INCFSZ f,d Incrementa f, guardando o resultado em d, e pula a próxima linha se o resultado for zero. IORWF f,d Lógica 'OU' entre W e f, guardando o resultado em d. MOVF f,d Move f para d (cópia). MOVWF f Move W para f (cópia). RLF f,d Rotaciona f 1 bit para a esquerda. RRF f,d Rotaciona f 1 bit para a direita. SUBWF f,d Subtrai W de f (f - W), guardando o resultado em d. SWAPF f,d Executa uma inversão entre as partes alta e baixa de f, guardando o resultado em d. XORWF f,d Lógica 'OU exclusivo' entre W e f, guardando o resultado em d. Instruções Operações com literais Instrução Argumentos Descrição ADDLW k Soma k com W, guardando o resultado em W. ANDLW k Lógica 'E' entre k e W, guardando o resultado em W. IORLW k Lógica 'OU' entre k e W, guardando o resultado em W. MOVLW k Move k para W. SUBLW k Subtrai W de k (k - W), guardando o resultado em W. XORLW k Lógica 'OU exclusivo' entre k e W, guardando o resultado em W. 16 Elementos Básicos da Linguagem Assembly Na linguagem Assembly do PIC16F628A uma linha de programa (declaração) pode ter, além da instrução (mneumônico - código de operação) e de seus operandos, os seguintes elementos básicos: n Label (Rótulo): é uma string utilizada, entre outras coisas, para representar o início de um bloco de instruções que executa uma tarefa definida dentro do programa. n Comentário: é um texto iniciado por ponto-e-vírgula (;) e colocado após cada instrução para informar a tarefa que está sendo executada. n Instruções / Diretivas: Instruções geram código de máqina. Diretivas, conhecidas também como pseudo-instruções, são comandos que não fazem parte do conjunto de instruções do microcontrolador, mas são reconhecidos pelo programa montador. n Operandos: utilizados por algumas das instruções Por onde começar ? Sintaxe do Assembly PIC16F628A 17 Sintaxe do Assembly PIC16F628A Diretivas e Instruções 18 Diretivas Diretivas são comandos que aparecem no código-fonte (arquivo .ASM), mas não fazem parte do conjunto de instruções do PIC. Esses comandos são reconhecidos pelo MONTADOR, não sendo, portanto, convertidos em código objeto. No PIC as diretivas são divididas em grupos (ou tipos), dependendo da sua aplicação: * Diretivas de Controle; * Diretivas Condicionais; * Diretivas de Dados; * Diretivas de Listagem; * Diretivas de Macro; * Diretivas de Objetos de Arquivos Foge ao escopo da disciplina o estudo de todas as diretivas do PIC16F628A. Serão discutidas apenas as mais utilizadas. Diretivas 19 Diretivas ORG 0x0000 GOTO INICIO ORG 0x0004 ... (rotinas de tratamento das interrupções) INICIO: ... Exemplo Diretivas 20 Diretivas Acessando a Memória de Programa 21 O Contador de Programa (PC – Program Counter) é o responsável pelo controle da sequência de execução das instruções no PIC. O registrador aponta sempre para a próxima instrução a ser executada pela CPU, desta forma, para alterar o fluxo do programa, o conteúdo do PC deve ser alterado. EXEMPLO: PC Linguagem Assembly Linguagem de Máquina (MONTADOR / COMPILADOR) O Contador de Programa (PC – Program Counter) é o responsável pelo controle da sequência de execução das instruções no PIC. O registrador de 13 bits aponta sempre para a próxima instrução a ser executada pela CPU, desta forma, para alterar o fluxo do programa, o conteúdo do PC deve ser alterado. • Os 8 bits menos significativos de PC estão no registrador PCL (que pode ser lido e escrito) • Os 5 bits mais significativos de PC estão no registrador PCLATH (que não pode ser diretamente lido ou escrito). • Pode-se carregar valores em PCL para acessar posições na memória de Programa • As instruções GOTO e CALL já contém os 11 bits menos significativos de PC 22 EXEMPLO DE ESCRITA EM PCL PARAESCOLHER UM ENDEREÇO Acessando a Memória de Dados Endereçamento Direto 23 Utilização dos Registradores GPR O PIC implementa um conjunto de 128 registradores GPR (Registradores de Propósito Geral) na memória RAM disponível para o usuário. A utilização dos registradores GPR ocorre da mesma forma que os registradores SFR, ou seja: podemos acessar um registrador tanto pelo seu nome definido no programa, como pelo seu Endereço na RAM. No caso dos registradores GPR, é possível atribuir nomes a cada um deles de forma a facilitar a escrita e entendimento do programa. Uma forma de realizar a atribuição de nomes a um registrador é através da diretiva EQU. EXEMPLO TESTE EQU 0x20 Valor que será associado ao nome TESTE (pode ser usado como Endereço na RAM) Utilização dos Registradores GPR O PIC implementa um conjunto de 128 registradores GPR (Registradores de Propósito Geral) na memória RAM disponível para o usuário. A utilização dos registradores GPR ocorre da mesma forma que os registradores SFR, ou seja: podemos acessar um registrador tanto pelo seu nome definido no programa, como pelo seu Endereço na RAM. No caso dos registradores GPR, é possível atribuir nomes a cada um deles de forma a facilitar a escrita e entendimento do programa. Uma forma de realizar a atribuição de nomes a um registrador é através da diretiva EQU. EXEMPLO TESTE EQU 0x20 CLRF TESTE ; Limpa o conteúdo do endereço 0x20 24 Utilização dos Registradores GPR O PIC implementa um conjunto de 128 registradores GPR (Registradores de Propósito Geral) na memória RAM disponível para o usuário. A utilização dos registradores GPR ocorre da mesma forma que os registradores SFR, ou seja: podemos acessar um registrador tanto pelo seu nome definido no programa, como pelo seu Endereço na RAM. No caso dos registradores GPR, é possível atribuir nomes a cada um deles de forma a facilitar a escrita e entendimento do programa. Uma forma de realizar a atribuição de nomes a um registrador é através da diretiva EQU. EXEMPLO TESTE 25 Acessando a Memória Endereçamento Indireto Até o momento os registradores utilizados foram acessados por Endereçamento Direto – o endereço do registrador na memória RAM aparece na instrução (ou como o endereço propriamente dito, ou como um rótulo que o montador associa especificamente com um endereço). Endereçamento Indireto Porém, é possível no PIC16F628A passar indiretamente um dado para um endereço (REGISTRADOR) ! 26 O acesso a um REGISTRADOR via Endereçamento Indireto é feito por meio dos registradores FSR e INDF. Endereçamento Indireto • O conteúdo do registrador FSR aponta para o endereço de memória desejado. • O valor contido em INDF é o valor armazenado no endereço apontado por FSR. Endereçamento Indireto EXEMPLO DE APLICAÇÃO PARAENDEREÇAMENTO INDIRETO Este trecho de código permite dar um CLEAR no conteúdo dos registradores entre os endereços 20h e 2Fh 27 Bibliografia Básica n Zanco, Wagner da Silva. Microcontroladores PIC 16F628A/648A – uma abordagem prática e objetiva, Editora Érica, 2005. n Datasheet do PIC16F628A/648A Material da Disciplina Plataforma SIGAA/UFC