microprocessadores - instituto de matemática e estatísticaadao/introducaomic1.pdf · fabricação...
TRANSCRIPT
1
MICROPROCESSADORES
Adão de Melo Neto
2
OBJETIVO DA DISCIPLINA
Conhecer a estrutura interna de um microprocessador
Programar um microprocessador em C
Programar um microprocessador em ASSEMBLY.
Iremos trabalhar inicialmente com o microcontrolador
PIC16F84A.
Iremos usar simulador (laboratório de sistemas) e o CI
(laboratório da engenharia)
3
Microcontroladores
Como surgiu os microcontroladores?
– A evolução da tecnologia de circuitos integrados (CI) permitiu a
fabricação de um CI contendo um microcomputador e que, no
entanto, mais tarde foi designado por microcontrolador.
Microcontrolador
– É um microprocessador com adição de periféricos tais como
memória e dispositivos de entrada e saída.
– Um microcontrolador é tudo em um só dentro de um CI !
Microprocessador
– Um microprocessador é o coração do computador. No entanto, para
ser usado precisa que outros componentes sejam adicionados.
4
Microcontrolador
5
Características do PIC16F84A
Segue o Modelo de Harvard ou invés de Von Newman
Aproximadamente 35 instruções (arquitetura RISC)
Os dados são de 8 bits
As instruções de 14 bits (palavras de 14 bits)
6
Arquitetura Neumann
7
Arquitetura Harvard
8
Tabela de Instruções do PIC16F84A
9
Tabela de Instruções do PIC16F84A
10
Pinos do PIC16F84A O PIC 16F84A possui 14 pinos
11
Pinos do PIC16F84A
12
Características do PIC16F84A
13
CLOCK do PIC16F84A O PIC divide o sinal de clock por 4 internamente gerando fases
Q1, Q2, Q3 e Q4 que somadas formam um ciclo de máquina.
Trabalhando com cristal para gerar sinal de clock
14
RESET do PIC16F84A
15
Memória de Programa do PIC16F84A
Memória de programa
– Área onde será gravado o programa de controle do PIC16F84A
– Palavra de 14 bits
– Tipo Flash
– Possui 1K endereços (0000 h até 03F3 endereços)
16
STACK (pilha) do PIC16F84A
STACK (pilha)
– Local separado da memória de programa para salvar endereços do contador
de programa, endereço para o qual o programa principal retornará após
executar interrupções ou sub-rotinas que forem chamadas.
–
17
Memória de dados do PIC16F84A Memória de dados
– É uma área de RAM utilizada para guardar as variáveis e registradores
usados . No PIC esta área é separada em bancos de memória (banco 0 e
banco 1), que são selecionados pelos bits RP1 e RP0 do registro STATUS.
18
Registradores Especiais do PIC16F84A
São usados pela CPU e periféricos para controlar o funcionamento do PIC
conforme o desejado.
São lidos e escritos tanto pelo usuário como pelo hardware, ocupam
espaço na RAM, podendo estar em um ou em ambos os bancos de
memória.
São acessados através de seu endereço.
19
EEPROM do PIC16F84A
O PIC16F84A possui uma de 64 bytes que pode ser usada para
escrever ou ler dados .
Pode ser usada como memória de dados e não perde informação,
mesmo sem alimentação.
20
Interrupções do PIC16F84A
Uma interrupção é desviada para o endereço 0004h
onde existe uma rotina de tratamento da interrupção
que será executada pelo PIC e que na sequencia voltará
para a instrução seguinte (a do contador de programa,
program counter - PC).
No PIC16F84 as interrupções podem ocorrer:
– Overflow do timer 0.
– Fim de escrita na EEPROM.
– Interrupção externa pelo pino RB0/INT.
– Mudança nos pinos RB4 a RB7.
21
Interrupções do PIC16F84A
22
Interrupções do PIC16F84A
23
Registrador INTCON
Serve para configurar e identificar interrupções.
Localizada no endereço 08h
24
Registrador TRIS Permite a configuração das portas de IO (Porta B e Porta A)
Para programar a porta A usamos o TRISA (endereço 85h), e a porta B o
TRISB (endereço 86h).
Se desejamos que pino da porta A seja entrada colocamos 1 no bit
correspondente do TRISA. Se desejamos que pino da porta A seja saída
colocamos 0 no bit correspondente do TRISA.
25
Registrador PCL
Localizado no endereço 82 h
O PCL é o registro que armazena os 8 bits menos significativos do PC . O
programador pode acessar o PCL, mas como cuidado para não travar o
PIC.
Registrador STATUS
27
PIC (Controlador Integrado de Periféricos )
O PIC é programável. O programa pode ser escrito em assembler ou C.
Este programa deve ser traduzido em uma série de números
reconhecíveis pelo PIC