Hardware e software
Tese: Hardware e software. Pesquise 862.000+ trabalhos acadêmicosPor: • 15/11/2013 • Tese • 718 Palavras (3 Páginas) • 485 Visualizações
Curso PIC 1
Desbravando o PIC
Eng. Diego Camilo Fernandes
Labtools – Mosaico Didactic DivisionO que fazemos ...
Desenvolvimento de projetos (
hardware e software
);
Consultoria em engenharia eletrônica e produção;
Serviços completos: da idéia ao produto;
Treinamentos em microcontroladores;
Elaboração de materiais didáticos.A Mosaico HPS já desenvolveu projetos com
microcontroladores para diversas áreas:
bioengenharia (médicos / odontologia / estética);
automação & controle (controladores / indicadores);
instrumentação (sensores);
sistemas de energia (estabilizadores /
no breaks
);
sistemas de segurança (alarmes);
telecomunicações (telefonia).
Com quem trabalhamos ...PIC
Entradas
PIC PIC
SaSaídas í
das
ProgramaAs fam
í
lias de PIC...Desempenho das fam
í
lias do PIC
16Fxxx
10Fxxx
12Fxxx
18Fxxxx
0.75 kBytes
24 Bytes
3.5 kBytes
128 Bytes
14 kBytes
368 Bytes
128 kBytes
3968 Bytes
Prog
Mem:
Data
Mem:
Performance
Mem
ó
riaArquitetura do
microcontrolador
A Microchip adotou a
arquitetura Harvard para a
sua linha de
microcontroladores.
RISC – set de instruções
reduzido, a linha 16 possui
35 instruções.
Possui dois tipos de
memória, uma para dados e
outra para instruções.
Barramento de dados
separados para memória de
dados e memória de
programa.Arquitetura do
microcontroladorEstrutura
ç
ão InternaOs ciclos de m
á
quinaMapa da Mem
ó
ria de ProgramaMapa da Mem
ó
ria de DadosSet de instru
ç
ões
Instrução
•
[W] Work
•
[F] File (Registrador)
•
[L] Literal
•
[B] Bit
•
[T] Test
•
[Z] Zero
•
[S] Skip (Pula)
•
[C] Clear (0)
•
[S] Set (1)
Argumento
•
[f] File (Endereço)
•
[d] Destino (W/F)
•
[b] Bit (Número)
•
[k] Literal (Valor)
Instru
ç
ão
•
[W]
Work
•
[F]
File (Registrador)
•
[L]
Literal
•
[B]
Bit
•
[T]
Test
•
[Z]
Zero
•
[S]
Skip
(Pula)
•
[C]
Clear
(0)
•
[S]
Set (1)
Argumento
•
[f]
File (Endere
ç
o)
•
[d]
Destino (W/F)
•
[b]
Bit (N
ú
mero)
•
[k]
Literal (Valor)
Instrução
•
[ADD] Soma
•
[AND] “E”
•
[CLR] Limpar
•
[COM] Complementa
•
[DEC] Decrementa
•
[INC] Incrementa
•
[IOR] “OU”
•
[MOV] Move
•
[RL] Rotaciona Esq.
•
[RR] Rotaciona Dir.
•
[SUB] Subtrai
•
[SWAP] Inverte
•
[XOR] “OU” exclusivo
•
[RET] Retornar
Instru
ç
ão
•
[ADD]
Soma
•
[AND]
“
E
”
•
[CLR]
Limpar
•
[COM]
Complementa
•
[DEC]
Decrementa
•
[INC]
Incrementa
•
[IOR]
“
OU
”
•
[MOV]
Move
•
[RL]
Rotaciona
Esq.
•
[RR]
Rotaciona
Dir.
•
[SUB]
Subtrai
•
[SWAP] Inverte
•
[XOR]
“
OU
”
exclusivo
•
[RET]
RetornarComandos em
Assembly
Lidando com os dados – pág. 85
MOVLW
– move uma constante (literal) para o
acumulador
Sintaxe:
MOVLW k ;onde k é uma constante
Exemplo:
mover o número 10 para o acumulador
MOVLW 10 ;Comandos em
Assembly
Lidando com os dados – pág. 85
MOVWF
– move o conteúdo do acumulador para um
registrador (ou variável);
Sintaxe:
MOVWF f ;onde f é um registrador
Exemplo:
mover o número 30 para registrador PORTB
MOVLW 30 ;
MOVWF PORTB ;Comandos em
Assembly
Lidando com os dados – pág. 85
MOVF
– move o conteúdo de um registrador para o
acumulador ou para o próprio registrador;
Sintaxe:
MOVF f,d ;onde f é um registrador e d o destino
(W ou F)
Exemplo:
mover o conteúdo do registrador PORTB
para o acumulador
MOVF PORTB,W ;Comandos em
Assembly
Lidando com os dados – pág. 85
CLRF
– limpa um registrador;
Sintaxe:
CLRF f ;onde f é um registrador
Exemplo:
limpar o registrador PORTB
CLRF PORTB ;Comandos em
Assembly
Lidando com os dados – pág. 85
CLRW
– limpa o acumulador;
Sintaxe:
CLRW
Exemplo:
limpar o acumulador
CLRWComandos em
Assembly
Trabalhando com rotinas – pág. 91
GOTO
– desvia o fluxo do programa para um
determinado ponto da memória de programa
Sintaxe:
GOTO nome ;onde o nome é uma identificação
para onde deseja pular.
Exemplo:
GOTO INICIO ; desvia programa para a label início.Comandos em
Assembly
Trabalhando com rotinas – pág. 91
CALL
– desvia o fluxo do programa para um determinado
ponto da memória de programa e gasta um nível de pi
lha
Sintaxe:
CALL nome ;onde o nome é uma identificação
da rotina.
Exemplo:
CALL DELAY ; chama a rotina DELAYComandos em
Assembly
Trabalhando com rotinas – pág. 91
RETURN
– finaliza a execução de uma rotina voltando ao
último endereço guardado na pilha sem afetar o
acumulador
Sintaxe:
RETURN
Exemplo:
RETURNComandos em
Assembly
Trabalhando com rotinas – pág. 91
RETLW
– finaliza a execução de uma rotina voltando ao
último endereço guardado na pilha e com um valor
guardado no acumulador;
Sintaxe:
RETLW k ; onde k é uma constante (literal)
Exemplo:
RETLW 10 ; retorna de uma rotina com o valor 10 no
acumuladorComandos em
Assembly
Tomando decisões e fazendo desvios – pág. 94
BTFSC
– testa bit do registrador e pula a próxima linha se
o resultado for 0
Sintaxe:
BTFSC f,b ; onde f é um registrador e b o bit a ser
testado
Exemplo:
testar o bit Z do registrador STATUS
BTFSC STATUS,Z ; testa bit Z de STATUS
GOTO RESULT_UM
GOTO RESULT_ZEROComandos em
Assembly
Tomando decisões e fazendo desvios – pág. 94
BTFSS
– testa bit do registrador e pula a próxima linha se
o resultado for 1
Sintaxe:
BTFSS f,b ; onde f é um registrador e b o bit a ser
testado
Exemplo:
testar o bit 0 do registrador PORTA
BTFSS PORTA,0 ; testa bit 0 de PORTA
GOTO RESULT_ZERO
GOTO RESULT_UMComandos em
Assembly
Tomando decisões e fazendo desvios – pág. 94
BSF
– seta um bit do registrador
Sintaxe:
BSF f,b ; onde f é um registrador e b o bit a ser set
ado
Exemplo:
setar um o bit 0 do registrador PORTA
BSF PORTA,0 ; seta bit 0 de PORTAComandos em
Assembly
Tomando decisões e fazendo desvios – pág. 94
BCF
– limpa um bit do registrador
Sintaxe:
BCF f,b ; onde f é um registrador e b o bit a ser lim
pado
Exemplo:
limpar o bit 0 do registrador PORTA
BCF PORTA,0 ; limpa bit 0 de PORTAComandos em
Assembly
Fazendo operações aritméticas básicas – pág. 101
Somando
INCF
– incremento unitário do registrador
Sintaxe:
INCF f,d ; onde f é um registrador e d o destino
(W ou F)
Exemplo:
incrementar o registrador PORTB e o
resultado no próprio registrador
INCF PORTB,F ; incremento do PORTB
...