Parte 2 PIC DEFINIÇÃO DEFINIÇÃO DEFINIÇÃO DEFINIÇÃO DEFINIÇÃO

Tamanho: px
Começar a partir da página:

Download "Parte 2 PIC DEFINIÇÃO DEFINIÇÃO DEFINIÇÃO DEFINIÇÃO DEFINIÇÃO"

Transcrição

1 Parte PIC.. MCU S DE BITS. MCU S DE E DE BITS. PICF-/P... ULA MCU Ideal para sistemas embarcados (embedded systems). Possui uma unidade de microprocessamento, como um P. Possui periféricos específicos não encontrados em um P. Diferenças entre P e MCU PIC MCU Possui periféricos não essenciais ao processamento, como: Memória para programa Memória para dados permanentes Memória para dados temporários Oscilador Contador Temporizador Comparador Conversor A/D Conversor série/paralelo e paralelo/série PIC Programmable Interface Controller. Nome oficial: PICmicro. Comercializado pela Microchip Technology Inc.. Lançado em. É um tipo de microcontrolador (MCU). Também fabrica DSC s Digital Singal Controllers Os DSC s da Microchip são chamados de dspic. PWM

2 Características PICF Famílias PIC Harvard Architecture Long Word Instructions Single Word Instructions Single Cycle Instructions Register File Architecture Instruction Pipelining Reduced Instruction Set Orthogonal (Symmetric) Instructions Família PICFXX, PICXXX, PICXX, PICXXX PICXXX, PIC PIC PIC, dspic PIC Arquitetura Harvard Harvard Harvard Modified Harvard MIPS Arquitetura Harvard versus Von-Neumann Arquitetura Harvard versus Von-Neumann Alguns engenheiros consideram a arquitetura Harvard melhor. Alguns engenheiros consideram a arquitetura Von-Neumann melhor. Não há consenso. Ambas arquiteturas são usadas. Diversos outros parâmetros são dependentes desta escolha. 9 p-content/uploads/bb_part_v.png Arquitetura Harvard versus Von-Neumann PICF MCU Arquitetura Harvard versus Von-Neumann Intel File registers Program Data core -bit core data bus data bus Se estamos falando de µp ou CPU, os blocos estão em chips separados. Se estamos falando de MCU, os blocos estão no mesmo chip. data bus

3 Arquitetura Harvard versus Von-Neumann Com o lançamento da memória flash, EEPROM em uma MCU tornou-se sinônimo de data memory e flash de program memory. Antes do lançamento da memória flash, program memory e data memory eram construídas em EEPROM, o que permitia que ambas fossem implementadas em uma única matriz ou célula. Por causa disso, antes do lançamento da flash, a arquitetura Von-Neumann era mais atraente. Com o uso da flash program memory em arquitetura Von- Neumann, uma lógica de endereçamento deve fazer a seleção entre flash e EEPROM; geralmente por meio dos bits mais significativos. Isso torna o uso da arquitetura Harvard mais interessante. Arquitetura Harvard versus Von-Neumann Não é correto afirmar que a diferença entre uma arquitetura e a outra é o fato das duas memórias estarem juntas ou não, pois na arquitetura Von- Neumann as duas memórias podem ser separadas. O correto é afirmar que na arquitetura Von- Neumann as duas memórias tem os seus dados acessados através do mesmo barramento. Na arquitetura Harvard, as memórias são acessadas por meio de barramentos separados. Arquitetura Harvard versus Von-Neumann Não faz sentido falar nestas arquiteturas quando se lida com µp s, pois as duas memórias localizam-se fora do chip. Mesmo assim, estes princípios podem ser aplicados no que diz respeito aos barramentos externos ao chip. Harvard Instrução Instrução Instrução Instrução Instrução Instrução Instrução Arquitetura Harvard versus Von-Neumann Program memory Von-Neumann Instrução Instrução Instrução Instrução Instrução Instrução Instrução Instrução Instrução 9 Exemplo Harvard: MCU PICF. Exemplo Von-Neumann: MCU Intel. PIC Two-Word Instructions Harvard Instrução Instrução Instrução Instrução Instrução Instrução Instrução A maioria das instruções da PIC () usam um único - bit word. Outras instruções da PIC usam dois -bit words. CALL, GOTO e LFSR. Estas instruções são chamadas de Double Word Instructions. Elas requerem duas buscas em dois ciclos de instrução. Arquitetura Harvard PICF O uso da arquitetura Harvard foi um dos grandes atrativos apresentados nas MCU s PIC. O lançamento das MCU s PIC, em, logo após a popularização das memórias flash, em, dá a impressão de que a comercialização das MCU s PIC estava condicionada à popularização das memórias flash. As primeiras MCU s PIC foram lançadas com program memory implementada em EEPROM, em arquitetura Harvard, mesmo já existindo memória flash, porém esses modelo não são mais fabricados. Há outros fabricantes usando a arquitetura Harvard.

4 SFR SFR SFR CORE Arquitetura Harvard PICF Data/Address Control BUS -bit Instruction BUS -bit Address BUS -byte EEPROM DATA MEMORY k-instruction -bit FLASH PROGRAM MEMORY 9 Arquitetura Harvard PICF Data Memory Data Bus PIC CORE -bit Bus -bit Bus A data memory recebe a palavra de dado e a palavra de endereço no mesmo barramento. Dado e endereço não podem ser manipulados ao mesmo tempo. Como o barramento é o mesmo, dado e endereço possuem o mesmo tamanho, bits. A program memory possui barramentos separados para dado e endereço, por isso estas palavras podem ter tamanhos diferentes. -bit Program Memory Arquitetura Harvard PICF Por usar barramentos separados para instrução e endereço, a leitura de uma instrução é feita em um único ciclo de instrução. A flash program memory tem endereçamento separado do endereçamento da EEPROM data memory. O opcode não precisa ter o mesmo tamanho dos dados. Permite a otimização opcode independente do tamanho das palavras de dados, pois este tamanho não precisa ser um múltiplo de oito. Na família mid-range, o dado é de bits e o opcode é de bits. Na família base line, o opcode é de bits. MCU data bus EEPROM data memory address bus h data bus Arquitetura Harvard PICF flash program memory h -bit address bus -bit data bus FFh (Program Bus) FFFh O address bus da EEPROM não é o mesmo da flash. O data bus da EEPROM não é o mesmo da flash. Arquitetura Harvard PICF Arquitetura Harvard PICF MCU data bus MUX EEPROM data memory address bus h data bus control bus FFh MCU data bus EEPROM data memory address bus h data bus control bus FFh A multiplexação não é feita por hardware. O programa assembly realiza a multiplexação. Os barramentos da data memory são registrados. Essa registração permite a multiplexação por software.

5 Arquitetura Von-Neumann MCU Intel MCU Bus Prg/Dt Memory Von-Neumann P Intel A instrução ADCA usa byte (Fh). A instrução ADI usa bytes (Ch, data). A instrução LDA usa bytes (Ah, -bit address). Instrução Instrução Instrução Instrução O endereço e o dado da memória usa o data bus. Endereço e dado são de oito bits. Instrução Instrução Instrução Instrução Instrução 9 Von-Neumann MCU Intel ORL A,@R usa byte (h). ORL A,#data usa bytes (h, data). ORL iram addr,#data usa bytes (h, -bit address). Instrução Instrução Instrução Instrução Instrução Instrução Instrução Instrução Instrução 9 Exemplo fictício para memória única, MCU/ P de bits -bit address bus <A:A> -bit MCU/ P data bus -bit data bus <D:D> Von-Neumann EEPROM h FFFh h FFFh Program Memory <A:A> A= Data Memory <A:A> A= A= A= Von-Neumann Exemplo fictício para memória única, MCU/ P de bits EEPROM h Von-Neumann Exemplo fictício para memórias separadas, MCU/ P de bits flash program memory h -bit address bus -bit flash address bus -bit address bus -bit data bus -bit data bus FFFh h FFFh Opcode e dado de bits. Program Memory de k instruções (). Data Memory de k palavras (). O bit do endereço identifica a memória. 9 -bit data bus -bit EEPROM address bus EEPROM data memory -bit data bus FFFh h FFFh Capacidade e endereçamento iguais ao exemplo anterior.

6 Von-Neumann Exemplo fictício para memórias separadas, MCU/ P de bits CS = /A CS = A /A /A flash program memory EEPROM data memory h FFFh h FFFh Faixa proibida: (A A) + (A A) Modo antigo EEPROM Von-Neumann Não é a PICF Modo moderno Program Memory Data Memory flash program memory EEPROM data memory Antigamente, EEPROM era usada para programa e para dados. Sendo tudo em EEPROM, é possível usar uma única matriz. Atualmente, EEPROM é usada para dados (mais rápida) e flash é usada para programa (mais densa). Sendo tecnologias diferentes, há duas matrizes. Von-Neumann Não é a PICF Os dois modos seguem o mesmo endereçamento. O address bus e o data bus da memória são acessados através do MCU/ P data bus. Program word e data word têm o mesmo tamanho (embora isso não seja obrigatório). Address word pode ser menor do que program/data word. Program address word pode diferir de data address word. Toda informação passa pelo MCU/ P data bus. Dado e endereço são informados em ciclos diferentes. MCU/ P data bus Von-Neumann Não é a PICF MCU/ P data bus MCU/ P data bus Não é arquitetura Long Word Instructions. O tamanho das palavras de programa é o mesmo das palavras de dado. É possível usar uma única matriz. MCU/ P data bus Von-Neumann Não é a PICF MCU/ P data bus Instrução Instrução Instrução Instrução Instrução MCU/ P data bus Von-Neumann Não é a PICF MCU/ P data bus Instrução Instrução Instrução Instrução Instrução MCU/ P data bus Instrução Instrução Instrução Instrução 9 MCU/ P data bus Instrução Instrução Instrução Instrução 9 Não é arquitetura Single Word Instructions. As instruções podem usar uma, duas ou três palavras. Cada palavra usa um endereço. Não é arquitetura Single Cycle Instructions. Cada palavra é lida em um ciclo. Como temos instruções de uma, duas ou três palavras, são usados, então, um, dois ou três ciclos de instrução para a sua leitura.

7 Von-Neumann Endereço dividido Von-Neumann P Intel Geralmente, a capacidade de endereços de memória (programa e dado) exige o uso de palavras de endereço cujo tamanho, em bits, é superior ao das palavras usadas como programa ou dado. Isto requer, então, que a palavra de endereço seja dividida em partes que caibam no barramento. No caso da MCU Intel, o barramento é de oito bits, e o endereço é de bits, havendo a necessidade da divisão em low-byte e high-byte. Se a instrução usa endereço da memória como argumento, são usadas, então, duas palavra de programa para este endereço. MCU/ P data bus -bit address bus data bus O address word possui bits. O data word possui bits. O P data bus possui bits. O address word é dividido em duas palavras de bits (L/H). Cada metade é enviada em um ciclo de instrução. Instrução de literal usa bytes (mnemônico e literal). Instrução de endereço usa bytes (mnemônico e endereço). Von-Neumann Single Word Caso onde program word é maior do que data word. EEPROM data memory -bit flash program memory HIGH LOW -bit address bus Von-Neumann Single Word Caso onde program word é maior do que data word. -bit Address Bus h data bus -bit Address Bus FFFh h Long Word Instructions. Single Word Instructions. Double Cycle Instructions. O opcode é dividido em duas palavras de bits (L/H). Não foi encontrado exemplo para esta arquitetura. 9 Data Bus FFFh O bit do address bus serve para selecionar as duas memórias. Von-Neumann Single Word Caso onde program word é maior do que data word. MCU/ P data bus -bit address bus data bus O address word possui bits. O data word possui bits. O MCU/ P data bus possui bits. O address word é dividido em duas palavras de bits (L/H). Cada metade é enviada em um ciclo de instrução. Von-Neumann O address bus da EEPROM é o mesmo do da flash. O data bus da EEPROM é o mesmo do da flash. Isto significa que o data bus do chip lida com dados e com instruções. Há uma multiplexação temporal para uso do data bus para dados e para instruções. O data bus é multiplexado em: Endereço da instrução na flash. Conteúdo da instrução na flash. Endereço do dado na EEPROM. Conteúdo do dado na EEPROM. Outras funções da ULA.

8 Long Word Instructions PICF Consequência da arquitetura Harvard. O opcode possui tamanho maior do que os dados. Na família PIC mid-range, o dado é de bits e o opcode é de bits. Isto é possível porque as instruções possuem um barramento separado do de dados (consequência da arquitetura Harvard). Isto permite que a instrução contenha todas as informações necessárias, os mnemônicos e os argumentos. No contrário, as demais informações devem ser fornecidas em palavras separadas. É possível implementar long word instructions em arquitetura Von-Neumann desde que o tamanho as instruções seja múltiplo do tamanho dos dados (possível mas não usado). Single Word Instructions PICF Consequência da arquitetura Long Word Instructions. Cada instrução emprega, apenas, um opcode. Cada opcode representa uma instrução, de forma inequívoca. O número de palavras da memória de programa é igual ao valor máximo de instruções graváveis. No contrário, sem Long Word Instructions, os opcodes possuem o tamanho das palavras de dados, e uma instrução pode usar várias palavras. Single Cycle Instructions PICF Consequência da arquitetura Harvard. Single Cycle Instructions: Como as instruções possuem um barramento próprio, todos os bits do opcode são lidos no mesmo ciclo, mesmo se o opcode possui um tamanho maior do que o das palavras de dados. No contrário, se a instrução emprega várias palavras, é gasto um ciclo por palavra. A arquitetura Von-Neumann não permite Single Cycle Instructions. Na arquitetura PIC, se a instrução pode interferir no PC, um ciclo a mais é gasto. Architecture Harvard, Long Word, Single Word e Single Cycle PICF A arquitetura Harvard permite o uso de Long Word Instructions. A arquitetura Long Word Instructions permite o uso de Single Word Instructions e Single Cycle Instructions. Essas quatro características estão relacionadas. A arquitetura Von Neumann permite o uso de Long Word Instructions deste que o tamanho do opcode seja um múltiplo inteiro do tamanho dos dados, e, nesse caso, não se tem Single Word Instructions. Harvard Long Word Instructions Single Word Instructions Single Cycle Instructions Características PICF Reduced Instruction Set (RISC): Poucas instruções são necessárias. RISC é mais indicado em Single Cycle Instructions. Instruction Pipelining: A busca por uma instrução usa um ciclo (T CY ). A execução usa outro T CY. Enquanto uma é executada, a próxima é buscada. Economiza-se um T CY a cada instrução. É usado um instruction register. Orthogonal (Symmetric) Instructions: Todas as instruções são destinadas aos registradores. O work register ou acumulador é um registrador. integrante do core. Register File Architecture PICF Os registradores para funções especiais (SFR s) e os de uso geral (GPR s) são acessados por meio de um único mapeamento, uma única lógica de endereçamento, um único address bus. Na arquitetura PIC, os GPR s podem ser considerados como periféricos, pois não são fundamentais para o funcionamento do chip e poderiam localizar-se em um chip separado. Na arquitetura PIC, os SFR s usados por blocos funcionais periféricos também podem ser considerados como periféricos, pois, uma vez que os periféricos poderiam estar contidos em chips separados, tais registradores estariam em tais chips. Os SFR s para uso do core são considerados como parte

9 Register File Architecture PICF Os GPR s são construído na forma matricial, como toda SRAM. Os SFR s localizam-se em diversas partes do chip, próximos aos blocos funcionai sobre os quais atuam. Todos esses registradores recebem a mesma lógica de endereçamento, por meio do mesmo address bus, isso simplifica a programação. Diferenças entre P e MCU Para P s, recursos são supridos por chip s separados. Geralmente, a programação de um MCU é mais fácil porque o endereçamento dos recursos periféricos é conhecido. Geralmente, a arquitetura de uma MCU é mais complicada do que a de um P com a mesma capacidade de processamento. 9 Famílias PIC Famílias PIC Tamanho da palavra: bits. bits. bits. O tamanho da palavra também retrata o tamanho do data bus. Esse é o máximo valor para GPR s e SFR s. Esse tamanho também define o data memory. RISC/CISC RISC/CISC Funcionalidade é a oferta de recursos na forma de periféricos. À medida em que se aumenta a funcionalidade e a performance dos modelos de MCU, a quantidade de instruções vai aumentando. Quanto menos instruções há, maior é a característica RISC da MCU; quanto mais instruções há, maior é a característica CISC da MCU. Quanto mais funcionalidades e instruções há na arquitetura, maior é o tamanho do opcode. A correlação entre funcionalidade e performance não encontra justificativa no contexto da engenharia elétrica. Esta correlação tem justificativa puramente comercial e financeira. Quando a MCU possui baixa performance, seu custo é baixo, e um aumento na sua funcionalidade provoca um acréscimo relevante em seu custo. Quando a MCU possui alta performance, seu custo é elevado, e um aumento na sua funcionalidade provoca um acréscimo desprezível em seu custo. 9

