ARQUITETURA DE PROCESSAMENTO

Documentos relacionados
PIC16F628a. Pinagem do PIC16F628a:

Introdução aos Microcontroladores PIC

PIC. PeripheralInterface Controller. Prof. EngºespLuiz Antonio Vargas Pinto Prof. Vargas

Arquitetura de Computadores. Prof. João Bosco Jr.

Circuito Eletrônico. Entendendo o circuito eletrônico na robótica. domingo, 28 de agosto de 11

Sistemas Microcontrolados. Período Aula 4. 1 Saulo O. D. Luiz

Unidade Central de Processamento UCP (CPU)

Introdução ao PIC. Guilherme Luiz Moritz 1. 6 de novembro de DAELT - Universidade Tecnológica Federal do Paraná

DOUGLAS DAL POZZO DIEGO VITTI

Introdução à Organização de Computadores. Aula 8

1.1. Microprocessadores e microcontroladores Sistemas genéricos e sistemas dedicados. 2. Microcontrolador PIC:

Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:

1.1 Noções básicas sobre interrupções em Microcontroladores

SEL0338 Tópicos Especiais em Sistemas Digitais

2. A influência do tamanho da palavra

2. A influência do tamanho da palavra

Conjunto de Instruções e Modelos de Arquiteturas

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

Microcontroladores. Prof. Nivaldo T. Schiefler Jr. M.Eng Homepage:

Processador. Processador

Conceitos Básicos Processador

SSC510 Arquitetura de Computadores 1ª AULA

Estrutura Básica de um Computador

Índice. Dia 05 de fevereiro de Apresentação Dia 12 de fevereiro de

5. Conjunto de Instruções do MCU PIC

SEMINÁRIO ASSEMBLY: Arquitetura PIC

Índice. Dia 05 de fevereiro de Apresentação Dia 12 de fevereiro de

Instruções de Máquina

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores

Conjunto de Instruções e Modelos de Arquiteturas

FACULDADE LEÃO SAMPAIO

Eder Terceiro. Programação C com o PIC16F628a. Eder Terceiro. 31 de Outubro de 2016

Introdução à Computação: Arquitetura von Neumann

Interrupção Externa. Capítulo 1. Noções básicas sobre interrupções em Microcontroladores PIC

Introdução aos microcontroladores Microcontroladores e microprocessadores Tecnologia em Manutenção Industrial

1.2 Registradores relacionados as Interrupções. 3. TOSE Sentido da transição da borda do sinal aplicado am TMR0

Sistemas Microcontrolados

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

Aula 10 Microcontrolador Intel 8051 Parte 1

Curso de Microcontroladores PIC 16F84A

CPU. Funções: Componentes: Processamento; Controle. UC (Unidade de Controle); Registradores; ALU s, FPU s etc. Arquitetura de Computadores 3

Microprocessadores CPU. Unidade de Controle. Prof. Henrique

14/3/2016. Prof. Evandro L. L. Rodrigues

MICROCONTROLADORES PIC PRIMEIROS PASSOS

Solução Lista de Exercícios Processadores

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

COMPUTADOR. Adão de Melo Neto

Microprocessadores. São máquinas elétricas onde podemos armazenar instruções lógicas, aritméticas e de tomada de decisão;

Microcontrolador PIC 16F877

Disciplina: Arquitetura de Computadores

COMPUTADOR 2. Professor Adão de Melo Neto

Microcontroladores PIC

Unidade de Controle. UC - Introdução

INTRODUÇÃO: MICROCONTROLADORES

Arquitetura de Computadores Aula 10 - Processadores

Registros do 16F628A. Prof. Luiz Antonio Vargas Pinto Prof. Vargas

Sistemas Operacionais

Sistemas Digitais e Microcontrolados

Prof. Benito Piropo Da-Rin. Arquitetura, Organização e Hardware de Computadores - Prof. B. Piropo

ELETRÔNICA DIGITAL II. AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR

Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios

1. Microcontrolador PIC. 1.1 Introdução

Plano de Trabalho Docente 2017 Ensino Técnico

ORGANIZAÇÃO DE COMPUTADORES

