Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação –...
Transcript of Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação –...
![Page 1: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Linguagem C e Assembly Jadsonlee da Silva.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc12d497959413d8d2993/html5/thumbnails/1.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
PIC16F877A PIC16F877A Linguagem C e AssemblyLinguagem C e Assembly
Jadsonlee da Silva Sá
[email protected]/~jadsonlee.sa
![Page 2: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Linguagem C e Assembly Jadsonlee da Silva.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc12d497959413d8d2993/html5/thumbnails/2.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
IDE PCW – CCS CIDE PCW – CCS C Desenvolvido pela CCS – www.ccsinfo.com
Utilizado para desenvolver projetos em linguagem C para PICs – Compatível com o padrão ANSI.
O IDE consiste de três módulos independentes:
– PCB Dispositivos de 12 bits.– PCM Dispositivos de 14 bits.– PCH Dispositivos de 16 bits.– PCD Dispositivos de 24 bits.
![Page 3: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Linguagem C e Assembly Jadsonlee da Silva.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc12d497959413d8d2993/html5/thumbnails/3.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
IDE PCW – CCS CIDE PCW – CCS C
• Manual digite f12.
![Page 4: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Linguagem C e Assembly Jadsonlee da Silva.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc12d497959413d8d2993/html5/thumbnails/4.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
IDE PCW – CCS CIDE PCW – CCS C Desenvolvendo um projeto.
– Project New Source File.
Inclui o uC 16F877A.Utilizado para programar as opções
de word_configuration – view/fuses valid.Define clock utilizado.
![Page 5: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Linguagem C e Assembly Jadsonlee da Silva.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc12d497959413d8d2993/html5/thumbnails/5.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Aplicação - LEDAplicação - LED Utilizar o pino B3 para controlar o LED.
– A queda de tensão no LED é de 0,7 V e a corrente nominal de até 20 mA.
– O PIC fornece no máximo 20 mA.
* 0,7 *20
4,30 ou 5 215
20
PIC LED PIC
PIC
V V R I V R m
V V Rm
![Page 6: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Linguagem C e Assembly Jadsonlee da Silva.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc12d497959413d8d2993/html5/thumbnails/6.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Aplicação - LEDAplicação - LED Programas em C (CCS) e Assembly (MPLAB).
O atraso entre ligar/desligar é aproximadamente zero.
![Page 7: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Linguagem C e Assembly Jadsonlee da Silva.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc12d497959413d8d2993/html5/thumbnails/7.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Exercício - LEDExercício - LED
Em grupo: faça um programa em C e outro em assembly que dê um atraso de 1 s entre o ligar/desligar e desligar/ligar do LED.
![Page 8: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Linguagem C e Assembly Jadsonlee da Silva.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc12d497959413d8d2993/html5/thumbnails/8.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
ProteusProteus Ferramenta para desenvolvimento de sistemas
eletrônicos.
– ARES Projeto de circuitos para prototipação.
– ISIS Simulação de circuitos eletrônicos.
www.labcenter.com
Instalação...
![Page 9: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Linguagem C e Assembly Jadsonlee da Silva.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc12d497959413d8d2993/html5/thumbnails/9.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
ProteusProteus .
![Page 10: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Linguagem C e Assembly Jadsonlee da Silva.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc12d497959413d8d2993/html5/thumbnails/10.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Configuração BásicaConfiguração Básica PIC16F877A.
![Page 11: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Linguagem C e Assembly Jadsonlee da Silva.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc12d497959413d8d2993/html5/thumbnails/11.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
ExercícioExercício Em grupo: monte o circuito do PIC/LED e
execute o programa do exercício anterior no Proteus.
![Page 12: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Linguagem C e Assembly Jadsonlee da Silva.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc12d497959413d8d2993/html5/thumbnails/12.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
InterrupçõesInterrupções Assembly.
Apenas PC é salvo automaticamente na pilha.
W, STATUS e PCLATH devem ser salvos via software.
Para ser acessível na mesma posição por todos os bancos (0x70-0x7F).
![Page 13: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Linguagem C e Assembly Jadsonlee da Silva.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc12d497959413d8d2993/html5/thumbnails/13.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
InterrupçõesInterrupções Assembly.
– Verificar qual bit IF do periférico utilizado está setado.
– Se o bit IF testado for zero, salta o goto.
– A seqüência dos testes indica a prioridade das interrupções.
Porta B
INT
Timer 0
END_ISR aponta para o endereço imediatamente antes do restaurar o contexto.
![Page 14: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Linguagem C e Assembly Jadsonlee da Silva.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc12d497959413d8d2993/html5/thumbnails/14.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
InterrupçõesInterrupções Exemplo – INT externa (RB0).
![Page 15: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Linguagem C e Assembly Jadsonlee da Silva.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc12d497959413d8d2993/html5/thumbnails/15.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
InterrupçõesInterrupções Exemplo – INT externa (RB0).
![Page 16: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Linguagem C e Assembly Jadsonlee da Silva.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc12d497959413d8d2993/html5/thumbnails/16.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
InterrupçõesInterrupções Linguagem C - CCS.
– Existem duas formas básicas para tratar as interrupções:
• Automático - O compilador gera quase todo código necessário para tratar a interrupção – O programador apenas inclui as funções de tratamento.
• Manual - O programador inclui todo código para tratar a interrupção.
– O automático é simples, mas o código torna-se maior. Enquanto que no manual, o código é menor, mas o programador deve incluir todo código para realizar o tratamento.
![Page 17: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Linguagem C e Assembly Jadsonlee da Silva.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc12d497959413d8d2993/html5/thumbnails/17.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
InterrupçõesInterrupções Linguagem C - CCS.
– Automático.
• A diretiva #INT_xxx deve ser utilizada antes da função ISR.
• O compilador zera o bit IF do periférico.
• Ver manual (#INT_xxx)
![Page 18: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Linguagem C e Assembly Jadsonlee da Silva.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc12d497959413d8d2993/html5/thumbnails/18.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
InterrupçõesInterrupções
Linguagem C - CCS.
– Automático – Definição da prioridade.
• #priority nome_int1, nome_int2,...
– nome_int1 possui a maior prioridade...
![Page 19: Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A Linguagem C e Assembly Jadsonlee da Silva.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc12d497959413d8d2993/html5/thumbnails/19.jpg)
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
InterrupçõesInterrupções Linguagem C - CCS.
– Manual.
• Apenas a diretiva #INT_GLOBAL deve ser utilizada.
#locate#locatePrioridade é idêntica ao procedimento em assembly.