10 RISC/CISC RISC/CISC RISC: Reduced Instruction Set Computing. CISC: Complex Instruction Set Computing. RISC: Opcodes curtos (poucos bits). CISC: Opcodes longos (muitos bits). RISC: Muitas instruções para realizar tarefas simples. CISC: Poucas instruções para realizar tarefas complexas. As duas arquiteturas geram programas com tamanho similar. As duas arquiteturas geram programas com rapidez similar. Programa em CISC Tamanho médio das instruções Programa em RISC MCU S DE BITS MCU S DE BITS Dados de bits MCU S DE BITS data bus. Dados e instruções em barramentos separados. Esta foi a novidade introduzida pela PIC. Acesso simultâneo aos dois barramentos. Aumento da rapidez de processamento. MCU S DE BITS Exemplos de tipos de memória de programa MCU S DE BITS Arquiteturas EPROM PICCXXX ROM PICCRXXX flash PICFXXX A versão em EPROM não é mais fabricada. A versão em ROM é útil para grande volume com o mesmo programa. O chip sai de fábrica com o programa gravado em ROM gate array. Baseline. Mid-Range. Enhanced Mid-Range. PIC. 9

11 flash k instructions bit address bit words pages MCU S DE BITS Baseline Architecture DATA BUS / EEPROM -bit SRAM MCU S DE BITS Mid-Range Architecture Todos os itens do Baseline. Hardware de comunicação serial MSSP/USART/SPI. Master Synchronous Serial Port. Universal Synchronous Asynchronous Receiver/Transmitter. Protocolos de comunicação serial SPI e I²C. Synchronous Serial Port. Serial Peripheral Interface. Inter-Integrated Circuit. PWM. Controlador LCD (ausente na PICF). Conversor A/D de bits. MCU S DE BITS Mid-Range Architecture MCU S DE BITS Mid-Range Architecture - Core flash flash SRAM k instructions bit address bit words pages -bit DATA BUS () : Ausente na PICF. / EEPROM MCU S DE BITS Mid-Range Architecture General purpose I/O Nem todos os modelos possuem todas as portas, e nem no tamanho apresentado. MCU S DE BITS Mid-Range Architecture - Peripheral Modules Nem todos os modelos possuem todos os itens. Data bus Data bus

12 MCU S DE BITS Mid-Range Architecture - Peripheral Modules Nem todos os modelos possuem todos os itens. MCU S DE BITS Enhanced Mid-Range Architecture Flash program memory*. EEPROM data memory. General purpose registers. Portas paralelas (A, B, C, D, E, F, G). Porta paralela escrava. Portas seriais (SSP e USART). Contadores (,, ). Capture-Compare-PWM (,). Conversor A/D. LCD driver**. Todos os itens do Mid-Range. Periféricos de comunicação. PWM com base de tempo independente. * Não ligado ao data bus. ** Ausente na PICF. flash bit address bit words MCU S DE BITS Enhanced Mid-Range Architecture DATA BUS DATA BUS SRAM MCU S DE BITS PIC Architecture Todos os itens do Enhanced Mid-Range. Multiplicação bit x bit. CAN Controller Area Network CTMU Charge Time Measurement Unit Protocolo de comunicação USB. Protocolo de comunicação Ethernet. Conversor A/D de bits. 9 MCU S DE BITS PIC Architecture MCU S DE BITS MCU s de bits flash DATA BUS SRAM bit address bit words DATA BUS

13 Enhanced Mid-Range Architecture MCU S DE BITS Exemplos de MCU s de bits Mid-RangeArchitecture PICF PICF BaselineArchitecture PICF PICFA PICF9 PICF PICF PICF PICFA PICF PICF PICF PICF PICF9 PICF PICF PICF PICF PICF PICF PICF PICF PICF PICF PICF PICF PICF PICF PICF PICF PICF PICF9 PICFA PICF PICF PICFA PICF PICF9 PICF PICF PICF9T9A PICF PICF PICF PICFA PICF PICF9 PICF PICF PICFA PICF PICF PICF PICF PICF PICF PICF PICF PICF PICF PICF PICF PICF9 PICF PICF PICF PICF PICF9 PICF9 PICF9 PICF9 PICF9 PICF PICF9 PICF PICF9 PICF PICHV PICF PICHV/ PICF PICF PICF PICLFTA PICF PICF PICF PICF9 PICF PICF PICF PICF9 PICF PICF PICF PICF PICF PICF9 PICF PICF PICF PICF PICF PICF PICF PICF PICF PICF PICF PICF PICF PICF9 PICF PICF9 PICF9 PICF9 PICF9 PICF9 PICF99 PICF9 PICF9 PICLF9 PICLF9 PICLF9 PICLF9 PICLF9 MCU S DE BITS PICFK PICF PICF PICFJ9 PICF9 PICF9J PICF PICFJ PICFJ PICFJ PICF PICF PICF9 PICF PICFK PICFJ PICFJ PICF PICF PICF PICF PICFK PICF PICFJ PICFJ9 PICFJ PICF PICF PICFJ PICFJ PICFJ9 PICFJ PICFK PICF PICF PICFK PICFJ9 PICFJ PICFJ PICF PICF PICF PICFK PICFJ PICFJ PICFK9 PICF PICF PICF PICFK PICFJ PICF PICFJ PICF9 PICF PICF PICFK PICF PICFK PICFJ PICF PICF PICF PICFJ PICFJ PICFJ PICFK9 PICFJ PICF PICFK PICFJ9 PICFJ PICFJ9 PICFJ PICFJ PICFK PICF PICFJ9 PICFJ PICFK9 PICF PICFJ PICFJ PICFK PICF PICF PICF PICFK PICFJ PICFJ PICFJ9 PICF PICF PICFK PICFJ PICFJ9 PICF PICF PICFJ PICFK PICFJ PICF PICF9 PICF9 PICF PICFK PICFJ PICF PICFK PICF PICF PICFK PICFK PICFJ PICF PICFJ PICF PICFJ PICF PICFK9 PICFJ PICF PICF PICFK PICF PICFJ PICFK PICF PICF PICFJ PICFJ9 PICFJ PICFJ PICF9 PICF PIC Architecture PICFK PICFK PICFJ PICFJ9 PICF PICF PICFJ PICFJ PICFJ PICFK PICF9J PICF PICFK PICFK PICFJ PICF9 PICFJ PICF PICFJ PICFJ PICFJ9 PICF PICF PICF PICFJ PICFJ PICF9 PICF PICF PICF PICFJ PICFJ PICFK PICFJ PICF PICF PICFJ PICF PICFJ PICF PICF PICF PICFK PICF PICFJ PICFK9 PICF PICF PICFK PICFJ9 PICFK PICFJ PICF9J PICF PICFK PICFJ PICFK PICFK9 PICF PICF PICFJ PICFJ PICFJ PICFJ9 PICF PICF MCU S DE BITS Exemplos de MCU s de bits MCU S DE BITS Comparação das arquiteturas Dificilmente todos os periféricos disponíveis em uma família são úteis em uma mesma aplicação. A fim de proporcionar redução de custo, oferecem-se modelos com menos periféricos. Escolhe-se o modelo que possua apenas os periféricos necessários no projeto. Há mais modelos disponíveis para PIC porque esta família apresenta maior oferta de periféricos, formando uma maior quantidade de combinações. Baseline Mid-Range Enhanced Mid-Range PIC Pinos a a a a Instruções, tamanho -bit -bit -bit -bit Instruções, quantidade 9 instruções Flash Program Memory, Até k Até k Até k Até k tamanho Flash Program Memory, Até kb Até kb Até kb Até kb SRAM file register Até Bytes Até Bytes Até, KB Até KB File SRAM (bytes) MCU S DE BITS Comparação das arquiteturas Baseline Mid-Range Enhanced Mid-Range PIC Instrução (bits) Flash Program Memory Capacidade (k word) Flash Programm Memory Tamanho (kb),,,,,,,,,,,,,,,,, a a a a 9 Vide exemplos 9 MCU S DE E DE BITS MCU S DE E DE BITS

14 MCU S DE E DE BITS MCU S DE E DE BITS MCU s de bits MCU s de bits Dentro da mesma arquitetura: O aumento da performance por meio do aumento da frequência de operação leva ao aumento do consumo de energia elétrica. A redução da performance por meio da diminuição da frequência de operação leva à redução do consumo de energia elétrica. Alta performance é desejável quando muita informação é processada e fornecimento de energia elétrica não é problema. Economia no consumo de energia elétrica é desejável em sistemas alimentados por baterias. 9 MCU S DE E DE BITS MCU S DE E DE BITS MCU s de bits MCU s de bits PICH/E e dspicf/e: Alta performance. PICF e dspicf: Baixo consumo. MCU S DE E DE BITS MCU S DE E DE BITS MCU s de bits MCU s de bits

15 PICF-/P PICF-/P Apresentação PICF-/P É o modelo encontrado no laboratório. Atualmente substituído pelo PICF. MCU de bits. Mid-Range Architecture. instruções. ns para executar uma instrução (mínimo). ou pinos. bytes de memória de dados em EEPROM. Conversor A/D de bits. Temporizadores adicionais ao Baseline. PWM s (ou captura ou comparação). PICF-/P PICF-/P Chip PIC Chip PIC PICF-/P PICF-/P Chip PIC Kit didático 9 9

16 Core PICF-/P Pinagem (DIP) PICF-/P PICF-/P 9 Parameter Name Value Flash Program Memory -bit words Flash Program Memory k words File SRAM (GPR s) bytes Data EEPROM bytes Instructions CPU Speed (MIPS) Interrupts I/O ports A,B,C,D,E Digital Communication Peripherals -USART,-MSSP(SPI/IC) Capture/Compare/PWM Peripherals CCP Timers x, x -bit ADC channels, -bit Temperature Range (C) - to Operating Voltage Range (V) to. Pin Count 9 PICF-/P Core Core (núcleo): A parte principal do chip. Contém os blocos funcionais que são utilizados para qualquer tipo de aplicação da MCU. Envolve tudo o que não é periférico. Não é possível operar a MCU sem o uso do core. Um P é uma MCU sem os periféricos. Alguns periféricos são desligados no modo power down. Alguns periféricos podem solicitar interrupções. Todos os periféricos são registrados. PICF-/P Core Na arquitetura Von-Neumann, a program memory é acessada através do data bus, caracterizando-a como um periférico. Como qualquer periférico, a program memory pode localizar-se fora do chip, como acontece com o P s, e, por isso, não faz parte do core. Na arquitetura Harvard, a program memory não está conectada ao data bus do chip, o que não condiz com o conceito de um periférico. A program memory Harvard é um periférico especial. 9 9 PICF-/P PICF-/P Memórias internas Periférico Data bus Tipo Nome Tamanho flash Program memory k bits SRAM File registers bits bits EEPROM Data memory Na SRAM, fazem parte do core somente os SFR s associados ao core. 9 9

17 Memórias internas Memórias especiais Periféricos PICF-/P PICF-/P 9 9 PICF-/P EEPROM PICF-/P Mais rápida do que a flash. Suporta mais ciclos de gravação do que a flash. Mais lenta do que a SRAM. Não indicada para dados temporários. bytes. Usada para dados lidos frequentemente. Usada para dados que não podem ser voláteis. A gravação da EEPROM não afeta a execução. Todos periféricos estão ligados ao data bus exceto a PM na arquitetura Harvard. 99 Timer,, SFR PORT A,B,C,D,E SFR SFR PICF-/P Periféricos Todas as instruções são destinadas aos registradores. A/D SFR CCP, SFR Flash Instruction register SFR n-bit PSP SFR PICF-/P Periféricos Todos os periféricos são ligados ao data bus. Existe um SFR entre o módulo periférico e o data bus. Isto permite que o data bus seja liberado para outras funções. Os SFR s envolvidos possuem tamanhos diversos. Quando o tamanho é superior a bits, são usados dois SFR s. Os SFR s associados a periféricos podem ser de: Dado Endereço Controle Data Bus * Flash usada como data memory.

18 PICF-/P Periféricos Periférico SFR dado SFR endereço SFR controle Data Bus Os SFR s associados a periféricos são, na verdade, parte integrante do próprio periférico. Memórias estáticas Todos os registradores paralelos da PIC são memórias estáticas. As principais memórias estáticas formam o file registers. Outras memórias estáticas são a pilha, o instruction register, o work register, etc. A região do file registers de uso geral é uma SRAM. A pilha não é uma SRAM porque seu acesso não é aleatório. O instruction register, por ser uma fila, ainda que de uma única posição, também não é uma SRAM. Endereçamento -bit Os bits de endereçamento faltantes serão vistos mais adiante. Aqui, foi mostrado, o tipo de endereçamento direto da SRAM. -bit Trata-se das instruções que lidam com file (F ou WF). SUBWF DECF IORWF ANDWF XORWF ADDWF MOVF COMF INCF DECFSZ RRF RLF SWAPF INCFSZ MOVWF CLRF BCF BSF BTFSC BTFSS GPR s General Purpose Registers SFR s Special Function Registers Registradores de uso geral. Iniciam com valor zero. Formam uma SRAM. Possuem disposição matricial. Esta SRAM é um periférico. registradores de bits. O data-sheet chama essa SRAM de file registers; chamaremos, porém, de file registers os GPR s e os SFR s, pois, em algumas páginas, o data-sheet assume essa conotação. Registradores de uso específico. Não formam uma SRAM por não ser matricial. Possuem localizações diversas no die. Alguns bits iniciam em zero, outros em um. Os SFR s associados a periféricos são periféricos. Os SFR s associados a periféricos são parte integrante do próprio periférico. Os SFR s associados ao core fazem parte do core.

19 9 GPR s e SFR s GPR s e SFR s Register File Architecture Os GPR s são construído na forma matricial, como toda SRAM. Os SFR s localizam-se em diversas partes do chip, próximos aos blocos funcionai sobre os quais atuam. Todos esses registradores recebem a mesma lógica de endereçamento, por meio do mesmo address bus (register file architecture). 9-bit Address Bus Data Bus File Registers SFR s 9-bit Address Bus Data Bus File Registers GPR s 9 GPR s: Matriz gate array. SFR s: Registradores espalhados. GPR s e SFR s Register File Architecture SUBWF DECF IORWF ANDWF XORWF ADDWF 9-bit Address Bus Lógica de seleção Data Bus SFR s GPR s MOVF COMF INCF DECFSZ RRF RLF SWAPF INCFSZ MOVWF CLRF BCF BSF BTFSC BTFSS Divisões São quatro bancos de file registers. Cada banco contém bytes ( bits de endereço) <:>. No opcode, o endereço do registrador é de bits. São, ao todo, endereços (9 bits de endereço) <:>. Quase todas as posições endereçáveis podem ser alteradas pelo usuário. Alguns bits não podem ser alterados diretamente, somente através do uso dos recursos do chip. Bancos Incluindo registradores sem banco Bancos Incluindo registradores sem banco Banco : h a Fh Banco : h a FFh Banco : h a Fh Banco : h a FFh Banco : d a d Banco : d a d Banco : d a d Banco : d a d Banco : b a b Banco : b a b Banco : b a b Banco : b a b É mais fácil memorizar os números na forma hexadecimal. Estes valores representam as faixas de endereços cobertas por cada bando. Na verdade, os bancos são um pouco menores como será mostrado mais adiante. Os dois bits mais significativos determinam o banco. O endereço completo utiliza três nibbles. O endereço no opcode utiliza dois nibbles.

