Microcontroladores Família MCS51

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "Microcontroladores Família MCS51"

Transcrição

1 Microcontroladores Família MCS51 Colégio Técnico de Campinas COTUCA Disciplina TDM II- Departamento Eletroeletrônica

2 1- Conceitos Básicos Um sistema computador é constituído por três blocos de base ligados através de três barramentos como se pode ver na figura 1. Figura 1 Diagrama de blocos de um computador. Os três blocos de base são: a unidade central de processamento (CPU), as memórias de programa e de dados e o sistema de comunicação com o exterior (sistema E/S). A ligação entre os blocos de base é feita através de três barramentos: barramento de dados, barramento de endereços e barramento de controle. A unidade central de processamento divide-se funcionalmente em duas unidades: a unidade de processamento de dados (CPU) e a unidade de controle e é responsável pela execução do programa. A unidade de controle decodifica e controla a execução das instruções gerando os comandos que permitem o processamento da informação de acordo com o programa que está sendo executado. O registrador program counter (PC) e o registrador de status fazem também parte da unidade de controle. A unidade de processamento de dados faz o processamento da informação e é constituída por uma unidade aritmética e lógica e por um conjunto variável de registradores com funções genéricas. A estrutura descrita designa-se estrutura de Von Neumann. 1.1 Conceitos de microprocessador Designa-se por microprocessador um circuito integrado que implemente as funções de uma unidade central de processamento. O primeiro microprocessador, designado 4004, surgiu em 1971 tendo sido produzido pela empresa Intel. Antes dessa data as unidades centrais de processamento eram implementadas recorrendo a diversos componentes. 1.2 Conceitos de microcontrolador Designa-se por microcontrolador um circuito integrado que implementa um sistema computador. Um microcontrolador é constituído por um microprocessador e um ou mais dos seguintes dispositivos: memória, temporizador/contador, conversor A/D, conversor D/A, controlador DMA, porta paralela, porta série, circuitos para interface com memória externa, nomeando apenas os blocos mais comuns. A principal aplicação dos microcontroladores são os sistemas embarcados, em que o microcontrolador é programado para cumprir determinada função sendo colocado junto do sistema com que vai interagir. Estes componentes são utilizados para estas funções porque são pequenos, versáteis e (quase) auto-suficientes. Como exemplos típicos de microcontroladores de 8 bits podem referir-se os microcontroladores das famílias seguintes: família MCS-51 da Intel, família M68HC11 da Motorola e família PIC da Microchip.

3 2 - Família MCS-51 A arquitetura básica da família MCS-51 é constituída por uma unidade central de processamento de 8 bits otimizada para aplicações de controle, 64 Kbytes de espaço de endereçamento para a memória de programa, 64 Kbytes de espaço de endereçamento para a memória de dados, 4 Kbytes de memória de programa interna, 128 bytes de memória de dados interna, 32 linhas entrada/saída bidirecionais endereçáveis individualmente. Dois temporizadores/contadores de 16 bits, uma UART (universal asynchronous receiver transmiter) full duplex, uma estrutura de interrupções com 5 fontes de interrupção correspondentes a 5 vetores de interrupção com dois níveis de prioridades cada e um circuito oscilador para gerar o sinal de relógio. O diagrama de blocos da arquitetura de base da família MCS-51 pode ser visto na figura 2. Figura 2- Arquitetura do microcontrolador 80C51. As diferenças deste microcontrolador para outros membros da família MCS-51 relacionam-se fundamentalmente com a quantidade de memória interna (memória de programa e memória de dados) e com as capacidades de E/S de cada um. Na tabela 1 apresentam-se algumas das características de alguns dos microcontroladores da família MCS-51.

4 Tabela 1- Tabela comparativa das características de alguns microcontroladores da família MCS Organização da memória A memória de dados e a memória de programa têm espaços de endereçamento diferentes cada um com 64 Kbytes, organizados segundo os mapas de memória da figura Memória de programa Figura 3- Mapas de memória do microcontrolador 80C51. A memória de programa é uma memória do tipo ROM, por isso sobre ela só se efetuam operações de leitura. Este memória pode ser interna e/ou externa e ocupa no máximo 64 Kbytes. O acesso à memória de programa externa faz-se recorrendo ao sinal /PSEN (Program Strobe Enable) que deverá ser ligado ao pino de output enable da memória. O sinal aplicado ao pino /EA do microcontrolador determina qual o tipo de acesso a ser feito para os 4 Kbytes inferiores da memória de

5 programa. Se /EA = 0, para endereços a partir de 0000H o acesso é feito à memória de programa externa, se /EA = 1, o acesso é feito è memória de programa interna para endereços de 0000H até 0FFFH, sendo feito o acesso à memória de programa externa para endereços mais elevados Memória de dados A memória de dados é do tipo RAM podendo ser lida ou escrita pelo microcontrolador. Esta memória pode ser interna e/ou externa. O espaço de endereçamento associado à memória de dados é de 64 Kbytes Memória de programa externa O acesso à memória de programa externa faz-se recorrendo aos sinais /RD (Read) e /WR (Write) fornecidos pelo microcontrolador para controle da operação da memória. O endereçamento pode fazer-se recorrendo a um mínimo de um e máximo de dois bytes. Para acesso à memória de programa externa utiliza-se a porta P0 como barramento multiplexado de endereços/dados (byte menos significativo). A porta P2, caso seja necessária a sua utilização, funciona como barramento de endereços (byte mais significativo) Memória de dados interna A memória de dados interna encontra-se dividida em 3 blocos distintos, de acordo com o mapa da figura 4. O acesso à memória de dados interna faz-se utilizando endereços de 8 bits. Figura 4- Memória de dados interna. A área de memória superior contém os registrradores com funções especiais, SFRs (Special Function Registers). O acesso a esta área de memória faz-se utilizando endereçamento direto. A função de cada um destes registradores será analisada em detalhe no item 5. A área de memória superior representada na figura 4 a tracejado não está implementada no microcontrolador 80C51 existindo apenas nos dispositivos com 256 bytes de RAM interna. O acesso a esta área de memória é feito utilizando endereçamento indireto sendo uma região de uso genérico. A parte inferior da memória de dados interna encontra-se dividida em três regiões distintas como se pode ver no mapa da figura 5. O acesso pode ser feito utilizando endereçamento direto ou indireto. Figura 5- Espaço inferior da memória de dados interna.

6 Os 32 bytes inferiores destinam-se aos quatro bancos de oito registradores designados R0 a R7. A seleção do banco de registrradores é feita recorrendo aos bits RS1 (Register Select) e RS0 do registrador PSW (Program Status Word). Segue-se uma área de 16 bytes (128 bits) endereçáveis bit a bit sendo a restante área de uso genérico Esquemas de montagem para acesso à memória externa As ligações à memória externa fazem-se utilizando os sinais de controle disponibilizados pelo microcontrolador Memória de programa externa No exemplo apresentado na figura 6 considera-se que toda a memória de programa é externa e por isso o pino /EA do microcontrolador é ligada a terra. O endereçamento é feito utilizando 16 bits o que implica a utilização para endereçamento da porta P2 (além da porta P0). O sinal ALE (Address Latch Enable) utiliza-se para fazer a desmultiplexagem do barramento P0 permitindo que o byte menos significativo do endereço fique disponível através da latch durante a fase de acesso à memória. O sinal /PSEN controla a operação da memória sendo a leitura dos dados feita através de P Memória de dados externa Figura 6- Acesso à memória de programa externa. A figura 7 apresenta um esquema de montagem para acesso à memória de dados externa. Neste exemplo considerou-se que toda a memória de programa é interna (/EA = VCC). Utiliza-se o esquema de demultiplexagem referido anteriormente. Os sinais /RD e /WR são utilizados para fazer o controle da memória. Caso não seja necessário acessar a todo o espaço de endereçamento pode recorrer-se só à utilização de alguns dos bits da porta P2 (além da porta P0) para fazer o endereçamento da memória. A troca de dados faz-se através da porta P0. Figura 7- Acesso à memória de dados externa.

7 4 - Registradores com funções especiais (SFRs) Os registradores com funções especiais encontram-se mapeados na parte superior da memória de dados interna e são acessados utilizando endereçamento direto. A tabela 2 apresenta o símbolo, o nome, o endereço e o tipo de endereçamento para cada SFR do microcontrolador 80C51. Símbolo Nome End. [Hexadecimal] Endereçamento ACC Acumulador E0 Bit B Registrador B F0 Bit PSW Program Status Word D0 Bit SP Stack Pointer 81 Registrador DPTR Data Pointer [2 bytes] DPL Byte menos significativo 82 Registrador DPH Byte mais significativo 83 Registrador P0 Porta 0 80 Bit P1 Porta 1 90 Bit P2 Porta 2 A0 Bit P3 Porta 3 B0 Bit IP Interrupty Priority Control B8 Bit IE Interrupty Enable Control A8 Bit TMOD Timer/Counter mode Control 89 Registrador TCON Timer/Counter Control 88 Bit TH0 Timer/Counter 0 high byte 8C Registrador TL0 Timer/Counter 0 low byte 8A Registrador TH1 Timer/Counter 1 high byte 8B Registrador TL1 Timer/Counter 1 low byte 8D Registrador SCON Serial control 98 Bit SBUF Serial Data Buffer 99 Registrador PCON Power Control 87 Registrador Registrador acumulador Tabela 2 Registradores com funções especiais. O registrador acumulador serve de interface com a unidade aritmética e lógica da CPU. Nos programas deve ser referido por [A]. Este registrador pode ser endereçado bit a bit Registrador B Este registrador é utilizado durante as operações de divisão e multiplicação em conjunto com o registrador acumulador. Para outras operações pode ser tratado como um registrador comum. É endereçável bit a bit Registrador Program Status Word O registrador PSW corresponde ao registrador de status da arquitetura de Von Newman e contém informação sobre a execução dos programas. O registrador é apresentado em detalhe na figura 8. Figura 8- Registrador PSW.