A Unidade Central de Processamento é a responsável pelo processamento e execução de programas armazenados na MP.

Histórico de desenvolvimento de computadores Prof. Luís Caldas Aula 02 Processador de uso geral

ESTRUTURA E FUNCIONAMENTO DO COMPUTADOR

SSC0112 Organização de Computadores Digitais I

01. Identifique o conjunto de portas de entrada A e o conjunto de portas B na figura abaixo.

Célula, Palavra, Ciclo de Instruções e Lógica Temporizada

Microcontroladores: Programação em C

Microcontrolador PIC 16F877

Sistemas Digitais e Microcontrolados

Aplicações Avançadas de Microprocessadores. Professor: Marco Shawn Meireles Machado

Acetatos de apoio às aulas teóricas

Microcontroladores. Rafael Silva de Lima

Capítulo 3 Organização Interna de um Computador

Algoritmos Computacionais

Arquitetura de Computadores. Ciclo de Busca e Execução

Organização e Arquitetura de Computadores I

MEC MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO MÉDIA E TECNOLÓGICA CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DO ESPÍRITO SANTO

Organização de Computadores

Hardware Parte I. Fábio Rodrigues de la Rocha

SISTEMAS MICROCONTROLADOS

Elementos Físicos do SC e a Classificação de Arquiteturas

Organização e Arquitetura de Computadores INTRODUÇÃO

FUNCIONAMENTO DO COMPUTADOR. Adão de Melo Neto

Evolução dos computadores

a) Obtenha a tabela verdade das operações com 01 bit

Jadsonlee da Silva Sá

Infraestrutura de Hardware. Funcionamento de um Computador

Curso PIC 1 Desbravando o PIC. Eng. Diego Camilo Fernandes Labtools Mosaico Didactic Division

Hardware e Software. Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Organização de Computadores 1

UCP 8051 (parte 02) Professor Adão de Melo Neto

Sâmia Rodrigues Gorayeb. Arquitetura de Computadores Linguagem de Máquina

Programação Daniel Corteletti Aula 3 Parte III Página 1/7

Arquitetura de Computadores. Prof. João Bosco Jr.

ORGANIZAÇÃO DE COMPUTADORES

Transcrição:

ARQUITETURA DE PROCESSAMENTO Os subsistemas digitais codificadores, decodificadores, multiplexadores, demultiplexadores, registradores e contadores, possibilitam a criação de um sistema digital mais complexo de processamento de dados. Este sistema é automatizado, possibilitando o armazenamento de informações de comando (instruções) para o processamento de informações gerais (dados). As informações de comando e gerais são todas dispostas na forma binária, i.e., na forma digital. A arquitetura básica de um circuito para processamento de dados ainda segue de forma geral os conceitos estabelecidos por John Von Neumann (Professor da Universidade de Princeton, um dos construtores do EDVAC, 1903-1957), denominada arquitetura de Von Neumann, com as seguintes características: 1. Codificação de instruções que possam ser armazenadas em uma memória (codificação em cadeias de uns e zeros - código binário); 2. armazenamento na memória das instruções e de todas as informações necessárias para a execução de uma determinada tarefa; 3. busca das instruções diretamente na memória no processamento do programa. A Unidade Central de Processamento - UCP (em inglês, Central Processing Unity - CPU) é o sistema digital responsável pelo processamento e execução dos instruções, armazenadas em uma memória semicondutora (memória principal). As funções da UCP são: executar as instruções e controlar as operações do sistema de processamento. A UCP é composta de duas partes: UAL - Unidade Aritmética e Lógica - tem por função a efetiva execução das instruções; UC - Unidade de Controle - tem por funções a busca, interpretação e controle de execução das instruções, e o controle dos demais componentes do computador; UTFPR Cornélio Procópio 1

A seguir é apresentado o diagrama esquemático de uma UCP. Registradores Importantes em uma UCP: Na UC - CI Contador de Instruções (em inglês: PC - Program Counter) - armazena o endereço da próxima instrução a ser executada - tem sempre o mesmo tamanho do REM Registrador de Endereços. Na UC - RI Registrador de Instrução (em inglês: IR - Instruction Register) - armazena a instrução a ser executada. UTFPR Cornélio Procópio 2