20 Bancos Divisões Incluindo registradores sem banco Bancos Banco h b Banco h b Banco h b Banco h b Memory banking. A divisão em bancos é feita para que o endereçamento dos registradores feito nas instruções se dê por meio de bits, e não 9 bits. A necessidade desta redução se deve ao fato de que tal endereço deve caber nos bits de instrução. Usando bits para endereço, sobram bits para os demais parâmetros da instrução. Fh b FFh b Fh b FFh b INDF h INDF h INDF h INDF h TMR h OPTION_REG h TMR h OPTION_REG h PCL h PCL h PCL h PCL h STATUS h STATUS h STATUS h STATUS h FSR h FSR h FSR h FSR h PORTA h TRISA h h h PORTB h TRISB h PORTB h TRISB h PORTC h TRISC h h h PORTD h TRISD h h h PORTE 9h TRISE 9h 9h 9h PCLATH Ah PCLATH Ah PCLATH Ah PCLATH Ah INTCON Bh INTCON Bh INTCON Bh INTCON Bh PIR Ch PIE Ch EEDATA Ch EECON Ch PIR Dh PIE Dh EEADR Dh EECON Dh TMRL Eh PCON Eh EEDATH Eh Eh TMRH Fh Fh EEADRH Fh Fh TCON h 9h h 9h TMR h SSPCON 9h TCON h PR 9h SSPBUF h SSPADD 9h SSPCON h SSPSTAT 9h CCPRL h 9h CCPRH h 9h CCPCON h 9h RCSTA h TXSTA 9h GPR s GPR s TXREG 9h SPBRG 99h RCREG Ah 9Ah CCPRL Bh 9Bh CCPRH Ch 9Ch CCPCON Dh 9Dh ADRESH Eh ADRESL 9Eh ADCON Fh ADCON 9Fh h Ah GPR s GPR s Fh EFh Fh EFh h Fh h Fh GPR s GPR s GPR s GPR s Fh FFh Fh FFh GPR s Sem banco: bytes. Banco : bytes. Banco : bytes. Banco : 9 bytes. Banco : 9 bytes. Total: bytes (9-bit address bus). GPR s É mais fácil memorizar os números na forma hexadecimal Sem banco: h a Fh Banco : h a Fh Banco : Ah a EFh Banco : h a Fh Banco : 9h a EFh Sem banco: d a d Banco : d a d Banco : d a 9d Banco d a d Banco : d a 9d 9 GPR s Endereço real de 9 bits Sem banco: h a Fh Banco : h a Fh Banco : Ah a EFh Banco : h a Fh Banco : 9h a EFh Valor usado em endereçamento direto ( bits) Sem banco: h a Fh Banco : h a Fh Banco : h a Fh Banco : h a Fh Banco : h a Fh Remoção dos dois bits mais significativos.

21 GPR s endereçáveis por 9 bits Registradores com banco GPR s endereçáveis por bits Registradores sem banco GPR s endereçáveis por 9 bits Registradores com banco Banco : h a Fh Banco : Ah a EFh Banco : h a Fh Banco : 9h a EFh Banco : bytes. Banco : bytes. Banco : 9 bytes. Banco : 9 bytes. Total: bytes. INDF h INDF h INDF h INDF h TMR h OPTION_REG h TMR h OPTION_REG h PCL h PCL h PCL h PCL h STATUS h STATUS h STATUS h STATUS h FSR h FSR h FSR h FSR h PORTA h TRISA h h h PORTB h TRISB h PORTB h TRISB h PORTC h TRISC h h h PORTD h TRISD h h h PORTE 9h TRISE 9h 9h 9h PCLATH Ah PCLATH Ah PCLATH Ah PCLATH Ah INTCON Bh INTCON Bh INTCON Bh INTCON Bh PIR Ch PIE Ch EEDATA Ch EECON Ch PIR Dh PIE Dh EEADR Dh EECON Dh TMRL Eh PCON Eh EEDATH Eh Eh TMRH Fh Fh EEADRH Fh Fh TCON h 9h h 9h TMR h SSPCON 9h TCON h PR 9h SSPBUF h SSPADD 9h SSPCON h SSPSTAT 9h CCPRL h 9h CCPRH h 9h CCPCON h 9h RCSTA h TXSTA 9h GPR s GPR s TXREG 9h SPBRG 99h RCREG Ah 9Ah CCPRL Bh 9Bh CCPRH Ch 9Ch CCPCON Dh 9Dh ADRESH Eh ADRESL 9Eh ADCON Fh ADCON 9Fh h Ah GPR s GPR s Fh EFh Fh EFh h Fh h Fh GPR s GPR s GPR s GPR s Fh FFh Fh FFh h h h h h GPR s endereçáveis por 9 bits Banco Banco Ah Ah Ah Ah Ah Registradores com banco Banco Banco h h h h 9h 9h 9h 9h Entrada codificada A A 9-bit Address Bus A A9 GPR s endereçáveis por 9 bits Registradores com banco DEC Saída decodificada O O O O h -bit Address Bus A A Enable Enable Enable Enable h Bh Ch Dh Eh Fh EBh ECh EDh EEh EFh Bh Ch Dh Eh Fh EBh ECh EDh EEh EFh Fh Fh GPR s endereçáveis por bits Banco : h a Fh Banco : Fh a FFh Banco : h a Fh Banco : Fh a FFh Registradores sem banco Banco : bytes. Banco : bytes. Banco : bytes. Banco : bytes. Total: bytes. Estes registradores estão disponíveis em qualquer seleção de bancos. Estes registradores não possuem bancos, seu endereço possui bits em um barramento de 9 bits. Os bits identificadores do banco são irrelevantes. INDF h INDF h INDF h INDF h TMR h OPTION_REG h TMR h OPTION_REG h PCL h PCL h PCL h PCL h STATUS h STATUS h STATUS h STATUS h FSR h FSR h FSR h FSR h PORTA h TRISA h h h PORTB h TRISB h PORTB h TRISB h PORTC h TRISC h h h PORTD h TRISD h h h PORTE 9h TRISE 9h 9h 9h PCLATH Ah PCLATH Ah PCLATH Ah PCLATH Ah INTCON Bh INTCON Bh INTCON Bh INTCON Bh PIR Ch PIE Ch EEDATA Ch EECON Ch PIR Dh PIE Dh EEADR Dh EECON Dh TMRL Eh PCON Eh EEDATH Eh Eh TMRH Fh Fh EEADRH Fh Fh TCON h 9h h 9h TMR h SSPCON 9h TCON h PR 9h SSPBUF h SSPADD 9h SSPCON h SSPSTAT 9h CCPRL h 9h CCPRH h 9h CCPCON h 9h RCSTA h TXSTA 9h GPR s GPR s TXREG 9h SPBRG 99h RCREG Ah 9Ah CCPRL Bh 9Bh CCPRH Ch 9Ch CCPCON Dh 9Dh ADRESH Eh ADRESL 9Eh ADCON Fh ADCON 9Fh h Ah GPR s GPR s Fh EFh Fh EFh h Fh h Fh GPR s GPR s GPR s GPR s Fh FFh Fh FFh

22 Banco h b Fh b GPR s - Divisões Banco h b EFh b Banco h b Fh b Sem banco h XXb Banco h b EFh b GPR s endereçáveis por bits Registradores sem banco Os GPR s de 9 bits de endereço são a maioria e requerem determinação do banco. Os GPR s de bits de endereço não dependem da seleção do banco. Os GPR s de bits de endereço são úteis quando se deseja que a mesma palavra de dado esteja disponível em todos os bancos, dispensando a seleção de banco. Não se trata de quatro cópias, mas de um único registrador. Fh XXb GPR s endereçáveis por bits Registradores sem banco GPR s endereçáveis por bits Registradores sem banco bits de endereço: h a Fh XXh a XXh endereços X X Identificação do endereçamento indireto 9 SRAM Address Bus Bit Bit Bit Bit Bit Bit Bit Bit Bit Se Bit AND Bit AND Bit =, então Bit e Bit são ignorados. : 9 bits : bits A A GPR s endereçáveis por bits Registradores sem banco DEC h -bit Address Bus A A Fh Enable -bit Address Bus A A Enable h Fh Enable Enable Enable h Fh Endereçamento de GPR no programa Para o programador, usando endereçamento direto, o endereço tem sempre bits, quer o endereço completo seja de bits, quer seja de 9. Para os bancos e, a faixa de endereços é menor do que nos bancos e. Bancos e : h a Fh h a h endereços Bancos e : h a Fh h a h 9 endereços

23 SFR s essenciais (core) SFR s Special Function Registers Registradores de uso específico contidos no file registers. Não constituem uma SRAM porque não formam uma matriz. Sua localização física não é agrupada, como em uma RAM. A maioria dos SFR s são registradores de bits. Alguns SFR s possuem menos bits. Alguns endereços não são usados. Alguns endereços são inacessíveis ao programador. Alguns endereços não aceitam escrita. Alguns endereços acessam palavras de menos bits. Alguns endereços realizam ações na MCU, não são registradores. SFR s Embora seja possível gravar em muitas posições de memória usadas pelos SFR s, não se deve fazê-lo quando da gravação de dados do usuário, sob risco de alterar o comportamento do microcontrolador ou de ter o dado armazenado perdido por causa da posterior automática gravação do SFR após a execução de uma operação. A gravação nestas posições deve ser feita quando o intuito é o de, conscientemente, alterar algum SFR específico usado internamente pelo microcontrolador. SFR s Endereços múltiplos foram omitidos. h INDF Bh CCPRL h TMR Ch CCPRH h PCL Dh CCPCON h STATUS Eh ADRESH h FSR Fh ADCON h PORTA h OPTION_REG h PORTB h TRISA h PORTC h TRISB h PORTD h TRISC 9h PORTE h TRISD Ah PCLATH 9h TRISE Bh INTCON Ch PIE Ch PIR Dh PIE Dh PIR Eh PCON Eh TMRL 9h SSPCON Fh TMRH 9h PR h TCON 9h SSPADD h TMR 9h SSPSTAT h TCON 9h TXSTA h SSPBUF 99h SPBRG h SSPCON 9Eh ADRESL h CCPRL 9Fh ADCON h CCPRH Ch EEDATA h CCPCON Dh EEADR h RCSTA Eh EEDATH 9h TXREG Fh EEADRH Ah RCREG Ch EECON Dh EECON INDF h INDF h INDF h INDF h TMR h OPTION_REG h TMR h OPTION_REG h PCL h PCL h PCL h PCL h STATUS h STATUS h STATUS h STATUS h FSR h FSR h FSR h FSR h PORTA h TRISA h h h PORTB h TRISB h PORTB h TRISB h PORTC h TRISC h h h PORTD h TRISD h h h PORTE 9h TRISE 9h 9h 9h PCLATH Ah PCLATH Ah PCLATH Ah PCLATH Ah INTCON Bh INTCON Bh INTCON Bh INTCON Bh PIR Ch PIE Ch EEDATA Ch EECON Ch PIR Dh PIE Dh EEADR Dh EECON Dh TMRL Eh PCON Eh EEDATH Eh Eh TMRH Fh Fh EEADRH Fh Fh TCON h 9h h 9h TMR h SSPCON 9h TCON h PR 9h SSPBUF h SSPADD 9h SSPCON h SSPSTAT 9h CCPRL h 9h CCPRH h 9h CCPCON h 9h RCSTA h TXSTA 9h GPR s GPR s TXREG 9h SPBRG 99h RCREG Ah 9Ah CCPRL Bh 9Bh CCPRH Ch 9Ch CCPCON Dh 9Dh ADRESH Eh ADRESL 9Eh ADCON Fh ADCON 9Fh h Ah GPR s GPR s Fh EFh Fh EFh h Fh h Fh GPR s GPR s GPR s GPR s Fh FFh Fh FFh SFR s essenciais (core) Endereços múltiplos foram omitidos. INDF Indirect file addressing TMR Timer PCL Program counter low byte STATUS Status FSR File select register A PCLATH Program conuter latch B INTCON Interrupt control C PIR Peripheral interrupt register D PIR Peripheral interrupt register OPTION_REG Option C PIE Peripheral interrupt enable D PIE Peripheral interrupt enable E PCON Power control h h h h h h h h h 9h Ah Bh Ch Dh Eh Fh h h h h h h h h h 9h Ah INDF TMR PCL STATUS FSR PORTA PORTB PORTC PORTD PORTE PCLATH INTCON PIR PIR TMRL TMRH TCON TMR TCON SSPBUF SSPCON CCPRL CCPRH CCPCON RCSTA TXREG RCREG Bh Ch Dh Eh Fh h h h h h 9h Ch Dh Eh 9h 9h 9h 9h 9h 99h 9Eh 9Fh Ch Dh Eh Fh Ch Dh CCPRL CCPRH CCPCON ADRESH ADCON OPTION_REG TRISA TRISB TRISC TRISD TRISE PIE PIE PCON SSPCON PR SSPADD SSPSTAT TXSTA SPBRG ADRESL ADCON EEDATA EEADR EEDATH EEADRH EECON EECON SFR s não essenciais (periféricos) PORTA PORTB PORTC PORTD 9 PORTE E TMRL F TMRH TCON TMR TCON SSPBUF SSPCON CCPRL CCPRH CCPCON RCSTA 9 TXREG A RCREG B CCPRL C CCPRH D CCPCON E ADRESH F ADCON TRISA TRISB TRISC TRISD 9 TRISE 9 SSPCON 9 PR 9 SSPADD 9 SSPSTAT 9 TXSTA 99 SPBRG 9E ADRESL 9F ADCON C EEDATA D EEADR E EEDATH F EEADRH C EECON D EECON

24 SFR s endereçáveis por bits Registradores sem banco SFR s não essenciais (periféricos) SFR s não essenciais de bits PORT PORTA PORTB PORTC PORTD 9 PORTE TRISA TRISB TRISC TRISD 9 TRISE Timer h TMR h OPTION_REG Timer E TMRL F TMRH TCON Timer TMR TCON 9 PR A/D conv E ADRESH F ADCON 9E ADRESL 9F ADCON CCP, CCPRL CCPRH CCPCON B CCPRL C CCPRH D CCPCON Data mem C EEDATA D EEADR E EEDATH F EEADRH C EECON D EECON SSP SSPBUF SSPCON 9 SSPCON 9 SSPADD 9 SSPSTAT USART RCSTA 9 TXREG A RCREG 9 TXSTA 99 SPBRG E TMRL TMR F TMRH CCPRL CCPR CCPRH B CCPRL CCPR C CCPRH 9E ADRESL ADRES E ADRESH C EEDATA EEDATA E EEDATH D EEADR EEADR F EEADRH 9 SFR s Alguns SFR s estão disponíveis em dois bancos. Alguns SFR s estão disponíveis em quatro bancos. A presença de cópias é feita para agilizar o acesso aos SFR s, dispensando o procedimento de troca de bancos. Somente os SFR s mais importantes possuem cópias. Sempre que um SFR s possui dois ou quatro endereços, todos endereços possuem sempre a mesma informação. A presença de SFR s com dois ou quatro endereços contraria a ideia de que um endereçamento correto requer que a relação entre endereço e posição física seja biunívoca. SFR s Não há cópias, o registrador é um só, mas os endereços de 9 bits são vários. O endereço é um só, porém com menos bits; um ou dois bits (mais significativos) do endereço de 9 bits são irrelevantes. Isso acontece com os SFR s mais importantes, que são mais usados, onde é indicado isentar a necessidade do procedimento de troca de bancos. INDF h INDF h INDF h INDF h TMR h OPTION_REG h TMR h OPTION_REG h PCL h PCL h PCL h PCL h STATUS h STATUS h STATUS h STATUS h FSR h FSR h FSR h FSR h PORTA h TRISA h h h PORTB h TRISB h PORTB h TRISB h PORTC h TRISC h h h PORTD h TRISD h h h PORTE 9h TRISE 9h 9h 9h PCLATH Ah PCLATH Ah PCLATH Ah PCLATH Ah INTCON Bh INTCON Bh INTCON Bh INTCON Bh PIR Ch PIE Ch EEDATA Ch EECON Ch PIR Dh PIE Dh EEADR Dh EECON Dh TMRL Eh PCON Eh EEDATH Eh Eh TMRH Fh Fh EEADRH Fh Fh TCON h 9h h 9h TMR h SSPCON 9h TCON h PR 9h SSPBUF h SSPADD 9h SSPCON h SSPSTAT 9h CCPRL h 9h CCPRH h 9h CCPCON h 9h RCSTA h TXSTA 9h GPR s GPR s TXREG 9h SPBRG 99h RCREG Ah 9Ah CCPRL Bh 9Bh CCPRH Ch 9Ch CCPCON Dh 9Dh ADRESH Eh ADRESL 9Eh ADCON Fh ADCON 9Fh h Ah GPR s GPR s Fh EFh Fh EFh h Fh h Fh GPR s GPR s GPR s GPR s Fh FFh Fh FFh SFR s endereçáveis por bits Registradores sem banco INDF XXb h PCL XXb h STATUS XXb h FSR XXb h PCLATH XXb Ah INTCON XXb Bh Estes registradores estão disponíveis em qualquer seleção de bancos. Estes registradores não possuem bancos, seu endereço possui bits em um barramento de 9 bits. Os bits identificadores do banco são irrelevantes.

