1 / 30

PIC16F877A - Parte IV

PIC16F877A - Parte IV. Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br www.univasf.edu.br/~jadsonlee.sa. Ambiente de Desenvolvimento Integrado - IDE. Possibilitam: Editar, compilar, simular e depurar programas. IDEs PIC. MPLAB v8.56. Linguagem assembly e C. CCS. Linguagem C.

Download Presentation

PIC16F877A - Parte IV

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PIC16F877A - Parte IV Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br www.univasf.edu.br/~jadsonlee.sa

  2. Ambiente de Desenvolvimento Integrado - IDE • Possibilitam: • Editar, compilar, simular e depurar programas. • IDEs PIC. • MPLAB v8.56. • Linguagem assembly e C. • CCS. • Linguagem C. • Disponíveis em www.microchip.com

  3. MPLAB • MPLAB_User_Guide_51519c.pdf. • Disponível no site da disciplina. • Tutorial básico na pg. 41.

  4. MPLAB • Desenvolvendo o primeiro projeto. • ProjectProject Wizard.

  5. MPLAB • Desenvolvendo o primeiro projeto. • Selecione um dispositivo.

  6. MPLAB • Desenvolvendo o primeiro projeto. • Selecione as ferramentas de linguagem.

  7. MPLAB • Desenvolvendo o primeiro projeto. • Crie um projeto.

  8. MPLAB • Desenvolvendo o primeiro projeto. • Adicione arquivos ao projeto. • Arquivo assembly (.asm) . • C:\Arquivos de programas\Microchip\MPASM Suite\Template\Code\16F877ATEMP.asm Clique três vezes: A, U e C.

  9. MPLAB • Desenvolvendo o primeiro projeto.

  10. MPLAB • Desenvolvendo o primeiro projeto. • Construindo o projeto. • Project  Build All. Pode ser carregado em qualquer parte da memória disponível.

  11. MPLAB • Adicione código após main ; remaining code goes here • Monitorar o conteúdo dos registradores. • View  Special Function Registers.

  12. MPLAB • Selecionar simulador. • Debugger  MPLAB SIM • Executar. • Debugger  Run. • Executar passo a passo. • Debugger  Step over.

  13. MPLAB – AssemblyCompilador MPASM

  14. Diretivas - MPASM

  15. Diretivas - MPASM • Comandos que controlam o compilador assembly. • Existem 6 tipos de diretivas no MPASM: • Controle Controlam como o código é montado. • Ex.: define, end, equ, org, constant,... • Condicional assembly  Permitem que seções de códigos sejam montados condicionalmente. • Ifdef, ifndef, else, endif,... • Dados Controlam a alocação da memória e fornecem o modo de se referir a itens de dados simbolicamente. • Ex.: __config, __maxram, data, res,...

  16. Diretivas - MPASM • Listing Permite a especificação de títulos e paginação. • Ex.: List, page, title,... • Macro Controlam a execução e alocação de dados dentro das definições do corpo de uma macro. • Ex.: macro, local, endm,... • Arquivo objeto  Utilizadas para criação desses arquivos. • Ex.: code, udata, udata_shr, udata_acs,... • www.microchip.com DS33014K.

  17. Diretivas - Template 16F877A Define o processador utilizado. Inclui variáveis específicas do processador – Definição de registradores. Define uma constante. Define a quantidade máxima de RAM. RAM não implementada.

  18. Diretivas - Template 16F877A Define os valores dos bits do registrador configuration_word. Declara o início de uma seção de dados não inicializados compartilhados – O endereço da RAM (GPR) pode ser especificado. Definição de variáveis. Semelhante a UDATA, mas pode ser utilizada somente em partes com memória acessível em vários bancos. Reserva memória.

  19. Diretivas - Template 16F877A Definição de variáveis. Declara o início de uma seção de dados não inicializados – Códigos relocáveis.

  20. Diretivas - Template 16F877A Definição de variáveis. Declara o início de uma seção de dados overlaid não inicializados – Código relocável. É possível declarar múltiplas variáveis temporárias na mesma locação de memória.

  21. Diretivas - Template 16F877A Código reset e seleção da página da memória de programa. Declara o início de uma seção do código do programa. Faz com que o linker gere o código de seleção da página, para setar os bits da página (bits 3 e 4 de PCLATH), para a página contendo o rótulo designado.

  22. Diretivas - Template 16F877A Programa principal e seleção do banco da RAM. Declara o início do programa principal. Gera o código para setar/zerar os bits de seleção do banco RP0 e RP1 de STATUS dependendo do valor de count. . Vá para linha atual.

  23. Diretivas - Template 16F877A Código de Interrupção. GIE = 0, PC salvo na pilha e PC = 0004. Salva W em w_temp, STATUS em status_temp e PCLATH em pclath_temp Restaura contexto. PC = TOS e GIE = 1.

  24. Diretivas - Template 16F877A • Memória de programa. Qual página da memória de dados e qual banco da RAM estão sendo utilizados? Página 3  1800-1FFF

  25. Diretivas - Template 16F877A • Memória de dados - GPR.

  26. Diretivas - Template 16F877A • Outro template. Página 0 – CLRF PCLATH entre NOP e GOTO. PCLATH 3:4?

  27. Diretivas - Template 16F877A • Outro template. Qual banco da RAM? BCF STATUS, RP0 BCF STATUS, RP1

  28. Diretivas - Template 16F877A • Exemplos.

  29. Diretivas - Template 16F877A • Exemplos. View  Special Function Registers e File Registers

  30. Diretivas - Template 16F877A • Exercícios. • Utilizando o código do exemplo anterior, acrescente um código que zera as posições de memória 20h – 2Fh. • Faça um programa que implemente uma progressão aritmética crescente com razão 2. • Faça um programa que implemente uma progressão geométrica crescente com razão 2. • Faça uma ULA que realiza todas as possíveis operações disponíveis no conjunto de instruções do PIC (Soma, subtração, and, xor, rotação,...)

More Related