Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula 1 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI Modelo da disciplina Aulas teórica e práticas em hardware e simuladas. Programação em C Microcontrolador PIC18F4550 Kit didático Mac Master 2 Como está o nível do C da turma? 2 Modelo da disciplina Avaliação 1: 5 atividades ao longo das 10 primeiras aulas. Todas devem ser entregues na data especificada. Todas as atividades deverão conter os arquivos para simulação e execução do projeto. Avaliação 2: Projeto em grupo. Descrição do projeto (o que vai ser feito). Pode compor com outras disciplinas (ex.: controlar um motor em eletrônica de potência etc.). Esquema elétrico e código fonte. Apresentação funcionando no kit didático. Os códigos das atividades deverão ser compreensíveis. Se algum cálculo for realizado código deve ter os comentários explicando como se chegou ao resultado. A descrição do projeto deve ser apresentada e aprovada. 3 Modelo da disciplina Avaliação Final: Prova teórica aberta com 5 questões. Tipo de questão: Criar um código dado um problema. Criar um circuito dado o código. Questões discursivas. Prova sem consulta e individual realizada em papel pautado. Diferença para os microprocessadores. 4 Introdução O microcontrolador é pequeno computador em um único chip. Neste mesmo chip temos o core de processamento, memória e periféricos de E/S programáveis. Os modelos mais novos não necessitam de outros componentes para funcionar, são autossuficientes. Estão disponíveis em diversos encapsulamentos, variadas famílias e modelos com características próprias (conversores AD, USB, tipo de arquitetura etc.). Diferença para os microprocessadores. 5 Introdução Diagrama em blocos do microcontrolador PIC16F877. Fonte: http://www.mikroe.com/ 6 Aplicações Processos Industriais; Automóveis; Dispositivos eletrônicos (smartphones, brinquedos, eletrodomésticos etc.); Aplicações médicas; Redes de Sensores Sem Fio (RSSF); Robótica etc. 7 Aplicações 8 Aplicações 9 Modelos Diversos fabricantes: Microchip (PIC e dsPIC); ATMEL (8051, AVR); ARM (série Cortex); Texas Instruments (série MSP) 10 Dúvida E onde fica o Arduino nessa história? Trata-se de uma plataforma de desenvolvimento opensource. Utiliza microcontroladores ATMEL (ex.: Arduino Uno utiliza ATMEGA328). 11 Microcontroladores PIC Microcontroladores PIC Desenvolvidos pela Microchip Chips com características semelhantes mesmo em famílias diferentes (ex. PIC16F877A e PIC18F4550). 13 Alguns Chips PIC16F628A 8 bits, 2 KB de FLASH, 20 MHz, USART. PIC 16F877A 8 bits, 8 KB de FLASH, 20 MHz, SPI, I²C. PIC 18F4550 8 bits, 32 KB de FLASH, 48 MHz, USB. dsPIC30F4013 16 bits, 48 KB de FLASH, 40 MHz, CAN BUS, DSP. 14 PIC 16F877A 15 PIC 18F4550 16 PIC18F4550 Clock de até 48 MHz 32 KB de memória FLASH 35 E/S, 13 canais A/D 10 bits, Protocolos de comunicação USB, UART, SPI e I²C, 1 PWM 4 Timers SPI, I²C, USART Boot-loader, necessita de gravador apenas na primeira gravação 17 PIC18F4550 5 portas digitais de entrada e saída: A, B, C, D, E – cada uma com capacidades diferentes. USB 2.0 – HID (Human Interface Device): é reconhecido como um novo dispositivo no Windows por exemplo. 18 Arquitetura PIC18F4550 Arquitetura Harvard (memórias separadas com barramentos independentes); Porta A e B: 8 bits; Porta C: 7 bits, RC3 não está disponível; Porta D e E: 4 bits; Apenas um barramento de dados; Circuito de geração de clock interno. dsPIC tem 2 barramentos de dados, X e Y. 19 Ferramentas de Desenvolvimento CCS – compilador para a linguagem C MPLAB – gratuito para download em www.micrcochip.com Permite programação em assembly e C, além da gravação dos dispositivos Pode ser usado para programação em C por meio de plugins Também podem ser usados para programação o PicKit 2 Programmer, PICKit 3 Programmer entre outros. Mikro C – compilador para a linguagem C com diversas ferramentas integradas Proteus – simulador de circuito elétrico e código digital de microcontroladores Possui limitações de simulação importantes que podem inviabilizar a simulação ou não prever completamente o funcionamento do circuito real. 20 Material de Estudo Materiais de aula no site www.ricardoteix.com Livros: Dogan Ibrahim, ADVANCED PIC MICROCONTROLLER PROJECTS IN C: From USB to RTOS with the PIC18F Series, Newnes, 2008. (mikroC) David José de Souza, Desbravando o PIC, ed. Érica – 12ª Ed, 2009. (Assembly) D. J. de Souza e Nicolás Cesar Lavinia, Conectando o PIC, recursos avançados. Ed Érica, 4ª Ed., 2007. Fábio Pereira, Microcontroladores PIC, programação em C (CCS). ed Érica, 7ª Ed, 2007. 21 Material de Estudo Outros materiais: Datasheet do PIC18F4550. PIC18F4XXX Family Programming Specification Microchip website Manual do compilador utilizado (F1) Apostilas e tutoriais em geral na internet sobre microcontroladores PIC em C e Proteus. 22 Kit Didático MacMaster 2 Displays 7 segmentos LCD LEDs Teclado matricial Memória serial (I²C) RTC etc. 23 Kit Didático McMaster 2 24 Kit Didático McMaster 2 25 Um pouco do Proteus Entradas: 1: botão pressionado gera zero 2: botão pressionado gera 1 3: Arranjo com barra de resistor e dip switch (repare no uso da ferramenta label) 4: gerador lógico apenas para simulação (logic state) 5: botão de três terminais 1 2 3 4 5 Um pouco do Proteus Saídas: 1: Controlando o LED 2: Arranjo com barra de LEDs 3: mostrador lógico apenas para simulação (logc probe) 1 2 3 Um pouco do Proteus Teste seus códigos Hardware de teste – disponível no material de aulas Atenção: à velocidade, ao arquivo .hex, ao relógio da simulação à sinalização de níveis lógicos: vermelho = 1 Azul = 0 Amarelo = curto circuito Cinza = desconectado ou indefinido (zona proibida) Dica importante - 1 O arquivo de configuração 18F4550.h possui a sintaxe as configurações de várias funcionalidades do controlador. Para visualizar quais as opções disponíveis: Abra o projeto (Exemplo_01), Compile (F9) Botão direito sobre #include<PIC164550.h> Opção: open file at cursor Ou apenas na aba Files dê duplo clique no arquivo. Dica importante - 2 O arquivo .lst que mostra o código em assembly permite a visualização da área de código. Para visualizar o arquivo .lst: Abra o programa (Exemplo_01) Compile (F9) Clique na aba Files Output/Exemplo_01.lst Dica importante - 3 Ao abrir e compilar um programa no CCS é criado automaticamente um projeto associado. Caso você abra um segundo programa e tente compilar, o projeto aberto (com o primeiro programa aberto) é o que será compilado. Dica importante - 4 A diretiva #use delay (clock = 20M) apenas informa ao compilador qual a velocidade do clock que será implementado em hardware Se houver diferença entre o cristal escolhido no Proteus ou na placa e o informado na diretiva as temporizações serão erradas. Programação em C Compilador CCS ANSI C mais as especificações do uC Ver arquivo 18F4550.h Atenção aos tipos de dados 33 Programação em C Cada tipo comporta uma quantidade de bits O estouro do valor pode acarretar em perda dos dados 34 Programação em C Alguns tipos são equivalentes 35 Estrutura básica #include <18F4550.h> // inclui arquivo de bibliotecas do dispositivo #use delay (clock = 20000000)// Isso apenas informa para o compilador // qual a frequencia do clock será utilizada // para os calculos de tempo do compilador // bits de configuração #fuses HS, NOWDT, NOPROTECT, NOPUT, NOBROWNOUT, NOLVP void main () {// rotina principal //instruções que irão ser executadas apenas uma vez while(true) { // loop infinito // Área de código em loop que será executada indefinidamente } } Os bits de configuração XT,HS,INTRC – Selecionam a velocidade do cristal – datasheet página 121 NOWDT,WDT – Watchdog Timer (cão de guarda) - datasheet página 131 NOPUT,PUT – Power-up timer – datasheet página 124PROTECT, NOPROTECT – Protege o código, não permite a sua leitura (tem na internet como quebrar de algumas famílias) DEBUG,NODEBUG Os bits de configuração NOBROWNOUT,BROWNOUT – Reset com tensão baixa LVP,NOLVP – Programação em baixa tensão Principais arquivos gerados pelo compilador Xxx.cof código em linguagem de máquina para ser carregado no controlador ou no Proteus – permite debug no Proteus Xxx.hex código em linguagem de máquina para ser carregado no controlador ou no Proteus Xxx.lst código em assembly Para visualizar os arquivos, acesse a aba files após compilar. Configurando o simulador proteus Clique com o botão direito sobre o controlador – propriedades Carregue o programa .hex ou .cof e configure a velocidade Primeiro Programa em C Leitura e escrita de portas input_x () output_x () Manual de referência pág. vii (via sumário) value = input_a () //lê a porta A e carrega na variável value (byte ou inteiro) output_a (value) //escreve a variável value na porta a. Exemplo 01 #include <18F4550.h> #FUSES NOWDT //No Watch Dog Timer #FUSES INTRC //Internal osc #FUSES NOMCLR //Master Clear pin desabled #use delay(crystal=4MHz) #define LED PIN_B0 #define DELAY 1000 void main() { while(true){ output_low(LED); delay_ms(DELAY); output_high(LED); delay_ms(DELAY); } } VDD R10 1k SW9 SW-SPST-MOM VDD SW10 SW-SPST-MOM R11 1k l a b e l label 12345678 1 6 1 5 1 4 1 3 1 2 1 1 1 0 9 SW11 SW-DIP8 234567891 RP2 RESPACK-8 VDD 0 SW1 SW-SPDT R10 560 D1 LED-RED Pino de saida ? 12345678 2 0 1 9 1 8 1 7 1 6 1 5 1 4 1 3 91 0 1 2 1 1 U3 LED-BARGRAPH-GRN R12 470R R13 470R R14 470R R15 470R R16 470R R17 470R R18 470R R19 470R
Compartilhar