Upload
internet
View
109
Download
2
Embed Size (px)
Citation preview
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