8 O bit mais significativo do registrador (PSW.7) designa-se CY (carry flag) e reflete a condição de carry no oitavo bit do acumulador. O bit seguinte (PSW.6), designado AC (Auxiliary Carry flag), reflete a condição de carry no quarto bit do registrador acumulador. O bit PSW.5 designa-se F0 e utiliza-se como flag de uso genérico. Os bits PSW.4 e PSW.3 são os bits de seleção do banco de registradores, designados RS1 e RS0 respectivamente. A seleção é feita de acordo com a tabela 3. Tabela 3- Seleção do banco de registradores. O bit PSW.2 designa-se OV e reflete a condição de overflow. O bit PSW.1 não tem nome atribuído e representa uma flag a ser definida pelo utilizador. Finalmente o bit PSW.0, designado P, reflete a paridade do registrador acumulador. O bit P é colocado no nível lógico 1 se o número de 1s no acumulador for impar e nos outros casos o bit P é colocado no nível lógico Registrador Stack Pointer Contém o endereço do topo da stack. A stack é uma estrutura de dados do tipo LIFO (last-in-first-out) utilizada para guardar informação de modo temporário Registrador Data Pointer Conjunto de dois registradores de 8 bits, DPL e DPH, que contêm um endereço de 16 bits. Este registrador tem três aplicações principais: fazer procura em tabelas no espaço de memória de programa utilizando a instrução MOVC Implementar saltos multi-direcionais utilizando a instrução acesso à memória de dados externa, utilizando a instrução MOVX ou a instrução Registradores associados às Portas P0 a P3 são os registradores associados aos latches das portas de E/S P0, P1, P2 e P3, respectivamente Registradores para controle de interrupções IP e IE são os registradores que permitem fazer a seleção de prioridades e a ativação das interrupções, respectivamente Registradores dos temporizadores/contadores TH0, TL0 e TH1, TL1 são os registradores que contém as contagens dos temporizadores/contadores 0 e 1 respectivamente. TMOD e TCON são os registradores de controle e status dos temporizadores/contadores. O primeiro permite fazer a programação do modo de operação e no segundo encontram-se bits relacionados com o controle do funcionamento dos temporizadores/contadores.

9 4.9 - Registradores da porta série SBUF representa dois registradores distintos um de recepção e outro de transmissão. A utilização de um ou de outro é selecionada automaticamente pelo hardware da porta série dependendo do contexto em que SBUF está a ser referido na instrução do programa (leitura ou escrita). SCON é o registrador de controle e status da porta série Registrador Power Control O registrador power control permite efetuar a programação do modo de operação do microcontrolador Registrador Program Counter O registrador program counter (PC) embora não seja referido na tabela, pois não pode ser diretamente acessado pelo programador, é um registrador de 16 bits que contém o endereço da próxima instrução a executar. Depois de efetuado o reset do microcontrolador o conteúdo deste registrador é zero. 5 - Modos de endereçamento A codificação das instruções da família MCS-51 é feita utilizando um byte para o código de operação (opcode) e 0 a 2 bytes para informação sobre os operandos. Os modos de endereçamento utilizam-se para especificar os operandos necessários para cada instrução. A família MCS-51 dispõe de 10 modos de endereçamento divididos por três classes: modos de endereçamento de dados, modos de endereçamento relativos a saltos e modos de endereçamento relativos a bits Modos de endereçamento de dados Existem cinco modos de endereçamento de dados: registrador inerente, direto, imediato, indireto e indexado Registrador inerente O modo de endereçamento registrador inerente utiliza-se para os registradores em que não é necessário especificar nenhum byte adicional para designar o operando. O registrador a operar é codificado no código de operação da instrução. Os registradores para os quais este método de codificação é feito são os seguintes: R0 a R7, A, PSW, SP e PC. Este modo de endereçamento caracteriza-se pelo tipo de codificação explícita que fornece para todas as instruções que utilizem os registradores referidos. Este modo de endereçamento pode coexistir na mesma instrução com os outros modos de endereçamento de dados referidos nos pontos seguintes. Exemplos: Direto MOV R1,#25 INC R0 ; coloca o valor 25 no registrador R1 ; adiciona 1 ao conteúdo do registrador R0 Este modo de endereçamento utiliza-se para acessar a memória de dados interna. A codificação da instrução é feita com um byte para o código de operação da instrução e um byte adicional para especificar o endereço a acessar. Como a especificação do endereço se faz num único byte a gama de endereços possível é de 0 a 255. A gama de endereçamento referida permite acessar a toda a área de

10 memória de dados interna podendo especificar-se o acesso a um registrador ou a uma variável. Exemplos de operação sobre variáveis em RAM interna: MOV 23H,A ADD A,40H ; copia o conteúdo do acumulador para a posição de ; memória cujo endereço é 23H. ; soma o conteúdo da posição de memória 40H ao ; acumulador. Exemplos de operação sobre SFRs: MOV B0H,A ; coloca o conteúdo do acumulador à saída da porta P3. Este estilo de programação, embora correto, não é muito claro e facilita a ocorrência de erros. Sempre que sejam referidos SFRs deve optar-se pela utilização do seu nome simbólico, o que torna o código mais perceptível evitando a ocorrência de erros. O assembler do MCS-51 permite a utilização de nomes simbólicos para os SFRs. MOV P3,A ; coloca o conteúdo do acumulador à saída da porta P3 ; recorrendo ao nome simbólico do registrador associado ; a porta 3. O assembler procede à tradução do nome simbólico para o endereço correspondente Imediato O modo de endereçamento imediato permite especificar um valor numérico constante. As constantes a especificar podem ter 8 bits ou 16 bits. Os valores de 16 bits só podem ser usados em conjunto com o registrador DPTR. Em assembly os valores numéricos imediatos são precedidos do caractere #. Exemplos: MOV A,#22 ; carrega o acumulador com o valor 22. ADD A,#30 ; soma 30 ao acumulador MOV DPTR,#20F0H ; carrega o valor hexadecimal 20F0 ; no registrador DPTR Indireto No modo de endereçamento indireto a instrução especifica um registrador que contém o endereço do operando. Tanto a memória de dados interna como a externa podem ser endereçadas deste modo. Este modo de endereçamento é útil no acesso a arrays. Só os registradores R0, R1 e DPTR podem ser utilizados como ponteiros de dados. R0 e R1 são ponteiros de 8 bits e DPTR é um ponteiro de 16 bits. O registrador a utilizar é precedido do Exemplos: ADD A MOVX ; adiciona o conteúdo da posição de memória ; pontada por R1 ao acumulador. ; guarda o conteúdo do acumulador na posição de ; memória apontada por R0. ; copia o conteúdo da posição de memória externa ; apontada por DPTR para o acumulador.

11 Indexado Este modo de endereçamento só é permitido para acesso à memória de programa, por isso só é utilizado para leitura. Destina-se ao acesso a tabelas e a instruções de salto. No acesso a tabelas um registrador de 16 bits (DPTR ou PC) contém o endereço base da tabela e o acumulador é carregado com o número de entrada na tabela. O endereço da entrada na tabela é calculado somando ao valor do registrador o valor do acumulador. Na instrução JMP o endereço do destino é calculado como a soma do ponteiro base (DPTR ou PC) e do valor do acumulador. Exemplos: MOVC MOVC ; coloca no registrador PC o valor igual à soma do ; conteúdo dos registradores DPTR e acumulador e ; continua a execução do programa a partir desse ; endereço. ; carrega o conteúdo da posição de memória ; apontada pela soma dos registradores acumulador ; e DPTR no acumulador. ; carrega o acumulador com o conteúdo da posição ; de memória cujo endereço é a soma dos ; registradores acumulador e PC Modos de endereçamento relativos a saltos São três os modos de endereçamento relativos a saltos: relativo, absoluto e longo Relativo Este modo de endereçamento é utilizado com instruções de salto condicional. O deslocamento (offset) do salto é de 8 bits, tendo uma gama de 128 a 127 bytes, e calcula-se tendo por referência o primeiro byte depois da instrução de salto. Quando o salto é executado o deslocamento é somado ao conteúdo do registrador PC para formar o endereço de destino. O destino do salto é normalmente especificado utilizando um rótulo (label) sendo o assembler que calcula o valor do deslocamento efetivo de acordo com as regras descritas. Exemplos: JZ et1 JNC et2 ; salta para a instrução com o rótulo et1 se o ; valor no acumulador for nulo. ; salta para a instrução com o rótulo et2 se a ; flag de carry do registrador PSW for igual a Absoluto Este modo de endereçamento é utilizado com as instruções ACALL e AJMP. São especificados os 11 bits menos significativos da instrução de destino. Os 5 bits mais significativos são iguais aos 5 bits mais significativos do registrador PC. Devido ao fato de só ser possível especificar 11 bits do endereço de destino só são permitidos saltos dentro da página corrente de 2 Kbytes da memória de programa. O endereço absoluto é normalmente especificado recorrendo a um rótulo que o assembler traduz. Exemplos: ACALL et3 ; chama a sub-rotina que tem início na posição ; dada por et3 AJMP ciclo1 ; faz com que a instrução com o rótulo ciclo1 ; seja executada a seguir à instrução corrente.

12 Longo Colégio Técnico de Campinas Cotuca Disciplina - TDM II Este modo de endereçamento utiliza-se com as instruções LCALL e LJMP. É especificado um endereço de 16 bits para destino do salto. O endereço longo é normalmente referido no programa recorrendo a um rótulo. Exemplos: LCALL et5 ; chama a sub-rotina cujo início corresponde à ; posição de memória ao rótulo et5. LJMP ciclo2 ; faz com que a instrução como rótulo ciclo2 ; seja executada a seguir a esta instrução Modos de endereçamento relativos a bits Os modos de endereçamento relativos a bits são dois: bit inerente e bit direto Bit inerente O modo de endereçamento bit inerente utiliza-se com instruções booleanas que operam com o bit carry flag do registrador PSW. O bit carry flag é codificado no código de operação não sendo necessário nenhum byte adicional para codificar o operando. Exemplos: SETB C ; coloca CY = 1. CLR C ; coloca CY = 0. CPL C ; complementa CY Bit direto Este modo de endereçamento utiliza-se com instruções booleanas que necessitam que o bit a operar seja identificado através de um byte adicional quando é feita a codificação da operação, para além do byte utilizado para o código de operação. São endereçáveis bits no espaço de RAM interna entre 20H e 2FH e bits da maioria dos SFRs. Endereços de bit entre 0 e 127 definem bits na área de memória de dados interna que pode ser endereçada bit a bit. Endereços de bit entre 128 e 255 correspondem a bits dos SFRs que são endereçáveis individualmente.

