Introdução aos Microcontroladores PIC

Documentos relacionados
1. Microcontrolador PIC. 1.1 Introdução

Arquitetura de Computadores. Prof. João Bosco Jr.

Sistemas Microcontrolados. Período Aula 4. 1 Saulo O. D. Luiz

PIC. PeripheralInterface Controller. Prof. EngºespLuiz Antonio Vargas Pinto Prof. Vargas

PIC16F628a. Pinagem do PIC16F628a:

DOUGLAS DAL POZZO DIEGO VITTI

Acetatos de apoio às aulas teóricas

1.1. Microprocessadores e microcontroladores Sistemas genéricos e sistemas dedicados. 2. Microcontrolador PIC:

Curso PIC 1 Desbravando o PIC. Eng. Diego Camilo Fernandes Labtools Mosaico Didactic Division

SEMINÁRIO ASSEMBLY: Arquitetura PIC

Microcontrolador PIC 16F877

5. Conjunto de Instruções do MCU PIC

MICROCONTROLADORES PIC PRIMEIROS PASSOS

Programação Daniel Corteletti Aula 3 Parte III Página 1/7

Introdução ao PIC. Guilherme Luiz Moritz 1. 6 de novembro de DAELT - Universidade Tecnológica Federal do Paraná

2 - Considere a seguinte figura que representa uma parte dos componentes básicos de um microprocessador:

Fundamentos de Microprocessadores 2006/2007 1º Ano Eng. Electrotécnica (Bolonha) 1º Exame (14/07/2007)

Volume MINI-PROJECTOS V0.1. Disciplina de Integração Hardware-Software: 2005/2006. Universidade do Algarve João M. P. Cardoso

Sistemas Microcontrolados

Sequencial Supermáquina (TEMPORIZAÇÃO SIMPLES)

Hardware Parte I. Fábio Rodrigues de la Rocha

Microcontroladores PIC

MICROCONTROLADORES - PIC 16F84/16F84A/16F628/16F628A

Introdução à Organização de Computadores. Aula 8

Curso de Programação PIC Prof. Msc. Engº Getúlio Teruo Tateoki

MICROCONTROLADORES. PIC16F87x

Parte 7 ASSEMBLER. ; Programa 2 Vazio end ;fim OP. LÓGICAS E ARITMÉTICAS OP. LÓGICAS E ARITMÉTICAS OPERAÇÕES LÓGICAS E ARITMÉTICAS

Microcontrolador PIC 16F877

1.1 Noções básicas sobre interrupções em Microcontroladores

UNIVERSIDADE FEDERAL DE SÃO JOÃO DEL-REI - UFSJ DEPARTAMENTO DE ENGENHARIA ELÉTRICA - DEPEL INTRODUÇÃO AOS MICROCONTROLADORES PIC

Conjunto de Instruções e Modelos de Arquiteturas

Parte 2 PIC DEFINIÇÃO DEFINIÇÃO DEFINIÇÃO DEFINIÇÃO DEFINIÇÃO

UM COMPILADOR PORTUGOL-ASSEMBLY PARA MICROCONTROLADOR

Símbolos e abreviaturas utilizadas na descrição das instruções

BANKSEL ADCON1 clrf ADCON1 bsf ADCON1,ADFM ; seta AD para VCC, GND e entradas analogicas, setando o bit ADFM configura como justificado a direita

ENGENHARIA ELECTROTÉCNICA. 2º Semestre 2015/2016 FUNDAMENTOS DE MICROPROCESSADORES (XX DIA/NOITE) 2ª FREQUÊNCIA - TIPO

Arquitetura de Um Processador I

Parte 1 IDE DEFINIÇÃO 1. DEFINIÇÃO 2. ASSEMBLY 3. INSTRUÇÕES PIC16F CONJUNTO DE INSTRUÇÕES 5. BITS DE CONFIGURAÇÃO 6. LITERATURA.

Parte 1 IDE DEFINIÇÃO DEFINIÇÃO DEFINIÇÃO DEFINIÇÃO DEFINIÇÃO

