Sistemas Microprocessados e Microcontrolados Objetivos –Geral Capacitar os egressos do curso a...

Post on 22-Apr-2015

110 views 2 download

Transcript of Sistemas Microprocessados e Microcontrolados Objetivos –Geral Capacitar os egressos do curso a...

Sistemas Microprocessados e Microcontrolados

Objetivos– Geral

Capacitar os egressos do curso a compreender e aplicar conceitos computacionais à área de automação e controle.

– EspecíficosEntender os fundamentos básicos da eletrônica digital na construção da computação.

Aplicar programação de alto nível nos dispositivos microcontroladores

2

Conceitos Básicos de Conceitos Básicos de Eletrônica DigitalEletrônica Digital

É importante entender o significado dos É importante entender o significado dos seguintes conceitos: seguintes conceitos:

LógicaLógica e e Álgebra de BooleÁlgebra de Boole e como estes e como estes conceitos podem ser empregados para a conceitos podem ser empregados para a

implementação das implementação das portas lógicasportas lógicas e, e, conseqüentemente, dos conseqüentemente, dos circuitos lógicoscircuitos lógicos

(digitais) e (digitais) e computadores digitaiscomputadores digitais..

3

A lógicalógica é a base da eletrônica digital e da informática. Esta surgiu na Grécia antiga com a contribuição de três filósofos: SócratesSócrates, PlatãoPlatão e AristótelesAristóteles.

– Sócrates não deixou seus ensinamentos por escrito.– Platão (seguidor de Sócrates) escreveu vários de seus

diálogos e desenvolveu sua filosofia abrangendo a ética, a política e o conhecimento, tendo como princípio o método da investigação.

– Aristóteles, baseado nos diálogos escritos por Platão, observou que a linguagem deve ter uma estrutura lógica, para que leve, necessariamente, a uma verdade.

– Pelo método de investigação de Sócrates, se duas verdades são alcançadas individualmente, ao juntá-las tem-se uma única verdade.

Sócrates, considerado um dos homens mais sábios da humanidade, notabilizou-se por afirmar que era sábio justamente por “saber que nada sabiasaber que nada sabia”.

Conceitos Básicos de Conceitos Básicos de Eletrônica DigitalEletrônica Digital

4

No século XIX, a teoria de Aristóteles foi sintetizada em forma de álgebra, ganhando o nome de Álgebra Booleana.

A Álgebra de Boole permite que uma afirmaçãouma afirmação (lógica) possa ser expressa matematicamente.

Boole construiu sua lógica a partir de símbolos, representando as expressões por letras e ligando-as através de conectivos - símbolos algébricossímbolos algébricos.

Boole, através de seu livro “An investigation of the laws of thought” (Uma investigação das leis do pensamento) apresentou a lógica binária.lógica binária.

Conceitos Básicos de Conceitos Básicos de Eletrônica DigitalEletrônica Digital

5

A lógicalógica teve como objetivo modelar o raciocínio humano.

Partindo de frases declarativas (proposições), que podem ser verdadeirasverdadeiras ou falsasfalsas, estuda-se o processo de construção e a veracidade de outras proposições usando conectivos.

Na lógica proposicional associa-se a cada proposição um valor lógico: ou verdade (1) ou falso (0).

Conceitos Básicos de Conceitos Básicos de Eletrônica DigitalEletrônica Digital

Da Lógica nasceu a Lógica Matemática e, dentro desta, várias filosofias da lógica que interpretam os cálculos simbólicos e sua sistematização axiomática.

6

Operação lógica – Operação lógica – realizada sobre um ou mais valores lógicos para produzir um certo resultado (também um valor lógico).

Assim como na álgebra comum, é necessário definir símbolos matemáticos e gráficos para representar as operações lógicas (e os operadores lógicos).

Resultados possíveis de uma operação lógica:– 0 (FALSO, FF= bit 0) - nível baixo– 1 (VERDADEIRO, VV = bit 1) - nível alto (Lógica Positiva)