13 Figura 9 - Mapa de endereços de bit em memória interna. A linguagem assembly do MCS-51 especifica que o endereçamento a bit pode ser feito de três modos: pelo número ou expressão correspondente ao endereço direto do bit (0-255), pelo nome ou endereço do registrador que contém o bit seguido de um ponto e da posição do bit no registrador (0-7) ou pelo símbolo predefinido do bit em assembly. Nome do Posição do BIT Registrador PSW CY AC FO RS1 RS0 OV P P3 RD WR T1 T0 INT1 INT0 TXD RXD TCON TF1 TR1 TF0 TR0 IE1 IT1 TE0 IT0 SCON SM0 SM1 SM2 REN TB8 RB8 TI RI IE EA ES ET1 EX1 ET0 EX0 IP PS PT1 PX1 PT0 PX0 Exemplos: Tabela 4 - Símbolos dos bits dos registradores de controle e status. CLR PSW.6 SETB TR1 SETB 08H ; coloca a 0 o bit 6 (auxiliary carry) do registrador ; PSW. ; coloca a 1 o bit 6 do registrador TCON. ; coloca a 1 o bit 0 da posição de memória de dados ; interna 21H, correspondente ao endereço de bit 08H.

14 5.4 - Espaço de memória de dados / modos de endereçamento A área de memória de dados a acessar relaciona-se diretamente com o modo de endereçamento a utilizar. Assim para a área de memória de dados externa utilizase endereçamento indireto através dos registradores DPTR, R0 ou R1. Para a parte inferior (128 bytes menos significativos) da área de memória de dados interna, utilizam-se os modos de endereçamento direto ou indireto e para a parte superior da área de memória de dados interna (128 bytes mais significativos correspondentes aos SFRs) utiliza-se o modo de endereçamento direto. Finalmente para as áreas de memória interna acessíveis bit a bit utiliza-se o modo de endereçamento bit direto, a menos que a instrução atue sobre o bit de carry, sendo nesse caso utilizado o modo de endereçamento bit inerente. 6 - Conjunt o de Instruções O conjunto de instruções de qualquer microcontrolador pode dividir-se em cinco grupos fundamentais de operações: operações de transferência, operações aritméticas, operações lógicas (por vezes estes dois grupos são considerados em conjunto), operações sobre variáveis booleanas e operações de salto. A família MCS-51 não constitui exceção, podendo o seu conjunto de instruções ser dividido nos cinco grupos referidos. As operações pertencentes a cada grupo são apresentadas em seguida. As notações utilizadas pela família MCS-51 na apresentação do seu conjunto de instruções são as seguintes: Rn Registradores R0-R7 do banco de registradores selecionado. direto endereço de uma posição de memória (8 bits) do espaço de endereçamento direto (RAM de dados interna ou posição de memória de dados interna (8 bits) endereçada indiretamente através dos registradores R0 ou R1. #dados constante de 8 bits incluída na instrução. #dados16 constante de 16 bits incluída na instrução. end16 endereço de destino de 16 bits. end11 endereço de destino de 11 bits. Rel byte de deslocamento com sinal (complemento para 2) Operações de Transferência O grupo de operações de transferência é constituído pelas operações que permitem a transferência ou troca de informação entre duas posições de memória. Existem operações para transferência de código (MOVC), para manipulação da stack (PUSH e POP) e para troca de dados entre o acumulador e um registrador ou byte direto (XCH). As operações pertencentes a este grupo de instruções são apresentadas na tabela de SET de Instruções no final da apostila. Na tabela são apresentados os mnemônicos da operação, utilizadas para a escrita do programa, a descrição sumária da operação, o número de bytes que a operação ocupa depois de codificada e o número de períodos do oscilador necessários para a execução da operação Operações Aritméticas O grupo de operações aritméticas inclui operações para adição (ADD e ADDC), subtração (SUBB), incremento (INC), decremento (DEC), multiplicação (MUL), divisão (DIV) e ajuste decimal (DA). De acordo com a arquitetura da unidade aritmética e lógica, um dos operandos das operações aritméticas tem que estar colocado no registrador acumulador, sendo o resultado apresentado no mesmo registrador (adição e subtração). No caso das operações de multiplicação e de divisão o segundo operando tem que estar colocado no registrador B. O resultado da operação de multiplicação é de 16 bits sendo o byte menos significativo apresentado no acumulador e o byte mais significativo no registrador B.

15 Na operação de divisão o quociente é colocado no acumulador e o resto no registrador B. A operação de ajuste decimal utiliza-se o ajuste para BCD do valor contido no acumulador. Verificar este conjunto de instruções no final da apostila Operações Lógicas As operações lógicas do conjunto de instruções são as operações AND, OR, XOR, clear (CLR), complemento (CPL), rotação simples para a direita ou para a esquerda (RL, RR), rotação com carry, para a esquerda ou para a direita (RLC, RRC) e troca de nibbles (conjunto de 4 bits) no acumulador Operações sobre variáveis booleanas Este grupo de operações dispõe de instruções para colocar um bit a zero (CLR) ou a um (SETB), para complementar (CPL), para efetuar a operação AND ou OR entre um bit e a flag de carry, para transferência de um bit para a flag de carry ou da flag de carry para um bit e operações de salto condicional baseadas no teste da flag de carry (JC, JNC) ou no teste de um bit (JB, JNB) Operações de salto As instruções do grupo de operações de salto permitem alterar o fluxo de execução do programa. Existem instruções para chamada de rotinas (ACALL, LCALL), retorno de rotinas (RET) e de rotinas de serviço a interrupções (RETI), salto incondicional (AJMP, LJMP) e salto condicional (JZ, JNZ, CJNE, DJNZ). Existe ainda uma instrução que não produz nenhum resultado (NOP). A instrução de salto condicional JZ e JNZ permite o salto com base no teste do valor da flag de zero. A instrução CJNE compara o valor contido no acumulador, num registrador ou numa posição de memória acessível indiretamente, com o valor imediato ou com o byte direto referido na instrução e salta se os valores forem iguais. A instrução DJNZ decrementa o registrador ou byte direto e salta se o resultado da operação de decremento for zero Exercícios Resolvidos 1- Considere uma tabela com 50 elementos de 8 bits. A tabela está armazenada na memória de programa com início no endereço 1000H. Escreva uma seqüência de instruções que carregue o nono elemento da tabela no acumulador. MOV DPTR,#1000H MOV A,#8 MOVC ; colocar endereço base no DPTR. ; colocar 8 no acumulador. ; utilizar endereçamento indexado para transferir ; o nono elemento da tabela para o acumulador. 2- Escrever uma seqüência de instruções para trocar o conteúdo das posições de memória 40H e 30H. MOV A,40H ; colocar conteúdo do endereço 40H (end. direto) em A. MOV B,30H ; colocar conteúdo do endereço 30H em B. MOV 30H,A ; guardar conteúdo de A na posição 30H. MOV 40H,B ; guardar conteúdo de B na posição 40H. 3- Adicione o conteúdo das posições de memória 40H e 30H e deixe o conteúdo no acumulador. MOV A,30H ; colocar o conteúdo do endereço 30H em A. ADD A,40H ; somar o conteúdo do endereço 40H a A. 4- Subtrair o conteúdo da posição de memória 40H e o carry ao conteúdo da posição de memória 30H.

16 MOV A,30H ; colocar o conteúdo do endereço 30H em A. SUBB A,40H ; subtrair o conteúdo do endereço 40H e o carry a A. 7- Temporização da unidade central de processamento A temporização da CPU faz-se recorrendo ao circuito oscilador do microcontrolador ou através de um sinal de relógio externo. Quando se utiliza o circuito oscilador à montagem recomendada segue o esquema da figura 10. Torna-se necessária a utilização de dois capacitores e um cristal oscilador como componentes externos. O cristal deve respeitar a especificação de freqüência máxima permitida e o valor dos capacitores depende do tipo de cristal utilizado e pode ser determinado consultando o datasheet do microcontrolador a utilizar. Figura 10- Esquema de montagem do circuito temporizador utilizando o oscilador interno do microcontrolador. Se o sinal de relógio for fornecido a partir do exterior pode utilizar-se o esquema da figura 11. Figura 11- Esquema de montagem do circuito temporizador para dispositivos HMOS ou CHMOS, utilizando um sinal de relógio externo Ciclos máquina e execução de instruções A execução de uma instrução implica a realização de uma série de operações base sobre o hardware que não podem ser executadas num único período de oscilação. Um ciclo máquina corresponde ao número mínimo de períodos do oscilador de que o microcontrolador necessita para executar uma instrução. Na família MCS-51 um ciclo máquina encontra-se dividido em 6 estados S1 a S6, cada um com duração de dois períodos do oscilador. Assim um ciclo máquina corresponde a um total de doze períodos do oscilador. O sinal ALE é ativado durante os estados S1 e S4 de cada ciclo máquina apresentado por isso uma freqüência igual a 1/6 da freqüência do oscilador.

17 8- O assembly da família MCS-51 Um programa em linguagem assembly MCS-51 é constituído por linhas de que podem ser: instruções da linguagem assembly. comentários. diretivas para o assembler. Cada linha contendo instruções em assembly está dividida em 4 campos alguns dos quais podem estar vazios. Esses campos são: campo da etiqueta ou rótulo. campo da operação. campo dos operandos (0 a 3 operandos). campo de comentário. O campo da etiqueta [ou rótulo]; é facultativo e consiste num identificador que constitui a etiqueta seguida de [:]. Os campos da operação e dos operandos estão diretamente relacionados, pois o número de operandos a utilizar depende da operação. Estes campos são constituídos pelas operações descritas no conjunto de instruções seguindo o formato apresentado nas tabelas 5 a 9 (onde são apresentados os tipos de operandos permitidos para cada operação). O campo de comentário é facultativo e inicia-se com [;]. Podem existir linhas que contenham apenas comentários que deverão iniciar-se por [;]. Designa-se por programa assembler ou simplesmente assembler o programa que traduz o código em linguagem assembly para código máquina, que corresponde ao código que a CPU consegue processar. Cada assembler tem as suas particularidades próprias e as suas limitações sendo sempre necessária a consulta do manual a ele associado quando durante a fase de programação do código. As linhas de diretivas para o assembler correspondem a ordens para o assembler sobre o modo como ele vai efetuar a tradução do código escrito em assembly para código máquina. Em seguida são apresentadas as diretivas utilizadas pelos assemblers da família MCS-51, devendo notar que nem todos os assemblers utilizam todas as diretivas descritas, por isso a consulta da documentação relacionada com o assembler é indispensável Diretivas do assembler Existem oito tipos de diretivas: para controle de segmentos. para definição de símbolos. para inicialização de memória. para reserva de memória. para ligação do programa. para controle de endereços. para definição de macros. outras diretivas. Em seguida serão apresentadas as diretivas correspondentes a cada tipo Diretivas para controlo de segmentos Designa-se por segmento um bloco de memória de código ou de dados criado pelo assembler. As diretivas para controle de segmentos servem para criar e selecionar segmentos. Estão definidas cinco classes de memória que podem ser utilizadas na definição ou criação do segmento:

18 BIT bit em memória interna. Endereços até de 0 a 255. CODE memória de código. Endereços de 0000H a 0FFFFH. DATA memória de dados acessíveis através de endereçamento direto. Endereços de 0 a 255 (posições genéricas de 0 a 127 e SFRs de 128 a 255). IDATA memória de dados interna. Endereços de 0 a 255. XDATA memória de dados externa. Endereços de 0000H a 0FFFFH. As diretivas deste tipo são apresentadas na tabela 5. Exemplos: Tabela 5- Diretivas para controle de segmentos. mprogr SEGMENT CODE ; define o segmento de código mprogr. RSEG mprogr ; ativa o segmento mprogr. dd1 SEGMENT DATA ; define o segmento de dados dd1. mprog1 SEGMENT CODE AT 1000H ;define o segmento de código mprogr1 com ; início no endereço 1000H. xdd SEGMENT XDATA PAGE ; define o segmento de dados externos xdd ; alinhado com uma página de 256 bytes. BSEG AT 20H ; define um segmento absoluto de bit com ; início no endereço 20H Diretivas para definição de símbolos As diretivas para atribuição de símbolos atribuem determinado valor a um símbolo. As diferenças entre as várias diretivas deste tipo relacionam-se com o tipo de valor a atribuir ao símbolo. A lista das diretivas deste tipo é apresentada na tabela 6. Exemplos: Tabela 6- Diretivas para definição de símbolos. pt_leitura SET R1 ; utilizar R1 como pt_leitura. falso EQU 0 ; utilizar falso para representar 0. flag1 BIT 50H ; utilizar o bit cujo endereço é 50H como flag1. restart CODE 00H ; faz restart igual à memória de código 00H. PORT1 DATA 90H ; atribui a PORT1 o valor 90H correspondente ; ao endereço do registrador associado ao porto P1.

19 Diretivas para inicialização de memória As diretivas para inicialização de memória permitem inicializar em memória de código posições de 8 ou 16 bits. A tabela 7 apresenta as diretivas disponíveis com esta função. Exemplos: Tabela 7- Diretivas para inicialização de memória. segmento1: DB 7EH,60H,6DH,79H ; inicializa 4 posições de 8 bits, com início ; na posição cujo endereço corresponde à ; etiqueta segmento1, com os valores ; indicados. prompt: DB Ola, como esta! ; neste caso a inicialização é feita com ; os códigos ASCII ; correspondentes aos caracteres entre. tab_salto: DW end1, end2, end3 ; inicializa o segmento de ; código com os endereços ; correspondentes às etiquetas ; end1, end2 e end Diretivas para reserva de memória Este tipo de diretivas serve para reservar espaços de memória de 1 ou de 8 bits. As diretivas deste tipo são apresentadas na tabela 8. Exemplos: Tabela 8- Diretivas para reserva de memória. DBIT 9 DS 25 ; reserva nove bits. ; reserva 25 bytes no segmento ativo Diretivas para ligação do programa As diretivas para ligação do programa utilizam-se quando o programa a desenvolver se encontra distribuído por vários módulos. Como os módulos necessitam de partilhar informação torna-se necessário identificar a origem da informação (quando externa) ou qual a informação que vai ser partilhada. As diretivas deste tipo utilizam-se para essas funções e encontram-se na tabela 9. Tabela 9- Diretivas para ligação do programa.

20 Exemplos: Colégio Técnico de Campinas Cotuca Disciplina - TDM II PUBLIC s1, s2, s3 ; torna públicos os símbolos s1, s2 e s3. EXTRN CODE(s1, s2) ; declara que os símbolos s1 e s2 estão definidos noutro ; módulo. NAME módulo1 ; especifica que o módulo objeto a se deve chamar ; módulo Diretivas para controle de endereços Estas diretivas servem para determinar o endereço em que o código deve ser posicionado e para seleção do banco de registradores a utilizar. Estas diretivas encontram-se na tabela 10. Exemplos: Tabela 10- Diretivas para controle de endereços. ORG 2000H ; posiciona o contador de localização no endereço 2000H ORG reset ; em que reset é um símbolo predefinido correspondendo a um ; dado endereço. USING 2 ; seleciona o banco de registradores número Diretivas para definição de macros Este tipo de diretivas permite definir macros. Designa-se por macro um conjunto de instruções reunidas sob uma determinada etiqueta utilizando diretivas específicas. Quando a etiqueta é referida no programa o assembler procede à sua substituição pelo código referido anteriormente. Nem todos os assemblers suportam a utilização de macros. Estas diretivas são apresentadas na tabela 11. Tabela 11- Diretivas para definição de macros. Uma macro define-se do seguinte modo: nome_macro: MACRO ard1, arg2,..... ENDM ; comentário Outras diretivas A única diretiva listada neste ponto serve para assinalar o fim do módulo e por isso corresponde sempre à última linha de um programa em linguagem assembly. O seu formato é apresentado na tabela 12.

21 9- Reset Tabela 12- Outras diretivas. O reset do microcontrolador efetua-se colocando o pino RST no nível lógico 1 durante pelo menos dois ciclos máquina (24 períodos do oscilador). Na tabela 13 é apresentado o conteúdo dos SFRs depois do reset. Tabela 13- Valor dos SFRs depois do reset. O esquema de montagem recomendado para power-on reset do microcontrolador é apresentado na figura Estrutura e operação das portas E/S Figura 12- Circuito para power-on reset. O 8051 possui 4 portas de entrada/saída, designados P0 a P3, todas elas bidirecionais. As portas são constituídas por uma latch, um driver de saída e um buffer de entrada. As latches correspondem aos SFRs P0 a P3.

22 10.1- Funções alternativas das portas E/S As portas P0, P2 e P3 têm funções específicas associadas à utilização de certas configurações ou blocos de hardware. A porta P0 é utilizada como barramento de endereços/dados nos acessos à memória externa. Esta porta serve para endereçar o byte menos significativo do endereço. A porta P2 é utilizada como barramento de endereços nos acessos à memória externa quando o endereçamento é de 16 bits. Esta porta endereça o byte mais significativo do endereço. A porta P3 é multifuncional estando os seus bits associados a diferentes blocos internos de hardware. As funções alternativas da porta P3 são apresentadas na tabela 14. Tabela 14- Funções alternativas da porta P Estrutura dos pinos E/S Os esquemas elétricos de um bit de cada um das portas são apresentados nas figuras 13, 14, 15 e 16. Figura 13- Esquema elétrico de um bit da porta P0.

23 Figura 14- Esquema elétrico de um bit da porta P1. Figura 15- Esquema elétrico de um bit da porta P2. Figura 16- Esquema elétrico de um bit da porta P3. A estrutura dos pinos E/S não é igual para todos eles. As portas P0 e P2 têm multiplexadores para redirecionar o pino para os barramentos de endereços ou dados, quando são utilizados para acesso à memória externa. As portas P1, P2 e P3 possuem pull-ups internos pelo que dispensam a utilização de pull-ups externos em circuitos de entrada. A porta P0 tem saídas open-drain devido à sua utilização como barramento multiplexado de endereços e dados. A operação das portas como entradas implicam a colocação das latches associadas às portas a 1, quando não estão sendo usadas para funções alternativas, para que os driver de saída sejam desativados. Algumas instruções para leitura das portas atuam sobre a latch, outras sobre o pino. As instruções que atuam sobre a latch, são instruções do tipo readmodify-write e encontram-se listadas na tabela 15.

24 Tabela 15- Instruções do tipo read-modify-write. Durante o acesso externo o conteúdo do registrador associado a P2 não é alterado e o conteúdo do registrador associado a P0 é colocado a 1. Os pinos de P3 ficam controlados pela função alternativa quando o conteúdo do registrador P3 é colocado a Utilização das portas E/S como entradas Podem utilizar-se diversos dispositivos de entrada como sejam interruptores, conversores A/D, teclado, entre outros. De seguida apresentam-se alguns exemplos de interfaces com dispositivos de entrada Interface com um DIP switch Um DIP switch consiste num conjunto de interruptores. Para a interface sugere-se o esquema de montagem da figura 17, que deve ser repetida para cada um dos interruptores utilizados na montagem. Figura 17- Esquema de montagem para interface com DIP switch. A montagem apresentada utiliza-se para portas que não tenham pull-ups internos. Caso a porta utilizado na ligação tenha pull-ups internos não é necessário colocar os resistores no circuito. Supondo que as ligações foram feitas para um DIP switch com 8 interruptores e que se utilizou a porta P2 para a ligação ao microcontrolador, o código para configuração da porta como entrada e para leitura do valor colocado à entrada é o seguinte. MOV P2,#FFH ; configuração da porta P2 como entrada. MOV A,P2 ; leitura da porta P Interface com um teclado Existem diversos tipos de teclados: mecânicos, capacitivos, de efeito de Hall ou de membrana. Cada um destes tipos de teclados apresenta características distintas e requer um modo de processamento e hardware de interfaces diferentes.

25 Consideremos um teclado mecânico. Os teclados mecânicos quando são pressionados apresentam à saída uma série de pulsos e não uma única transição, como se pode ver na figura 18. Este fenômeno designa-se por contact bounce e pode durar de 5ms a 20ms. Figura 18- Ilustração do fenômeno de contact bounce. Para tornar obvio este problema é necessário usar uma das várias técnicas de deboucing, que podem ser implementadas utilizando hardware (circuito set-reset, porta CMOS, circuito RC, entre outros) ou por software. Neste exemplo o deboucing será feito por software. O algoritmo a utilizar num programa para leitura do teclado deverá seguir os passos seguintes: 1- Procura no teclado para determinar se alguma tecla foi pressionada. 2- Debouncing. 3- Consultam-se uma tabela para determinar o código ASCII associado à tecla pressionada (se necessário). A implementação da rotina para procura no teclado da tecla premida depende do modo como é feito a interface com o microcontrolador e do número de teclas disponíveis. O debouncing por software pode ser implementado através do algoritmo seguinte: 1- Espera X ms (X depende do tempo que o contacto leva a estabilizar). 2- Lê de novo o sinal associado à tecla. 3- Se o sinal estiver no nível lógico zero a tecla foi pressionada. Caso contrário a tecla não foi pressionada. Implementação de um salto de acordo com a decisão anterior. A rotina para determinação do código ASCII correspondente à tecla pressionada pode ser implementada colocando em memória de código a tabela com os códigos correspondentes às teclas existentes. Esta tabela pode ser acedida através da instrução MOVC colocando o índice de acesso, de acordo com a tecla pressionada, em A. O código base para implementação desta rotina é apresentado de seguida. tabela: DB... ; definição da tabela. Os caracteres devem ser ; colocados entre aspas. conv: MOV DPTR,#tabela ;coloca em DPTR o endereço base da tabela. MOVC ;lê código ASCII da tabela. LCALL display ;chamada da rotina que faz o display do caractere. RET Utilização dos portos I/O como saídas Podem utilizar-se como dispositivos de saída LEDs, displays de sete segmentos, LCDs, motores, conversores D/A entre outros. Em seguida são apresentados exemplos de interfaces para alguns dos dispositivos de saída referidos.

26 Interface com LEDs O LED permite de um modo simples a visualização do valor de um dado pino de saída. A interface pode ser implementada recorrendo ao esquema da figura 19. Figura 19- Esquema de montagem para interface com LEDs. As resistências utilizam-se para limitar a corrente nos LEDs. O seu valor deve ser calculado tendo em conta as características dos LEDs utilizados. Não é necessário nenhum tipo de configuração para utilizar uma porta como saída. A ativação dos pinos como saída faz-se escrevendo para a latch associada ao pino. Por exemplo, o código necessário para acender os LEDs L1 e L3 e para apagar o LED L2 do circuito anterior seria: MOV P1,# Interface com um display de sete segmentos Um display de 7 segmentos permite a visualização de dígitos entre 0 e 9. Este circuito tem sete entradas correspondentes aos 7 segmentos que podem ser manipulados de modo a permitir a visualização dos dígitos de acordo com a tabela 16. Tabela 16- Tabela de conversão BCD para 7 segmentos. O esquema para interface entre o microcontrolador e o display é apresentado na figura 20. O buffer é utilizado no caso da porta do microcontrolador não fornecer corrente suficiente para fazer o drive do display.

27 Figura 20- Esquema de montagem para interface com um display de 7 segmentos. Código para escrita do dígito 6 no display: Interface com LCD MOV P1,#5FH O esquema de montagem para a interface depende do tipo de dispositivo LCD a utilizar. Como exemplo apresenta-se na figura 21 uma interface com o LCD LM015 que pode servir de modelo para o desenvolvimento de interfaces para outros LCDs. Figura 21- Esquema de montagem para interface com o LCD LM015. O LCD recebe dois tipos de informação: ordens, para posicionamento do cursor, por exemplo, e dados. A seleção do tipo de informação faz-se através do pino RS do LCD. A latch é utilizada para fazer a desmultiplexagem do barramento do microcontrolador fornecendo o sinal para o pino RS. O decodificador de endereços é utilizado para fazer a seleção do LCD. O LM015 inclui um circuito de driving interno por isso não é necessária a colocação de buffers externos. Algoritmo para escrita no LCD: 1- Inicialização do display. 2- Envio dos códigos ASCII dos caracteres a serem mostrados. O código a desenvolver para implementar cada um dos passos do algoritmo anterior depende do LCD, do seu conjunto de instruções e do modo de operação.

28 11- Acesso à memória externa Num sistema com microcontrolador podem existem dois tipos de memória externa: memória de programa e memória de dados. Nos acessos à memória externa a porta P0 utiliza-se como barramento multiplexado de endereços/dados (byte menos significativo). Durante o acesso externo a latch associada a P0 é escrita com 1s e a porta não pode ser utilizado para outros fins. Quando o endereçamento da memória externa é feito a 16 bits a porta P2 é utilizado como barramento de endereços para endereçar o byte mais significativo. O sinal ALE deve ser usado para capturar o endereço para uma latch, de acordo com o esquema proposto na figura Acesso à memória de programa externa O acesso à memória de programa externa é feito quando o sinal /EA está ativo para os endereços contidos no registrador PC que excedem a capacidade de memória interna do microcontrolador. O comando de leitura é dado pelo sinal /PSEN. O endereçamento é sempre feito a 16 bits, pelo que a porta P2 fica dedicado a esta função. O diagrama temporal típico de um acesso à memória de programa externa é apresentado na figura 22. A.D.- amostragem dados Figura 22- Diagrama temporal do acesso à memória de programa externa Acesso à memória de dados externa O acesso à memória de dados externa pode ser de leitura ou de escrita. Os sinais de comando para essas operações são /RD, para leitura, e /WR, para escrita. O endereçamento pode ser de 16 bits ou 8 bits com i=0 ou i =1). Com endereçamento de 8 bits a porta P2 pode ser usado para fins genéricos, podendo utilizar-se algumas das suas linhas para fazer paging da memória, caso seja necessário. A figura 7 apresenta uma interface para acesso à memória de dados externa. As figuras 23 e 24 apresentam os diagramas temporais típicos para os acessos de leitura e escrita, respectivamente, à memória de dados externa. Figura 23- Diagrama temporal do acesso à memória de dados ciclo leitura.