Na UAL - ACC Acumulador (em inglês:acc - Accumulator) - armazena os dados (de entrada e resultados) para as operações na UAL; o acumulador é um dos principais elementos que definem o tamanho da palavra do computador - o tamanho da palavra é igual ao tamanho do acumulador. Instruções Um ser humano usa seu conhecimento e inteligência para traduzir uma tarefa complexa (tal como, por exemplo, a tarefa de buscar uma pasta num arquivo) numa série de passos elementares (identificar o local do arquivo, fazer o caminho até o arquivo, identificar o arquivo e retirá-lo do seu local). Para o computador, uma instrução precisa ser detalhada, dividida em pequenas etapas de operações, que são dependentes do conjunto de instruções do computador e individualmente executáveis. Todos os programas para uma determinada UCP, independente da linguagem de programação utilizada, são transformados na linguagem de máquina da UCP. As linguagens de máquina são denominadas de linguagens de baixo nível, observando que o termo utilizado nível não tem relação com o nível de qualidade da linguagem utilizada, mas sim, em relação ao nível de interação da linguagem com a UCP. As linguagens de mais alto nível utilizam instruções para executarem tarefas mais complexas. Estas instruções, na realidade, equivalem a uma série de instruções em linguagem de máquina e existe a necessidade de se utilizar um programa tradutor (ou compilador) para traduzir esta instrução de alto nível para uma série de instruções em linguagem de máquina. Ou seja, o programa elaborado pelo programador (o código-fonte, composto de instruções complexas) precisa ser "traduzido" em pequenas operações elementares (primitivas) executáveis pelo hardware. Cada uma das instruções tem um código binário associado, que é o código da operação. Para que um programa possa ser executado por um computador, ele precisa ser constituído por esta série de instruções e estar armazenado em células sucessivas na memória principal. A UCP é responsável pela execução das instruções que estão na memória. Quem executa um programa é o hardware e o que ele espera encontrar é um programa na forma de linguagem de máquina (uma sequência de instruções de máquina em código binário). A linguagem de máquina utiliza um código na forma de bits, representando instruções, endereços e dados. Cada UCP possui um número fixo de instruções ou um conjunto ("set") de instruções da máquina. Formato geral de uma Instrução em Linguagem de Máquina para o microprocessador 8080: Código de operação (OPCODE) Operando (s) (OP) UTFPR Cornélio Procópio 3

Código de Operação ou OPCODE - identifica a operação a ser realizada pelo processador. É o campo da instrução cuja valor binário identifica (é o código binário) da operação a ser realizada. Este código é a entrada no decodificador de instruções da unidade de controle. Cada instrução deverá ter um código único que a identifique. Operando(s) - é ou são o(s) campo(s) da instrução cujo valor binário sinaliza a localização do dado (ou é o próprio dado) que será manipulado (processado) pela instrução durante a operação. Em geral, um operando identifica o endereço de memória onde está contido o dado que será manipulado, ou pode conter o endereço onde o resultado da operação será armazenado. Finalmente, um operando pode também indicar um Registrador (que conterá o dado propriamente dito ou um endereço de memória onde está armazenado o dado). Os operandos fornecem os dados da instrução. Obs: Existem instruções que não tem operando. Ex.: Instrução HALT (PARE). Conjunto de Instruções Quando se projeta um hardware, define-se o seu conjunto ("set") de instruções - o conjunto de instruções elementares que o hardware é capaz de executar. O projeto de um processador é centrado no seu conjunto ("set") de instruções. Funcionalmente, um processador precisa possuir instruções para: operações matemáticas - aritméticas: +, -,,... - lógicas: and, or, xor,... - de complemento; - de deslocamento; operações de movimentação de dados (memória <--> UCP, reg <--> reg) operações de entrada e saida (leitura e escrita em dispositivos de E/S) operações de controle (desvio de seqüência de execução, parada) As estratégias de implementação de processadores são: - CISC - Complex Instruction Set Computer - exemplo: PC, Macintosh; um conjunto de instruções maior e mais complexo, implicando num processador mais complexo, com ciclo de processamento mais lento; ou - RISC - Reduced Instruction Set Computer - exemplo: Power PC, Alpha, Sparc; um conjunto de instruções menor e mais simples, implicando num processador mais simples, com ciclo de processamento rápido. Obs.: o termo instrução pode se utilizado para as instruções de máquina (ou em linguagem Assembly) e o termo comando para linguagens de alto nível. UTFPR Cornélio Procópio 4

