Índice
Transcrição
Índice
Índice Objetivo..................................................................................................................................................... 3 Dia 18 de fevereiro de 2013. .................................................................................................................... 4 Apresentação – conversa com os alunos...........................................................................................................4 Dia 25 de fevereiro de 2013. .................................................................................................................... 5 Revisão de dados ligados à eletrônica digital...................................................................................................5 Quanto ao grau de integração:..........................................................................................................................................5 SSI (Small Scale integration, Pequena Escala de Integração) 10 portas / C.I. ......................................................5 MSI (Medium Scale integration, Média Escala de Integração) 10 a 100 portas / C.I. ...........................................5 LSI (Large Scale integration, Grande Escala de Integração) 100 a 1000 portas / C.I. ..........................................5 GSI (Great Scale integration, Escala de Integração muito Grande) >1000 portas / C.I. .......................................6 Dia 04 de março de 2013.......................................................................................................................... 7 Uso de transistores bipolar:...............................................................................................................................7 Uso de transistores MOS (Metal Oxide Semiconductor Logic, Lógica de MOSFETs): ..............................7 DTL – Diode Transistor Logic (lógica com diodos e transistores) ..................................................................................7 DCTL (Direct-Coupled Transistor Logic) ...................................................................................................................7 RTL (Resistor-Transistor Logic) ..................................................................................................................................8 RCTL (Resistor-Capacitor Transistor Logic) .............................................................................................................8 TTL (Transistor-Transistor Logic) ..............................................................................................................................9 Dia 07 de março de 2013........................................................................................................................ 10 MOS (Metal-Oxide Semiconductor)..............................................................................................................10 MOSFET........................................................................................................................................................................10 BiCMOS ........................................................................................................................................................................10 Parâmetros elétricos: .......................................................................................................................................11 Terminologia:.................................................................................................................................................................11 Índices:...........................................................................................................................................................................11 Níveis de tensão: ............................................................................................................................................................12 Tempos:..........................................................................................................................................................................12 Dia 11 de março de 2013........................................................................................................................ 13 Ruído:.............................................................................................................................................................................13 FAN IN ..............................................................................................................................................................13 FAN OUT..........................................................................................................................................................13 Tipos de memórias ................................................................................................................................. 14 ROM...................................................................................................................................................................14 PROM ................................................................................................................................................................14 EPROM .............................................................................................................................................................14 EEPROM ou E2PROM....................................................................................................................................15 RAM...................................................................................................................................................................15 FLASH ..............................................................................................................................................................15 Processador ............................................................................................................................................ 15 Arquitetura VON NEUMANN x HARVARD ....................................................................................... 15 -Von Neumann: ................................................................................................................................................15 -Harvard: ..........................................................................................................................................................16 -Von Neumann x Harvard...............................................................................................................................17 Equipamentos que utilizam a arquitetura Harvard: ....................................................................................17 Dia 18 de março de 2013........................................................................................................................ 19 Microprocessadores x Microcontroladores ...................................................................................................19 Bits, Flags, Nibles, Bytes e Words...................................................................................................................19 Bit...................................................................................................................................................................................19 Flag ................................................................................................................................................................................19 Nibles .............................................................................................................................................................................19 Byte ................................................................................................................................................................................19 Word ..............................................................................................................................................................................19 - PIC16F877A ...................................................................................................................................................20 CPU RISC de alta performance......................................................................................................................20 Características dos periféricos. .......................................................................................................................20 Dia 25 de março de 2013........................................................................................................................ 21 Características analógicas. ..............................................................................................................................21 Dia 27 de maio de 2013.......................................................................................................................... 22 Características especiais do PIC16F877A......................................................................................................22 - Periféricos do PIC16F877A...........................................................................................................................22 Nomenclatura dos pinos ..................................................................................................................................23 - Estrutura interna do PIC16F877A...............................................................................................................25 Alguns exemplos do compartilhamento de pinos ..........................................................................................26 O que é ciclo de máquina?...............................................................................................................................29 Memória de programa.....................................................................................................................................29 - Vetor de reset. ................................................................................................................................................30 - Vetor de interrupção. ....................................................................................................................................30 - Tamanho da memória e páginas de memória. ............................................................................................30 - Pilha (stack). ...................................................................................................................................................31 Set de instruções. ..............................................................................................................................................31 Objetivo. No dicionário o significado da palavra professor é “aquele que ensina”, sendo assim poderia dizer que meu objetivo é ensinar-lhes. No entanto prefiro o objetivo de compartilhar, compartilhar o meu conhecimento, ainda que pequeno diante da vasta gama de tecnologias que a ciência da eletrônica tem a nos oferecer nos dias de hoje, não sendo um conhecedor de todos os assuntos dessa ciência, sempre busco de maneira incansável mais conhecimento e sempre que possível busco também uma oportunidade de compartilhar esse conhecimento. Sempre achei que enquanto compartilharmos o pouco que conhecemos, sempre teremos um pouco para compartilhar e quando o fazemos, somamos, multiplicamos e melhoramos o nosso conhecimento. Hoje uma das oportunidades que tenho para compartilhar o meu conhecimento são os alunos do 4º Eletrônica Noturno do Colégio Clovis Bevilácqua no ano letivo de 2013, me esforço para conquistar esse objetivo, sempre de maneira em que possa respeitar e ser respeitado no relacionamento aluno e professor, ensinar e aprender sempre que possível e ter na consciência a certeza de ter me empenhado ao máximo para atender os objetivos de aprendizado dos alunos, mais ainda, que esses possam aplicar esse conhecimento em suas promissoras carreiras nessa, que eu acho fascinante, ciência da eletrônica. Dia 18 de fevereiro de 2013. Apresentação – conversa com os alunos. Neste dia houve uma conversa com alunos para conhecimento e esclarecimento de alguns tópicos como: - Proibição do uso do celular ou outros que façam uso de fones de ouvido ou reprodução de tipos diversos de mídia na sala de aula, proibição essa imposta pelos órgão competentes da área da educação e que o colégio bem como seus colaboradores devem fazer cumprir. - Comportamento, procurar dar o exemplo de conduta e esperar ser seguido. - A apresentação propriamente dita, vestir-se adequadamente e proibição do uso de boné, gorro, toca ou outro tipo qualquer de acessório para uso na cabeça, também essas são regras . - Possíveis métodos de avaliação como trabalhos, chamada oral ou outros. Dia 25 de fevereiro de 2013. Revisão de dados ligados à eletrônica digital. Iniciada uma revisão dos conceitos de tecnologias de fabricação de chips digitais, portas lógicas, tipos de memórias, entre outras com finalidade única de relembrar a matéria. Com relação às tecnologias de construção de chips digitais essa se divide basicamente pelo seu grau de integração e tecnologia de fabricação entre outras, veja algumas dessas classificações: Quanto ao grau de integração: Esta classificação é determinada pela quantidade de portas lógicas que são inseridos no chip que irá compor o CI a ser classificado, essa classificação está detalhada conforme as siglas usadas abaixo: SSI (Small Scale integration, Pequena Escala de Integração) 10 portas / C.I. Para os CIs com pequena escala de integração podemos citar como exemplos alguns CIs de portas lógicas das séries TTL e CMOS como: TTL 7400: Quatro portas NAND de duas entradas 7401: Quatro portas NAND de duas entradas com coletor aberto 7402: Quatro portas NOR de duas entradas 7403: Quatro portas NAND de duas entradas com coletor aberto CMOS 4000: Dual tri-Input NOR Gate and Inverter 4001: Quad 2-input NOR gate 4002: Dual 4-input NOR gate MSI (Medium Scale integration, Média Escala de Integração) 10 a 100 portas / C.I. Para os CIs com média escala de integração podemos citar também alguns CIs de funções básicas, porém um pouco mais elaborados como alguns contadores, registradores de deslocamento (shift-registers) entre outros que ultrapassam facilmente as 10 portas lógicas como a seguir: TTL 7445: Decodificador BCD para Decimal 7446: Decodificador BCD para 7 segmentos com saídas de 30V com coletor aberto 7470: Flip-Flop J-K com Preset e Clear com porta AND ativado por borda de subida CMOS 4014: 8-stage shift register 4008: 4 bit adder 4021: 8-bit static shift register LSI (Large Scale integration, Grande Escala de Integração) 100 a 1000 portas / C.I. Nesta categoria de CIs continuam os CIs dedicados a funções exclusivas como contadores, registradores de deslocamentos e alguns decodificadores mas também já aparecem alguns CIs mais avançados como CIs dedicados à comunicação serial entre outros, veja alguns exemplos: 8255: PPI – Programable Peripheral Interface, interface de periféricos programável. 8251: USART – Universal Synchronous Asynchronous Receiver Transmiter, Receptor e transmissor síncrono ou assíncrono universal. GSI (Great Scale integration, Escala de Integração muito Grande) >1000 portas / C.I. Nesta categoria encontramos os mais diversos tipos de CIs, na sua maioria composto por CIs de memórias, microcontroladores, FPGA entre outros, alguns exemplos: PIC16F877A – Microcontrolador da MICROCHIP – alvo do nosso estudo 80C52 – Microcontrolador da INTEL Dia 04 de março de 2013. Quanto à tecnologia de fabricação essa se divide basicamente em duas classes, sendo que uma faz uso de transistores BIPOLAR e a outra faz uso de transistores MOS. Uso de transistores bipolar: - DTL - DCTL - RTL - RCTL - HTL - TTL - ECL (Diode Transistor Logic, Lógica de Diodos e Transistores); (Direct Coupled Transistor Logic, Lógica de Transistores diretamente acoplados); (Resistor Transistor Logic, Lógica de Transistores e Resistores); (Resistor Capacitor Transistor Logic, RTL com Capacitores); (High Threshold Logic, Lógica de alto Limiar); (Transistor Transistor Logic, Lógica Transistor-transistor); (Emitter Coupled Logic, Lógica de Emissores Acoplados);. Uso de transistores MOS (Metal Oxide Semiconductor Logic, Lógica de MOSFETs): - pMOS (MOSFET canal P); - nMOS (MOSFET canal N); - CMOS (Complementary MOS Logic, Lógica MOS complementar) ® Há sempre um pMOS e um nMOS em arquitetura complementar. A seguir algumas das principais técnicas de construção de CIs digitais: DTL – Diode Transistor Logic (lógica com diodos e transistores) Figura 01 DCTL (Direct-Coupled Transistor Logic) A família DCTL (Lógica de transistores diretamente acoplados) permitem alimentação de baixa tensão, em torno de 3V. Figura 02 Fan-out igual a 2 (limitação), baixa potência em função do menor números de resistores internos, imunidade ao ruído baixa, em função do fato de que qualquer variação da tensão de entrada poderá fazer, facilmente, com que um dos transistores saia da situação de corte e entre em situação de saturação. RTL (Resistor-Transistor Logic) A família RLT (Lógica de transistores e resistores) é uma das primeiras famílias transpostas para os circuitos integrados. Essa família é semelhante à família DCTL somente que seus circuitos não possuem acoplamento direto dos transistores. Analogamente à família DCTL, possui circuitos simples e de fácil compreensão. Figura 03 Características gerais: Fan-out igual a 5, potência dissipada por bloco da ordem de 10mW,devido à introdução dos resistores de base, tem-se maior imunidade ao ruído que na família DCTL e tempo de atraso típico da ordem de 12ns. A maior imunidade ao ruído é devido ao fato de o ruído, para polarizar a junção base-emissor do transistor, deve perder energia sobre o resistor de 450 ohms. A tensão associada a esta perda é justamente o incremento de imunidade a ruídos que esta família tem em relação ao circuito correspondente sem resistor. RCTL (Resistor-Capacitor Transistor Logic) A família RCTL (Lógica de Transistor-resistor-capacitor) é semelhante a RTL, apenas com a introdução de capacitores para diminuir o tempo de atraso, ou seja, aumentar a velocidade de comutação. Figura 04 O efeito dos capacitores é diminuir o tempo de atraso, pois quando se aplica um degrau de tensão em um capacitor, o mesmo comporta-s e como um curto-circuito no instante inicial. TTL (Transistor-Transistor Logic) A família TTL (Lógica de Transistores Bipolares) é derivada da família DTL (vide comparação na figura), diferenciando-se no uso de Transistores Multiemissores, o que resulta em uma série de vantagens ,tais como: eliminação da rede de diodos e resistores de entrada, maior velocidade de comutação e ainda, maior facilidade de construção em escala integrada, tornando-se menor o custo por unidade. Figura 05 Entrada em aberto – na tecnologia TTL uma entrada em aberto é considerada como se ligada em nível lógico 1, porém sua alta impedância de entrada a torna sensível a ruídos. Saída – esta pode ser complementar ou coletor aberto. Características Principais da Família TTL - Bloco lógico básico: porta NE - Fan-out igual típico de 10 para - O consumo dessa família é da ordem de 10mW por porta na versão mais comum. - A imunidade ao ruído é relativamente boa,em torno de 0,4 V. - O tempo de atraso de propagação é da ordem de 10 ns na versão mais comum. Dia 07 de março de 2013. Algumas variações da família TTL: Tabela 01 MOS (Metal-Oxide Semiconductor) A família MOS (Lógica de transistores MOS-FET) são circuitos formados a partir de transistores MOSFETs, transistores de efeito de campo, construídos a partir da tecnologia MOS (semicondutor de óxido metálico). Ilustra-se abaixo estes transistores. MOSFET Figura 06 Para o transistor MOS canal n (nMOS) enquanto VGS <= 0V o transistor está cortado. Quando a tensão VGS for de aproximadamente 1,5 V começa a formação de um canal condutivo entre o dreno e a fonte (source). Quanto maior o valor de VGS ® maior o canal de condução e, portanto, menor a resistência entre dreno e fonte. Trabalhando em condições de corte e saturação tem-se resistências de corte de 10 GW e de saturação de 1 kW. O transistor pMOS (MOSFet canal p) funciona de maneira complementar de modo que podemos fazer o seguinte resumo. Nível lógico zero no gate faz o pMOS conduzir e o nMOS cortar, enquanto que o nível lógico um no gate faz o pMOS cortar e o nMOS conduzir. O transistor nMOS é 2 vezes mais rápido que o pMOS (maior nível de integração) (**) A tecnologia MOS apresenta como característica uma maior densidade de integração que os bipolares, de forma a conseguirmos um grande número de componentes dentro de um mesmo encapsulamento. Graças a esta característica, têm grande aplicação em circuitos de memórias de grande capacidade e microprocessadores. Como vantagens desta família temos o baixo custo de fabricação; menor consumo (não utiliza resistores na fabricação de C.I.'s. Os transistores fazem o papel de resistores); menor espaço ocupado (ótimo para C.I.'s com alta escala de integração como memórias e microprocessadores). A principal desvantagem desta família é sua menor velocidade de operação. BiCMOS BiCMOS combina as vantagens das tecnologias Bipolar (Alta velocidade) e CMOS (Baixo Consumo). Esta tecnologia de alta performance tem uma maior facilidade de projeto (projeta-se de modo análogo aos de baixa performance), uma vez que a minimização dos problemas de ruído intrínseco, ruídos de chaveamento e consumo em altas freqüências, juntamente com outras características desta tecnologia híbrida, reduz os esforços de projeto. Algumas dos vantagens desta tecnologia são: alta velocidade; consumo reduzido tanto em operação dinâmica quanto estática; Saídas bipolares que provêem 48-64 mA, necessárias para aplicações avançadas em barramentos; Ruído de chaveamento menor; saída puramente bipolar com requisitos de corrente e ruídos de acordo com as necessidades atuais; Os estágios de entrada e funcional utilizam principalmente tecnologia CMOS. O BiCMOS avançado (ABT) tem sua performance melhorada e ainda pode ser integrado a uma escala pouco menor que a metade da escala da BiCMOS normal. Parâmetros elétricos: Em sistemas digitais, mais precisamente em manuais (DATA SHEET) de componentes ou sistemas digitais existem alguns termos que são amplamente usados para indicação das características elétricas do componente em estudo. Algumas delas são: Terminologia: -I - intensity of current; -V - voltage (tensão); -t - time (tempo); Índices: -I -O -H -L -a -p -c - input (entrada); - output (saída); - high (1); - low (0); - delay (atraso); - propagation (propagação); - comutation (comutação). As combinações das terminologias e índices podem resultar em termos como os que seguem abaixo: Corrente de entrada para nível alto; - IIH: - IIL: Corrente de entrada para nível baixo; - IOH: Corrente de saída para nível alto; - IOL: Corrente de saída para nível baixo; - VIH: Tensão de entrada para nível alto; - VIL: Tensão de entrada para nível baixo; - VOH: Tensão de saída para nível alto; - VOL: Tensão de saída para nível baixo; Níveis de tensão: Gráfico 01 Tempos: - ta: tempo de atraso de propagação (tempo que uma saída lógica leva para “responder” a uma informação inserida na entrada); - tc: tempo de comutação ou de chaveamento - é o tempo de transição entre níveis de tensões de uma unidade lógica. Pode-se ainda classificar a comutação em ts, tempo de subida, o tempo que o dispositivo leva para ir do nível zero para o nível 1 e td, tempo de descida, tempo que leva para comutar de um estado lógico 1 para o estado 0. Gráfico 02 Dia 11 de março de 2013. Ruído: Outras características importantes em sistemas digitais é a imunidade a ruídos e a capacidade de fornecer ou consumir corrente. Gráfico 03 Corrente de entrada e saída. FAN IN - O termo FAN IN significa leque de entrada, isto é, o conjunto das informações das correntes de entrada. O FAN IN é dado normalmente em amperes, nas formas de corrente de entrada para nível alto, FAN IN 1 ou IIH e corrente de entrada para nível baixo, FAN IN 0 ou IIL. As correntes de entradas significam as correntes quiescentes, ou seja, as correntes necessárias para o perfeito funcionamento das entradas (quando falarmos das correntes de saídas nós veremos que estas são fornecidas com seus valores máximos). Na figura abaixo, ilustra -se este conceito. Figura 07 FAN OUT O termo FAN OUT significa leque de saída e corresponde ao conjunto de informações sobre as correntes de saída. FAN OUT, ao contrário de FAN IN, não é fornecido em amperes, mas sim, convencionalmente, como o número de entradas-padrão (da mesma família) que uma saída consegue excitar com garantia. É um número adimensional e tem um sentido estritamente doméstico (não tem sentido falar sobre FAN OUT entre famílias diferentes, embora possamos calcular facilmente a capacidade excitatória de uma família para outra). Por exemplo, se tomarmos a porta desenhada acima, podemos dizer que o FAN OUT daquela família é 3 se a saída for capaz de drenar 3x1,3mA das três entradas a ela ligadas e fornecer 3x1,5uA para as mesmas (vide figura abaixo). Figura 08 Alguns tipos de tecnologia de circuitos digitais: Fontes: http://www.pessoal.utfpr.edu.br/bertoldo/Downloads/FamiliasDig.PDF Tipos de memórias Em eletrônica digital a memória é um componente indispensável, a mesma pode ser usada para armazenar uma infinidade de informações, desde o programa até dados que não podem ser perdidos em eventual queda de energia ou mesmo pelo desligamento temporário do circuito em questão, para isso existem vários tipos de memória, sendo os principais: ROM – Read Only Memory, memória apenas de leitura, esta memória, como o nome já diz é apenas de leitura, normalmente só é produzida em grande escala e sai de fabrica com o conteúdo já definido. PROM – Prgramable Read Only Memory, memória apenas de leitura com possibilidade de uma única gravação, ou seja, saí de fabrica sem conteúdo, mas pode, com equipamento adequado, ser gravada uma única vez e manterá seus dados para posterior leitura, o equipamento para gravação da memória é um gravador e normalmente possui um firmware que atende as características de gravação da memória determinadas pelo fabricante, normalmente uma tensão mais elevada em um determinado pino habilita a gravação. EPROM – Eraseble Programable Read Only Memory, memória apenas de leitura, mas que pode, com equipamento adequado, ser gravado e apagado, como a PROM para gravar é usado um gravador de memória como o citado anteriormente e pode ser apagada por exposição do chip a luz ultravioleta, este chip possui uma janela de cristal de quartzo que expõem o chip à luz ambiente. EEPROM ou E2PROM – Electrically Eraseble Programable Read Only Memory, memória apenas de leitura, mas que pode, com equipamento adequado, ser gravado e apagado, diferentemente da EPROM esta pode ser apagada eletricamente, sem a necessidade de exposição à luz ultravioleta, normalmente são gravadas com gravadores específicos, mas pode ser implementado no hardware recurso para que a mesma seja gravada pelo próprio hardware em que ela é usada, porém sua velocidade de gravação costuma ser bastante lenta. RAM – Random Access Memory, memória de acesso randômico, esta é uma memória que pode ser acessada de maneira aleatória (randômica), ser lida e gravada a qualquer momento pela aplicação, diferente das anteriores esta é uma memória volátil, ou seja, se a mesma for desenergisada seus dados serão perdidos. Normalmente são as memórias com maior velocidade de operação tanto em escrita como em leitura. FLASH – Flash é uma evolução da memória EEPROM, mas por uma questão de reserva de uso do nome EEPROM foi criado o termo flash, o nome se deve ao fato de que entre as melhorias presentes nessa versão está o aumento de velocidade da mesma, uma das técnicas usadas para aumentar a velocidade de gravação é o uso de um buffer de dados em memória RAM que é mais rápida, ou seja, os dados são armazenados nesse buffer e depois são gravados em lote na memória não volátil. Processador O processador é a unidade central de processamento de um computador ou sistema computacional, normalmente é um circuito integrado que executa instruções de máquina, realizando diversos cálculos e tomadas de decisão, o que o torna o cérebro do computador, pois todas as tarefas são executas por ele. Este componente processa os dados que recebe, transformando-os em outros dados que chamamos de informação, todo processamento realizado é controlado por um programa desenvolvido por um programador ou equipe desses a fim de realizar uma determinada tarefa com precisão e velocidade. O processador também é denominado CPU (Central Processing Unit) ou UCP (Unidade Central de Processamento). Microprocessador é o nome dado ao processador usado em PCs (Computadores Pessoais), servidor, notebook, Workstation e mainframe usados por pessoas, empresas e instituições em geral. Arquitetura VON NEUMANN x HARVARD -Von Neumann: A Arquitetura de Von Neumann (de John Von Neumann), é uma arquitetura de computador que se caracteriza pela possibilidade de uma máquina digital armazenar seus programas no mesmo espaço de memória que os dados, podendo assim manipular tais programas e dados com um único barramento. A máquina proposta por Von Neumann reúne os seguintes componentes: (I) uma memória, (II) uma unidade aritmética e lógica (ALU), (III) uma unidade central de processamento (CPU), composta por diversos registradores, e (IV) uma Unidade de Controle (CU), cuja função é a mesma da tabela de controle da Máquina de Turing universal: buscar um programa na memória, instrução por instrução, e executá-lo sobre os dados de entrada. Cada um dos elementos apresentados é realizado à custa de componentes físicos independentes, cuja implementação tem variado ao longo do tempo, conforme a evolução das tecnologias de fabricação, desde os relés eletromagnéticos, as válvulas, até aos semicondutores, abrangendo os transistores e os circuitos integrados, com média, alta ou muito alta densidade de integração (MSI medium scale, LSI - large scale, ou VLSI - very large scale integration), medida em termos de milhões transistores por pastilha de silício. As interações entre os elementos exibem tempos típicos de instrução que também têm variado ao longo do tempo, conforme as tecnologias de fabricação. Atualmente, as CPUs processam instruções sob o controle de relógios cujos períodos típicos são da ordem de menos de 1 nanosegundo, ou seja, 1−9 segundos. O mesmo vem acontecendo com as memórias que tem velocidade de barramentos de 800MHz a 2,4GHz. Outras tecnologias são as portas USB, que na sua versão mais recente USB3.0 pode transferir dados a uma velocidade de até 4,8Gbps. -Harvard: A Arquitetura de Harvard baseia-se em um conceito mais recente que a de Von-Neumann, tendo vindo da necessidade de por o microcontrolador para trabalhar mais rápido. É uma arquitetura de computador que se distingue das outras por possuir duas memórias diferentes e independentes em termos de barramento e ligação ao processador. Baseia-se na separação de barramentos de dados das memórias onde estão as instruções de programa e das memórias de dados, permitindo que um processador possa acessar as duas simultaneamente, obtendo um desempenho melhor do que a da Arquitetura de Von Neumann, pois pode buscar uma nova instrução enquanto executa outra. A principal vantagem desta arquitetura é dada pela dupla ligação às memórias de dados e programa (código), permitindo assim que o processador leia uma instrução ao mesmo tempo em que faz um acesso à memória de dados. -Von Neumann x Harvard Nessas distintas arquiteturas, temos vantagens e desvantagens, como se pode observar a seguir: Arquitetura tipo Harvard: Caminhos de dados e de instrução distintos, dessa forma, seus componentes internos têm a seguinte disposição. Arquitetura Von-Neumann, processa uma única informação por vez, visto que nessa tecnologia as instruções e dados percorrem o mesmo barramento, o que torna o processo lento em relação à arquitetura Harvard. - Von Neumann Arquitetura mais simples. Mais lento, pois não permite acesso simultâneo a dados e instruções. Geralmente CISC. Alguns exemplos de componentes com arquitetura Von Neumann: - 4004 – processador com 46 instruções. - 8080 – Processador com 78 instruções. - 8085 – Processador com 150 instruções. - Z80 – Processador com mais de 500 instruções. - 8051 – Microcontrolador com 111 instruções. - Harvard Arquitetura mais complexa. Mais rápido, pois permite acesso simultâneo a dados e instruções. Geralmente RISC Permite o Pipelining. Alguns exemplos de componentes com arquitetura Von Neumann: - Intel 8086 e 8088 - Microcontroladores PIC – 35 instruções na versão PIC16. Normalmente a arquitetura Havard também possui um repertório com menos instruções do que a de Von-Neumann. Os microcontroladores com arquitetura Havard são também conhecidos como "microcontroladores RISC" (Reduced Instruction Set Computer - Computador com Conjunto Reduzido de Instruções), e os microcontroladores com uma arquitetura Von-Neumann, são conhecidos como "microcontroladores CISC" (Complex Instruction Set Computer - Computador com um Conjunto Complexo de Instruções), apesar de isso não ser uma regra. Equipamentos que utilizam a arquitetura Harvard: Os PICs (microcontroladores PIC) são uma família de microcontroladores fabricados pela Microchip Technology, que processam dados de 8 bits, de 16 bits e mais recentemente 32 bits, com extensa variedade de modelos e periféricos internos, com arquitetura Harvard e conjunto de instruções RISC (componentes que começam com conjuntos de 35 instruções), com recursos de programação por Memória flash, EEPROM e OTP. Os microcontroladores PIC têm famílias com núcleos de processamento de 12 bits, 14 bits e 16 bits e trabalham em velocidades de 0kHz (ou DC) a 48MHz, usando ciclo de instrução de 4 períodos de clock, o que permite uma velocidade de no máximo 12 MIPS para essas famílias, podendo ser mais rápidos em outras famílias. Há o reconhecimento de interrupções tanto externas como de periféricos internos. Funcionam com tensões de alimentação de 2 a 6V e os modelos possuem encapsulamento de 6 a 100 pinos em diversos formatos (SOT23, DIP, SOIC, TQFP, etc). Fonte: http://sistemasuniban.blogspot.com.br/2010/04/arquiterura-von-neumann-vs-harvard.html Dia 18 de março de 2013. Microprocessadores x Microcontroladores Basicamente podemos dizer que: - Microprocessador é um componente eletrônico composto por uma unidade central de processamento, barramento de endereço, barramento de dados e barramento de controle, não possui memória nem periféricos (temporizadores, conversores ADC ou DAC, hardware de comunicação serial, entre outros), devendo esses serem ligados externamente no projeto computacional que usa o Microprocessador escolhido. - Microcontrolador é um componente eletrônico que tem os mesmos recursos do microprocessador, porém já tem em seu chip a memória de programa, a memória de dados e vários periféricos, tudo em um encapsulamento único. Bits, Flags, Nibles, Bytes e Words. Em sistemas computacionais eletrônicos a base numérica é a binária, onde os dígitos variam entre 0 e 1, onde o 0 equivale a 0Vcc ou estar ligado ao GND do circuito e o 1 equivale a +Vcc, ou seja, em um circuito alimentado por +5Vcc essa será a tensão equivalente ao digito 1. Cada dígito pode ser tratado de maneira individual ou em conjunto o que nos dá as seguintes possibilidades: Bit - Um bit é a menor unidade em um sistema digital podendo, por exemplo, endereçar apenas duas possibilidades, 0 e 1. Flag - Um flag contém apenas um bit e normalmente é parte de um byte, mas especificamente um registrador, em sistemas computacionais microcontrolados os registradores são amplamente usados para configurar dispositivos ou representar o status dos dispositivos, um flag pode ser usado, por exemplo, para ligar ou desligar um determinado dispositivo ou periférico do microcontrolador em uso. Nibles - Um nible é um conjunto de 4 bits o que permite 16 combinações. Byte - Um byte é um conjunto de 8 bits, ou dois nibles, que permite 256 combinações, é a unidade mais usada para determinar capacidades de armazenamento e também transferências de dados digitais, também pode ser usada com seus multiplicadores mais comuns, Kbytes, Mbytes entre outros. Word - Em sistemas computacionais de estrutura Harvard como os PICs os barramentos podem ter tamanhos que não são bit, nibles ou bytes esses barramentos podem ter tamanhos de 12, 14, 16 ou outras capacidades em bits, para esses tamanhos de barramentos damos o nome de words. - PIC16F877A O microcontrolador escolhido para nossos estudos é o PIC16F877A, um microprocessador da família de 8bits da MICROCHIP que pode ser encontrando e vários encapsulamentos entre eles o DIP de 40 pinos o que facilita seu uso prático, seguem abaixo as principais características deste PIC: CPU RISC de alta performance. • • • • • • Apenas 35 instruções. Maioria das instruções realizadas em um ciclo de máquina exceto as de desvio. Velocidade de operação de DC a 20MHz com ciclo de DC a 200ns. 8K x 14 words de memória de programa flash. 368 bytes de memória RAM. 256 bytes de memória EEPROM. Características dos periféricos. • • • • Timer0 – Timer/Counter de 8 bits com prescaler de 8 bits. Timer1 – Timer/Counter de 16 bits com prescaler e que pode ser incrementado durante o sleep se o clock for externo. Timer2 – Timer/Counter de 8 bits com registrador de período de 8 bits, prescaler e postscaler. 2 módulos de compare, capture ou PWM (captura com de 16 bits e resolução máxima de 12,5ns, Compara com 16 bits e resolução de 200ns e o PWM tem uma resolução máxima de 10 bits). Dia 25 de março de 2013. • • • • Porta serial síncrona (SSP – Synchronous Serial Port) com SPI (Máster mode) e I2C (Master and Slave Mode). – Comunicação com periféricos à curta distancia, normalmente na mesma placa de circuito impresso, um exemplo podem ser os sensores de temperatura e o chip de relógio em uma placa mãe de computador. Porta serial síncrona assíncrona (USART – Universal Synchronous Asynchronous Receiver Transmiter). – Em um computador é este dispositivo que está por trás da porta de comunicação serial que ainda tem em alguns micros e que podem ser usadas para comunicação com modem externo ou ainda com alguns sistemas de relógio de ponto ou sistemas de controle de acesso. Porta Paralela Escrava (PSP – Parallel Slave Port), porta de 8 bits com sinais de controle R/D, W/R e C/S. – Comunicação de paralela de 8 bits como as que eram usadas em impressoras antigas (padrão CENTRONICS). Detector de baixa tensão de alimentação (BOR – Brown-out Reset). – Funciona como um voltímetro que monitora a tensão de alimentação de sua aplicação e pode resetar o microcontrolador caso essa tensão venha a ter uma variação crítica ou que ultrapasse um limite pré-determinado. Características analógicas. • Conversor analógico para digital de 10 bits com até 8 entradas. – Este é um único conversor com uma precisão de 10bits (1024 divisões) e com um multiplexador para uso com até oito entradas, sendo possível fazer a conversão de tensão de todas essas, mas uma de cada vez. Dia 27 de maio de 2013. Características especiais do PIC16F877A. • • • • • • • • • • • • Suporta mais de 100.000 de ciclos de gravação da memória de programa (quantia de vezes que podemos carregar programas ou apagar a memória do µcontrolador). Suporta mais de 1.000.000 de ciclos de gravação da memória EEPROM. Retenção de dados na memória de mais de 40 anos (significa que o programa permanece na memória do µcontrolador mesmo sem estar alimentado). Alto programável via software (significa que o software que estiver rodando na aplicação pode gravar na própria memória de programa). ICSP (In Circuit Serial Program), programação serial na aplicação via dois pinos (forma pela qual podemos gravar o programa desenvolvido no µcontrolador da nossa aplicação). Pode ser programado apenas com a alimentação de 5Vcc (pode ser gravado mesmo sem a tensão de 13Vcc normalmente aplicada a um pino do chip para habilitar a gravação do programa na memória interna). Watchdog Timer (WDT) com um oscilador RC interno para operação confiável (um oscilador independente do principal para evitar falha do WDT). Proteção do código nas memórias de programa e EEPROM (Evita que possam ler o código gravado tanto na memória de programa como na EEPROM, ou seja, se habilitar essa função não será possível fazer o uso de um programador externo para extrair o código que foi criado). Modo de sono (SLEEP) para redução de consumo ( permite parar quase todas as funções inclusive o processamento da UCP a fim de economizar energia em aplicações que façam uso de pequenas baterias, funcionam apenas alguns itens para que o chip possa ser reposto em trabalho). Vários tipos de osciladores para serem escolhidos (permite a escolha de tipos diferentes de osciladores oferecendo opções com estabilidade, velocidade, consumo ou combinações dessas características conforme necessidade da aplicação desenvolvida). Debug de software via dois pinos (ICD) (Permite que o programa seja monitorado por uma combinação de hardware e software externos, acompanhando o programa passo a passo para encontrar possíveis erros no código). Uso de tecnologias de baixo consumo e alta velocidade, memórias FLASH e EEPROM, versões para uso comercial ou industrial (suporta menor ou maior variação de temperatura), tensão de alimentação de 2 a 5,5Vcc. - Periféricos do PIC16F877A. O PIC16F877A possui os seguintes periféricos a disposição dos desenvolvedores de aplicações para os mais diversos usos, usos esses que são limitados apenas pela quantidade de hardware e principalmente da criatividade do desenvolvedor. • • • • • • 33 pinos de entrada e saída (I/O) compartilhados o que significa que apesar de existirem os 33 pinos que podem ser configurados como entrada, saída ou alternar esses estados durante o funcionamento da aplicação eles podem ser necessários para uso dos periféricos do µcontrolador. 3 temporizadores contadores (timers/counters) sendo o timer 0 de 8 bits com prescaler, o timer 1 de 16 bits com prescaler e pode ser incrementado durante o SLEEP se o pulso for externo e o timer 2 com prescaler e postcaler, esses periféricos podem ser usado para contagem de eventos (contadores) ou para gerar períodos regulares (timer) a fim de controlar algo com tempos específicos. Porta Serial Síncrona (SSP – Synchronous Serial Port), portas para comunicação de média ou alta velocidade e curta distancia (normalmente entre circuitos no mesmo hardware em que se encontra o µcontrolador), existem dois tipos diferentes de comunicação que são a I2C e a SPI e serão detalhadas mais à frente. Transmissor receptor síncrono assíncrono universal (USART – Universal Synchronous Assynchronous Receiver Transmitter) comunicação serial normalmente usada para comunicação com hardware externo como outra aplicação ou ainda um PC com um aplicativo especifico a uma média ou longa distancia. Porta paralela escrava (PSP – Paralell Slave Port) para comunicação via barramento de 8 bits e pinos de controle com outros periféricos compatíveis com esse recurso. Conversor analógico para digital com resolução de 10 bits (ADC – Analog to Digital Converter), como o nome já diz permite converter um sinal analógico aplicado a um determinado pino em um número para que • • possa ser devidamente processado, apesar de possuir apenas um ADC existem 8 entradas que podem ser configuradas como entrada analógicas, porém só podem ser lida uma de cada vez. 2 comparadores analógicos que podem ser usados para detectar quando uma ou mais entradas analógicas tem uma tensão maior ou menor que uma determinada referencia que pode ser interna ou externa. 2 módulos de comparação, captura e PWM, CCP1 e CCP2 que serão melhor explicados quando de sua utilização. • O PIC16F877A, alvo do nosso estudo tem como periféricos em seu interior os recursos citados acima, ao longo do curso vamos explicar o que cada um faz. Para darmos inicio ao detalhamento segue abaixo a pinagem deste CI no invólucro PDIP: Pino de saída (Out) Legenda: pino de entrada (In) Pino de entrada e saída (I/O) Nomenclatura dos pinos Segue abaixo uma tabela com descrição de cada um dos pinos deste chip a fim de facilitar a identificação das funções dos mesmos. Nome OSC1 / CLKIN Número 13 I/O/P I OSC2 / CLKOUT 14 O Tipo ST / CMOS(4) _ Nome MCLR / Vpp Número 1 I/O/P I/P Tipo ST Vss Vdd PORTA RA0 / AN0 RA1 / AN1 RA2 / AN2 / Vref / Cvref 12 / 31 11 / 32 P P - 2 3 4 I/O I/O I/O TTL TTL TTL RA3 / AN3 / Vref+ 5 I/O TTL RA4 / TOCKI / C1OUT 6 I/O ST RA5 / SS / AN4 / C2OUT 7 I/O TTL Descrição Entrada para cristal ou osciladores externos (hibridos ou RC) Saída para critais ou ressonadores no caso deste tipo de oscilador ou no modo RC representa uma saida de onda quadrada com 1/4 da frequência de operação (ciclo de máquina) Descrição Master Clear Reset externo. Deve permanecer em nivlel lógico 1, quando levado a 0 reseta o microcontrolador. Se aplicada uma tensão de 13Vcc neste pino o chip entra em modo de programação. Alimentação positiva do chip GND - Terra do chip I/Os digitais bidirecionais e sistema analógico. PORTB I / O digital ou entrada analógica AN0 I / O digital ou entrada analógica AN1 I / O digital ou entrada analógica NA2, ou tensão negativa de referência analógica I / O digital ou entrada analógica AN3 ou tensão positiva de referência analógica I / O digital (quando configurado como saída esta se caracteriza por uma saída open drayn), entrada externa do TMR0 ou saída do comparador 1. I /O digital, entrada analógica AN4, Habilitação externa (Slave Select) para comunicação SPI ou saída do comparador 2. I/Os digitais bidirecionais, todos os pinos dessa porta tem resistores PULL UP que podem ser habilitados por software. I/O digital e entrada de interrupção externa RB0 / INT RB1 RB2 RB3 / PGM 33 34 35 36 I/O I/O I/O I/O TTL / ST(1) TTL TTL TTL RB4 RB5 RB6 / PGC 37 38 39 I/O I/O I/O TTL TTL TTL / ST I / O digital com interrupção por mudança de estado, clock da RB7 / PGD 40 I/O TTL / ST(2) programação serial ou pino di In Circuit Debugger I / O digital com interrupção por mudança de estado, dados I / O digital I / O digital I / O digital ou entrada para programação em baixa tensão (Vcc) I / O digital com interrupção por mudança de estado I / O digital com interrupção por mudança de estado da programação serial ou pino de In Circuit Debugger. I/Os digitais bidirecionais. PORTC RC0 / T10SO / T1CKI 15 I/O ST RC1/T10SI/CCP2 16 I/O ST RC2/CCP1 17 I/O ST RC3/SCK/SCL 18 I/O ST RC4/SDI/DAS 23 I/O ST RC5/SDO RC6/TX/CK 24 25 I/O I/O ST ST RC7/RX/DT 26 I/O ST I / O digital, saída do oscilador externo para TMR1 ou entrada de incremento do TMR1. I / O digital, entrada do oscilador externo para TMR1, entrada do capture 2 ou saída do compare 2 ou PWM2 I / O digital, entrada do capture 1 ou saída do compare 1 ou PWM 1. I / O digital ou entrada/saída de clock para comunicação serial SPI / I2C. I / O digital, entrada de dados para SPI ou via de dados para I2C. I / O digital, e saída de dados para SPI. I / O digital, TX (transmissão) para comunicação USART assíncrona ou clock para comunicação síncrona. I / O digital, RX (recepção)para comunicação USART assíncrona ou data para comunicação síncrona. Nome PORTD Número I/O/P RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PORTE RE0/RD/AN5 19 20 21 22 27 28 29 30 8 I/O TTL / ST(3) RE1/WR/AN6 9 I/O TTL / ST(3) RE2/CS/AN7 10 I/O TTL / ST(3) I/O I/O I/O I/O I/O I/O I/O I/O Tipo TTL/ST(3) TTL/ST(3) TTL/ST(3) TTL/ST(3) TTL/ST(3) TTL/ST(3) TTL/ST(3) TTL/ST(3) Descrição I/Os digitais bidirecionais e bits do PMP (Pararell Master Port). I/O digital ou bit0 do PMP I/O digital ou bit1 do PMP I/O digital ou bit2 do PMP I/O digital ou bit3 do PMP I/O digital ou bit4 do PMP I/O digital ou bit5 do PMP I/O digital ou bit6 do PMP I/O digital ou bit7 do PMP I/Os digitais bidirecionais e sistema analógico I/O digital, controle de leitura da PMP ou entrada analógica AN5. I/O digital, controle de escrita da PMP ou entrada analógica AN6. I/O digital, controle de seleção da PMP ou entrada analógica AN7. Legenda da tabela de nomenclatura: - I/O -I -O - TTL - ST -P - “-“ = = = = = = = Input/Output (entrada e saída). Input (apenas entrada). Output (apenas saída). Pino tipo TTL (pino com tecnologia compatível TTL). Pino tipo Schimitt Trigger (pino com caracteristica Schimitt trigger). Power (pinos de alimentação do CHIP). Não Utilizado (pino não usado). Notas: (1) Esta entrada é tipo ST somente para a função INT (interrupção externa). (2) Esta entrada é tipo ST somente durante a programação do chip. (3) Esta entrada é tipo ST quando usada como I/O e TTL quando usada como PMP. (4) Esta entrada é ST quando usado o modo RC e CMOS nos demais casos. - Estrutura interna do PIC16F877A. Na figura abaixo podemos identificar vários dos conceitos explicados anteriormente, entre eles podemos destacar: 9 Mais de um barramento como “DATA BUS”, usado para trafego de dados entre a ALU (Aritmetic Logic Unit – Unidade Lógica e Aritmética) e memória e periféricos do nosso chip, característica da arquitetura Von Neumann. 9 Uso de vários tipos de memória como a RAM para registradores e dados, memória Flash para programa e EEPROM para armazenamento dados não voláteis. 9 Os vários recursos do microcontrolador como os Timers, conversor AD entre outros. Esta figura é parte do data sheet original da MICROCHIP. Alguns exemplos do compartilhamento de pinos Notem no desenho acima que os pinos RB0 a RB3 estão sendo usados como entradas (leitura de teclas) e como saídas (acionamento dos LEDS), notem ainda que a porta D (RD0 a RD7) está sendo usada para acionar 04 displays de 7 segmentos a LED usando uma varredura com os pinos RB4 a RB7 e os transistores Q1 a Q4. O uso dos pinos como entrada e como saída para poder ler uma tecla e também acionar o LED pode ser necessário dependendo do custo da sua aplicação e é controlado por software, fazendo as funções de entrada e saída se alternarem em tempos curtos e relativamente precisos a fim de poderem ler as teclas com boa precisão e ao mesmo tempo conseguir dar ao usuário da aplicação uma diferença bastante nítida dos estados de apagado e aceso do LED, bem como a varredura dos displays que devem oferecer uma boa nitidez e clareza para sua leitura. No exemplo acima temos a ligação de um display LCD de caracteres ligados à porta D, um teclado configurado como matriz de 3 colunas e 4 linhas ligados à porta B, um botão ligado ao pino RA0, dois LEDs ligados aos pinos RE0 e RE1 e um relé ligado ao pino RE2. Notem que foram usados resistores de pull-down (ligados ao terra) nos pinos do LCD, o que não é necessário tendo em vista que os pinos da porta D podem impor tanto o nível alto como o nível baixo quando configurados como saída. VDD U1 +88.8 RV1 13 14 1 Volts 50% +88.8 mA 1k +88.8 2 3 4 5 6 7 Volts 8 9 10 OSC1/CLKIN OSC2/CLKOUT MCLR/Vpp/THV U2 RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD RA0/AN0 RA1/AN1 RA2/AN2/VREFRA3/AN3/VREF+ RA4/T0CKI RA5/AN4/SS RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RE0/AN5/RD RC2/CCP1 RE1/AN6/WR RC3/SCK/SCL RE2/AN7/CS RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT VSS RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16877 33 34 35 36 37 38 39 40 3 4 7 8 13 14 17 18 15 16 17 18 23 24 25 26 1 11 19 20 21 22 27 28 29 30 D0 D1 D2 D3 D4 D5 D6 D7 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 2 5 6 9 12 15 16 19 D0 D1 D2 D3 D4 D5 D6 D7 D[0..15] +5V OE LE D[0..15 74LS373 U3 3 4 7 8 13 14 17 18 1 11 D0 D1 D2 D3 D4 D5 D6 D7 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 2 5 6 9 12 15 16 19 D8 D9 D10 D11 D12 D13 D14 D15 OE LE 74LS373 No esquema acima podemos ver uma aplicação não muito comum, pois faz uso de displays de 7 segmentos hexadecimais e usa 2 CIs 74LS373 que são buffers com retenção para multiplexar, em conjunto com os pinos RD6 e RD7 os pinos da porta B, e o pino RA0 está sendo usado como entrada analógica. NÃO IMPRIMAM A PARTIR DAQUI. O que é ciclo de máquina? O que se deve saber é que nesse microcontrolador a freqüência do clock interno equivale a ¼ da freqüência do clock do circuito oscilador escolhido, ou seja, se tivermos um cristal de 4MHz ligado aos pinos CLKIN / CLKOUT do PIC a freqüência usada como referencia interna para processamento e periféricos que façam uso do clock será de 1MHz. Abaixo é possível ver um gráfico de tempo que explica melhor essa técnica: Notem que no primeiro ciclo de máquina é buscada(fetch 1) a primeira instrução no próximo ciclo ela é executada(execute 1) e ao mesmo tempo é buscada(fetch 2) a segunda instrução e assim por diante, isso ocorre até encontrar uma instrução de salto (CALL SUB_1), nesse momento também é buscada a instrução seguinte porém durante a execução da instrução CALL a próxima instrução buscada é descartada e será realizado o salto para a rotina SUB_1. O que significa que a grande maioria das instruções do PIC são realizadas em um único ciclo de maquina, exceto aquelas de salto e algumas condições de teste como indicada no data sheet. Memória de programa. A memória deste chip tem um tamanho de 8Kword, cada Word tem 14 bits e fica armazenada em uma memória flash, esta é uma memória não volátil que pode ser gravada por hardware externo (gravador) ou pode ser gravada pelo software da sua aplicação o que possibilita um software dinâmico ou ainda a implantação da técnica de boot loader, pequeno programa que pode ser usado por exemplo para que o usuário da aplicação faça as atualizações disponibilizadas do firmware, outra opção é o uso desta memória como uma expanção da EEPROM existente no chip. Outras características importantes desta memória são: - Vetor de reset. Neste chip o vetor de reset é o endereço 0x0000, endereço inicial da memória e destino do contador de programa (PC Program Counter) sempre que o chip é devidamente alimentado ou que o pino MCLR recebeu um pulso de reset (pulso negativo). - Vetor de interrupção. Todos os periféricos deste chip inclusive o pino INT (entrada de interrupção externa) podem gerar uma interrupção para o programa principal, apesar de existirem neste chip 15 fontes de interrupção todas usam o mesmo vetor, este vetor é o endereço 0x0004 da memória de programa. - Tamanho da memória e páginas de memória. Como descrito acima a memória deste chip é de 8Kword, ou seja, 8.192 endereços de programa e cada endereço é composto por uma palavra (Word) de 14 bits, isso gera um problema de gerenciamento dos endereços, ou seja, para endereçar 9.192 endereços são necessários 13 bits e a Word tem apenas 14 bits, porém essa Word tem que conter o opcode (código da instrução) e o endereço do salto. Veja alguns exemplos de opcode de instruções de salto: Instrução CALL OPCODE 100 KKK KKKK KKKK GoTo 101 KKK KKKK KKKK Obs KKK KKKK KKK equivalem a 11 dos 13 bits do endereço de destino KKK KKKK KKK equivalem a 11 dos 13 bits do endereço de destino Para solucionar o problema a memória de programa foi dividida em 04 páginas de 2.048 endereços cada página e foi implementado um registrador PCLATCH para armazenar dois bits que são os bits mais significativos para completar o endereço. Veja abaixo uma representação das páginas de memória do chip. - Pilha (stack). A pilha de memória é um bloco na memória separado para armazenar endereços de retorno das instruções de chamada de sub rotinas e interrupção, ou seja, sempre que ocorre um desvio do programa para atender a uma interrupção ou a uma chamada de sub rotina o endereço seguinte ao endereço em execução é salvo nessa memória, no final da rotina uma instrução de retorno da rotina busca na pilha o endereço de retorno para dar continuidade no programa principal. Uma característica importante desta pilha é que ela é limitada em 8 endereços, ou seja, somente será possível atender a 8 chamadas de rotinas ou atendimento de interrupção em seqüência, sem que ocorram o encerramentos dessas rotinas por retorno, caso aconteçam mais de 8 chamadas a sub rotinas ao ocorrer a nona chamada o endereço da primeira chamada é perdido e assim por diante. Outra característica é que o tamanho das words da pilha é de 13 bits, ou seja, ela pode armazenar um endereço de retorno completo sem se preocupar com as páginas do endereço, no entanto no caso de chamadas de sub rotinas por software (CALL) deve-se antes ajustar o PCLATCH referente ao endereço da rotina que será chamada. Set de instruções. Instrução Descrição Ciclos Status afetado Instruções com registradores em nível de Bytes ADDWF f,d Soma o conteúdo do registro W com o conteúdo de um registrador F qualquer 1 C,DC,Z ANDWF f,d Operação “E” entre o conteúdo do registro W e conteúdo de um registro F qualquer 1 Z CLRF f Limpa o conteúdo de um registrador F qualquer 1 Z CLRW - Limpa o conteúdo do registrador W 1 Z COMF f,d Complementa o conteúdo de um registrador F qualquer 1 Z DECF f,d Decrementa o conteúdo de um registrador F qualquer 1 Z DECFSZ f,d Decrementa o conteúdo de um registrador F qualquer, pula próxima instrução se “zero” 1(2) - INCF f,d Incrementa o conteúdo de um registrador F qualquer 1 Z INCFSZ f,d Incrementa o conteúdo de um registrador F qualquer, pula próxima instrução se “zero” 1(2) - IORWF f,d Operação “OU” entre o conteúdo do registro W e conteúdo de um registro F qualquer 1 Z MOVF f,d Move o conteúdo de um registrador F qualquer 1 Z MOVWF f Move o conteúdo do registro W para um registrador F qualquer 1 - NOP - Consome um ciclo, sem executar nada 1 - RLF f,d Gira a esquerda o conteúdo de um registrador F qualquer, considerando o “Carry” 1 C RRF f,d Gira a direita o conteúdo de um registrador F qualquer, considerando o “Carry” 1 C SUBWF f,d Subtraí o conteúdo do registro W com o conteúdo de um registrador F qualquer 1 C,DC,Z SWAPF f,d Troca os “nibble’s” de um registrador qualquer 1 - XORWF f,d Operação “OU Exclusivo” entre o conteúdo do registro W e conteúdo de um registro F qualquer 1 Z Instruções com registradores em nível de Bit BCF f,b Zera um bit de um registrador F qualquer 1 - BSF f,b Seta um bit de um registrador F qualquer 1 - BTFSC f,b Testa um bit de um registrador F qualquer, pula próxima instrução se igual a zero 1(2) - BTFSS f,b Testa um bit de um registrador F qualquer, pula próxima instrução se igual a “1” 1(2) - Operações com Literais e de controle ADDLW k Soma o valor “k” ao registrador W 1 C,DC,Z ANDLW k Operação “E” entre o valor “k” e o registrador W 1 Z CALL k Chama uma sub-rotina representada por “k” 2 - CLRWDT - Limpa o WatchDog Timer 1 TO,PD GOTO k Desvia para o endereco representado por “k” 2 - IORLW k Operação “OU” entre o valor “k” e o registrador W 1 - MOVLW k Move o valor “k” para o registrador W 1 - RETFIE - Retorno de uma interrupção 2 - RETLW k Retorno de uma sub-rotina com valor “k” no registrador W 2 - RETURN - Retorno de uma sub-rotina 2 - SLEEP - Entra em modo “Standby” 1 TO,TP SUBLW k Subtraí o valor “k” do registrador W 1 C,DC,Z XORLW k Operação “OU Exclusivo” entre o valor “k” e o registrador W 1 Z
Documentos relacionados
Circuitos Integrados (CIs)
CIs digitais frequentemente são classificados de acordo com a complexidade de seus circuitos, de acordo com o número de portas lógicas no substrato
Leia mais