25 SFR s endereçáveis por bits INDF h INDF h INDF h INDF h TMR h OPTION_REG h TMR h OPTION_REG h PCL h PCL h PCL h PCL h STATUS h STATUS h STATUS h STATUS h FSR h FSR h FSR h FSR h PORTA h TRISA h h h PORTB h TRISB h PORTB h TRISB h PORTC h TRISC h h h PORTD h TRISD h h h PORTE 9h TRISE 9h 9h 9h PCLATH Ah PCLATH Ah PCLATH Ah PCLATH Ah INTCON Bh INTCON Bh INTCON Bh INTCON Bh PIR Ch PIE Ch EEDATA Ch EECON Ch PIR Dh PIE Dh EEADR Dh EECON Dh TMRL Eh PCON Eh EEDATH Eh Eh TMRH Fh Fh EEADRH Fh Fh TCON h 9h h 9h TMR h SSPCON 9h TCON h PR 9h SSPBUF h SSPADD 9h SSPCON h SSPSTAT 9h CCPRL h 9h CCPRH h 9h CCPCON h 9h RCSTA h TXSTA 9h GPR s GPR s TXREG 9h SPBRG 99h RCREG Ah 9Ah CCPRL Bh 9Bh CCPRH Ch 9Ch CCPCON Dh 9Dh ADRESH Eh ADRESL 9Eh ADCON Fh ADCON 9Fh h Ah GPR s GPR s Fh EFh Fh EFh h Fh h Fh GPR s GPR s GPR s GPR s Fh FFh Fh FFh SFR s endereçáveis por bits TMR Xb h PORTB Xb h OPTION_REG Xb h TRISB Xb h Registradores virtuais Alguns SFR s não são físicos. Not a physical register. Ao tentar acessar o file registers neste endereço, algum demultiplexador levará o data bus para outro local do chip e não para o file registers. Este mecanismo simplifica o processo de criação de códigos de programa, tornando o endereçamento mais simples. Na PICF há dois casos: INDF e EECON. O agrupamento de todos os SFR s juntamente com os GPR s como se fossem uma única memória torna o acesso mais fácil pelo programador (Register File Architecture). Um decodificador específico realiza a conversão do endereço de 9 bits para a seleção de cada posição do file registers. Address Bus SFR s Lógica de seleção SFR s Data Bus GPR s SFR s SFR s Muitos SFR s possuem menos de bits. Em muitos desses casos, os bits ausentes referem-se a periféricos ausentes no modelo de MCU em questão. Consultando o PICmicro Mid-Range MCU Family Reference Manual é possível verificar quais são os SFR s ou os bits não usados no SFR da PIC usada. Address Bus Data Bus SFR de bits (padrão). SFR de palavra menor do de bits. SFR com bit faltando. SFR não físico (virtual). SFR de mais de bits. 9

26 SFR s não usados Endereços não usados O data sheet recomenda o não uso dos endereços de SFR s não usados. Eles pertencem a funções integrantes na arquitetura mid-range mas que não estão presentes no modelo apresentado. Apesar destas funções não terem sido implementadas, pode ser que a ULA realize alterações nestes registradores, tornando-os não confiáveis para uso como GPR. SFR s Os endereços não usados em meio aos SFR s se deve a endereços usados em outros modelos de PIC da mesma família (mid-range architecture). Tratam-se de endereços de SFR s para periféricos ausentes no modelo aqui estudado. A fim de simplificar a migração de programas feitos para um modelo para outro, da mesma família, o mapeamento dos SFR s foi feito considerando todos os registradores usados na família. Quando um periférico não faz parte de um determinado modelo, SFR s relacionados também estão ausentes, tornando inválido o seu endereço. O fabricante não recomenda o uso destes endereços. INDF h INDF h INDF h INDF h TMR h OPTION_REG h TMR h OPTION_REG h PCL h PCL h PCL h PCL h STATUS h STATUS h STATUS h STATUS h FSR h FSR h FSR h FSR h PORTA h TRISA h h h PORTB h TRISB h PORTB h TRISB h PORTC h TRISC h h h PORTD h TRISD h h h PORTE 9h TRISE 9h 9h 9h PCLATH Ah PCLATH Ah PCLATH Ah PCLATH Ah INTCON Bh INTCON Bh INTCON Bh INTCON Bh PIR Ch PIE Ch EEDATA Ch EECON Ch PIR Dh PIE Dh EEADR Dh EECON Dh TMRL Eh PCON Eh EEDATH Eh Eh TMRH Fh Fh EEADRH Fh Fh TCON h 9h h 9h TMR h SSPCON 9h TCON h PR 9h SSPBUF h SSPADD 9h SSPCON h SSPSTAT 9h CCPRL h 9h CCPRH h 9h CCPCON h 9h RCSTA h TXSTA 9h GPR s GPR s TXREG 9h SPBRG 99h RCREG Ah 9Ah CCPRL Bh 9Bh CCPRH Ch 9Ch CCPCON Dh 9Dh ADRESH Eh ADRESL 9Eh ADCON Fh ADCON 9Fh h Ah GPR s GPR s Fh EFh Fh EFh h Fh h Fh GPR s GPR s GPR s GPR s Fh FFh Fh FFh Status Register Armazena informações relativas à última operação realizada pela ULA. É necessário na realização de cálculos lógicos e aritméticos. Status Register -bit Flash Instruction -bit Register Opcode Data bus -bit Instruction Decoder Work Register Data bus MUX Status Register STATUS Registrador b, h, banco Registrador b, h, banco Registrador b, h, banco Registrador b, h, banco Registrador XXb ALU Data bus Status Register

27 Status Register Bit C: Carry ou Borrow do nibble mais significativo. Bit DC: (Digit) Carry ou Borrow do nibble menos significativo. Bit Z: Indicador de resultado zero. Bit NOT_PD: Indicador de desligamento (Power Down). Bit NOT_TO: Indicador de Watchdog Timer Time-Out. Bit RP: Selec. banco da SRAM em endereçamento direto. Bit RP: Selec. banco da SRAM em endereçamento direto. Bit IRP: Selec. banco da SRAM em endereçamento indireto. Gerenciamento de bancos Status Register Sinalização de reset Sinalização da ULA O status register possui três funções:. Gerenciamento de bancos STATUS<:>. Sinalização de reset STATUS<:>. Sinalização da ULA STATUS<:> Status Register Carry e Digit Carry R: Permite leitura W: Permite escrita : Inicia em zero : Inicia em um x:? (o data sheet não explica) u: Não implementado B A FULL ADDER Nibble mais significativo B A Cy IN Cy IN FULL ADDER B A FULL ADDER B A Cy IN FULL ADDER OF Cy OUT Cy OUT Cy OUT S S S C S B A FULL ADDER S Nibble menos significativo B A Cy IN Cy IN FULL ADDER S B A FULL ADDER S B A Cy IN HALF ADDER Cy OUT Cy OUT Cy OUT Cy OUT DC S Não veremos o comportamento do bit DC após a execução de uma subtração. 9 Status Register O bit indicador de zero pode ser usado, por exemplo, para identificar o término em uma contagem. O bit indicador de desligamento pode ser usado, por exemplo, para aplicar rotinas de inicialização de sistemas onde são necessárias verificações dos estados iniciais. Os bits, e são usados em endereçamento e serão abordados mais adiante. Status Register O bit indicador de zero assume valor zero lógico quando a resposta da operação não vale zero. O bit indicador de zero assume valor um lógico quando a resposta da operação vale zero. O bit indicador de carry assume valor zero lógico quando a adição aritmética não causa overflow (entre h e FFh). O bit indicador de carry assume valor um lógico quando a adição aritmética causa overflow (entre h e FEh). O bit indicador de carry assume valor um lógico quando a subtração aritmética gera resposta positiva. O bit indicador de carry assume valor zero lógico quando a subtração aritmética gera resposta negativa.

28 Endereçamento do file registers Endereçamento do file registers Programação direta: O endereço é citado no código. Exemplo ilustrativo: Vá para a rua Duque de Caxias. Programação indireta: O código cita um registrador que contém o local. Exemplo ilustrativo:. O Antonio mora na rua Duque de caxias.. Vá para a rua onde o Antonio mora. RP, RAM Paging IRP Indirect RAM Paging INDF Indirect File Access Endereçamento direto <:> STATUS<:> 9-bit <:> SUBWF DECF IORWF ANDWF XORWF ADDWF MOVF COMF INCF DECFSZ RRF RLF SWAPF INCFSZ MOVWF CLRF BCF BSF BTFSC BTFSS Endereçamento direto Os bits menos significativos são fornecidos diretamente pelo opcode. A ULA adiciona STATUS<:>, RP:RP e forma a palavra de endereço de 9 bits. Se RP:RP não forem alterados, é possível acessar qualquer posição da SRAM dentro do mesmo banco ( posições). Se for necessário mudar o banco, RP:RP devem ser configurados antes da execução da instrução de acesso ao novo endereço da SRAM. Endereçamento indireto Endereçamento indireto No endereçamento direto, o projetista precisa saber, previamente, os endereços usados e, com base nisso, elabora o programa. Nem sempre isso é possível. Em muitos casos, o endereço usado depende da verificação de testes condicionais. Em outros casos, há vários endereços, formando uma matriz dinâmica, de tamanho imprevisível. Em todos esses casos, é preciso usar o endereçamento indireto, no qual o projetista não sabe qual o endereço a ser acessado, mas um registrador o sabe. INDF Indirect File Access FSR File Selection Register. INDF não é um registrador físico.

29 Endereçamento indireto Endereçamento indireto Indirect Addr (INDF). Registrador b, h, banco Registrador b, h, banco Registrador b, h, banco Registrador b, h, banco Registrador XXb FSR Registrador b, h, banco Registrador b, h, banco Registrador b, h, banco Registrador b, h, banco Registrador XXb 9 Endereçamento indireto Endereçamento indireto Ao usar, em uma instrução, o endereço INDF, a PIC reconhece que o endereçamento da SRAM deve ser o indireto. Ao reconhecer um endereçamento indireto, a PIC usa o bit STATUS<>, IRP para obter o nono bit e usa o FSR para obter os bits menos significativos do endereço da SRAM. O endereço acessado, então, não é o de INDF, mas o fornecido por IRP e FSR. STATUS<> Endereçamento indireto Endereçamento indireto Os bits menos significativos são fornecidos diretamente pelo FSR<:>. A ULA adiciona IRP e forma a palavra de endereço de 9 bits. Se IRP não for alterado, é possível acessar qualquer posição da SRAM dentro da mesma faixa ( posições). Se for necessário mudar a faixa, IRP devem ser configurado antes da execução da instrução de acesso ao FSR. O nome indireto diz respeito ao fato de que o endereço do registrador a ser lido/escrito não é fornecido no opcode. A instrução faz uso de FSR, que indica qual é o registrador a ser usado pela instrução. Isso permite que se possa armazenar em registradores endereços da SRAM. Não faz sentido falar em bancos em endereçamento indireto. 9

30 Endereçamento da SRAM Endereçamento da SRAM RP RP Banco A divisão em bancos não é relevante no endereçamento indireto. Os bancos e formam a primeira parte. Os bancos e formam a segunda parte. IRP FSR<> Banco STATUS IRP FSR<> Parte Endereçamento da SRAM Endereçamento da SRAM Um multiplexador escolhe qual endereço será usado, o direto ou o indireto. Direto: O MUX recebe bits ( posições) na entrada de endereçamento direto, vindo do opcode. Após a multiplexação, os bits RP e RP são adicionados, como nono e oitavo bits da palavra, respectivamente, totalizando 9 bits. Indireto: O MUX recebe bits do FSR. Após a multiplexação, o bit IRP é adicionado, como nono bit da palavra, totalizando 9 bits. Endereçamento da SRAM Endereçamento da SRAM : indireto : direto Sel Endereçamento indireto A A B B Endereçamento direto 9-bit MUX Entrada de endereço da SRAM O O 9

31 Exemplos Endereçamento da SRAM Endereçamento da SRAM Endereçamento indireto File selection register Instruction register -bit IRP RP,RP Endereçamento direto 9-bit MUX : indireto : direto SRAM Address Bus Bit Bit Bit Bit Bit Bit Bit Bit Bit : indireto : direto ANDLW IORLW XORLW ADDLW SUBLW MOVLW RETLW Endereçamento da SRAM Uma grande quantidade de instruções fazem uso de registradores da SRAM especificados por meio de seu endereço, bits. Estas instruções fazem uso de endereçamento direto, exceto quando esse registrador é INDF. Outra grande quantidade de instruções fazem uso de dados, bits, fornecidos diretamente no opcode. Essas instruções podem fornecer o endereço de bits da SRAM em endereçamento indireto. SUBWF DECF IORWF ANDWF XORWF ADDWF MOVF COMF INCF DECFSZ RRF RLF SWAPF INCFSZ MOVWF CLRF BCF BSF BTFSC BTFSS INDF h INDF h INDF h INDF h TMR h OPTION_REG h TMR h OPTION_REG h PCL h PCL h PCL h PCL h STATUS h STATUS h STATUS h STATUS h FSR h FSR h FSR h FSR h PORTA h TRISA h h h PORTB h TRISB h PORTB h TRISB h PORTC h TRISC h h h PORTD h TRISD h h h PORTE 9h TRISE 9h 9h 9h PCLATH Ah PCLATH Ah PCLATH Ah PCLATH Ah INTCON Bh INTCON Bh INTCON Bh INTCON Bh PIR Ch PIE Ch EEDATA Ch EECON Ch PIR Dh PIE Dh EEADR Dh EECON Dh TMRL Eh PCON Eh EEDATH Eh Eh TMRH Fh Fh EEADRH Fh Fh TCON h 9h h 9h TMR h 9h SSPCON TCON h PR 9h SSPBUF h SSPADD 9h SSPCON h SSPSTAT 9h CCPRL h 9h CCPRH h 9h CCPCON h 9h RCSTA h TXSTA 9h GPR s GPR s TXREG 9h SPBRG 99h RCREG Ah 9Ah CCPRL Bh 9Bh CCPRH Ch 9Ch CCPCON Dh 9Dh ADRESH Eh ADRESL 9Eh ADCON Fh ADCON 9Fh h Ah GPR s GPR s Fh EFh Fh EFh h Fh h Fh GPR s GPR s GPR s GPR s Fh FFh Fh FFh Direto: f = b, Dh RP, = b Indireto: FSR = b, Dh IRP = b Direto: f = b, Dh RP, = b Indireto: FSR = b, Dh IRP = b Direto: f = b, Dh RP, = b Indireto: FSR = b, Dh IRP = b Direto: f = b, Dh RP, = b Indireto: FSR = b, Dh IRP = b Escrita Escritas nos GPR s são realizadas por meio das instruções do tipo file com d=. Escritas nos SFR s são realizadas também pelas instruções do tipo file caso o mesmo permita escrita. Os SFR s também podem ser escritos automaticamente. Registradores somente são alterados em Q. CLK Escrita na SRAM SUBWF DECF IORWF ANDWF XORWF ADDWF MOVF COMF INCF DECFSZ RRF RLF SWAPF INCFSZ MOVWF CLRF BCF BSF BTFSC BTFSS Leituras dos GPR s são realizadas por meio das instruções do tipo file. Registradores somente são lidos em Q. CLK Leitura na SRAM Leitura SUBWF DECF IORWF ANDWF XORWF ADDWF MOVF COMF INCF DECFSZ RRF RLF SWAPF INCFSZ MOVWF CLRF BCF BSF BTFSC BTFSS Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q

32 Flash Program Memory A program memory se localiza em um chip separado, quando se usa P s, e dentro do mesmo chip, quando se usa MCU s. Antes do surgimento da memória flash, a memória de programa era construída por meio de EEPROM. Alguns tipos de MCU s do passado não tinham memória não volátil para o programa, usavam DRAM, requerendo nova programação a cada religamento. Flash Program Memory Tanto com flash como com EEPROM, o conteúdo da memória de programa não se perde com o desligamento do chip. A vantagem da flash é a maior densidade em relação à EEPROM. A desvantagem da flash é a lentidão em relação à EEPROM, porém este problema é irrelevante, pois não é comum alterar o conteúdo da flash durante a execução do programa. Se a MCU usa memória para armazenamento de dados durante a execução do programa frequentemente, é melhor que esta seja uma EEPROM. Flash Program Memory Outra opção também empregada em alguns modelos de MCU é usar uma DRAM ou SRAM como memória de programa. Neste caso, o conteúdo é perdido no desligamento e é preciso executar um boot ao ligar o chip. O programa, então, é gravado em uma flash ou uma EEPROM externa ao chip (off-chip), na mesma placa (on-board). O boot faz a transferência do programa da memória externa para a RAM interna à MCU ou para a RAM ligada ao P. A vantagem desta opção é a alta densidade da DRAM ou a alta rapidez da SRAM. 9 9 A flash contém o programa. A gravação da flash é feita, principalmente, na gravação do programa (programação). A flash também pode ser gravada na execução do programa. Uma gravação na flash interrompe a execução, pois, uma vez que a mesma está em gravação, não é possível garantir que a próxima instrução não será alterada. A execução também é interrompida porque, como qualquer memória, não é possível lê-la durante sua gravação. Flash Program Memory 9 D Execução D Flash processo de escrita Seleção entre gravação por programação e gravação durante execução. Sel A Programação A B Execução B C Programação C -bit MUX Sel -bit MUX -bit Address Bus -bit k flash -bit Program Bus 9