DE POSICIONAMENTO DE UM DETECTOR USANDO CIRCUITO ELETRÔNICO MICROCONTROLADO E PROGRAMAÇÃO ASSEMBLY

PIC16F84 Profº MSc.Engº Getúlio Teruo Tateoki

Parte 11 PROVAS ANTERIORES

Microcontrolador 16F84A

Interrupção Externa. Capítulo 1. Noções básicas sobre interrupções em Microcontroladores PIC

Placa McLab1 Upgrade PIC16F84A p/ PIC16F62x

Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios

Microcontroladores. Édilus de Carvalho Castro Penido Ronaldo Silva Trindade

Eder Terceiro. Programação C com o PIC16F628a. Eder Terceiro. 31 de Outubro de 2016

Conjunto de Instruções e Modelos de Arquiteturas

CAPÍTULO 2 MICROCONTROLADOR PIC16F84 CAPÍTULO INTRODUÇÃO CISC, RISC APLICAÇÕES

Construção de Robôs Jogadores de Futebol (2ª Parte)

Índice. Objetivo... 3 Dia 18 de fevereiro de Dia 25 de fevereiro de FAN IN...13 FAN OUT Tipos de memórias...

Estudo de Programação em PIC16F84

7. Técnicas de Programação

FCA - Editora de Informática xv

Microprocessadores. Cap. 4 Assembly

Fundamentos de Microprocessadores ENGENHARIA ELECTROTÉCNICA

ELE Microprocessadores I

Utilize o programa fonte em linguagem assembly abaixo para responder as questões seguintes.

Fundamentos de Microprocessadores ENGENHARIA ELECTROTÉCNICA

FACULDADE LEÃO SAMPAIO

Ajuste do PC nos saltos incondicionais e nas leituras de tabelas usando Assembly e o PIC16f877A

6. Estrutura do Programa em Assembly

Sistemas Digitais e Microcontrolados

Microcontroladores PIC Sistemas Digitais 12º Ano ÍNDICE INTRODUÇÃO AOS MICROCONTROLADORES

Jadsonlee da Silva Sá

Arquitectura de Computadores (ACom)

Introdução aos microcontroladores Microcontroladores e microprocessadores Tecnologia em Manutenção Industrial

Microprocessadores e Microcontroladores. Professor Lucas Araujo do Nascimento

Organização e Projeto de Computadores

UNIVERSIDADE SÃO FRANCISCO CURSO DE ENGENHARIA ELÉTRICA

Solução por Software para Implementar PWM em qualquer Microcontrolador PIC

PSI3441 Arquitetura de Sistemas Embarcados

Sistemas Microcontrolados

CONJUNTO DE INSTRUÇÕES

Curso de Microcontroladores PIC 16F84A

Exercícios resolvidos (aula de 4 de Maio) Resolução:

Estrutura Básica de um Computador

Solução por Software para Implementar PWM em qualquer Microcontrolador PIC

2.1 Circuitos electrónicos analógicos Circuitos electrónicos digitais...29

MSP430 - Arquitertura

Aula 5: Introdução a Arquitetura do Microcontrolador 8051

Registros do 16F628A. Prof. Luiz Antonio Vargas Pinto Prof. Vargas

Sistemas Microcontrolados. Período Aula 6. 1 Saulo O. D. Luiz

C:\seminario\guiao_aluno\trab6\trab6.asm

Transcrição:

Introdução aos Microcontroladores PIC 1ª parte João M. P. Cardoso Universidade do Algarve Microcontroladores PIC Empresa: Microchip Technology Inc. Várias famílias PIC12XX, PIC16XX, PIC17XX, PIC18XX Linha de modelos para vários tipos de sistemas embebidos Principais diferenças no número e tipo de periféricos integrados no chip Tamanho variável de memória de dados Tamanho variável de memória de programa Vamos estudar em pormenor um dos mais simples PIC16C54 João M. P. Cardoso 2 1

