Programação Assembly e C para PIC - UTFPR
Transcript of Programação Assembly e C para PIC - UTFPR
![Page 1: Programação Assembly e C para PIC - UTFPR](https://reader030.fdocument.pub/reader030/viewer/2022012608/619c0479b362f221a638bf58/html5/thumbnails/1.jpg)
Programação Assembly e C para PIC
Guilherme Luiz Moritz1
1 DAELT - Universidade Tecnológica Federal do Paraná
13 de novembro de 2013
Moritz, G.L. Programação Assembly e C para PIC
![Page 2: Programação Assembly e C para PIC - UTFPR](https://reader030.fdocument.pub/reader030/viewer/2022012608/619c0479b362f221a638bf58/html5/thumbnails/2.jpg)
Motivação
O que é assembly - programação de microcontroladoresutilizando seu conjunto de instruções - baixo nívelPorque aprender assembly?
Moritz, G.L. Programação Assembly e C para PIC
![Page 3: Programação Assembly e C para PIC - UTFPR](https://reader030.fdocument.pub/reader030/viewer/2022012608/619c0479b362f221a638bf58/html5/thumbnails/3.jpg)
Vantagens do assembly
A principal vantagem do assembly é também sua principaldesvantagem: A proximidade com a arquiteturaMuito rápida → Muito complexa e difícil de manterObrigatória para alteração de alguns registradores de usoespecial (em algumas arquiteturas)
Moritz, G.L. Programação Assembly e C para PIC
![Page 4: Programação Assembly e C para PIC - UTFPR](https://reader030.fdocument.pub/reader030/viewer/2022012608/619c0479b362f221a638bf58/html5/thumbnails/4.jpg)
Desvantagens do assembly
Nem sempre o código gerado manualmente é maisotimizadoDifícil de manter e entenderFalta de estruturação dificulta o desenvolvimento deprojetos complexos
Qual a solução adotada? Mesclar C com assembly
Moritz, G.L. Programação Assembly e C para PIC
![Page 5: Programação Assembly e C para PIC - UTFPR](https://reader030.fdocument.pub/reader030/viewer/2022012608/619c0479b362f221a638bf58/html5/thumbnails/5.jpg)
Desvantagens do assembly
Nem sempre o código gerado manualmente é maisotimizadoDifícil de manter e entenderFalta de estruturação dificulta o desenvolvimento deprojetos complexos
Qual a solução adotada? Mesclar C com assembly
Moritz, G.L. Programação Assembly e C para PIC
![Page 6: Programação Assembly e C para PIC - UTFPR](https://reader030.fdocument.pub/reader030/viewer/2022012608/619c0479b362f221a638bf58/html5/thumbnails/6.jpg)
Desvantagens do assembly
Nem sempre o código gerado manualmente é maisotimizadoDifícil de manter e entenderFalta de estruturação dificulta o desenvolvimento deprojetos complexos
Qual a solução adotada? Mesclar C com assembly
Moritz, G.L. Programação Assembly e C para PIC
![Page 7: Programação Assembly e C para PIC - UTFPR](https://reader030.fdocument.pub/reader030/viewer/2022012608/619c0479b362f221a638bf58/html5/thumbnails/7.jpg)
Desvantagens do assembly
Nem sempre o código gerado manualmente é maisotimizadoDifícil de manter e entenderFalta de estruturação dificulta o desenvolvimento deprojetos complexos
Qual a solução adotada? Mesclar C com assembly
Moritz, G.L. Programação Assembly e C para PIC
![Page 8: Programação Assembly e C para PIC - UTFPR](https://reader030.fdocument.pub/reader030/viewer/2022012608/619c0479b362f221a638bf58/html5/thumbnails/8.jpg)
Programando um Microcontrolador
Moritz, G.L. Programação Assembly e C para PIC
![Page 9: Programação Assembly e C para PIC - UTFPR](https://reader030.fdocument.pub/reader030/viewer/2022012608/619c0479b362f221a638bf58/html5/thumbnails/9.jpg)
Estrutura de um programa em assembly
Moritz, G.L. Programação Assembly e C para PIC
![Page 10: Programação Assembly e C para PIC - UTFPR](https://reader030.fdocument.pub/reader030/viewer/2022012608/619c0479b362f221a638bf58/html5/thumbnails/10.jpg)
Declaração de variáveis
Moritz, G.L. Programação Assembly e C para PIC
![Page 11: Programação Assembly e C para PIC - UTFPR](https://reader030.fdocument.pub/reader030/viewer/2022012608/619c0479b362f221a638bf58/html5/thumbnails/11.jpg)
Subrotinas
Moritz, G.L. Programação Assembly e C para PIC
![Page 12: Programação Assembly e C para PIC - UTFPR](https://reader030.fdocument.pub/reader030/viewer/2022012608/619c0479b362f221a638bf58/html5/thumbnails/12.jpg)
Conhecendo a IDE do MPLAB
Abrir software e executar exemplo
Moritz, G.L. Programação Assembly e C para PIC
![Page 13: Programação Assembly e C para PIC - UTFPR](https://reader030.fdocument.pub/reader030/viewer/2022012608/619c0479b362f221a638bf58/html5/thumbnails/13.jpg)
Bits de configuração
Moritz, G.L. Programação Assembly e C para PIC
![Page 14: Programação Assembly e C para PIC - UTFPR](https://reader030.fdocument.pub/reader030/viewer/2022012608/619c0479b362f221a638bf58/html5/thumbnails/14.jpg)
Osciladores
Moritz, G.L. Programação Assembly e C para PIC
![Page 15: Programação Assembly e C para PIC - UTFPR](https://reader030.fdocument.pub/reader030/viewer/2022012608/619c0479b362f221a638bf58/html5/thumbnails/15.jpg)
Conjunto de instruções do PIC16
Transferência de dados → MOVWFLógica e aritmética → Soma, Subtração, Incremento, E,OU, XOR...Operações com Bits → Seta Bit, Limpa BitControle de fluxo de execução → BTFSC, CALL
Onde
f file → registradorW Registrador W (Working)b Posição de Bitd Posição de memória (Padrão: W)
Moritz, G.L. Programação Assembly e C para PIC
![Page 16: Programação Assembly e C para PIC - UTFPR](https://reader030.fdocument.pub/reader030/viewer/2022012608/619c0479b362f221a638bf58/html5/thumbnails/16.jpg)
Conjunto de instruções
Moritz, G.L. Programação Assembly e C para PIC
![Page 17: Programação Assembly e C para PIC - UTFPR](https://reader030.fdocument.pub/reader030/viewer/2022012608/619c0479b362f221a638bf58/html5/thumbnails/17.jpg)
Fluxogramas
Moritz, G.L. Programação Assembly e C para PIC
![Page 18: Programação Assembly e C para PIC - UTFPR](https://reader030.fdocument.pub/reader030/viewer/2022012608/619c0479b362f221a638bf58/html5/thumbnails/18.jpg)
Fluxograma de contagem
Moritz, G.L. Programação Assembly e C para PIC
![Page 19: Programação Assembly e C para PIC - UTFPR](https://reader030.fdocument.pub/reader030/viewer/2022012608/619c0479b362f221a638bf58/html5/thumbnails/19.jpg)
Rotina de delay
Moritz, G.L. Programação Assembly e C para PIC