Há hoje uma crescente tendência a se utilizar um conjunto de instruções reduzido, de vez que os compiladores tendem a usar em geral apenas uma pequena quantidade de instruções. Há também vantagens na implementação do hardware - maior simplicidade, menor tempo de ciclo de instrução. No projeto de um processador, os principais itens a serem levados em conta são: - Definir o conjunto de instruções (todas as possíveis instruções que o processador poderá executar), definir formato e tamanho das instruções e as definir as operações elementares; - Projetar os componentes do processador (UAL, UC, registradores, barramentos,...); Duas estratégias são possíveis na construção do decodificador de instruções da UC:. wired logic: as instruções são todas implementadas em circuito ou em hardware;. microcódigo: apenas um grupo básico de instruções são implementadas em circuitos; as demais são "montadas" através de microprogramas que usam as instruções básicas. Ciclo de Instrução As instruções são executadas sequencialmente (a não ser pela ocorrência de um desvio no fluxo do programa), uma a uma. O CI (Ciclo de Instrução) indica a seqüência de execução, isto é, o CI controla o fluxo de execução das instruções. A seguir é ilustrado o ciclo de processamento de uma instrução. UTFPR Cornélio Procópio 5

Descrição do processamento de uma instrução na UCP: - a UC lê o endereço da próxima instrução no CI; - a UC transfere o endereço da próxima instrução, através do barramento interno, para o REM; Como exemplo, é descrita a seguir a arquitetura computacional do microprocessador do PIC16F628a, um microcontrolador de modelo básico, projetado pela Microchip Technology (www.microchip.com). Os tipos e número dos principais registradores utilizados, o barramento do sistema e o conjunto de instruções também são descritos. Este microcontrolador possui as seguintes características: - chip de 18 pinos; - somente 35 instruções no seu microcódigo; - aceita sinal de clock de freqüência até 20 MHz; - memória de programa do tipo Flash de 2048 words (1 word = 16 bits); - 224 bytes de memória RAM para dados; - 128 bytes de memória EEPROM para dados; - instruções de 14 bits com 200ns de tempo de execução; - dados de 8 bits por endereço de memória; - 15 registradores especiais; - 16 pinos os quais podem ser configurados como entrada e/ou saída; - outras características especiais como programação in-circuit serial, proteção por código, watchdog timer (temporizador cão de guarda), módulo CCP, comparador interno, USART,... Pinagem do PIC16F628a: UTFPR Cornélio Procópio 6

Os pinos de RA0 à RA7 e de RB0 à RB7 podem ser configurados como entradas ou saídas digitais. A alimentação se dá no pino Vdd, normalmente em 5V com faixa de tolerância de 2 à 6V e o pino Vss é a referência de terra. O pino OSC1/CLKIN é utilizado para sinal de clock poduzido por cristal ou um circuito externo e o pino OSC2/CLKOUT para sinal de clock por cristal (utilizado em conjunto com OSC1/CLKIN). O pino MCLR é uma entrada de sinal de reset em nível baixo (zero). O PIC16F628a é composto pelos subsistemas digitais conforme diagrama de blocos abaixo: UTFPR Cornélio Procópio 7