Álgebra de BooleÁlgebra de Boole

7

OPERADORES LÓGICOS BÁSICOSOPERADORES LÓGICOS BÁSICOS

Os conectivos ou OPERADORES LÓGICOS ou FUNÇÕES LÓGICAS são:

– E (ou AND)E (ou AND) - uma sentença é verdadeira SE - e somente se - todos os termos forem verdadeiros.

– OU (ou OR)OU (ou OR) - uma sentença resulta verdadeira se QUALQUER UM dos termos for verdadeiro.

– NÃO (ou NOT)NÃO (ou NOT) - este operador INVERTE um termo.

Álgebra de BooleÁlgebra de Boole

8

OPERADORES LÓGICOS BÁSICOSOPERADORES LÓGICOS BÁSICOS

Os operadores lógicos são representados por:

– EE •• (um ponto, como se fosse uma multiplicação)

– OU OU ++ (o sinal de soma) __ __

– NOTNOT (ou ’’) (uma barra horizontal sobre o termo a ser invertido ou negado).

Álgebra de BooleÁlgebra de Boole

Simbologia definida pela ANSI

9

FUNÇÕES LÓGICASFUNÇÕES LÓGICAS

Operadores que possuem como entrada pelo menos uma variável lógica e uma saída.

Dada uma variável lógica (AA), é possível construir uma função desta variável, ff(AA).

Operações da álgebra booleana aplicadas a uma ou mais variáveis lógicas.

Funções básicasFunções básicas: E, OU e INVERSORA (AND, OR e NOT ou INVERTER)

DerivadasDerivadas: (NAND, NOR, XOR e XNOR).

Álgebra de BooleÁlgebra de Boole

10

A partir das combinações dos valores de entrada, determina-se todos os valores possíveis de resultado de uma dada operação lógica.

Essas possibilidades podem ser representadas de forma tabular, e o conjunto se chama TABELA TABELA VERDADEVERDADE.

TABELA VERDADETABELA VERDADE - tabela que representa todas as possíveis combinações das variáveis de entrada de uma função, e os seus respectivos valores de saída.

Álgebra de BooleÁlgebra de Boole

11

Tabela-verdadeTabela-verdade

Cada operação lógica possui sua própria tabela verdade, estabelecida de acordo com a regra que define a respectiva operação lógica.

Álgebra de BooleÁlgebra de Boole

12

FUNÇÃO OR (OU)FUNÇÃO OR (OU)

Álgebra de BooleÁlgebra de Boole

111

001

010

000

SBA

FUNÇÃO AND (E)FUNÇÃO AND (E)

111

101

110

000

SBA

13

FUNÇÃO NOT FUNÇÃO NOT (INVERTER OU NÃO)(INVERTER OU NÃO)

Álgebra de BooleÁlgebra de Boole

01

10

SA

AS

14

FUNÇÃO NOR (NÃO OU)FUNÇÃO NOR (NÃO OU)

Álgebra de BooleÁlgebra de Boole

011

001

010

100

SBA

011

101

110

100

SBA

FUNÇÃO NAND (NÃO E)FUNÇÃO NAND (NÃO E)

15

FUNÇÃO XOR FUNÇÃO XOR (OU EXCLUSIVO)(OU EXCLUSIVO)

BAS

Álgebra de BooleÁlgebra de Boole

011

101

110

000

SBA

BAS

111

001

010

100

SBA

FUNÇÃO XNOR FUNÇÃO XNOR (OU COINCIDÊNCIA)(OU COINCIDÊNCIA)

XOR - a saída será verdade se exclusivamente uma ou exclusivamente uma ou outra entradaoutra entrada for verdade. (XNOR - inverso da XOR). Isto só se aplica se houver apenas 2 entradas.

16