Microcontroladores PIC Arquitectura baseada nos RISC. Reduzido conjunto de instruções. Todas as instruções de igual tamanho, com tempo de execução igual (1 ciclo) à excepção dos saltos (2 ciclos). Arquitectura Harvard (barramento de dados independente do barramento de instruções). Ficheiro de registos constituído por 32 ou mais registos de 8 bits. Memória de programa interna (Flash, EPROM ou ROM). Temporizador do "cão de guarda" e contador/relógio de temporeal internos. Modo de endereçamento directo, indirecto e relativo. Pinos de E/S oriundos de registos específicos do ficheiro de registos controlados bit a bit ou inteiramente. Instrução que coloca o microcontrolador em modo de adormecimento e que desactiva parte do integrado (economia no consumo de potência). João M. P. Cardoso 3 PIC16C54 possui 33 instruções (12 bits de comprimento) memória de programa (EPROM): 512 palavras de 12 bits pilha com 2 níveis memória de dados: 32 registos de 8 bits frequência de relógio permitida: de DC a 40 MHz 12 linhas de E/S (8 bits para o porto B e 4 bits para o porto A), 1 temporizador de cão de guarda (WDT), 1 contador/relógio de tempo-real de 8 bits 18 pinos de encapsulamento João M. P. Cardoso 4 2