33 Program Counter PC. Contador de programa de bits <:>. Trata-se de um contador crescente desviável. A saída do PC gera o barramento de endereço de instrução. Este barramento alimenta a flash e a stack. -bit s ULA Program Counter Desvios no programa são obtidos através da reconfiguração do PC por meio das entradas Preset e Clear dos FF s. No caso da PIC, os FF s do PC formam um registrador de bits. O PC incrementa naturalmente se a próxima instrução está na sequência. A ULA reescreve o PC se a próxima instrução faz um desvio. Sendo um desvio com retorno, a ULA também envia o PC+ para a stack. 9 9 Program Counter Acesso à Flash Program Memory Na PIC, o PC está incluído na file register (PCL, bits). k endereços (flash). -bit address <:> -bit instruction <:> k pagging -bit address em cada página <:> -instruction stack A divisão em páginas é feita para que o endereçamento das instruções feito nas instruções de desvio (CALL e GOTO) se dê por meio de bits, e não bits. A necessidade desta redução se deve ao fato de que tal endereço deve caber nos bits de instrução. Usando bits para endereço, sobram bits para os demais parâmetros da instrução. Dois bits são usados para identificar que a instrução é de desvio (uma das quatro famílias de instruções). Outro bit é usado para diferenciar CALL e GOTO. 9 9 Acesso à Flash Program Memory Fila e Pilha Dois artifícios diferentes podem ser usados no controle da program memory: Fila de pré-busca (Prefetch Queue). Pilha (Stack). h h h h Fila Pilha POP h h h h PUSH 9 9

34 Fila A pré-busca permite que o PC busque na Program Memory a próxima instrução enquanto a instrução vigente é executada. Isto aumenta a rapidez do processador, pois evita que tempo de execução seja perdido durante a busca pela instrução seguinte. A pré-busca é feita de modo invisível ao usuário. A pré-busca é feita por meio de uma fila (Prefetch Queue) ou de um instruction register. 99 Fila LILO Last In, Last Out. Outros nomes: LILO, LOLI, FIFO, FOFI. As instruções são escritas e lidas na mesma ordem. Os dados das instruções são enfileirados. A fila é um registrador paralelo no qual a palavra muda de posição tal como um bit muda de posição em um registrador serial. A cada ciclo, o registrador envia as palavras um nível abaixo, liberando a última posição. A leitura da fila somente pode ser feita na primeira posição. A gravação na fila somente pode ser feita na última posição disponível. Fila A fila pode ser usada para aumentar o desempenho de processadores, principalmente quando a memória de programa é externa e seu acesso tem uma rapidez que não está sob controle do processador. A fila garante que sempre há uma instrução pronta para ser executada. Cada posição da fila é uma instrução lida com antecedência. Uma fila de uma única posição não recebe esse nome, é, apenas, um registrador. A família mid-range possui o instruction register. A família PIC possui fila de dois estágios (fetch stage e execute stage). Fila Mid-range PIC Fila Quando ocorre desvio, a pré-busca realizada anteriormente deve ser ignorada. É preciso realizar uma nova busca pela próxima instrução, desta vez, com o endereço correto, apontando para o desvio. Isso explica por que as instruções que realizam ou podem realizar desvio consomem T CY. BTFSC BTFSS DECFSZ INCFSZ CALL GOTO RETURN RETLW RETFIE Pilha LIFO Last In, First Out. Outros nomes: LIFO, FILO, LOFI, FOLI. Os endereços das instruções são escritas e lidas em ordem inversa. Há um empilhamento. As informações são organizados em níveis. O primeiro nível está no topo. Level Top Of the Stack (TOS) O nível atual é indicado pelo stack pointer. O PC se comunica com a TOS. Leitura e gravação são realizados apenas na TOS.

35 Pilha Duas ações podem ser feitas na pilha: Push Colocação de endereço de instrução. Pop Retirada de endereço de instrução. Alguns MCU s ou P s possuem as instruções PUSH e POP. Na PIC, PUSH e POP ocorrem em outras instruções. Dois problemas podem ocorrer na pilha: Overflow Escrita na pilha lotada. Underflow Leitura na pilha vazia. A PIC não registra a ocorrência destes dois fenômenos. A PIC não diferencia as posições usadas das não usadas. Pilha Um underflow ocorre quando se tenta realizar mais retornos do que desvios retornáveis. Um overflow ocorre quando o excesso de desvios retornáveis sobre os retornos ocorridos for maior do que oito. Interrupções podem gerar overflow. Ambos fenômenos não podem acontecer. Pilha Pilha O valor PC+ é gravado no primeiro nível vago da pilha. A pilha armazena o endereço ( bits) em que as instruções são encontradas no Program Flash, e não a instrução propriamente dita ( bits). A sequência das instruções executadas não é linear, pois o programa pode conter instruções condicionais, aceitação de interrupções e desvios de programa. Semelhantemente à instrução CALL, a instrução GOTO também faz um desvio. A diferença é que GOTO é usado não para o chamamento de uma sub-rotina, mas para uma simples alteração do ponto de operação indicado pelo PC. A instrução GOTO não permite retorno e, por isso, não realiza gravação na pilha. A instrução CALL consiste de um PUSH seguido de um GOTO. Pilha O endereço diz respeito à posição na flash. O endereço é de bits (página e linha) <:>. Não pode ser lida nem escrita pelo programador. Acessada nas instruções CALL, RETURN, RETFIE e RETLW. CALL TOS Pilha PC Level RETURN RETFIE RETLW stack Level ikimedia.org/w ikipedia/commons/thumb//9/data_stack.svg/px-data_stack.svg.png 9

36 Pilha PUSH Pilha PUSH CALL () PC PC CALL () PC PC CALL () PC PC CALL () PC PC CALL () PC PC Nenhum pop realizado entre os dois pushes. Nenhum pop realizado entre os pushes. Pilha PUSH Pilha Overflow CALL () PC PC CALL () PC PC CALL () PC PC CALL (9) PC PC Nenhum pop realizado entre os pushes. Perdido Pilha PUSH Pilha O PUSH é realizado porque, após o desvio, é preciso retornar ao caminho original por onde o PC leva o programa a prosseguir com a execução. O desvio é feito quando uma sub-rotina é chamada. Após a execução da sub-rotina, o PC precisa saber o endereço para onde retornar. O endereço de retorno é o que corresponde à instrução que segue o CALL. A instrução CALL deve ser usada quando existe a idéia de uma sub-rotina que, após sua execução, deve levar o programa ao ponto onde estava antes de sua execução. A instrução GOTO deve ser usada quando não existe a idéia de sub-rotina. A pilha não é usada. A pilha é a memória onde ficam armazenados os endereços de retorno.

37 Pilha Subrotinas Pilha Prevenção de overflow XXX XXX CALL XXX XXX XXX XXX CALL XXX XXX RETURN XXX XXX CALL XXX XXX RETURN XXX XXX CALL XXX XXX RETURN XXX XXX CALL XXX XXX RETURN XXX XXX CALL XXX XXX RETURN A instrução CALL pode provocar um stack overflow, ela deve ser usada com cautela. Mesmo quando se tem a idéia de sub-rotina, a instrução CALL pode ser substituída por GOTO se houver, em todo o programa, apenas um ponto de chamada para a sub-rotina. Esta troca pode ser feita porque, como o endereço de retorno é único, ele pode ser previsto pelo programador, que colocará um GOTO para aquele endereço. Não é necessário o uso da pilha. Pilha Prevenção de overflow Se está acontecendo o problema de overflow, uma solução é, ao invés de realizar vários chamados para a mesma subrotina, colocar várias cópias desta sub-rotina em cada ponto de chamada. Se a sub-rotina não for muito grande e os pontos de chamada não forem muitos, a perda de espaço na program memory pode não ser significativa. Outra solução é usar instruções condicionais (BTFSS, BTFSSC, INCFSZ, DECFSZ) que permitam descobrir qual o ponto de chamada da sub-rotina, dispensando, assim, o uso da pilha, permitindo a troca da instrução CALL por GOTO. Um programador experiente poderá encontrar soluções mais criativas do que estas. 9 Data Addr Data Addr Dado h Vazio h Dado h Dado h Dado h Dado h Dado h Dado h Dado h Dado h Dado h Dado h Dado h Dado h Dado h Dado h Empty h Empty h Pilha Leitura Dados somente podem ser lidos no primeiro endereço. Os endereços são subtraídos em uma unidade. O endereço h é chamado de top of the stack (TOS). Data Addr Vazio h Vazio h Dado h Dado h Dado h Dado h Dado h Dado h Empty h Data Addr Vazio h Vazio h Vazio h Dado h Dado h Dado h Dado h Dado h Empty h Data Addr Vazio h Vazio h Vazio h Vazio h Dado h Dado h Dado h Dado h Empty h Data Addr Vazio h Vazio h Vazio h Vazio h Vazio h Dado h Dado h Dado h Empty h Pilha Leitura Pilha Escrita O stack pointer aponta para a TOS. Quando o stack pointer aponta para a posição marcada como empity, a pilha está vazia. Data Addr Vazio h Vazio h Vazio h Vazio h Vazio h Dado h Dado h Dado h Empty h Data Addr Vazio h Vazio h Vazio h Vazio h Vazio h Vazio h Dado h Dado h Empty h Data Addr Vazio h Vazio h Vazio h Vazio h Vazio h Vazio h Vazio h Dado h Empty h Data Addr Vazio h Vazio h Vazio h Vazio h Vazio h Vazio h Vazio h Vazio h Empty h Data Addr Vazio h Vazio h Vazio h Vazio h Vazio h Vazio h Vazio h Vazio h Empty h Data Addr Vazio h Vazio h Vazio h Vazio h Vazio h Vazio h Vazio h Dado h Empty h Data Addr Vazio h Vazio h Vazio h Vazio h Vazio h Vazio h Dado h Dado h Empty h Data Addr Vazio h Vazio h Vazio h Vazio h Vazio h Dado h Dado h Dado h Empty h Data Addr Vazio h Vazio h Vazio h Vazio h Dado h Dado h Dado h Dado h Empty h Data Addr Vazio h Vazio h Vazio h Dado h Dado h Dado h Dado h Dado h Empty h

38 Páginas Acesso Entrada: Endereço da instrução ( bits) <:> Saída: Dados da Instrução ( bits) <:> Entrada: h a FFFh Saída: h a FFFh -bit Instruction register Após a determinação do endereço da próxima instrução, por meio do program counter, a instrução é lida na program flash e gravada no instruction register, um registrador paralelo. Após a gravação do instruction register, o program counter já pode endereçar a próxima instrução e fazer a leitura da program memory, pois a instrução vigente está preservada no instruction register, mantendo-se disponível para consulta por parte da ULA. Somente após a completa execução da instrução vigente é que o instruction register pode ser atualizado para a próxima instrução, lida no program memory, endereçada pelo program counter. -bit Instruction register O instruction register pode ser construído da forma de fila, exercendo, assim, a função de Prefetch Queue. O stack armazena os endereços de instrução, bits. O prefetch queue armazena as instruções, bits. A fila age de forma totalmente invisível ao programador. Leitura da instrução -bit Opcode -bit Flash Instruction Register Data bus -bit Instruction Decoder Work Register Data bus MUX sel Entrada de clock Outras saídas não foram incluídas nesta figura. ALU Data bus ANDLW IORLW XORLW ADDLW SUBLW MOVLW RETLW Instruções cujo dado está no opcode -bit Opcode -bit Flash Instruction Register Leitura da instrução -bit Instruction Decoder Data bus MUX Instruções cujo dado está em um registrador sel SUBWF DECF IORWF ANDWF XORWF ADDWF MOVF COMF INCF DECFSZ RRF RLF SWAPF INCFSZ MOVWF CLRF BCF BSF BTFSC BTFSS Flash

39 9 Páginas A primeira página perde as cinco primeiras posições para que sejam usadas pela MCU para saltar para o programa principal ou para a rotina de interrupção. Se o seu programa não utiliza interrupções, essas cinco primeiras posições podem ser usadas como programa principal. Páginas O address h contém a instrução para onde o PC vai quando a MCU sofre o comando reset. O address h contém a instrução para onde o PC vai quando a MCU atende a um pedido de interrupção. Se o programa não usa interrupções, ele pode começar a partir do address h. Geralmente, o address h contém a instrução GOTO seguida do endereço onde o programa principal começa. Geralmente, o address h contém a instrução GOTO seguida do endereço onde a rotina de interrupção começa. 9 Páginas Não é de todo correto afirmar, como faz o data sheet, que a program memory começa no endereço h, afina, se o programa não usa interrupções, o programa pode começar no endereço h usando os endereços seguintes, inclusive o interrupt vector. Esta opção é tão viável que o próprio MPLAB considera como default, no código MPASM, o endereço h como início para a montagem do programa, isto é, quando o pondo de origem (diretiva ORG) não é definido pelo usuário. Desta forma, os dois pontos de vista serão aceitos neste contexto. Reset Vector Localiza-se na Flash Memory em h. Este é o endereço para onde o Program Counter leva a execução quando o processador sofre algum tipo de reiniciação (não vale para wake-up). Este é um ponteiro para o endereço onde o programa começa. Preferencialmente, a instrução gravada neste endereço deve ser GOTO, apontando para onde, de fato o programa começa, pulando, pelo menos, as outras quatro posições reservadas. Vide exemplos Interrupt Vector Localiza-se na Flash Memory em h. Quando uma interrupção está habilitada, uma fonte de dados interna ou externa pode realizar uma interrupção na execução do programa. Como fonte de dados internos, tem-se os contadores, conversores, portas, etc. Como fonte de dados externos, tem-se os sensores e os métodos de interface de entrada do usuário. Interrupt Vector Uma interrupção age como um comando CALL. Uma interrupção executa um PUSH na pilha. O uso de interrupções deve tomar o cuidado de não proporcionar overflow na pilha. Uma forma de proteger a PIC contra overflow na pilha é desabilitar todas as interrupções quando for atendido um pedido de interrupção, reabilitando-as ao término do atendimento. Esse procedimento é feito automaticamente. Se interrupções não forem usadas, é mais seguro desabilitar todas as interrupções.

40 posições da flash. h a h. ID locations bits de endereço. Posições usadas para gravação de valores de checagem e outros números de identificação. Posições inacessíveis para o programa em execução. Posições acessíveis na etapa de programação. Recomenda-se a não alteração desses valores. Este slide não cai na prova. Program Counter Contador de bits (k posições) PC<:>. Formado por registradores: PCL PC Low ( bits, endereços) PCL<:> PCH PC High ( bits, combinações) PCH<:> PCL aceita leitura e escrita. PCH não aceita nem leitura nem escrita. PCH é escrito indiretamente, a partir do registrador PCLATH. -bit -bit Program Counter PCL é um SFR. PCL está contido no file registers. PCL pode ser lido e escrito. PCL possui bits. PCH não é um SFR. PCH não está contido no file registers. PCH não pode ser lido nem escrito diretamente. PCH possui bits. PCLATH é um SFR. PCLATH está contido no file registers. PCLATH pode ser lido e escrito. PCLATH possui bits. Program Counter Low PCL Registrador b, h, banco Registrador b, h, banco Registrador b, h, banco Registrador b, h, banco Registrador XXb Program Counter Latch PCLATH PCLATH Registrador b, Ah, banco Registrador b, Ah, banco Registrador b, Ah, banco Registrador b, Ah, banco Registrador XXb PC<:> = PCL<:> PC<:> = PCH<:> PCLATH contém os bits para gravar em PCH. PCLATH é um registrador de bits da SRAM. PCH PCL inexistente 9 PCLATH