Arquitetura Harvard O PIC16F628a possui uma arquitetura denominada Harvard para acesso aos dados e às instruções do programa, a qual é caracterizada por utilizar um bus (via de acesso) para comunicação dos dados e outro bus distinto para comunicação com o programa. A maioria dos microcomputadores e microcontroladores no mercado utilizam um único bus, tanto para dados quanto para instruções do programa. Notase a diferença no uso desta arquitetura na visualização da memória do microcontrolador PIC: existe uma memória para o programa e outra para os dados a serem utilizados. A figura a seguir mostra a memória RAM de um microcomputador PC, em comparação à arquitetura do PIC, em que dados e instruções do programa estão na mesma memória, denominada memória principal (geralmente a RAM do computador). As letras abaixo, nas últimas linhas, mostram valores dos registradores especiais que o processador do computador utiliza, como o DS (Data Segment), que indica o endereço inicial dos dados na memória; e o CS (Code Segment), que indica o endereço inicial da memória no qual as instruções do programa corrente se iniciam. A figura abaixo mostra o software MPLab IDE com as janelas de visualização da memória Flash que contém o programa (janela à esquerda) e da memória RAM a qual contém os dados e registradores especiais (janela à direita) do PIC16F628a. Este tipo de arquitetura permite uma velocidade maior no cesso ao programa e aos dados, porém são necessários dois barramentos. UTFPR Cornélio Procópio 8

Instruções RISC Na tabela abaixo observa-se o conjunto de instruções do PIC16F628a, e anotações sobre cada instrução. O número de instruções é limitado, sendo denominado arquitetura RISC - Reduced Instruction Set (Grupo Reduzido de Instruções). O número de instruções é pequeno, porém cada uma é formada por 14 bits, que codificam uma operação e os operandos, ou os dados sujeitos à respectiva operação. A tabela abaixo mostra o microcódigo, com a instrução assembly (mnemônicos) na primeira coluna, os operandos possíveis para a respectiva instrução, sua descrição os bits do registrador de status que são afetados, o número de ciclos do clock que a instrução exige para ser executada e o código em linguagem de máquina. MNEMÔNICOS OPERANDOS DESCRIÇÃO CICLOS DO CLOCK OPCODE DE 14 BITS OPERAÇÕES DE REGISTRADORES ORIENTADAS A BYTE ADDWF f, d Soma o conteúdo do 1 00 0111 dfff ffff registrador W e de f ANDWF f, d Operação lógica E entre 1 00 0101 dfff ffff o conteúdo de W e f CLRF f Limpa o conteúdo de f 1 00 0001 lfff ffff CLRW -f, Limpa o conteúdo do registrador W COMF d Complemento do 1 00 1001 dfff ffff 1 00 0001 0xxx xxxx UTFPR Cornélio Procópio 9

conteúdo de f DECF f, d Decrementa o valor 1 00 0011 dfff ffff armazenado em f DECFSZ f, d Decrementa o valor 1 (2) 00 1011 dfff ffff armazenado em f, pula a próxima instrução se for igual a 0 INCF f, d Incrementa o valor 1 00 1010 dfff ffff armazenado em f INCFSZ f, d Incrementa o valor 1 (2) 00 1111 dfff ffff armazenado em f, pula a próxima instrução se for igual a 0 IORWF f, d Operação lógica OU 1 00 0100 dfff ffff INCLUSIVO do conteúdo do registrador W com o conteúdo de f MOVF f, d Move o conteúdo de f 1 00 1000 dfff ffff para o registrador W MOVWF f Move o conteúdo do registrador W para f 1 00 0000 lfff ffff NOP -f, Sem operação 1 00 0000 0xx0 0000 RLF d Rotaciona os bits 1 00 1101 dfff ffff armazenados em f para a esquerda com Carry RRF f, d Rotaciona os bits 1 00 1100 dfff ffff armazenados em f para a direita com Carry SUBWF f, d Subtração do conteúdo 1 00 0010 dfff ffff em W de f SWAPF f, d Troca o primeiro nibble (4 1 00 1110 dfff ffff bits) com o último nibble armazenados em f XORWF f, d Operação lógica OU EXCLUSIVO do conteúdo de W com o conteúdo de f 1 00 0110 dfff ffff OPERAÇÕES DE REGISTRADORES ORIENTADAS A BIT BCF f, b Muda para 0 o valor do 1 01 00bb bfff ffff bit b de f BSF f, b Muda para 1 o valor do 1 01 01bb bfff ffff UTFPR Cornélio Procópio 10