29 Figura 24- Diagrama temporal do acesso à memória de dados ciclo escrita. 12- Temporização / Contagem Todos os microcontroladores incluem um bloco de hardware que possui capacidades para fazer temporização ou contagem. Este bloco é de extrema importância tendo em consideração as aplicações típicas dos microcontroladores (sistemas de controle de tempo real). O bloco de temporização/contagem permite criar atrasos com determinada duração, impor instantes de amostragem, medir a largura do pulso de um dado sinal, medir a freqüência de um sinal periódico ou contar o número de ocorrências de um dado evento, entre outras. Na função de temporização o registrador de contagem associado ao temporizador é incrementado a um ritmo fixo dependente da freqüência de oscilação aplicada ao o microcontrolador. Na função de contagem o registrador de contagem é incrementado em resposta a uma transição num sinal externo aplicado a um pino específico Temporização/ contagem na família MCS-51 A família MCS-51 possui dois tipos de blocos temporizadores/contadores: os Timers 0 e 1 e o Timer 2. Na função de temporização são contados ciclos de máquina, ou seja, a taxa de contagem é de f OSC /12, sendo f OSC a freqüência de oscilação aplicada ao microcontrolador. Na função de contagem, o incremento é feito na ocorrência de uma transição de 1 para 0 no sinal externo aplicado. O reconhecimento dessa transição demora dois ciclos de máquina, sendo por isso a taxa máxima de contagem igual à fosc/ Timers 0 e 1 Os Timers 0 e 1 são temporizadores/contadores de 16 bits com quatro modos de operação possíveis. Os registradores de contagem a eles associados são TH0, TL0, TH1 e TL1. Associado a cada temporizador/contador existe ainda uma flag de overflow que é ativada por hardware quando se excede a capacidade de contagem do registrador de contagem. Na ocorrência da condição de overflow o registrador de contagem passa a conter zeros e a contagem prossegue a partir desse valor. O registrador TMOD permite fazer a seleção tipo de função e do modo de operação de cada um dos temporizadores/contadores. Este registrador não é endereçável bit a bit. Este registrador é apresentado na figura 25. Figura 25- Registrador TMOD (endereço 89H).