O projeto de elementos digitais está relacionado com a conversão de idéias em conversão de idéias em hardwarehardware real real, e os elementos encontrados na álgebra booleanaálgebra booleana permitem que uma idéia, uma afirmação, possa ser expressa matematicamente.

A álgebra booleana álgebra booleana permite também que a expressão resultante da formulação matemática da idéia possa ser simplificada e, finalmente, convertida no mundo real do convertida no mundo real do hardwarehardware de de portas lógicasportas lógicas e outros elementos digitais e outros elementos digitais.

Álgebra de Boole e Álgebra de Boole e Computadores DigitaisComputadores Digitais

O que são exatamente?O que são exatamente?

17

Portas lógicasPortas lógicas: dispositivos dos circuitos digitais - implementam funções lógicas.

São dispositivos ou circuitos lógicos que operam um ou mais sinais lógicos de entrada para produzir uma (e somente uma) saída, a qual é dependente da função implementada no circuito.

Álgebra de BooleÁlgebra de Boole

18

ObsObs.: O circuito elétrico da porta lógica que implementa a função ANDAND é :

Torna-se difícil desenhar o esquema elétrico de um projeto composto por várias portas lógicas representadas desta forma.

SoluçãoSolução: uso de uma SIMBOLOGIASIMBOLOGIA.

Álgebra de Boole e Álgebra de Boole e Computadores DigitaisComputadores Digitais

19

Operações lógicasOperações lógicas podem ser realizadas para

– satisfazer um determinado requisito de requisito de hardwarehardware (visto adiante) ou

– para atender a uma especificação de um especificação de um programadorprogramador em um programa.

Para tanto, a maioria dos processadores possui uma instrução de máquina correspondente a uma função lógica em seu conjunto de instruções, bem como muitas linguagens de programação de alto nível implementam essa função.

Álgebra de Boole e Álgebra de Boole e Computadores DigitaisComputadores Digitais

20

Lógica de um determinado programa.

Ler X, Y e Z

T=X+Y

R=Z+X

SE (T>6 E(ANDAND) R <10)

ENTÃO IMPRIMIR T

ENTÃO IMPRIMIR R

Ler X, Y e Z

T=X+Y

R=Z+X

SE (T>6 OU(OROR) R <10)

ENTÃO IMPRIMIR T

ENTÃO IMPRIMIR R

Exemplo 1Exemplo 1: Exemplo 2Exemplo 2:

Exemplos – Operações LógicasExemplos – Operações Lógicas

21

Operações lógicas também podem ser realizadas com valores constituídos de vários algarismos (A Unidade Lógica e Aritmética (ULA) realiza tal tipo de operação) – operação “bit a bit”.

ExemplosExemplos:

0011BA

1100BA

0001BA

1101BA

1001A

1110BA

0010 BA

1010B e 0110A

Exemplos – Operações LógicasExemplos – Operações Lógicas

22

Exemplos – Meio SomadorExemplos – Meio Somador

23

Exemplos – ULAExemplos – ULA

A operação de subtração pode ser efetuada implementando-se o circuito de um subtrator completo, ou então utilizando-se a técnica de complemento do subtraendo (a-b = a + not(b) + 1).

24

Exemplos - Memória

25

Circuito de ativação de uma linha de dados para movimentar bits de um registrador (ou células) para outro (uso de um bit como sinal de controle da Unidade de Controle (UC)).

Exemplos – Circuitos utilizando Exemplos – Circuitos utilizando portas lógicasportas lógicas

Solução: Solução: Porta ANDPorta AND

26

Circuito para implementação de operação aritmética em ponto fixo, quando se usa aritmética de complemento (complemento de 1 ou complemento de 2).

É muito comum encontrar a porta NAND NAND (ou NORou NOR) em circuitos lógicos complexos, visto que é possível simplificar a fabricação de circuitos lógicos e reduzir a quantidade de componentes eletrônicos usando-se apenas circuitos NAND NAND (NORNOR).