41 Flash (kb) PCLATH Flash (kwords) PCLATH (bits) PC (bits),,,, 9,, USAREMOS PCLATH é sempre de bits. PCLATH faz parte do core, que é o mesmo para toda a família mid-range. Se menos bits são usados, o programa deve levar isso em consideração, para evitar um wrap-back. Modelos com posições não usam PCLATH. PCLATH Modelos mid-range com posições (,k instruções) não usam PCLATH. Estes são os modelos mais baratos. A flash memory é o elemento mais caro no chip MCU, por isso, sua redução gera grande economia de custo. No site do fabricante, o tamanho da program memory é o primeiro critério de busca. O único modelo mid-range de instruções encontrado (9//) é o PICF. Gravação do PCL sem alterar PCLATH A instrução faz a gravação dos bits de PCL. Este procedimento permite a realização de um GOTO manual. Se PCLATH não é alterado, isto permite a livre movimentação do PC na flash dentro de setores de posições da flash. PCL possui bits porque pode ser gravado diretamente pela ULA via data bus. inexistente PCH inalterado PCLATH PCL data bus FF Gravação do PCL sem alterar PCLATH Bloco Bloco Bloco Bloco Bloco Bloco Bloco Bloco Bloco Bloco 9 Bloco A Bloco B Bloco C Bloco D Bloco E Bloco F Bloco Bloco Bloco Bloco Bloco Bloco Bloco Bloco Bloco Bloco 9 Bloco A Bloco B Bloco C Bloco D Bloco E Bloco F Este procedimento permite a realização de saltos em faixas ou blocos de programa de posições. São ( ) blocos. Não é possível mudar de bloco por meio de saltos, apenas pelo prosseguimento normal do programa. Este procedimento requer, no mínimo, duas instruções, enquanto o comando GOTO pode fazer a mesma ação usando, apenas, uma instrução. Gravação do PCL sem alterar PCLATH Este procedimento requer, no mínimo, duas instruções (MOVLW e MOVWF), enquanto o comando GOTO pode fazer a mesma ação usando, apenas, uma instrução. Para realizar jumps dentro da mesma página, o uso da instrução GOTO. Estas duas opções levam o mesmo tempo de execução, pois a instrução GOTO é do tipo T CY. Gravação do PCL alterando PCLATH A gravação do PCLATH deve ser feita antes de escrever PCL. Gravando PCL, PCLATH é copiado em PCH automaticamente. A cópia do PCLATH para o PCH não passa pelo data bus. PCLATH<:> é copiado para PCH<:>. PCLATH<:> é copiado para PC<:>. Isso permite um jump com acesso a todas as páginas da flash. PCH PCL inexistente PCLATH

42 Gravação do PCL alterando PCLATH Realizando a gravação de PCLATH<:>, tal valor não é copiado para PC<:>. Esta cópia é feita automaticamente em operações que tem PCL como destino. A prévia gravação de PCLATH<:> seguida da gravação de PCL<:> permite a escolha de bits para o endereçamento da flash, PC<:>. Isto permite a livre movimentação do PC na flash completa. PCLATH<:> PCH<:> PCLATH<:> PC<:> A instrução GOTO não permite saltos com essa amplitude. Gravação do PCL alterando PCLATH A mudança de páginas é feita por meio de PCLATH. PCLATH<:> PCH<:> PCLATH<:> PC<:> A divisão em páginas não é relevante no endereçamento via gravação de PCLATH seguida pela gravação de PCL. página inexistente PCH página PCLATH PCL PCLATH O nome lath indica um segurador de informação. A informação é liberada somente no momento certo. Um flip-flop mestre-escravo age como latch, a saída Q somente é atualizada em função da entrada D ou das entradas J e K quando o sinal de controle é liberado (borda de subida ou de descida). O PCLATH age da mesma forma, porém com bits. O sinal de controle para liberação é a escrita do PCL. 9 PCLATH Por que a MCU usa o PCLATH? Por que não liberar o PC<:> para escrita direta? A resposta é que, se o usuário pudesse escrever diretamente em PCL e PCH, não poderia fazer as duas escritas ao mesmo tempo. Um deveria ser gravado antes do outro. Não seria possível gravar os treze bits simultaneamente. Quando um fosse gravado, a próxima instrução já seria determinada pelo novo valor do PC, e isso dificultaria muito a programação, pois o usuário deveria prever qual seria esta nova posição para, ali, gravar as instruções para a seleção do novo valor para a parte restante do PC. O uso do PCLATH permite que os treze bits sejam gravados simultaneamente, simplificando a programação. Instruções CALL e GOTO sem alterar PCLATH A instrução faz a gravação dos onze bits menos significativos do PC<:>. A instrução faz a gravação de PCH<:> e de PCL<:>. Isto permite a livre movimentação do PC na flash dentro de uma mesma página. inalterado página PCH PCL Instruções CALL e GOTO sem alterar PCLATH FF Página Página Página Página Este procedimento permite a realização de saltos em faixas ou blocos de programa de k posições. São ( ) blocos. Não é possível mudar de bloco por meio de saltos, apenas pelo prosseguimento normal do programa.

43 Instruções CALL e GOTO sem alterar PCLATH Flash (kb) Flash (kwords) PC (bits) Páginas Bits no opcode,,,, 9 9,, USAREMOS Instruções CALL e GOTO alterando PCLATH A gravação do PCLATH deve ser feita antes do CALL ou do GOTO. Os dois bits mais significativos do PCLATH são copiados. PCLATH<:> PCH<:> PCLATH<:> PC<:> PCH PCL inexistente não copiado PCLATH Instruções CALL e GOTO Situações sobre o PC Realizando a gravação de PCLATH<:>, tal valor não é copiado para PC<:>. Esta cópia é feita automaticamente nas operações CALL e GOTO. A prévia gravação de PCLATH<:> seguida dos comandos CALL ou GOTO permite a escolha de bits para o endereçamento da flash, PC<:>. Isto permite a livre movimentação do PC na flash completa. Situações sobre o PC Situações sobre o PC

44 -bit Situações sobre o PC O problema do erro de página O incremento natural do program counter corresponde ao comportamento natural de todo contador. A alteração forçada do program counter corresponde a um jump efetuado por alguma instrução do tipo T CY ou uma escrita em PCL. Estes dois fenômenos podem provocar uma alteração de página. Um cuidado deve ser tomado com o PCLATH<:> nestas mudanças de página. 9 Vide exemplos O problema do erro de página O problema do erro de página Quando se muda de uma página da program memory para outra por meio do incremento natural do program conter, é necessário atualizar, manualmente, o PCLATH<:>. Esta atualização não é realizada automaticamente. Se ela não é realizada após a mudança natural da página, o uso das instruções CALL, GOTO ou uma escrita em PCL levarão o PC para a página anterior. Quando se chama uma rotina, e esta rotina se localiza em uma página diferente do ponto de chamada, e, dentro desta rotina, é efetuado o uso das instruções CALL, GOTO ou uma escrita em PCL, é necessário atualizar, manualmente, o PCLATH<:>. Se PCLATH<:> não é atualizado após a mudança forçada de página, o uso das instruções CALL, GOTO ou uma escrita em PCL levarão o PC para a página que contém o ponto de chamada da rotina. Vide exemplos Vide exemplos ULA ULA Acesso à ULA ULA

45 -bit Localização da ULA ULA Acesso à ULA Bits de sinalização Z, C, DC ULA Entrada de dados A Entrada de dados B Saída de dados ULA Decodificação do opcode Em Q, a ULA recebe um byte indicativo da operação. Em Q, a ULA recebe um byte com o(s) dados. Em Q, a ULA realiza a operação. Em Q, a ULA escreve no local de destino. ULA Decodificação do opcode O instruction decoder converte o opcode em duas etapas:. O código da instrução em uma forma que a ULA entenda e determine qual a próxima operação a ser realizada (Q ).. O(s) dado(s) da instrução (se houver) e que sofrerão a operação a ser realizada pela ULA (Q ). A seleção entre os resultados dessas duas etapas é feita por um MUX. ULA Decodificação do opcode ULA Decodificação do opcode Opcode -bit Instruction Decoder Opcode -bit Instruction Decoder W Status Z,C,DC ALU Datum Q Q Decode/Data -bit 9 Decode/Data Palavra para instruir a ULA sobre o próximo cálculo. -bit program memory address em CALL e GOTO. literal em instrução do tipo LW. -bit file register address em instrução do tipo F. -bit bit address para instruções sobre bits. -bit destiny address em instrução do tipo F.

46 ULA Decodificação do opcode ULA Decodificação do opcode Opcode -bit Instruction Decoder Decode -bit Datum Opcode -bit Instruction Decoder Q Datum Um ou outro, mas não ambos. Decode: Ocorre durante Q. Datum: Ocorre durante Q. O barramento de bits é um só. O decode usa, apenas, bits. Q : PCL literal -bit file address -bit bit address -bit destiny address ULA Decodificação do opcode Q -bit decode Q data ULA Padrões de estrutura de opcode Q -bit decode Q data seleção d file seleção file Tipo Tipo Sobre byte 9 seleção d file address 9 seleção file address 9 seleção bit file Sobre bit 9 sel. bit addr. file address seleção k (literal) Sobre literal 9 seleção literal sel PC<:> PCL De desvio 9 seleção 9 sel. program address ULA Padrões de estrutura de opcode A figura anterior mostra que a informação do data sheet de que no Q é realizada a decodificação e de que no Q é realizada a leitura do(s) argumentos (caso hajam), é uma simplificação. Esses detalhes são segredo industrial e não são fornecidos em data sheets. A afirmação de que, no Q, são lidos, apenas, seis bits (opcode<:>) é, apenas, uma suposição coerente. O opcode poderia ter até bits e isso não afetaria o tempo de execução; aumentaria, apenas, o tamanho da flash memory. ULA SUBWF DECF IORWF ANDWF XORWF ADDWF MOVF COMF INCF DECFSZ RRF RLF SWAPF INCFSZ Decodificação do opcode Opcode -bit Data: -bit destiny address -bit file address Q -bit decode Instruction Decoder seleção d Q -bit decode Q data Q data file

47 ULA NOP MOVWF CLRW CLRF Data: Bit -bit file address Decodificação do opcode Opcode -bit Instruction Decoder Q -bit decode Q data Q -bit decode Q data Instrução Nibble Nibble Nibble Nibble NOP b b (d) xx MOV WF b b (d) fff ffff CLR W b b (d) xxx xxxx CLR F b b (d) fff ffff ULA ANDLW IORLW XORLW ADDLW SUBLW MOVLW RETLW Decodificação do opcode Opcode -bit Instruction Decoder Datum: literal Q -bit decode Q data Q -bit decode Q data Q -bit decode Q data seleção file seleção k (literal) ULA BCF BSF BTFSC BTFSS Decodificação do opcode Opcode -bit Instruction Decoder Q -bit decode Q data ULA CALL GOTO Decodificação do opcode Opcode -bit Instruction Decoder Q -bit decode Q data Decode: Família e seleção -bit bit address <:> Data: -bit bit address <> -bit file address Datum: PCL Como os dados superam bits, o PC<:> é lido no Q, junto com os bits a. Q -bit decode Q data Q -bit decode Q data 9 seleção bit file 9 sel k (literal) ULA SUBWF DECF IORWF ANDWF XORWF NOP ADDWF MOVWF MOVF CLRW COMF CLRF INCF DECFSZ RRF RLF SWAPF INCFSZ Determinação do destino ALU DEMUX Seleção opcode<>=: w opcode<>=: f ULA ANDLW IORLW XORLW ADDLW SUBLW MOVLW RETLW Multiplexação datum literal/file Em Q, se a ULA recebe um literal, o dado já está disponível para ser operado. Em Q, se a ULA recebe um -bit file address, a ULA faz a leitura do registrador. Em ambos casos, a ULA conclui o Q com o datum disponível para ser operado SUBWF DECF IORWF ANDWF XORWF ADDWF MOVF COMF INCF DECFSZ RRF RLF SWAPF INCFSZ MOVWF CLRF BCF BSF BTFSC BTFSS W SRAM

48 ULA ANDLW IORLW XORLW ADDLW SUBLW MOVLW RETLW Opcode -bit Multiplexação datum literal/file Instruction Decoder Seleção Literal Instruction bus MUX File Data bus SUBWF DECF IORWF ANDWF XORWF ADDWF MOVF COMF INCF DECFSZ RRF RLF SWAPF INCFSZ MOVWF CLRF BCF BSF BTFSC BTFSS ULA Multiplexação datum literal/file Literal Instruction bus MUX File Data bus Seleção Instruction Decoder Datum Para a ULA ALU ULA Multiplexação instrução/dado Uma vez que a ULA recebe a informação sobre a operação e a informação sobre o operando em instantes diferentes, por meio da entrada, é preciso que pelo menos a primeira destas palavras seja registrada para que esteja disponível no segundo instante. ULA Multiplexação instrução/dado W Registrador do dado A Instruction/Datum Registrador do dado B Registrador da operação Seleção ULA Multiplexação instrução/dado

Microcontroladores PIC

Microcontroladores PIC Microcontroladores PIC Prof. Adilson Gonzaga 1 Arquitetura de Microcomputadores Arquitetura von Neumann: Há apenas um barramento (duto) de dados e um de endereço. As Instruções e os dados ocupam o mesmo

Leia mais

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

Arquitetura de Computadores. Prof. João Bosco Jr. Arquitetura de Computadores Prof. João Bosco Jr. Aula 4 (nivel ISA Arquitetura PIC) Características do Controlador 16F628A 18 Pinos Até 20 Mhz (5M instruções por segundo) PortA e PortB 10 Interrupções

Leia mais

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

Sistemas Microcontrolados. Período Aula 4. 1 Saulo O. D. Luiz Sistemas Microcontrolados Período 2009.2 Aula 4 1 Saulo O. D. Luiz Roteiro Introdução ao microcontrolador PIC 16F877 Arquitetura do PIC 16F877 Conjunto de instruções Registradores de configuração 2 Saulo

Leia mais

Introdução aos Microcontroladores PIC

Introdução aos Microcontroladores PIC Introdução aos Microcontroladores PIC 1ª parte João M. P. Cardoso Universidade do Algarve Microcontroladores PIC Empresa: Microchip Technology Inc. Várias famílias PIC12XX, PIC16XX, PIC17XX, PIC18XX Linha

Leia mais

Microcontrolador 8051:

Microcontrolador 8051: Microcontrolador 8051: Fonte: CORRADI 2009 O Microcontrolador 8051: Começou a ser produzido no início da década de 80, pela Intel; Hoje é fabricado por várias empresas e com muitas variações; Atualmente,

Leia mais

Microcontroladores. Prof. Nivaldo T. Schiefler Jr. M.Eng Homepage: www.joinville.ifsc.edu.br/~nivaldo Email: nivaldo@ifsc.edu.br

Microcontroladores. Prof. Nivaldo T. Schiefler Jr. M.Eng Homepage: www.joinville.ifsc.edu.br/~nivaldo Email: nivaldo@ifsc.edu.br Prof. Nivaldo T. Schiefler Jr. M.Eng Homepage: www.joinville.ifsc.edu.br/~nivaldo Email: nivaldo@ifsc.edu.br Conceito final será constituído de duas avaliações: 1ª Conceito avaliação teórica 2ª Conceito

Leia mais

Microcontrolador 8051

Microcontrolador 8051 Microcontrolador 8051 Inicialmente fabricado pela INTEL, atualmente fabricado por várias empresas; Possui uma grande variedade de dispositivos, com diversas características, porém compatíveis em software;

Leia mais

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

Microprocessadores. São máquinas elétricas onde podemos armazenar instruções lógicas, aritméticas e de tomada de decisão; Microprocessadores São máquinas elétricas onde podemos armazenar instruções lógicas, aritméticas e de tomada de decisão; CPU (Central Processing Unit Unidade Central de Processamento) CPU (Central Processing

Leia mais

Estrutura Básica de um Computador

Estrutura Básica de um Computador SEL-0415 Introdução à Organização de Computadores Estrutura Básica de um Computador Aula 2 Prof. Dr. Marcelo Andrade da Costa Vieira INTRODUÇÃO n Organização Æ implementação do hardware, componentes, construção

Leia mais

INTRODUÇÃO: MICROCONTROLADORES

INTRODUÇÃO: MICROCONTROLADORES INTRODUÇÃO: MICROCONTROLADORES MICROCONTROLADOR X MICROPROCESSADOR Baixa capacidade de processamento Freq. Operação em MHz Custo de R$ 7,00 a 30,00 Aplicações mais restrita Alta capacidade de processamento

Leia mais

5. Conjunto de Instruções do MCU PIC

5. Conjunto de Instruções do MCU PIC 5. do MCU PIC Professor: Vlademir de Oliveira Disciplina: Microcontroladores e DSP 5.1 Arquitetura interna Ciclo de Busca e Execução da Instrução O clock externo é internamente dividido por 4, gerando

Leia mais

Professor: Vlademir de Oliveira Disciplina: Microcontroladores e DSP. Memórias de Dados e de Programa

Professor: Vlademir de Oliveira Disciplina: Microcontroladores e DSP. Memórias de Dados e de Programa 4. Memórias de Dados e de Programa Professor: Vlademir de Oliveira Disciplina: Microcontroladores e DSP 4.1 Memórias Semicondutoras Algumas definições Célula: Dispositivo de armazenamento de 1 bit. Palavra:

Leia mais

ARQUITETURA DE PROCESSAMENTO

ARQUITETURA DE PROCESSAMENTO ARQUITETURA DE PROCESSAMENTO Os subsistemas digitais codificadores, decodificadores, multiplexadores, demultiplexadores, registradores e contadores, possibilitam a criação de um sistema digital mais complexo

Leia mais

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

Introdução aos microcontroladores Microcontroladores e microprocessadores Tecnologia em Manutenção Industrial Introdução aos microcontroladores Microcontroladores e microprocessadores Tecnologia em Manutenção Industrial 1 Definição de microcontroladores É um circuito integrado que pode ser programado para realização

Leia mais

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

Introdução ao PIC. Guilherme Luiz Moritz 1. 6 de novembro de DAELT - Universidade Tecnológica Federal do Paraná Guilherme Luiz Moritz 1 1 DAELT - Universidade Tecnológica Federal do Paraná 6 de novembro de 2013 Características do PIC Arquitetura Harvard RISC, 35 instruções 8 a 84 pinos Mais de 180 modelos Vários

Leia mais

AAAA SEL 0629 AAAA. Aplicação de Microprocessadores I. Aula 2 PIC 18F45k22. Marcelo Andrade da Costa Vieira

AAAA SEL 0629 AAAA. Aplicação de Microprocessadores I. Aula 2 PIC 18F45k22. Marcelo Andrade da Costa Vieira SEL 0629 Aplicação de Microprocessadores I Aula 2 PIC 18F45k22 Marcelo Andrade da Costa Vieira Família de Microcontroladores PIC Microprocessadores de 8-bit, 16-bit e 32-bit; A linha de 32-bit possui ULA

Leia mais

PIC. PeripheralInterface Controller. Prof. EngºespLuiz Antonio Vargas Pinto www.vargasp.com. Prof. Vargas

PIC. PeripheralInterface Controller. Prof. EngºespLuiz Antonio Vargas Pinto www.vargasp.com. Prof. Vargas PIC PeripheralInterface Controller Prof. EngºespLuiz Antonio Vargas Pinto www.vargasp.com Histórico Em 1965 a General Instruments criou a divisão de microeletrônica Nos anos 80 foi dividida e vendida a

Leia mais

Conjunto de Instruções e Modelos de Arquiteturas

Conjunto de Instruções e Modelos de Arquiteturas Departamento de Engenharia Elétrica e de Computação EESC-USP SEL-0415 Introdução à Organização de Computadores Conjunto de Instruções e Modelos de Arquiteturas Aula 7 Prof. Marcelo Andrade da Costa Vieira

Leia mais

Aula 10 Microcontrolador Intel 8051 Parte 1

Aula 10 Microcontrolador Intel 8051 Parte 1 Aula 10 Microcontrolador Intel 8051 Parte 1 SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES Prof. Dr. Marcelo A. C. Vieira SEL 0415 Microcontroladores Grupo de Sistemas Digitais n Microcontrolador é o nome

Leia mais

Curso de Microcontroladores PIC 16F84A

Curso de Microcontroladores PIC 16F84A Curso de Microcontroladores PIC 16F84A João Neto Caetano Jnetcaetano@hotmail.com Marciel Gonçalves Azevedo Marcielgazevedo@hotmail.com Célio Rodrigues Pinto Treinamentos em geral, suporte a alunos universitários

Leia mais

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

Aplicações Avançadas de Microprocessadores. Professor: Marco Shawn Meireles Machado Aplicações Avançadas de Microprocessadores Professor: Marco Shawn Meireles Machado Iniciação aos sistemas microcontrolados Objetivos da Aula: Descrever os itens que compõem uma CPU; Detalhar a estrutura

Leia mais

DE POSICIONAMENTO DE UM DETECTOR USANDO CIRCUITO ELETRÔNICO MICROCONTROLADO E PROGRAMAÇÃO ASSEMBLY

DE POSICIONAMENTO DE UM DETECTOR USANDO CIRCUITO ELETRÔNICO MICROCONTROLADO E PROGRAMAÇÃO ASSEMBLY UNIVERSIDADE FEDERAL DE MINAS GERAIS ESCOLA DE ENGENHARIA DEPARTAMENTO DE ENGENHARIA NUCLEAR Programa de Pós-Graduação em Ciências e Técnicas Nucleares CONTROLE DE POSICIONAMENTO DE UM DETECTOR USANDO

Leia mais

PIC16F628a. Pinagem do PIC16F628a:

PIC16F628a. Pinagem do PIC16F628a: PIC16F628a O PIC16F628a é um microcontrolador fabricado pela Microchip Technology (www.microchip.com), com as seguintes características: - composto de 18 pinos; - possui somente 35 instruções no seu microcódigo;

Leia mais

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

Introdução à Organização de Computadores. Aula 8 SEL-0415 Introdução à Organização de Computadores Set de Instruções Modelos de Arquiteturas Aula 8 Prof. Dr. Marcelo Andrade da Costa Vieira INSTRUÇÕES n Padrão de código binário armazenado em um dispositivo

Leia mais

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

Registros do 16F628A. Prof. Luiz Antonio Vargas Pinto   Prof. Vargas Registros do 16F628A www.mikroe.com Prof. Luiz Antonio Vargas Pinto www.vargasp.com STATUS (03) STATUS (03) Após RESET Chave dos bancos STATUS (03) Bit 7: IRP - Seleção de banco de registradores 0 - seleciona

Leia mais

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

1.1. Microprocessadores e microcontroladores Sistemas genéricos e sistemas dedicados. 2. Microcontrolador PIC: PLANO DE ENSINO Curso: Engenharia mecânica com habilitação em controle e automação Disciplina: Eletiva I Carga Horária Semanal: 04 Carga Horária Total 80 EMENTA Introdução à linguagem Assembly, microcomputador

Leia mais

Jadsonlee da Silva Sá

Jadsonlee da Silva Sá Introdução aos Sistemas Microcontrolados Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br www.univasf.edu.br/~jadsonlee.sa Introdução aos Sistemas Microcontrolados Assembly, C, java,... Circuito Reset

Leia mais

Conjunto de Instruções e Modelos de Arquiteturas

Conjunto de Instruções e Modelos de Arquiteturas Departamento de Engenharia Elétrica e de Computação EESC-USP SEL-0415 Introdução à Organização de Computadores Conjunto de Instruções e Modelos de Arquiteturas Aula 7 Prof. Marcelo Andrade da Costa Vieira

Leia mais

Sistemas Embarcados:

Sistemas Embarcados: Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Sistemas Embarcados: Microcontroladores DCA0119 Sistemas Digitais Heitor Medeiros Florencio Sistemas Embarcados

Leia mais

Microprocessadores I. Aula 6 Arquitetura do Microprocessador Pinagem e Diagrama de Temporização

Microprocessadores I. Aula 6 Arquitetura do Microprocessador Pinagem e Diagrama de Temporização Microprocessadores I Aula 6 Arquitetura do Microprocessador 8085 - Pinagem e Diagrama de Temporização 1 O 8085 contém em seu CI circuitos para executar operações de cálculos e comunicação com periféricos.

Leia mais

CAPÍTULO II FAMÍLIA MCS-51

CAPÍTULO II FAMÍLIA MCS-51 CAPÍTULO II 2.1. INTRODUÇÃO Este curso abordará somente a família MCS-51. Ela não é tão antiga e limitada como a MCS-48 nem tão cara como a MCS-96. Por isso mesmo é atualmente a família de controladores

Leia mais

Sistemas Microcontrolados

Sistemas Microcontrolados Ciência da Computação Sistemas Microcontrolados Função dos Registradores no PIC Prof. Sergio F. Ribeiro Os Registradores Especiais que Controlam Tudo Vimos que configurações podem ser feitas para definir

Leia mais

FACULDADE LEÃO SAMPAIO

FACULDADE LEÃO SAMPAIO FACULDADE LEÃO SAMPAIO Microcontroladores Curso de Análise e Desenvolvimento de Sistemas 1 Componentes CPU Memórias Dispositivos de Entrada/Saída (E/S) Input/Output (I/O) 2 CPU A CPU busca informações

Leia mais

ESTRUTURA E FUNCIONAMENTO DO COMPUTADOR

ESTRUTURA E FUNCIONAMENTO DO COMPUTADOR ESTRUTURA E FUNCIONAMENTO DO COMPUTADOR Prof. Filippo Valiante Filho http://prof.valiante.info Estrutura do Computador Computador CPU (Central Processing Unit) Sistema de Armazenamento (Memórias) Sistema

Leia mais

Sistemas Microcontrolados

Sistemas Microcontrolados Ciência da Computação Sistemas Microcontrolados Introdução aos Microcontroladores PIC Prof. Sergio F. Ribeiro Microprocessadores Os microprocessadores são circuitos integrados compostos por diversas portas

Leia mais

MICROCONTROLADORES. PIC16F87x

MICROCONTROLADORES. PIC16F87x Universidade Católica de Goiás Departamento de Engenharia Curso de Engenharia Elétrica MICROCONTROLADORES PIC16F87x Prof. Eider Lúcio de Oliveira Prof. Éderson Lacerda Fideles Microcontrolador PIC16F87x

Leia mais

Placa McLab1 Upgrade PIC16F84A p/ PIC16F62x

Placa McLab1 Upgrade PIC16F84A p/ PIC16F62x Placa Upgrade PIC16F84A p/ PIC16F62x Sumário 1. UTILIZANDO OS PICS 16F62X...3 1.1. INTRODUÇÃO...3 2. ATUALIZAÇÃO DO HARDWARE...4 2.1. UPGRADE DA PLACA MCLAB1 PARA TRABALHAR COM PIC16F627 / PIC16F628...4

Leia mais

8051 Estudo de Caso. Prof. Carlos E. Capovilla - CECS/UFABC 1

8051 Estudo de Caso. Prof. Carlos E. Capovilla - CECS/UFABC 1 8051 Estudo de Caso Prof. Carlos E. Capovilla - CECS/UFABC 1 8051 - Características O 8051 é membro da família MCS-51, e constitui o núcleo de todos os dispositivos MCS-51. Diversos fabricantes produzem

Leia mais

ELE Microprocessadores I. AULA 12 Arquitetura do Microprocessador Interface com as memórias

ELE Microprocessadores I. AULA 12 Arquitetura do Microprocessador Interface com as memórias ELE 1078 - Microprocessadores I AULA 12 Arquitetura do Microprocessador 8085 -Interface com as memórias 12.1 - Estrutura das Memórias Memória de Leitura / Escrita (R / W memory). Grupo de registradores;

Leia mais

Organização de Memórias

Organização de Memórias Intel 8051 O Intel 8051 é um microcontrolador de 8 bits que pertence a família MCS-51 da Intel e foi lançado em 1977. É tido como o microcontrolador mais popular do mundo, pois é muito versátil e possui

Leia mais

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

14/3/2016. Prof. Evandro L. L. Rodrigues SEL 433 APLICAÇÕES DE MICROPROCESSADORES I SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Prof. Evandro L. L. Rodrigues Tópicos do curso Conceitos básicos - Aplicações e utilizações dos microcontroladores

Leia mais

MSP430 - Arquitertura

MSP430 - Arquitertura Curso Técnico de Nível Médio Integrado Eletrônica - 8o Período Disciplina de Microcontroladores 2 (EL08D) Professor Gabriel Kovalhuk Email: kovalhuk@utfpr.edu.br Página pessoal: http://paginapessoal.utfpr.edu.br/kovalhuk

Leia mais

AAAA AAAA SEL Aplicação de Microprocessadores I. Aula 5 Temporização e Interrupção. Marcelo Andrade da Costa Vieira

AAAA AAAA SEL Aplicação de Microprocessadores I. Aula 5 Temporização e Interrupção. Marcelo Andrade da Costa Vieira SEL 0629 Aplicação de Microprocessadores I Aula 5 Temporização e Interrupção Marcelo Andrade da Costa Vieira Contagem de Tempo Contando tempo Existem 3 maneiras de contarmos tempo com os microcontroladores

Leia mais

Objetivos MICROCONTROLADORES HARDWARE. Microcontroladores I. Prof. Mauricio. Micro-I Prof. Mauricio 1. Microcontroladores PIC. Requisitos de Hardware

Objetivos MICROCONTROLADORES HARDWARE. Microcontroladores I. Prof. Mauricio. Micro-I Prof. Mauricio 1. Microcontroladores PIC. Requisitos de Hardware MICROCONTROLADORES HARDWARE 1 Prof. Mauricio Microcontroladores I Objetivos 2 Microcontroladores PIC Famílias PIC PIC 16F877A Tipos de Encapsulamentos Requisitos de Hardware Prof. Mauricio 1 Microcontroladores

Leia mais

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I SEL 433 APLICAÇÕES DE MICROPROCESSADORES I SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Apresentação do curso Critério de avaliação Média final = 0.8 * MP + 0.2 * ME onde MP = (P1 + P2) / 2 e ME = Notas

Leia mais

O microcontrolador Quatro partes importantes

O microcontrolador Quatro partes importantes SEL-433 APLICAÇÕES DE MICROPROCESSADORES I A escolha do microprocessador mais adequado depende basicamente da aplicação, e deve se levar em conta os seguintes critérios: Técnicos: Velocidade, capacidade

Leia mais

ARDUINO. Profº. Engº. Robson Dias Ramalho

ARDUINO. Profº. Engº. Robson Dias Ramalho ARDUINO Profº. Engº. Robson Dias Ramalho 3. Microprocessador (E/S) 4. Memória RAM (E/S) 5. Placa de vídeo (E/S) 8. Disco Rígido (E/S) 9. Mouse (Saída) 10. Teclado (E/S) 2. Placa mãe (barramento de dados)

Leia mais

Microprocessadores CPU. Unidade de Controle. Prof. Henrique

Microprocessadores CPU. Unidade de Controle. Prof. Henrique Microprocessadores CPU Unidade de Controle Prof. Henrique Roteiro Registradores; Unidade de Controle Níveis de Complexidade Introdução Um sistema microprocessado conta com diversos dispositivos para um

Leia mais

Aula 8 Microcontrolador 8051

Aula 8 Microcontrolador 8051 SEL 0415 Departamento de Engenharia Elétrica e de Computação EESC-USP SEL 0415 Introdução à Organização de Computadores Aula 8 Microcontrolador 8051 Profa Luiza Maria Romeiro Codá Autores: Prof Dr Marcelo

Leia mais

PCS 3115 Sistemas Digitais I

PCS 3115 Sistemas Digitais I PCS 35 Sistemas Digitais I Módulo 7 Introdução às Memórias Edison versão:. (maio de 28). Conceituação Dispositivos que armazenam dados em grandes quantidades. Flip-Flop s e registradores também têm esta

Leia mais

Aula 8 Microcontrolador 8051

Aula 8 Microcontrolador 8051 SEL 0415 Departamento de Engenharia Elétrica e de Computação EESC-USP SEL 0415 Introdução à Organização de Computadores Aula 8 Microcontrolador 8051 Profa. Luiza Maria Romeiro Codá Autores: Prof. Dr. Marcelo

Leia mais

Marcelo Fernandes Valter Rodrigues de Jesus Junior. Thermal Control

Marcelo Fernandes Valter Rodrigues de Jesus Junior. Thermal Control Marcelo Fernandes Valter Rodrigues de Jesus Junior Thermal Control Curitiba 2011 Índice Analítico 1. Resumo 4 2. Introdução 4 3. Objetivo 4 4. Fundamentos Teóricos 5 4.1 A família PIC 16f877/877A 6 5.

Leia mais

Microcontroladores 8051

Microcontroladores 8051 Microcontroladores 8051 1. Microcontroladores Microcontrolador é o nome dado ao componente que incorpora em um só "chip" todos os elementos necessários a um microcomputador. Deve ter : CPU, Memória e Interfaces

Leia mais

Parte 11 PROVAS ANTERIORES

Parte 11 PROVAS ANTERIORES Parte 11 PROVAS ANTERIORES 1. TESTES 2. RESPOSTAS DOS TESTES.. RESPOSTAS DAS. 6. RESPOSTAS DAS 1 2 1 TESTES 1 TESTES Teste 1 2012S1P1M TESTES A sigla PIC, da Microchip, significa: ( ) Program In-Chip (

Leia mais

Arquitetura do Disciplina de Microcontroladores. Prof. Ronnier Prof. Rubão

Arquitetura do Disciplina de Microcontroladores. Prof. Ronnier Prof. Rubão Arquitetura do 8051 Disciplina de Microcontroladores Prof. Ronnier Prof. Rubão Objetivo fim Entender as noções básicas de microprocessadores, microcontroladores e sistemas embarcados Estudar a arquitetura

Leia mais

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

Sistemas Microcontrolados. Período Aula 9. 1 Saulo O. D. Luiz Sistemas Microcontrolados Período 2009.2 Aula 9 1 Saulo O. D. Luiz Roteiro Módulos CCP Captura Comparação Modulação por largura de pulso (PWM) 2 Saulo O. D. Luiz Módulos CCP Os módulos CCP são formados

Leia mais

Arquitetura e Organização de Computadores. Processador Registrador Memória. Professor Airton Ribeiro

Arquitetura e Organização de Computadores. Processador Registrador Memória. Professor Airton Ribeiro Arquitetura e Organização de Computadores Processador Registrador Memória Professor Airton Ribeiro airton.ribeiros@gmail.com Processador A função de um computador é executar tarefas com a finalidade de

Leia mais

SEL-433 Aplicação de Microprocessadores I. Prof: Adilson Gonzaga

SEL-433 Aplicação de Microprocessadores I. Prof: Adilson Gonzaga SEL-433 Aplicação de Microprocessadores I Prof: Adilson Gonzaga HISTÓRICO Microprocessador Circuito integrado ( chip ) capaz de executar instruções. 1971 Intel Corporation lançou no mercado o microprocessador

Leia mais

Programa Trainee 2012 Módulo 4 Microcontroladores AVR

Programa Trainee 2012 Módulo 4 Microcontroladores AVR Programa Trainee 2012 Módulo 4 Microcontroladores AVR Conteúdo 01 Arquitetura de microcontroladores AVR Mayara de Sousa Prof. Leandro Schwarz Tempo Estimado 2 h.a. Projeto de Placas de Circuito Impresso

Leia mais

BANKSEL ADCON1 clrf ADCON1 bsf ADCON1,ADFM ; seta AD para VCC, GND e entradas analogicas, setando o bit ADFM configura como justificado a direita

BANKSEL ADCON1 clrf ADCON1 bsf ADCON1,ADFM ; seta AD para VCC, GND e entradas analogicas, setando o bit ADFM configura como justificado a direita include CONFIG 3F33 ;; configura automaticamente os bits do ocilador, watchdog timer, etc ;VARIÁVEIS CBLOCK 0x20 ; iniciando registradores que vão ser usados no programa ENDC tempo EQU 0x21

Leia mais

ULA (ALU) - UNIDADE DE ARITMÉTICA E LÓGICA

ULA (ALU) - UNIDADE DE ARITMÉTICA E LÓGICA FATEC SP - Análise e Desenvolv. De Sistemas - Ambiente Operacional PÁG. 1 II) ELEMENTOS DE HARDWARE: DIAGRAMA DE BLOCOS DE UM COMPUTADOR 1) CPU - UNIDADE CENTRAL DE PROCESSAMENTO RESPONSÁVEL PELA EXECUÇÃO

Leia mais

SEL-0415 Introdução à Organização de Computadores Aula 2 Prof. Dr. Marcelo Andrade da Costa Vieira

SEL-0415 Introdução à Organização de Computadores Aula 2 Prof. Dr. Marcelo Andrade da Costa Vieira SEL-0415 Introdução à Organização de Computadores Conceitos Básicos Aula 2 Prof. Dr. Marcelo Andrade da Costa Vieira INTRODUÇÃO n Organização Æ implementação do hardware, componentes, construção dos dispositivos

Leia mais

Arquitetura e Organização de Computadores. Processador Registrador Memória. Professor Airton Ribeiro

Arquitetura e Organização de Computadores. Processador Registrador Memória. Professor Airton Ribeiro Arquitetura e Organização de Computadores Processador Registrador Memória Professor Airton Ribeiro Processador A função de um computador é executar tarefas com a finalidade de resolver problemas. Uma tarefa

Leia mais

Microprocessadores e Microcontroladores. Professor Lucas Araujo do Nascimento

Microprocessadores e Microcontroladores. Professor Lucas Araujo do Nascimento Microprocessadores e Microcontroladores Professor Lucas Araujo do Nascimento REVISÃO Microprocessadores e Microcontroladores Microprocessadores e Microcontroladores COMPUTADOR Microprocessadores e Microcontroladores

Leia mais

Parte 9 PRÁTICAS DISPLAY DE 7 SEGMENTOS DISPLAY DE 7 SEGMENTOS DISPLAY DE 7 SEGMENTOS DISPLAY DE 7 SEGMENTOS DISPLAY DE 7 SEGMENTOS

Parte 9 PRÁTICAS DISPLAY DE 7 SEGMENTOS DISPLAY DE 7 SEGMENTOS DISPLAY DE 7 SEGMENTOS DISPLAY DE 7 SEGMENTOS DISPLAY DE 7 SEGMENTOS Parte 9 PRÁTICAS.... Exemplo ; Programa 67 - Display 7 segmentos Programa ; de iniciação PORTE,RE0 ; Habilita DPY BSF PORTE,RE ; Desabilita DPY BSF PORTE,RE ; Desabilita DPY Escolher um ou mais BSF PORTA,RA5

Leia mais

Hardware Parte I. Fábio Rodrigues de la Rocha

Hardware Parte I. Fábio Rodrigues de la Rocha Hardware Parte I Fábio Rodrigues de la Rocha PIC16F877 40 pinos Freqüência máxima 20MHz. Vias de programação 14 bits 33 portas configuráveis como entradas/saídas 15 interrupções diferentes Memória EEPROM

Leia mais

Objetivos MICROCONTROLADORES HARDWARE. Aula 03: Periféricos. Prof. Mauricio. MICRO I Prof. Mauricio 1. Arquitetura de um Microcontrolador

Objetivos MICROCONTROLADORES HARDWARE. Aula 03: Periféricos. Prof. Mauricio. MICRO I Prof. Mauricio 1. Arquitetura de um Microcontrolador MICROCONTROLADORES HARDWARE 1 Prof. Mauricio Aula 03: Objetivos 2 Arquitetura de um Microcontrolador Unidade Central de Processamento Portas de Entrada e Saída Porta Serial Temporizador / Contador Conversor

Leia mais

Microprocessadores. Organização de Memória

Microprocessadores. Organização de Memória Microprocessadores Organização de Memória Prof. Clayrton Henrique rev. 01 fev. 2016 Roteiro Introdução; RAM Interna; Parte de Dados; Parte de SFR; Registradores; Assembly; Referências... 2 Introdução RAM

Leia mais

UNIVERSIDADE PAULISTA (UNIP) Curso de Engenharia Mecatrônica Disciplina: Microprocessadores e Microcontroladores (MM) LISTA III

UNIVERSIDADE PAULISTA (UNIP) Curso de Engenharia Mecatrônica Disciplina: Microprocessadores e Microcontroladores (MM) LISTA III UNIVERSIDADE PAULISTA (UNIP) Curso de Engenharia Mecatrônica Disciplina: Microprocessadores e Microcontroladores (MM) LISTA III Orientações: Esta lista de Exercícios deve ser entregue juntamente com a

Leia mais

SEL-614 MICROPROCESSADORES E APLICAÇÕES. Adilson Gonzaga

SEL-614 MICROPROCESSADORES E APLICAÇÕES. Adilson Gonzaga SEL-614 MICROPROCESSADORES E APLICAÇÕES Prof: Adilson Gonzaga HISTÓRICO Microprocessador Circuito integrado ( chip ) capaz de executar instruções. 1971 Intel Corporation lançou no mercado o microprocessador

Leia mais

KIT DIDÁTICO PIC-2377

KIT DIDÁTICO PIC-2377 KIT DIDÁTICO PIC-77... Módulo PIC-77 Recursos internos da MCU Encapsulamento DIP40. 5 instruções (RISC). pinos de I/O configuráveis. 56 bytes de EEPROM para dados de 8 bits. 8k de memória flash para o

Leia mais

Introdução ao Microcontrolador PIC

Introdução ao Microcontrolador PIC Introdução ao Microcontrolador PIC Nikolas Libert Aula 11 Eletrônica Digital ET52C Tecnologia em Automação Industrial Memórias Memórias Memória de dados Núcleo do μc Memória de código Normalmente os microcontroladores

Leia mais

Interrupções e Timers

Interrupções e Timers Interrupções e timers Guilherme Luiz Moritz 1 1 DAELT - Universidade Tecnológica Federal do Paraná 4 de dezembro de 2013 Objetivos Compreender o funcionamento de um display de sete segmentos Compreender

Leia mais

Estrutura de um Computador

Estrutura de um Computador Departamento de Engenharia Elétrica e de Computação EESC-USP SEL-0415 Introdução à Organização de Computadores Estrutura de um Computador Aula 6 Profa. Luiza Maria Romeiro Codá 1 INTRODUÇÃO Organização

Leia mais

Sistemas Microcontrolados

Sistemas Microcontrolados Sistemas Microcontrolados Aula 5: Interrupções e Temporizadores Marco Jose da Silva mdasilva@utfpr.edu.br Interrupções Interrupção é um evento externo ao programa que provoca: A parada da sua execução;

Leia mais

Família 8051 (introdução) 2011/1

Família 8051 (introdução) 2011/1 Família 8051 (introdução) 2011/1 Refresh Microprocessador vs. microcontrolador. Periféricos built-in. Single-chip computer 2 Objetivos Histórico Modelos da família original Principais características Diagrama

Leia mais

ENGENHARIA DE SISTEMAS MICROPROCESSADOS

ENGENHARIA DE SISTEMAS MICROPROCESSADOS ENGENHARIA DE SISTEMAS MICROPROCESSADOS Prof. Pierre Vilar Dantas Turma: 0040-A Horário: 4N Aula 01-26/07/2017 Plano de ensino Professor www.linkedin.com/in/pierredantas/ TÓPICOS Conceitos gerais. Evolução

Leia mais

14/3/2016. A escolha do microprocessador mais adequado depende basicamente da aplicação, e deve se levar em conta os seguintes critérios:

14/3/2016. A escolha do microprocessador mais adequado depende basicamente da aplicação, e deve se levar em conta os seguintes critérios: SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Prof. Evandro L. L. Rodrigues A escolha do microprocessador mais adequado depende basicamente da aplicação, e deve se levar em conta os seguintes critérios: Técnicos:

Leia mais

6. Estrutura do Programa em Assembly

6. Estrutura do Programa em Assembly 6. Estrutura do Programa em Assembly Professor: Vlademir de Oliveira Disciplina: Microcontroladores e DSP A estrutura se baseia em um formato sugerido pela própria Microchip para programação da família

Leia mais

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

1.1 Noções básicas sobre interrupções em Microcontroladores Capítulo 1 Interrupções 1.1 Noções básicas sobre interrupções em Microcontroladores PIC Interrupções é obrigação em uma programação profissional. Quando um evento ocorrer, uma bandeira de interrupção será

Leia mais

Sistemas Digitais e Microcontrolados

Sistemas Digitais e Microcontrolados UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE ELETROTÉCNICA CURSO DE ENGENHARIA INDUSTRIAL ELÉTRICA TECNOLOGIA EM AUTOMAÇÃO INDUSTRIAL Sistemas Digitais e Microcontrolados Contador/Temporizador

Leia mais

Prof. Adilson Gonzaga

Prof. Adilson Gonzaga Prof. Adilson Gonzaga Outras características importantes em Microprocessadores/Microcontroladores Redução de Potência de Operação As versões CHMOS (89C51, 89S52, etc ) da família MCS-51 possuem dois modos

Leia mais

DOUGLAS DAL POZZO DIEGO VITTI

DOUGLAS DAL POZZO DIEGO VITTI DOUGLAS DAL POO DIEGO VITTI O que são MicroControladores Microcontralor é um componente cujo núcleo possui os mesmos blocos funcionais de um microprocessador. No entanto, sua aplicação é um pouco mais

Leia mais

SSC512 Elementos de Lógica Digital. Memórias. GE4 Bio

SSC512 Elementos de Lógica Digital. Memórias. GE4 Bio Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Elementos de Memórias GE4 Bio GE4Bio Grupo de Estudos em Sinais Biológicos Prof.Dr. Danilo

Leia mais

No. de bits. O primeiro IBM PC foi construído com o 8088 (versão de 8 bits do 8086).

No. de bits. O primeiro IBM PC foi construído com o 8088 (versão de 8 bits do 8086). Cap2.1 2. Arquitetura do microprocessador 8086 2.1 A família Intel iapx86 (ou 80X86) Processador Co-proc. Ano de introdução No. de bits No. de transistores Velocidade (MHz) 4004-1971 4 2.205-8008 - 1972

Leia mais

Aula 17: Organização de Computadores

Aula 17: Organização de Computadores Aula 17: Organização de Computadores Introdução à Organização de Computadores Rodrigo Hausen hausen@usp.br 07 de outubro de 2011 http://cuco.pro.br/ach2034 Rodrigo Hausen (hausen@usp.br) Aula 17: Organização

Leia mais

SISTEMAS MICROCONTROLADOS

SISTEMAS MICROCONTROLADOS SISTEMAS MICROCONTROLADOS UTFPR Código: EL54E Turma: N11/E11 Prof. Sérgio Moribe Colaboração: Prof. Heitor S. Lopes Prof. Rubens Alexandre de Faria Email: smoribe@utfpr.edu.br Site: pessoal.utfpr.edu.br/smoribe

Leia mais

Tópicos: 1 - Modos de endereçamento do Pilha e instruções de Pilha. 3 - Instruções que usam pilha: - instrução CALL - instrução RET

Tópicos: 1 - Modos de endereçamento do Pilha e instruções de Pilha. 3 - Instruções que usam pilha: - instrução CALL - instrução RET Tópicos: 1 - Modos de endereçamento do 8051 2 - Pilha e instruções de Pilha 3 - Instruções que usam pilha: - instrução CALL - instrução RET 4 - Interrupção 1 - Modos de Endereçamento do 8051 Os modos de

Leia mais

SEMINÁRIO ASSEMBLY: Arquitetura PIC

SEMINÁRIO ASSEMBLY: Arquitetura PIC UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO TECNOLÓGICO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA Curso de Ciências da Computação SEMINÁRIO ASSEMBLY: Arquitetura PIC DOUGLAS DAL POZZO DIEGO VITTI Florianópolis

Leia mais

Projeto de Sistemas Embarcados

Projeto de Sistemas Embarcados Projeto de Sistemas Embarcados Pós-Graduação em Engenharia Elétrica Prof. Dr. Joselito A. Heerdt Joselito.heerdt@.udesc.br PLANEJAMENTO 1. Introdução 2. O projeto de sistemas 3. Projeto de hardware 4.

Leia mais

07/06/2015. Outras características importantes em Microprocessadores/Microcontroladores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

07/06/2015. Outras características importantes em Microprocessadores/Microcontroladores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Redução de Potência de Operação As versões CHMOS (89C51, 89S52, etc ) da família MCS-51 possuem dois modos de controle de redução de potência de operação do chip.

Leia mais

Período Saulo O. D. Luiz

Período Saulo O. D. Luiz Sistemas Microcontrolados Período 2009.2 Aula 2 1 Saulo O. D. Luiz Roteiro Características de um Microcontrolador 2 Saulo O. D. Luiz Características de um Microcontrolador Microcontrolador de fabricantes

Leia mais

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

Sistemas Microcontrolados. Período Aula 6. 1 Saulo O. D. Luiz Sistemas Microcontrolados Período 2009.2 Aula 6 1 Saulo O. D. Luiz Roteiro Entrada e saída Portas 2 Saulo O. D. Luiz Porta Porta um registrador conectado aos pinos do microcontrolador 3 Saulo O. D. Luiz

Leia mais

ELE Microprocessadores I

ELE Microprocessadores I ELE 1078 - Microprocessadores I AULA 13 Conjunto de Instruções do Microprocessador 8085A - Entrada e Saída (I/O) - 13.1 - Grupos de Instruções As instruções no 8085 são distribuídas em 5 grupos: Grupo

Leia mais

Organização de Sistemas de Computadores

Organização de Sistemas de Computadores Organização de Sistemas de Computadores Cap. 2 (Tanenbaum), Cap. 3 (Weber) 2.1 Processadores 1 CPU UC = buscar instruções na memória principal e determinar o seu tipo ULA = adição e AND Registradores =

Leia mais

Sistemas Operacionais. Conceitos de Hardware

Sistemas Operacionais. Conceitos de Hardware Sistemas Operacionais Conceitos de Hardware Sumário 1. Introdução 7. RISC e CISC 2. Processador 1. Operações de Processamento 2. Unidade de Controle 3. Ciclos de uma Instrução 3. Memória 1. Memória Principal

Leia mais

Sistemas Microprocessados

Sistemas Microprocessados Sistemas Microprocessados satoutfpredubr http://pessoal.utfpr.edu.br/sato/ A satoutfpredubr Sobre o material Essas transparências foram baseadas no manual do ATmega8 da Atmel,

Leia mais

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

Organização e Arquitetura de Computadores INTRODUÇÃO Organização e Arquitetura de Computadores INTRODUÇÃO A Arquitetura de Computadores trata do comportamento funcional de um sistema computacional, do ponto de vista do programador (ex. tamanho de um tipo

Leia mais