Microprocessadores e Microcontroladores. Prova Substitutiva Uma Solução

Microprocessadores e Microcontroladores. Prova Substitutiva Uma Solução Prova Substitutiva Uma Solução Aluno: Matrícula: Uso de Interrupções e do Temporizador 1. Faça um programa (usando o assembly do 8051) para acionamento de um motor de corrente contínua, com as seguintes

Leia mais

Acetatos de apoio às aulas teóricas

Acetatos de apoio às aulas teóricas Microprocessadores e Aplicações Acetatos de apoio às aulas teóricas Ana Cristina Lopes Dep. Engenharia Electrotécnica http://orion.ipt.pt anacris@ipt.pt Ana Cristina Lopes, 24 de Outubro de 2004 Microprocessadores

Leia mais

EXPERIÊNCIA 17 USO DO TEMPORIZADOR INTERNO

EXPERIÊNCIA 17 USO DO TEMPORIZADOR INTERNO EXPERIÊNCIA 17 USO DO TEMPORIZADOR INTERNO Parte I Fundamentos Teóricos O que diferencia um microcontrolador (como o 8051) de um microprocessador é o fato de que o primeiro pode apresentar, integrados

Leia mais

Estrutura de um Computador

Estrutura de um Computador SEL-0415 Introdução à Organização de Computadores Estrutura de um Computador Aula 7 Prof. Dr. Marcelo Andrade da Costa Vieira MODELO DE VON NEUMANN PRINCÍPIOS A arquitetura de um computador consiste de