Solução: Solução: Porta NOTPorta NOT

Exemplos - Circuitos utilizando Exemplos - Circuitos utilizando portas lógicasportas lógicas

27

Circuito para testar a igualdade entre valores, por exemplo, para testar de modo rápido se duas palavras são iguais.

SoluçãoSolução: PortaPorta XORXOR e porta NORporta NOR

Exemplos - Circuitos utilizando Exemplos - Circuitos utilizando portas lógicasportas lógicas

28

Uma campainha que toca (saída) se o motorista der a partida no motor do carro (entrada) sem estar com o cinto de segurança afivelado (entrada).

111

001

010

000

campainhaCinto desafi-velado

ignição

Solução:Solução:

Porta ANDPorta AND

Exemplos - Circuitos utilizando Exemplos - Circuitos utilizando portas lógicasportas lógicas

29

Detector de incêndio com vários sensores (entradas) e uma campainha para alarme (saída). Se QUALQUER UM dos sensores for acionado (significando que um dos sensores detectou sinal de incêndio), a campainha é ACIONADA.

111

101

110

000

AlarmeSensor 2Sensor 1Solução:Solução:

Porta ORPorta OR

Exemplos - Circuitos utilizando Exemplos - Circuitos utilizando portas lógicasportas lógicas

30

As portas lógicas são fornecidas em dispositivos denominados circuitos integradoscircuitos integrados ou CI´s.

Um CI ( ou chipchip) é um cristal semicondutor, habitualmente de silício.

Cada CI´s comporta um certo número de portas lógicas, sendo este número limitado pelas características físicas do componente como, por exemplo, o número de terminais.

A partir do surgimento do transistor procurou-se padronizar os sinais elétricos correspondentes aos níveis lógicos surgimento de famílias de famílias de componentes digitaiscomponentes digitais.

Portas Lógicas - FabricaçãoPortas Lógicas - Fabricação

31

Exemplos de Exemplos de CIs - TTLCIs - TTL

32

Conceitos Básicos de Conceitos Básicos de Eletrônica DigitalEletrônica Digital

Operações de um computador digital - combinações de simples operações aritméticas e lógicas básicas: somar bits, complementar bits (para fazer subtrações), comparar bits, mover bits.

As operações são fisicamente realizadas por circuitos eletrônicos, chamados circuitos digitaiscircuitos digitais.

Componentes básicos dos circuitos digitais - "portas" ("portas" (gatesgates) lógicas) lógicas, por permitirem ou não a passagem dos sinais.

Circuitos lógicosCircuitos lógicos - circuitos que contêm as portas lógicas.

33

Componentes do Computador e Modelo de von Neumann

O que é o computador digital?– Um computador digital é uma combinação de

dispositivos e circuitos digitais que podem realizar uma seqüência programada de operações com mínima intervenção humana. (Tocci, 2003)

Como o computador executa um programa de instruções?

34

Organização Básica de um Computador

35

Organização Básica de um Computador - CPU

36

Unidade Lógica e Aritmética Unidade de Memória Unidade de Entrada Unidade de Saída Unidade de Controle Interfaceamento Unidade Central de Processamento

37

Princípios Básicos

Cada computador tem um conjunto de operações e convenções único para determinar as posições dos dados com os quais a operação será realizada.

Os vários computadores diferem nas operações específicas que fornecem e nos métodos que eles usam para referenciar dados que serão manipulados por uma operação.

Em geral, uma operação tem a forma OPERAÇÃO OPERANDOS e é denominada de instrução. OPERAÇÃO especifica a função que será desempenhada. OPERANDOS fornece a maneira de calcular a posição atual dos dados com os quais a operação será realizada.

38

Um programa é constituído de uma seqüência pré-determinada de instruções, que deve ser seguida para que seja atingido o objetivo computacional.

Este programa e os dados correspondentes estão armazenados na memória da máquina; o conjunto de instruções (ou programa) deve ser interpretado para realização do processamento, isto é, a informação codificada correspondente às ações e operandos deve ser entendida e então processada.