bit b de f BTFSC f, b Verifica o valor do bit b do registrador f e pula a próxima instrução se for igual a 0 BTFSS f, b Verifica o valor do bit b do registrador f e pula a próxima instrução se for igual a 1 OPERAÇÕES DE CONTROLE E LITERAIS 1 (2) 01 10bb bfff ffff 1 (2) 01 11bb bfff ffff ADDLW k Adiciona um número k 1 11 111x kkkk kkkk ao conteúdo do registrador W ANDLW k Operação lógica E de um número k com W 1 11 1001 kkkk kkkk CALL k Chamada de uma 2 10 0kkk kkkk kkkk subrotina indicada por k CLRWDT Limpa o temporizador cão 1 00 0000 0110 0100 de guarda GOTO k Vai ao endereço dado por k 2 10 1kkk kkkk kkkk IORLW k Operação OU 1 11 1000 kkkk kkkk INCLUSIVO de um número k com W MOVLW k Move um número de valor k para W 1 11 00xx kkkk kkkk RETFIE Retorno de uma 2 00 0000 0000 1001 interrupção RETLW k Retorna com um valor k 2 11 01xx kkkk kkkk no registrador W RETURN Retorno de uma subrotina 2 00 0000 0000 1000 ao programa principal SLEEP Entra no modo standby 1 00 0000 0110 0011 SUBLW k Subtrai o conteúdo do registrador W de um número k 1 11 110x kkkk kkkk XORLW k Operação lógica OU 1 11 1010 kkkk kkkk EXCLUSIVO de um número k com o conteúdo do registrador W UTFPR Cornélio Procópio 11

Obs.: Nos operandos, as letras f, d, b, k indicam: - f: registrador na memória RAM, como o PORTA, TRISB, STATUS, ou uma posição qualquer; - d: direção para a qual pode se designada a função; - b: o número de um bit dentro de um registrador. Para o PIC16F628a, são de 0 a 8, porque os registradores possuem 8 bits; - k: um literal, que envolve letras (ASCII), números no formato decimal, hexadecimal ou binário, até o limite especificado pelo tamanho do registrador. Ports de entrada e saída Os microcontroladores da linha PIC possuem pinos que podem ser configurados como entrada ou saída digital. Cada conjunto de oito destes pinos é denominado Port, geralmente classificado por uma letra do alfabeto (PortA, PortB, PortC,...) Ports de entrada e saída Os microcontroladores da linha PIC possuem pinos que podem ser configurados como entrada ou saída digital. Cada conjunto de oito destes pinos é denominado Port, geralmente classificado por uma letra do alfabeto (PortA, PortB, PortC,...). Para isto, existem implementados na memória RAM do PIC registradores especiais para configurar e ler/modificar o valor destes pinos. No PIC16F628a, dois destes registradores, o TRISA e o TRISB, são responsáveis pela configuração destes pinos para funcionamento como entrada ou saída digital. A abreviatura TRIS para estes registradores provem de tri-state (três estados) porque alguns pinos podem funcionar de três modos diferentes: como entrada digital, saída digital ou outra função específica. Pinos do PortA Pinos do PortA Pinos do PortB Pinos do PortB UTFPR Cornélio Procópio 12

Por exemplo: os pinos RB6 e RB7 do PIC16F628a podem funcionar como entrada digital, saída digital ou terminal de comunicação serial para programar e ler o programa presente na memória do PIC. Outros modelos de microcontroladores da linha PIC possuem pinos que podem funcionar como E/S digital e entrada analógica, ou porta de comunicação de dados,... Como cada registrador em um PIC pode armazenar no máximo oito bits, os registradores TRISA e TRISB podem configurar no máximo oito pinos cada um, com o valor de cada bit nestes registradores correspondendo à configuração de um pino. O PIC16F628a possui 16 pinos de E/S digital, então o registrador TRISB é responsável pela configuração de 8 pinos (RB0 a RB7) e o registrador TRISA por mais 8 (RA0 a RA7), como demonstrado nas tabelas abaixo: TRISA TRISB RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Cada registrador acima configura um pino como entrada digital se o bit respectivo possuir valor 1 ; ou saída digital, se o bit respectivo possuir o valor 0. Os exemplos abaixo mostram os valores que devem estar presentes nos registradores TRISA etrisb dada a respectiva configuração dos pinos: - pinos RA0 a RA7 configurados como entradas digitais e pinos RB0 a RB7 como saídas digitais: TRISA 1 1 1 1 1 1 1 1 TRISB 0 0 0 0 0 0 0 0 - pinos RA0, RA2, RA4 e RA6 como entradas digitais e o restante como saídas: TRISA 0 1 0 1 0 1 0 1 TRISB 0 0 0 0 0 0 0 0 - pino RB4 como saída digital e o restante como entrada: TRISA 1 1 1 1 1 1 1 1 TRISB 1 1 1 0 1 1 1 1 - pinos RB0 e RB7 como entradas digitais e o restante como saídas digitais: UTFPR Cornélio Procópio 13