Leia mais

Microprocessadores e Microcontroladores Parte 3. Expansão de Memória Mapeamento de Memória

Microprocessadores e Microcontroladores Parte 3. Expansão de Memória Mapeamento de Memória Microprocessadores e Microcontroladores Parte 3 Expansão de Memória José Wilson Lima Nerys www.eee.ufg.br/ jwilson 2013 Um microcontrolador padrão da família 8051 possui normalmente uma memória de programa

Leia mais

PROJETOS COM MICROCONTROLADORES

PROJETOS COM MICROCONTROLADORES Escola de Engenharia Elétrica e de Computação Universidade Federal de Goiás PROJETOS COM MICROCONTROLADORES Versão em Processo de Atualização Prof. Dr. José Wilson Lima Nerys Goiânia, 2009 Projetos com

Leia mais

Oprojeto apresenta três níveis de dificuldade: fácil, médio e difícil. No modo fácil tem-se uma

Oprojeto apresenta três níveis de dificuldade: fácil, médio e difícil. No modo fácil tem-se uma Jogo de Memória (Memorex v. 3.0) José Wilson Lima Nerys Universidade Federal de Goiás jwlnerys@gmail.com Abstract No presente projeto uma sequência de Leds é criada pelo microcontrolador, e deve ser repetida

Leia mais

1. SINTAXE DA LINGUAGEM ASSEMBLY

1. SINTAXE DA LINGUAGEM ASSEMBLY 1. SINTAXE DA LINGUAGEM ASSEMBLY Antes de se escrever em assembly, é conveniente construir um fluxograma do programa. Um fluxograma não faz referência à linguagem a utilizar, pelo que pode ser utilizado

Leia mais

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 4: Temporizadores e Motor de Passo Alunos: Matrícula:

Leia mais

Arquitetura de Computadores. Tipos de Instruções

Arquitetura de Computadores. Tipos de Instruções Arquitetura de Computadores Tipos de Instruções Tipos de instruções Instruções de movimento de dados Operações diádicas Operações monádicas Instruções de comparação e desvio condicional Instruções de chamada

Leia mais

ULA Sinais de Controle enviados pela UC

ULA Sinais de Controle enviados pela UC Solução - Exercícios Processadores 1- Qual as funções da Unidade Aritmética e Lógica (ULA)? A ULA é o dispositivo da CPU que executa operações tais como: Adição Subtração Multiplicação Divisão Incremento

Leia mais

MICROCONTROLADORES FAMÍLIA 8031/8051

MICROCONTROLADORES FAMÍLIA 8031/8051 MANUAL MICROCONTROLADORES FAMÍLIA 8031/8051 PROF. EDSON PEDRO FERLIN CURITIBA, PR ABRIL 2004 Sumário CAPÍTULO 1 INTRODUÇÃO... 3 CAPÍTULO 2 VISÃO GERAL... 4 1.1) Características de Hardware... 6 1.1) Pinagem

Leia mais

Aplicações de Microprocessadores I. Prof. Adilson Gonzaga

Aplicações de Microprocessadores I. Prof. Adilson Gonzaga Aplicações de Microprocessadores I Prof. Adilson Gonzaga Exercício -1 Fazer um programa em Assembly do 8051 que informe a temperatura de um forno. O programa deve enviar inicialmente um String em ASCII

Leia mais

Sistemas Microprocessados. sato<at>utfpr<dot>edu<dot>br

Sistemas Microprocessados. sato<at>utfpr<dot>edu<dot>br Sistemas Microprocessados satoutfpredubr http://pessoal.utfpr.edu.br/sato/ Assembly do 805 satoutfpredubr Sobre o material Essas transparências foram baseadas em materiais elaborados

Leia mais

BARRAMENTO DO SISTEMA

BARRAMENTO DO SISTEMA BARRAMENTO DO SISTEMA Memória Principal Processador Barramento local Memória cachê/ ponte Barramento de sistema SCSI FireWire Dispositivo gráfico Controlador de vídeo Rede Local Barramento de alta velocidade

Leia mais

Arquitetura de Computadores - Revisão -

Arquitetura de Computadores - Revisão - Arquitetura de Computadores - Revisão - Principais funções de um Sistema Operacional Componentes básicos da Arquitetura Barramentos Registradores da CPU Ciclo de Instruções Interrupções Técnicas de E/S

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

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA 8 CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA A porta paralela, também conhecida por printer port ou Centronics e a porta serial (RS-232) são interfaces bastante comuns que, apesar de estarem praticamente

Leia mais

Componentes do Computador e. aula 3. Profa. Débora Matos

Componentes do Computador e. aula 3. Profa. Débora Matos Componentes do Computador e modelo de Von Neumann aula 3 Profa. Débora Matos O que difere nos componentes que constituem um computador? Princípios básicos Cada computador tem um conjunto de operações e

Leia mais

CEFET-SP. Microcontroladores Família MCS-51 Conceitos, Aplicações e Projetos versão 6.0 2004 Wilson Ruiz. Wilson Ruiz

CEFET-SP. Microcontroladores Família MCS-51 Conceitos, Aplicações e Projetos versão 6.0 2004 Wilson Ruiz. Wilson Ruiz CEFET-SP Microcontroladores Família MCS-51 Conceitos, Aplicações e Projetos versão 6.0 2004 Wilson Ruiz Harpia harpyja Harpia ou Águia Real Brasil 1 CAPÍTULO 1: HARDWARE DOS MICROCONTROLADORES DA FAMÍLIA

Leia mais

Edeyson Andrade Gomes

Edeyson Andrade Gomes Sistemas Operacionais Conceitos de Arquitetura Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Máquinas de Níveis Revisão de Conceitos de Arquitetura 2 Máquina de Níveis Máquina de níveis Computador

Leia mais

DIAGRAMA DE BLOCOS DE UM MICROCONTROLADOR

DIAGRAMA DE BLOCOS DE UM MICROCONTROLADOR DIAGRAMA DE BLOCOS DE UM MICROCONTROLADOR BARRAMENTO [BUS] DE ENDEREÇOS UNIDAD CENTRAL DE PROCESO C.P.U INTERFACE SERIE UNIDADE DE CONTROLE U.L.A REGITRADORES TIMERS ROM RAM PORTAS E/S [I/O] BUS DE DADOS

Leia mais

EEC2104 Microprocessadores

EEC2104 Microprocessadores EEC2104 Microprocessadores Edição 2005/2006 Contadores / Temporizadores Contadores/temporizadores em geral... Hardware para contagem de impulsos Externos Internos (derivados do relógio interno) Contagem