39

A memória de um sistema de computador tem a função de armazenar dados e instruções; é organizada em posições, que podem ser visualizadas como elementos em uma matriz.

Cada elemento tem um endereço. Assim, pode-se falar de uma memória que tenha x posições: cada posição pode ser referenciada diretamente de acordo com a sua colocação na seqüência.

Por exemplo, se uma memória tem 4096 posições, existem posições de memória 0, 1, 2, 3,...., 4094 e 4095.

Quando um destes números aparece nos circuitos de controle conectados à memória, o conteúdo (o valor que está na posição) será trazido da memória para os circuitos da unidade de processamento ou a informação na unidade de processamento será armazenada na memória, dependendo do trabalho associado com o endereço.

40

Instruções em um computador são executadas em uma seqüência determinada por suas posições de memória.

A unidade lógica e aritmética realiza ações indicadas nas instruções, executando operações numéricas (aritméticas) e não numéricas (lógicas) além da preparação de informações para desvios do programa. O controle do programa e a unidade lógica e aritmética formam a unidade central de processamento (UCP), ou simplesmente processador.

41

Busca - decodificação - execução de instruções

Um elemento no processador, denominado de contador de instruções ou apontador de instruções(PC-Program Counter), contém a posição da próxima instrução a ser executada. Quando uma seqüência de execução de instruções tem início, a instrução cujo endereço está no contador de instruções é trazida da memória para uma área de armazenamento chamada registrador de instrução. Este processo consiste na busca de instrução.

42

A instrução é interpretada por circuitos de decodificação que fazem com que sinais eletrônicos sejam gerados no processador como resultado do valor do campo de operação, isto é, decodificam a informação correspondente à operação a ser realizada.

43

Esses sinais, ou seqüência de sinais, resultam na execução da instrução.

Execução é a aplicação da função do operador nos operandos.

Quando a execução de uma instrução é terminada, o contador de instruções é atualizado para o endereço de memória da próxima instrução. Esta instrução é então trazida da memória para o registrador de instruções e executada, repetindo-se assim o ciclo de busca-decodificação-execução.

44

Computador Neander

Computador Hipotético Criado com intenções didáticas Simples Com simulador e debuger

45

Características– Largura de dados e endereços de 8 bits– Dados representados em complemento de dois– 01 acumulador de 8 bits (AC)– 01 apontador de programa de 8 bits (PC)– 01 registrador de estado com dois códigos de

condição: negativo (N) e zero (Z)

Computador Neander

46

Modo de endereçamento– Só possui o modo de endereçamento direto e

arquitetura de um endereço• Operador operando

– Nas instruções de desvio, o endereço contido na instrução corresponde à posição de memória onde está uma instrução a ser executada.

Computador Neander

47

48

Conjunto de Instruções

49

Ações Executadas

50

Códigos de condição

N - (negativo) : sinal do resultado– 1 - resultado é negativo– 0 - resultado é positivo

Z - (zero) : indica resultado igual a zero– 1 - resultado é igual a zero– 0 - resultado é diferente de zero

51

As instruções lógicas e aritméticas (ADD, NOT, AND, OR) e a instrução de transferência LDA afetam os códigos de condição N e Z.

As demais instruções (STA, JMP, JN, JZ,

NOP e HLT) não alteram os códigos de condição.

52

Formato das instruções

53

Exemplo de Programação

Vamos considerar, como exemplo, um programa que realiza a soma de 3 posições consecutivas da memória e armazena o resultado numa quarta posição.

Devem ser escolhidas a área de dados e a área de programa, ou seja, a localização das instruções e dados na memória.

Deve ser observado que a área de programa não pode invadir a área de dados e vice-versa.

54

Exemplo de Programação

55

Exemplo de Programação

Ver ambiente – wneander.exe

56

Organização do Neander