Você está na página 1de 19

PIC16F877A Linguagem C e Assembly

Jadsonlee da Silva S Jadsonlee.sa@univasf.edu.br www.univasf.edu.br/~jadsonlee.sa

Universidade Federal do Vale do So Francisco - UNIVASF Colegiado de Engenharia da Computao CECOMP

IDE PCW CCS C


Desenvolvido pela CCS www.ccsinfo.com Utilizado para desenvolver projetos em linguagem C para PICs Compatvel com o padro ANSI. O IDE consiste de trs mdulos independentes:
PCB Dispositivos de 12 bits. PCM Dispositivos de 14 bits. PCH Dispositivos de 16 bits. PCD Dispositivos de 24 bits.

Universidade Federal do Vale do So Francisco - UNIVASF Colegiado de Engenharia da Computao CECOMP

IDE PCW CCS C

Manual digite f12.

Universidade Federal do Vale do So Francisco - UNIVASF Colegiado de Engenharia da Computao CECOMP

IDE PCW CCS C


Desenvolvendo um projeto.
Project New Source File.

Inclui o uC 16F877A. Utilizado para programar as opes de word_configuration view/fuses valid.


Define clock utilizado.

Universidade Federal do Vale do So Francisco - UNIVASF Colegiado de Engenharia da Computao CECOMP

Aplicao - LED
Utilizar o pino B3 para controlar o LED.
A queda de tenso no LED de 0,7 V e a corrente nominal de at 20 mA. O PIC fornece no mximo 20 mA.

VPIC VLED R * I VPIC 0, 7 R * 20m VPIC 0 ou 5V 4,3 R 215 20m

Universidade Federal do Vale do So Francisco - UNIVASF Colegiado de Engenharia da Computao CECOMP

Aplicao - LED
Programas em C (CCS) e Assembly (MPLAB).

O atraso entre ligar/desligar aproximadamente zero.

Universidade Federal do Vale do So Francisco - UNIVASF Colegiado de Engenharia da Computao CECOMP

Exerccio - LED
Em grupo: faa um programa em C e outro em assembly que d um atraso de 1 s entre o ligar/desligar e desligar/ligar do LED.

Universidade Federal do Vale do So Francisco - UNIVASF Colegiado de Engenharia da Computao CECOMP

Proteus
Ferramenta para desenvolvimento de sistemas eletrnicos.
ARES Projeto de circuitos para prototipao. ISIS Simulao de circuitos eletrnicos.

www.labcenter.com

Instalao...

Universidade Federal do Vale do So Francisco - UNIVASF Colegiado de Engenharia da Computao CECOMP

Proteus
.

Universidade Federal do Vale do So Francisco - UNIVASF Colegiado de Engenharia da Computao CECOMP

Configurao Bsica
PIC16F877A.

Universidade Federal do Vale do So Francisco - UNIVASF Colegiado de Engenharia da Computao CECOMP

Exerccio
Em grupo: monte o circuito do PIC/LED e execute o programa do exerccio anterior no Proteus.

Universidade Federal do Vale do So Francisco - UNIVASF Colegiado de Engenharia da Computao CECOMP

Interrupes
Assembly.
Apenas PC salvo automaticamente na pilha. W, STATUS e PCLATH devem ser salvos via software. Para ser acessvel na mesma posio por todos os bancos (0x700x7F).

Universidade Federal do Vale do So Francisco - UNIVASF Colegiado de Engenharia da Computao CECOMP

Interrupes
Assembly.

Porta B INT Timer 0

Verificar qual bit IF do perifrico utilizado est setado.

Se o bit IF testado for zero, salta o goto. A seqncia dos testes indica a prioridade das interrupes. END_ISR aponta para o endereo

imediatamente antes do restaurar o contexto.

Universidade Federal do Vale do So Francisco - UNIVASF Colegiado de Engenharia da Computao CECOMP

Interrupes
Exemplo INT externa (RB0).

Universidade Federal do Vale do So Francisco - UNIVASF Colegiado de Engenharia da Computao CECOMP

Interrupes
Exemplo INT externa (RB0).

Universidade Federal do Vale do So Francisco - UNIVASF Colegiado de Engenharia da Computao CECOMP

Interrupes
Linguagem C - CCS.
Existem duas formas bsicas para tratar as interrupes:
Automtico - O compilador gera quase todo cdigo necessrio para tratar a interrupo O programador apenas inclui as funes de tratamento.
Manual - O programador inclui todo cdigo para tratar a interrupo. O automtico simples, mas o cdigo torna-se maior. Enquanto que no manual, o cdigo menor, mas o programador deve incluir todo cdigo para realizar o tratamento.
Universidade Federal do Vale do So Francisco - UNIVASF Colegiado de Engenharia da Computao CECOMP

Interrupes
Linguagem C - CCS.
Automtico.
A diretiva #INT_xxx deve ser utilizada antes da funo ISR.

O compilador zera o bit IF do perifrico.

Ver manual (#INT_xxx)


Universidade Federal do Vale do So Francisco - UNIVASF Colegiado de Engenharia da Computao CECOMP

Interrupes
Linguagem C - CCS.
Automtico Definio da prioridade.
#priority nome_int1, nome_int2,...

nome_int1 possui a maior prioridade...

Universidade Federal do Vale do So Francisco - UNIVASF Colegiado de Engenharia da Computao CECOMP

Interrupes
Linguagem C - CCS.
Manual.
Apenas a diretiva #INT_GLOBAL deve ser utilizada.

#locate

Prioridade idntica ao procedimento em assembly.


Universidade Federal do Vale do So Francisco - UNIVASF Colegiado de Engenharia da Computao CECOMP

Você também pode gostar