PIC16C54 João M. P. Cardoso 5 Formato de cada instrução sobre o ficheiro de registos orientada ao byte 11 6 5 4 opcode d f (FILE #) 0 d = 0, destino em W d = 1, destino em f João M. P. Cardoso 6 3

instruções sobre o ficheiro de registos orientada ao byte opcode (Bin) Mnemónica Operação Registo de Status Descrição 0001 11df ffff ADDWF f,d W + f d f C, DC, Soma o conteúdo de W com o registo f Z (um registo do ficheiro de registos). 0001 01df ffff ANDWF f, d W & f d f Z "AND" de W com o registo f. 0000 011f ffff CLRF F 0 f Z Coloca a zero o registo f. 0000 0100 0000 CLRW - 0 W Z Coloca a zero o registo W. 0010 01df ffff COMF f, d ~f d f Z Complementa o registo f. 0000 11df ffff DECF f, d f - 1 d f Z Decrementa o registo f. 0010 11df ffff DECFSZ f, d f - 1 d f - Decrementa o registo f. Se o resultado for zero salta a próxima instrução. João M. P. Cardoso 7 instruções sobre o ficheiro de registos orientada ao byte 0001 00df ffff IORWF f, d W f d f Z OR do registo W com o registo f. 0010 10df ffff INCF f, d f + 1 d f Z Incrementa o registo f. 0011 11df ffff INCFSZ f, d f + 1 d f - Incrementa o registo f. Se o resultado for zero salta a próxima instrução. 0010 00df ffff MOVF f, d f d f Z O conteúdo do registo f é movido. 0000 001f ffff MOVWF F W f - Move o conteúdo de W para o registo f. 0000 0000 0000 NOP - - - Nenhuma operação. João M. P. Cardoso 8 4

instruções sobre o ficheiro de registos orientada ao byte 0011 01df ffff RLF f, d f(n) [d f](n+1), C [d f](0), C Rotação de um bit para a esquerda do conteúdo do registo f. O bit de transporte é envolvido na rotação. f(7) C 0011 00df ffff RRF f, d f(n) [d f](n-1), C [d f](7), C Rotação de um bit para a direita do conteúdo do registo f. O bit de transporte é envolvido na rotação. f(0) C 0001 10df ffff XORWF f, d W f d f Z XOR de W com o registo f. 0000 10df ffff SUBWF f, d f - W d f C, DC, Z Subtrai W ao registo f em complemento para dois. 0011 10df ffff SWAPF f, d f(0-3) f(4-7) d f - Troca no registo f os 4 bms com os 4 bms. João M. P. Cardoso 9 Formato de instruções com imediatos e de instruções de controlo 11 8 7 0 opcode k (LITERAL) João M. P. Cardoso 10 5

Formato de instruções com imediatos e de instruções de controlo opcode (Bin) Mnemónica Operação Registo de Status Descrição 1110 kkkk kkkk ANDLW k k & W W Z AND de W com o imediato de 8 bits, k. O resultado é colocado no registo W. 1001 kkkk kkkk CALL k PC + 1 Pilha (PC + 1 Topo da pilha), k PC<7:0>, '0' PC<8> 0000 0000 0100 CLRWDT - 00h WDT, 0 WDT - Chamada a uma sub-rotina. Primeiro, o endereço de retorno (PC+1) é colocado na Pilha. O valor de 8 bits, k, é carregado no PC<7:0>. O bit 8 do PC é colocado a zero. TO, PD Reset do WDT e também reset do préescalar do WDT se estiver atribuído. Os bits de status, TO e PD, são colocados a um. João M. P. Cardoso 11 Formato de instruções com imediatos e de instruções de controlo 101k kkkk kkkk GOTO k k - Coloca no PC o conteúdo de k. PC<8:0> 1101 kkkk kkkk IORLW k k W W Z OR de W com os 8 bits do imediato k. O resultado é colocado no registo W. 1100 kkkk kkkk MOVLW k k W - Os 8 bits do imediato k são colocados no registo W. 0000 0000 0010 OPTION - k OPTION - Os 6 bms do registo W são carregados no registo OPTION. 1000 kkkk kkkk RETLW k k W, Pilha PC (TOS PC) - O registo W é carregado com os 8 bits do imediato k. O PC é carregado do topo da Pilha (o endereço de retorno). Esta instrução demora 2 ciclos. João M. P. Cardoso 12 6

Formato de instruções com imediatos e de instruções de controlo 0000 0000 0011 SLEEP - 0 PD, 1 TO; 00h WDT, 0 WDT 0000 0000 0fff TRIS f W TRIS do porto f TO, PD O bit de status PD (power down) é colocado a zero. O bit de status TO (time-out) é colocado a um. O WDT e o pré-escalar se lhe estiver atribuído são colocados a zero. Desliga os relógios internos (modo de adormecimento). - O registo TRIS de f (f = 5, 6, ou 7) é carregado com o conteúdo do registo W. 1111 kkkk kkkk XORLW k k W W Z XOR de W com os 8 bits do imediato k. O resultado é colocado no registo W. João M. P. Cardoso 13 Formato de cada instrução sobre o ficheiro de registos orientada ao bit 11 8 7 opcode b (BIT #) f (FILE #) 5 4 0 João M. P. Cardoso 14 7

Formato de cada instrução sobre o ficheiro de registos orientada ao bit opcode (Bin) Mnemónica Operação Registo de Status Descrição 0100 bbbf ffff BCF f, b 0 f(b) - O bit b do registo f é colocado a zero. 0101 bbbf ffff BSF f, b 1 f(b) - O bit b do registo f é colocado a um. 0110 bbbf ffff BTFSC f, b Testa bit b do - Se o bit b do registo f é igual a zero, ficheiro f: Salta então salta a próxima instrução. se zero. 0111 bbbf ffff BTFSS f, b Testa bit b do - Se o bit b do registo f é igual a um, ficheiro f: Salta se um. então salta a próxima instrução. João M. P. Cardoso 15 Diagrama temporal da execução de instruções OSC1 OSC2/CLKOUT Instrução 1 FETCH1 EXECUTE1 Instrução 2 FETCH2 EXECUTE2 João M. P. Cardoso 16 8

PIC16C54: Memória de Programa 512 x 12 bits: 0x000-0x1FF João M. P. Cardoso 17 PIC16C54: Memória de Dados 32 registos de 8 bits 7 registos especiais 25 registos de propósito geral f0 f1 f2 f3 f4 f5 f6 8 7 0 INDF TMR0 PC STATUS FSR PORTO A PORTO B f7 REGISTOS DE PROPÓSITO GERAL f31 João M. P. Cardoso 18 9

Microcontroladores PIC Gerar código para programar directamente o PIC João M. P. Cardoso 19 Microcontroladores PIC Gerar código para ser utilizado por outros programas João M. P. Cardoso 20 10