Leia mais

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2) Arquitectura de um computador Caracterizada por: Conjunto de instruções do processador (ISA Estrutura interna do processador (que registadores existem, etc Modelo de memória (dimensão endereçável, alcance

Leia mais

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUÇÃO POSSÍVEL. Obs.: Todas as questões têm valor 2,0. Boa prova e Feliz Natal e Ano Novo!!!!

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUÇÃO POSSÍVEL. Obs.: Todas as questões têm valor 2,0. Boa prova e Feliz Natal e Ano Novo!!!! MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 Aluno: Matrícula: UMA SOLUÇÃO POSSÍVEL Obs.: Todas as questões têm valor 2,0. Boa prova e Feliz Natal e Ano Novo!!!! 1. Escreva um pequeno, em assembly do

Leia mais

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann Universidade Federal de Santa Maria NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann O modelo (ou arquitetura) de von

Leia mais

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy) Capítulo 4 João Lourenço Joao.Lourenco@di.fct.unl.pt Faculdade de Ciências e Tecnologia Universidade Nova de Lisboa 2007-2008 MARIE (Machine Architecture Really Intuitive and Easy) Adaptado dos transparentes

Leia mais

LABORATÓRIO DE MICROPROCESSADORES E MICROCONTROLADORES

LABORATÓRIO DE MICROPROCESSADORES E MICROCONTROLADORES Escola de Engenharia Elétrica e de Computação Universidade Federal de Goiás LABORATÓRIO DE MICROPROCESSADORES E MICROCONTROLADORES Prof. Dr. José Wilson Lima Nerys Goiânia, 1º semestre de 2012 Laboratório

Leia mais

Notas de Aula Prof. André R. Hirakawa Prof. Paulo S. Cugnasca Prof. Carlos E. Cugnasca

Notas de Aula Prof. André R. Hirakawa Prof. Paulo S. Cugnasca Prof. Carlos E. Cugnasca Notas de Aula Prof. André R. Hirakawa Prof. Paulo S. Cugnasca Prof. Carlos E. Cugnasca SISTEMAS COMPACTOS: MEMÓRIAS ROM/RAM INTERNAS E/S INTERNOS: 1 CANAL SERIAL (CONSOME P3.0 E P3.1) 2 TIMERS/CONTADORES

Leia mais

Programação de Microprocessadores. Programação de Microprocessadores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

Programação de Microprocessadores. Programação de Microprocessadores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Programação de Microprocessadores Microprocessadores são Máquinas de Estado Seqüenciais Síncronas que operam mediante a execução de uma seqüência de códigos binários

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

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br MATÉRIA: ICO Aula N : 09 Tema: Unidade Central de

Leia mais

ARQUITETURA DE COMPUTADORES - 1866

ARQUITETURA DE COMPUTADORES - 1866 7 Unidade Central de Processamento (UCP): O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento e de controle, durante a execução de um

Leia mais

EXERCÍCIOS RESOLVIDOS

EXERCÍCIOS RESOLVIDOS EXERCÍCIOS RESOLVIDOS Modos de endereçamento direto ; inclui no programa assembly o arquivo (REG51.inc) ORG 0000H ; o programa inicia na linha 0000H da EPROM MOV A,#01010101B ; carrego no ACC por binário

Leia mais

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01 Unidade Central de Processamento (CPU) Processador Renan Manola Introdução ao Computador 2010/01 Componentes de um Computador (1) Computador Eletrônico Digital É um sistema composto por: Memória Principal

Leia mais

UNIVERSIDADE FEDERAL DE ITAJUBÁ PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA THIAGO POUZA MUSSOLINI

UNIVERSIDADE FEDERAL DE ITAJUBÁ PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA THIAGO POUZA MUSSOLINI UNIVERSIDADE FEDERAL DE ITAJUBÁ PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA THIAGO POUZA MUSSOLINI DESENVOLVIMENTO DE UM MICROCONTROLADOR DE 8 BITS EM VHDL BASEADO NO CONJUNTO DE INSTRUÇÕES DO 8051

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 5 CONJUNTO DE INSTRUÇÕES Prof. Luiz Gustavo A. Martins Introdução O que é um conjunto de instruções? Coleção completa das instruções que a CPU é capaz de executar (entende).

Leia mais

Interrupções. As interrupções são casos especiais de chamadas de procedimentos.

Interrupções. As interrupções são casos especiais de chamadas de procedimentos. Interrupções Uma interrupção é equivalente a uma chamada de procedimento. A chamada é equivalente a um CALL gerado pela execução de uma instrução. As interrupções são casos especiais de chamadas de procedimentos.

Leia mais

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Revisão dos conceitos básicos O processador é o componente vital do sistema de

Leia mais

CONSTRUÇÃO DE UMA UCP HIPOTÉTICA M++ INTRODUÇÃO

CONSTRUÇÃO DE UMA UCP HIPOTÉTICA M++ INTRODUÇÃO CONSTRUÇÃO DE UMA UCP HIPOTÉTICA M++ INTRODUÇÃO O seguinte artigo apresenta uma UCP hipotética construída no software simulador DEMOWARE Digital Works 3.04.39. A UCP (Unidade Central de Processamento)

Leia mais

ENTRADA E SAÍDA DE DADOS

ENTRADA E SAÍDA DE DADOS ENTRADA E SAÍDA DE DADOS Os dispositivos de um computador compartilham uma única via de comunicação BARRAMENTO. BARRAMENTO Elétrica/Mecânica + Protocolo. GERENCIAMENTO DE E/S O controle da troca de dados

Leia mais

2 Formalidades referentes ao trabalho

2 Formalidades referentes ao trabalho Bacharelado em Ciência da Computação DINF / UFPR Projetos Digitais e Microprocessadores 1 o Semestre de 2006 MICO-v12.r0 07/03/2006 Profs. Luis Allan Künzle e Armando Luiz Nicolini Delgado Atenção: Este

Leia mais

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema. O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema. Unidade aritmética e lógica - Executa operações aritméticas (cálculos);

Leia mais

Introdução à programação em linguagem assembly

Introdução à programação em linguagem assembly Introdução à programação em linguagem assembly Espaço de endereçamento Instruções de acesso à memória Modos de endereçamento Diretivas Tabelas Pilha Rotinas Arquitetura de Computadores Introdução à programação

Leia mais

Funcionamento básico de um computador

Funcionamento básico de um computador Funcionamento básico de um computador Processador Unidade de dados Unidade de controlo Arquitetura de computador básica Linguagem assembly Exemplos Arquitetura de Computadores Funcionamento básico de um

Leia mais

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar Componentes de um Computador (5) Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br) 2007/01 - INF02597 Com slides de Roberta Lima Gomes

Leia mais

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM 71 Introdução Difere dos níveis inferiores por ser implementado por tradução A tradução é usada quando um processador está disponível para uma mensagem fonte mas

Leia mais

Unidade Central de Processamento

Unidade Central de Processamento Unidade Central de Processamento heloar.alves@gmail.com Site: heloina.com.br 1 CPU A Unidade Central de Processamento (UCP) ou CPU (Central Processing Unit), também conhecida como processador, é responsável

Leia mais

Ambiente de desenvolvimento de Programação Assembly MCU 8051 IDE

Ambiente de desenvolvimento de Programação Assembly MCU 8051 IDE SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Prof. Evandro L. L. Rodrigues Ambiente de desenvolvimento de Programação Assembly MCU 8051 IDE http://mcu8051ide.sourceforge.net/ Tela inicial Criar novo projeto:

Leia mais

1345 Arquitectura de Computadores

1345 Arquitectura de Computadores 1345 Arquitectura de Computadores Relatório do 2º Teste formativo Ano lectivo 1999/2000 Resolução da questão 1 O mapa de memória pedido é o seguinte: Endereço do fim da página FFFFH DFFFH BFFFH 9FFFH 7FFFH

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

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

Arquitectura de Computadores. Dicas e Truques do Assembly do P3

Arquitectura de Computadores. Dicas e Truques do Assembly do P3 Instituto Superior Técnico Arquitectura de Computadores Dicas e Truques do Assembly do P3 Prof. Renato Nunes Versão 2.0 03/03/2008 1. Introdução Este documento contém vários pedaços de código, instruções

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

Organização e Arquitetura de Computadores

Organização e Arquitetura de Computadores Organização e Arquitetura de Computadores Entrada e saída Alexandre Amory Edson Moreno Nas Aulas Anteriores Foco na Arquitetura e Organização internas da Cleo Modelo Von Neuman Circuito combinacional Circuito

Leia mais

Os 3 principais tipos de Instruções (INSTRUTION SET) dos up são:

Os 3 principais tipos de Instruções (INSTRUTION SET) dos up são: Linguagem Assembly Os 3 principais tipos de Instruções (INSTRUTION SET) dos up são: INSTRUÇÕES DE TRANSFERÊNCIA DE DADOS - Movem dados entre Registradores, Registradores e Memória e Valores Fixos para

Leia mais

USJT Universidade São Judas Tadeu ENGENHARIA ELÉTRICA - LAB. INTEGRADO. EXP4 : Interrupções do uc 8051

USJT Universidade São Judas Tadeu ENGENHARIA ELÉTRICA - LAB. INTEGRADO. EXP4 : Interrupções do uc 8051 USJT Universidade São Judas Tadeu ENGENHARIA ELÉTRICA - LAB. INTEGRADO EXP4 : Interrupções do uc 8051 Prof. Vladimir Chvojka Jr Eng. Elétrica- Lab. Integrado - uc 8051 - Prof. Vladimir Chvojka Jr Exp4:

Leia mais

Laboratório de Sistemas Processadores e Periféricos Lista de comandos de Assembly

Laboratório de Sistemas Processadores e Periféricos Lista de comandos de Assembly Laboratório de Sistemas Processadores e Periféricos Lista de comandos de Assembly Gustavo G. Parma Lista dos comandos assembly que serão utilizados ao longo das práticas. 1 Comandos 1. ADD destino, fonte

Leia mais

Programação Básica em Arduino Aula 2

Programação Básica em Arduino Aula 2 Programação Básica em Arduino Aula 2 Execução: Laboratório de Automação e Robótica Móvel Variáveis são lugares (posições) na memória principal que servem para armazenar dados. As variáveis são acessadas

Leia mais

Figura 1 - O computador

Figura 1 - O computador Organização e arquitectura dum computador Índice Índice... 2 1. Introdução... 3 2. Representação da informação no computador... 4 3. Funcionamento básico dum computador... 5 4. Estrutura do processador...

Leia mais

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Cap1.1 ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM 1. Conceitos básicos Bit = BInary digit = vale sempre 0 ou 1 elemento básico de informação Byte Word = 8 bits processados em paralelo (ao

Leia mais

Unidade 10: A Unidade Lógica Aritmética e as Instruções em Linguagem de Máquina Prof. Daniel Caetano

Unidade 10: A Unidade Lógica Aritmética e as Instruções em Linguagem de Máquina Prof. Daniel Caetano Arquitetura e Organização de Computadores 1 Unidade 10: A Unidade Lógica Aritmética e as Instruções em Linguagem de Máquina Prof. Daniel Caetano Objetivo: Apresentar as funções o mecanismo de atuação da

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

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

Dispositivos de Entrada e Saída

Dispositivos de Entrada e Saída SEL-0415 Introdução à Organização de Computadores Dispositivos de Entrada e Saída Aula 9 Prof. Dr. Marcelo Andrade da Costa Vieira ENTRADA e SAÍDA (E/S) (I/O - Input/Output) n Inserção dos dados (programa)

Leia mais

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. 7.3.1.2 Registradores: São pequenas unidades de memória, implementadas na CPU, com as seguintes características:

Leia mais

Arquitetura de Computadores. Arquitetura de Computadores 1

Arquitetura de Computadores. Arquitetura de Computadores 1 Computadores Computadores 1 Introdução Componentes: Processador; UC; Registradores; ALU s, FPU s, etc. Memória (Sistema de armazenamento de informações; Dispositivo de entrada e saída. Computadores 2 Introdução

Leia mais

A família de microcontroladores 8051

A família de microcontroladores 8051 EEL7030 A família de microcontroladores 8051 1 Comentários sobre microcontroladores Um microcontrolador é um componente que tem, num único chip, além de uma CPU, elementos tais como memórias ROM e RAM,

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES 01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100

Leia mais

Prof. Adilson Gonzaga

Prof. Adilson Gonzaga Microprocessadores são Máquinas de Estado Seqüenciais Síncronas que operam mediante a execução de uma seqüência de códigos binários armazenados em memória. Prof. Adilson Gonzaga 1 As ordens ou comandos

Leia mais

Programando o computador IAS

Programando o computador IAS Programando o computador IAS Edson Borin e Rafael Auler 21 de março de 2012 1 Introdução O computador IAS foi um dos primeiros computadores a implementar o conceito do programa armazenado. Neste paradigma,

Leia mais

Arquitectura de Computadores

Arquitectura de Computadores Unidade de Entrada/Saída (I/O) Nuno Cavaco Gomes Horta Universidade Técnica de Lisboa / Instituto Superior Técnico Sumário Introdução Unidade de Processamento Unidade de Controlo Conjunto de Instruções

Leia mais

Conjunto de instruções. O Conjunto de Instruções. Conjunto de instruções. Instruções típicas. Instruções típicas. Instruções típicas

Conjunto de instruções. O Conjunto de Instruções. Conjunto de instruções. Instruções típicas. Instruções típicas. Instruções típicas Conjunto de instruções O Conjunto de Instruções ISA Instruction Set Architecture Alguns conceitos... Linguagem máquina Combinação de 0 s e 1 s organizados segundo palavras que são as instruções que o processador

Leia mais

Organização Básica do Computador

Organização Básica do Computador Organização Básica do Computador Modelo de Von Neumann MEMÓRIA ENTRADA ARITMÉTICA LÓGICA SAÍDA CONTROLE Modelo de Von Neumann Introduziu o conceito do computador controlado por programa armazenado. Todo

Leia mais

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br Introdução INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br introdução Tópicos conceitos básicos o que é um programa um programa na memória decifrando um código referência Capítulo

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA (Cont.) 1.3. INSTRUÇÕES Conceitos Básicos

1. NÍVEL CONVENCIONAL DE MÁQUINA (Cont.) 1.3. INSTRUÇÕES Conceitos Básicos 1. NÍVEL CONVENCIONAL DE MÁQUINA (Cont.) 1.3. INSTRUÇÕES Conceitos Básicos Já estudamos anteriormente que os processadores funcionam (ou melhor, o seu hardware funciona) através de ordens simples e básicas,

Leia mais

Nível da Microarquitetura

Nível da Microarquitetura Nível da Microarquitetura (Aula 10) Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/2 Agradecimentos: Camilo Calvi - LPRM/DI/UFES Máquina de Vários Níveis Modernas (ISA)

Leia mais

Aula 2. - Elaboração de algoritmos/fluxogramas. - Gravação do programa no microcontrolador

Aula 2. - Elaboração de algoritmos/fluxogramas. - Gravação do programa no microcontrolador Aula 2 - Elaboração de algoritmos/fluxogramas - Set de instruções do 8051 - Programação em Assembly - Gravação do programa no microcontrolador - Simulação Exercícios da aula passada... 1) Converta os números

Leia mais

Sistemas Microcontrolados

Sistemas Microcontrolados Sistemas Microcontrolados Uma Abordagem com o Microcontrolador PIC 16F84 Nardênio Almeida Martins Novatec Editora Capítulo 1 Introdução Os microcontroladores estão presentes em quase tudo o que envolve

Leia mais

Estrutura do programa e programação Assembly com 8051. O que entende por linguagem assembly?

Estrutura do programa e programação Assembly com 8051. O que entende por linguagem assembly? O que entende por linguagem assembly? i. Apresenta um nível de abstração intermédia entre os dois extremos: linguagem máquina e linguagem alto-nível ii. Facilita a programação pela substituição do código

Leia mais

28/9/2010. Unidade de Controle Funcionamento e Implementação

28/9/2010. Unidade de Controle Funcionamento e Implementação Arquitetura de Computadores Unidade de Controle Funcionamento e Implementação Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Operação da Unidade de Controle Unidade de controle: parte do

Leia mais

Arquitetura e Organização de Computadores I

Arquitetura e Organização de Computadores I Arquitetura e Organização de Computadores I Interrupções e Estrutura de Interconexão Prof. Material adaptado e traduzido de: STALLINGS, William. Arquitetura e Organização de Computadores. 5ª edição Interrupções

Leia mais

Visão Geral de Sistemas Operacionais

Visão Geral de Sistemas Operacionais Visão Geral de Sistemas Operacionais Sumário Um sistema operacional é um intermediário entre usuários e o hardware do computador. Desta forma, o usuário pode executar programas de forma conveniente e eficiente.

Leia mais

AEDB CURSO DE SISTEMAS DE INFORMAÇÃO APOSTILA DE ORGANIZAÇÃO DE COMPUTADORES PROF. ADÃO DE MELO NETO

AEDB CURSO DE SISTEMAS DE INFORMAÇÃO APOSTILA DE ORGANIZAÇÃO DE COMPUTADORES PROF. ADÃO DE MELO NETO AEDB CURSO DE SISTEMAS DE INFORMAÇÃO APOSTILA DE ORGANIZAÇÃO DE COMPUTADORES PROF. ADÃO DE MELO NETO Organização de Computadores 2 PREFÁCIO Esta apostila não tem a pretensão de ser uma obra inédita no

Leia mais

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

A Unidade Central de Processamento é a responsável pelo processamento e execução de programas armazenados na MP. A ARQUITETURA DE UM COMPUTADOR A arquitetura básica de um computador moderno segue ainda de forma geral os conceitos estabelecidos pelo Professor da Universidade de Princeton, John Von Neumann (1903-1957),

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas de Entrada/Saída Princípios de Hardware Sistema de Entrada/Saída Visão Geral Princípios de Hardware Dispositivos de E/S Estrutura Típica do Barramento de um PC Interrupções

Leia mais

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger O controle da entrada e saída (E/S ou I/O, input/output) de dados dos dispositivos é uma das funções principais de um sistema operacional.

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

Organização de Computadores Como a informação é processada?

Organização de Computadores Como a informação é processada? Curso de ADS/DTEE/IFBA Organização de Computadores Como a informação é processada? Prof. Antonio Carlos Referências Bibliográficas: 1. Ciência da Computação: Uma visão abrangente - J.Glenn Brokshear 2.

Leia mais

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 2 - O NÍVEL DA MICROARQUITETURA 1. INTRODUÇÃO Este é o nível cuja função é implementar a camada ISA (Instruction Set Architeture). O seu projeto depende da arquitetura do conjunto das instruções

Leia mais

LISTA DE EXERCÍCIOS - Nro. 01

LISTA DE EXERCÍCIOS - Nro. 01 Professor responsável: Fernando Santos Osório Semestre: 2010/2 Horário: Quarta 21h00 [Arquiteturas Clássicas] USP ICMC SSC SSC0510 - Arquitetura de Computadores E-mail: fosorio icmc.usp.br fosorio gmail.com

Leia mais

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 - Uma Solução Possível

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 - Uma Solução Possível Parte 3 Parte 1 Parte 2 Goiânia, 5 de junho de 2014. MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 - Uma Solução Possível 1. Suponha um sistema com um conjunto de 8 LEDs conectados à porta P1 e duas

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES 01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100

Leia mais

Parte II O microcontrolador Intel 8051

Parte II O microcontrolador Intel 8051 Parte II O microcontrolador Intel 8051 1 Comentários sobre microcontroladores Um microcontrolador é um componente que tem, num único chip, além de uma CPU, elementos tais como memórias ROM e RAM, temporizadores,

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas de Computação O sistema operacional precisa garantir a operação correta do sistema de computação. Operação

Leia mais

www.vwsolucoes.com Copyright 2011 VW Soluções

www.vwsolucoes.com Copyright 2011 VW Soluções 1 Apresentação O adaptador ADP.v01 é utilizado para facilitar a instalação de display Lcd 16x2 ou display Lcd 20x4 nos CLP PIC28 ou CLP PIC40 através de um flat cable de 10vias de acordo com a necessidade

Leia mais

Arquitetura de Computadores Circuitos Combinacionais, Circuitos Sequênciais e Organização de Memória

Arquitetura de Computadores Circuitos Combinacionais, Circuitos Sequênciais e Organização de Memória Introdução Arquitetura de Computadores Circuitos Combinacionais, Circuitos Sequênciais e O Nível de lógica digital é o nível mais baixo da Arquitetura. Responsável pela interpretação de instruções do nível

Leia mais

INSTITUTO POLITÉCNICO DE BRAGANÇA ESCOLA SUPERIOR DE TECNOLOGIA E DE GESTÃO. Engenharia Electrotécnica. Microprocessadores. 2ºano - 1ºsemestre

INSTITUTO POLITÉCNICO DE BRAGANÇA ESCOLA SUPERIOR DE TECNOLOGIA E DE GESTÃO. Engenharia Electrotécnica. Microprocessadores. 2ºano - 1ºsemestre INSTITUTO POLITÉCNICO DE BRAGANÇA ESCOLA SUPERIOR DE TECNOLOGIA E DE GESTÃO Engenharia Electrotécnica Microprocessadores 2ºano - 1ºsemestre Microprocessador 8085 Exercícios de Programação em Linguagem

Leia mais

Acetatos de apoio às aulas teóricas

Acetatos de apoio às aulas teóricas Microprocessadores e Aplicações Acetatos de apoio às aulas teóricas Ana Cristina Lopes Dep. Engenharia Electrotécnica http://orion.ipt.pt anacris@ipt.pt Ana Cristina Lopes, 20 de Outubro de 2005 Microprocessadores

Leia mais

Entrada e Saída. Prof. Leonardo Barreto Campos 1

Entrada e Saída. Prof. Leonardo Barreto Campos 1 Entrada e Saída Prof. Leonardo Barreto Campos 1 Sumário Introdução; Dispositivos Externos; E/S Programada; E/S Dirigida por Interrupção; Acesso Direto à Memória; Bibliografia. Prof. Leonardo Barreto Campos

Leia mais