TRISA 0 0 0 0 0 0 0 0 TRISB 1 1 0 0 0 0 0 0 - pinos de RA0 a RA7 como saídas digitais e o restante como entradas digitais: TRISA 0 0 0 0 0 0 0 0 TRISB 1 1 1 1 1 1 1 1 - pinos RA0, RA1, RA2, RB0, RB1, RB2, RB3 e RB4 como entradas digitais e o restante como saídas: TRISA 0 0 0 0 0 1 1 1 TRISB 0 0 0 1 1 1 1 1 A visualização do valor nos registradores pode ser feita no software MPLAB pela janela da memória RAM ou pela janela dos registradores de funções especiais, que exibe diretamente a denominação dos registradores especiais e seus valores em quatro formatos: decimal, ASCII, hexadecimal e binário. A memória RAM exibe o conteúdo dos registradores especiais localizados na mesma, pelo seu endereço, e das posições de memória restantes. Alguns registradores especiais não se localizam na memória RAM, mas estão implementados no próprio circuito da CPU do microcontrolador PIC, como o Work Register Registrador de Trabalho ou registrador W. O endereços na memória RAM dos registradores TRISA e TRISB são 85H e 86H. Geralmente o inicío da maioria dos programas para o PIC contém instruções para modificar os valores de TRISA e TRISB, ou seja, para configurar quais pinos funcionarão como entrada digital ou saída digital. UTFPR Cornélio Procópio 14

Além dos registradores TRISA e TRISB, existem outros registradores especiais que devem ser utlizados para configurar o funcionamento do PIC. Inicialmente, são os registradores OPTION e INTCON: Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 OPTION /RBPU INTEDG TOCS TOSE PSA PS2 PS1 PS0 /RBPU: como saída Pull-ups internos para os pinos do PORTB 0 = habilita pull-ups internos para os pinos de RB0 a RB7 configurados digital; 1 = pull-ups internos desabilitados. INTEDG: Configura a borda (mudança) que gera a interrupção externa no pino RB0 0 = interrupção ocorre na borda de descida (mudança de "1" para "0"); 1 = interrupção ocorre na borda de subida (mudança de "0" para "1"). UTFPR Cornélio Procópio 15

T0CS: Configuração do incremento para o TMR0 (temporizador 0) 0 = TMR0 incrementado internamente pelo sinal de clock do PIC; 1 = TMR0 incrementado pela mudança do sinal no pino RA4/T0CKI. T0SE: Configuração da borda quando o TMR0 for incrementado pelo sinal no pino RA4 (quando T0CS = 1) 0 = incremento na borda de descida (mudança de "1" para "0") no pino RA4; 1 = incremento na borda de subida (mudança de "0" para "1") no pino RA4. PSA: Aplicação do prescaler 0 = prescaler aplicado ao TMR0; 1 = prescaler aplicado ao WDT (watchdog timer). PS2, PS1 e PS0: Configuração do prescaler: PS2 PS1 PS0 TMR0 WDT 0 0 0 1:2 1:1 0 0 1 1:4 1:2 0 1 0 1:8 1:4 0 1 1 1:16 1:8 1 0 0 1:32 1:16 1 0 1 1:64 1:32 1 1 0 1:128 1:64 1 1 1 1:256 1:128 UTFPR Cornélio Procópio 16