Prévia do material em texto
i CENTRO UNIVERSITÁRIO INTERNACIONAL UNINTER ESCOLA SUPERIOR POLITÉCNICA BACHARELADO EM ENGENHARIA ELÉTRICA DISCIPLINA DE MICROPROCESSADORES E MICROCONTROLADORES ATIVIDADE PRÁTICA DE MICROPROCESSADORES E MICROCON- TROLADORES RICARDO MARQUES DE FIGUEIREDO PROFESSOR MESTRE CHARLES WAY HUN FUNG GRAVATAÍ - RS 2021 ii SUMÁRIO 1 INTRODUÇÃO ............................................................................................................................................ 1 2 DESENVOLVIMENTO .............................................................................................................................. 2 2.1 ARQUITETURA DO MICROCONTROLADOR E FUNCIONAMENTO ....................................................... 2 2.2 INSTRUÇÕES .......................................................................................................................................... 4 2.3 MEMÓRIA ............................................................................................................................................... 5 2.4 PINAGEM E FUNÇÕES .......................................................................................................................... 6 2.5 FLUXOGRAMA .................................................................................................................................... 11 2.6 UTILIZANDO SOFTWARES, MPLAB IDE E SIMULIDE, PARA DESENVOLVER AS PRÁTICAS SOLICITADAS ................................................................................................................................................ 12 2.6.1 Acender o LED D0 ........................................................................................................................ 12 2.6.2 Acender 3 LEDS, D0, D3 e D7 ...................................................................................................... 13 2.6.3 Piscar os LED D0, LED D3 e LED D7 ......................................................................................... 13 2.6.4 Acender o display de 7 segmentos o último número do RU ........................................................... 14 2.6.5 Contador de 0 a F no display de 7 segmentos ............................................................................... 15 3 REFERÊNCIAS BIBLIOGRÁFICAS ..................................................................................................... 17 4 CONCLUSÃO ............................................................................................................................................ 18 1 1 INTRODUÇÃO Nesta atividade será realizado simulações com o PIC16F877A, com isso será pos- sível visualizar sua real aplicação em conceitos de automação, principalmente de um controle visual. O microcontrolador mencionado faz parte da família de microcontroladores de 8 bits e núcleo de 14 bits (série PIC16F...) lançada pela MICROCHIP. Ele dispõe de uma performance que permite executar desde um simples programa que faz piscar um LED, uma de nossas amos- tras no desenvolvimento deste trabalho, ou até mesmo o controle de um robô, e também ainda, um programa de controle de acesso controlado por rede Na figura 1, mostra o CI deste processador. Figura 1 - Microcontrolador PIC16F877A 2 2 DESENVOLVIMENTO A sigla PIC significa, PROGRAMMABLE INTERRUPT CONTROLLER (CON- TROLADOR DE INTERRUPÇÃO PROGRAMÁVEL), com isso, sabe-se que é um compo- nente eletrônico programável, este produzido pela Microchip Technology Inc. Utilizado no controle de processos e atividades lógicas. Os microcontroladores são compostos de uma única pastilha de silício encapsulada, ou seja, um circuito integrado (CI) e todos os elementos neces- sários para o controle das atividades estão internamente ligados a pastilha de silício. Sendo essa a característica principal que diferencia os microcontroladores dos microprocessadores. O PIC16F877A está enquadrado na família 8 bits de microcontroladores Microchip, possui via de programação com 14 bits e um conjunto de 35 instruções 2.1 ARQUITETURA DO MICROCONTROLADOR E FUNCIONAMENTO Os microcontroladores apresentam uma estrutura interna de máquina na qual irá determinar a maneira como os dados e o programa serão processados. As arquiteturas mais utilizadas para sistemas computacionais digitais são: Arquitetura Von Neumann: A CPU (Unidade Central de Processamento), está co- nectada a memória de dados e programa, por um único barramento (bus) de 8 bits. Arquitetura Harvard: A CPU está conectada a memória de dados e memória de programa, diferente da Von Neumann, por barramento (bus) distintos. O barramento de dados é composto por 8 bits e o barramento de programa por 14 bits (família 16 F). Conforme figura 2. Figura 2 - Representação da arquitetura Harvard x Von-Neumann. 3 Os microcontroladores da família PIC, utilizam como estrutura interna a arquitetura Harvard, a qual possibilita um processamento mais rápido, pois em quanto um processo está sendo executado, outro já está sendo buscado na memória. Deve-se ressaltar o fato de o barra- mento de instruções ser maior do que 8 bits, o OPCODE (referência à instrução que um deter- minado processador possui para conseguir realizar determinadas tarefas) inclui o dado e o local onde ele vai atuar, o que indica que apenas uma posição de memória será utilizada por instrução, com isso há uma economia de memória de programa. Figura 3 - Arquitetura interna do PIC16F877A O fato de o PIC trabalhar com a arquitetura Harvard, faz com que utilize uma tec- nologia chamada RISC (Reduced Instruction Set Computer) – Computador com Set de Instru- ções Reduzido. Isso quer dizer que se pode trabalhar com uma lista de códigos de instruções de 4 programação aproximadamente 35 instruções, número esse, que pode variar de modelo para modelo Já se fosse a tecnologia CISC (Complex Instruction Set Computer) – Computador com Set de Instruções Complexo, seriam necessário conhecer algo entorno de 100 instruções de programação. Deixando o aprendizado mais custoso, porém algumas funções na tecnologia CISC se tem uma facilidade maior, pois já existem. 2.2 INSTRUÇÕES O Set de instruções divide-se em quatro grupos, os quais somam um conjunto com 35 instruções: • Operações com registradores; (figura 4) • Operações com literais; (figura 5) • Operações com bits; (figura 6) • Controles; (figura 7) Figura 4 - Operações com registradores 5 Figura 5 - Operações com literais Figura 6 - Operações com bits Figura 7 – Controles 2.3 MEMÓRIA Ficará armazenada as instruções do programa no qual fará o controle das atividades. No caso do PIC16F877A é uma memória do tipo FLASH de 8192 palavras (8K) e 14 bits. 6 Figura 8 - Diagrama da memória 2.4 PINAGEM E FUNÇÕES Mostra-se na figura 3 a pinagem e um resumo da descrição e função de cada pino deste microcontrolador. Deve ser notado que a maioria dos pinos possui várias funções, não signifi- cando que as funções possam ser exercidas ao mesmo tempo. 7 Figura 9 - Pinagem do Microcontrolador PIC16F877A 1. MCLR : Master Clear – Quando em nível baixo (0V), define situação de RESET. Quando em nível alto (5V), determina programa em execução. VPP: Tensão de programação – Quando este pino estiver em 13.4V, o microcontrolador entra em modo gravação, permitindo a transfe- rência de um programa via ICSP; 1. RA0 – Entrada / saída digital. AN0 – Entrada analógica canal 0 para o ADC interno; 2. RA1 – Entrada / saída digital. AN1 – Entrada analógica canal 1 para o ADC interno; 3. RA2 – Entrada / saída digital. AN2 – Entrada analógica canal 2 para o ADC interno. Vref- – Uso do pino para definir a referência negativa para o conversor AD; 4. RA3 – Entrada / saída digital. AN3 – Entrada analógicacanal 3 para o ADC interno. Vref+ – Uso do pino para definir a referência positiva para o conversor AD; 5. RA4 – Entrada / saída digital. TOCKI – Contador rápido; 8 6. RA5 – Entrada / saída digital. AN4 – Entrada analógica canal 4. SS – Slave Select para porta serial síncrona; 7. RE0 – Entrada / saída digital. RD – Entrada de controle de leitura para porta paralela escrava. AN5 – Entrada analógica canal 5; 8. RE1 – Entrada / saída digital. WR – Entrada de controle de gravação para porta paralela escrava. AN6 - Entrada analógica canal 6; 9. RE2 – Entrada / saída digital. CS – “Chip Select” para porta paralela escrava. AN7 – Entrada analógica canal 7; 10. VDD – Alimentação (preferência 3V a 5V); 11. VSS – Referência (0V / GND); 12. OSC1/CLKIN – Pino para ligação do circuito oscilador externo (entrada). Usado em con- junto com o pino OSC/CLKOUT. Recomendado usar cristal de 4 a 20 MHz; 13. OSC2/CLKOUT – Pino para ligação do circuito oscilador externo (saída); 14. RC0 – Entrada / saída digital. T1OSO – Saída do oscilador do TIMER1. T1CKI – Entrada de clock para TIMER1; 15. RC1 – Entrada / saída digital. T1OSI – Entrada do oscilador do TIMER1. CCP2 – Entrada de captura 2, saída de comparador 2 ou PWM 2; 16. RC2 – Entrada / saída digital. CCP1 – Entrada de captura 1, saída de comparador 1 ou PWM 1; 17. RC3 – Entrada / saída digital. SCK/SCL – Entrada ou saída de sinal de clock serial síncrono para SPI e I2C; 18. RD0 – Entrada / saída digital. PSP0 – Pino 0 da porta paralela escrava; 19. RD1 – Entrada / saída digital. PSP1 – Pino 1 da porta paralela escrava; 20. RD2 – Entrada / saída digital. PSP2 – Pino 2 da porta paralela escrava; 9 21. RD3 – Entrada / saída digital. PSP3 – Pino 3 da porta paralela escrava; 22. RC4 – Entrada / saída digital. SDI – Entrada de dados em SPI. DAS – Entrada/saída de dados em modo I2C; 23. RC5 – Entrada / saída digital. SD0 – Saída de dados SPI; 24. RC6 – Entrada / saída digital. TX – Pino para transmissão serial assíncrona. CK – Clock para transmissão síncrona; 25. RC7 – Entrada / saída digital. RX – Pino para recepção serial assíncrona. DT – Dados da serial síncrona; 26. RD4 – Entrada / saída digital. PSP4 – Pino 4 da porta paralela escrava; 27. RD5 – Entrada / saída digital. PSP5 – Pino 5 da porta paralela escrava; 28. RD6 – Entrada / saída digital. PSP6 – Pino 6 da porta paralela escrava; 29. RD7 – Entrada / saída digital. PSP7 – Pino 7 da porta paralela escrava; 30. VSS - Referência (0V / GND); 31. VDD – Tensão de alimentação (mesma que pino 11); 32. RB0 – Entrada / saída digital. INT – Entrada de sinal de interrupção via hardware; 33. RB1 – Entrada / saída digital; 34. RB2 - Entrada / saída digital; 35. RB3 – Entrada / saída digital. PGM – Entrada de sinal para gravação em baixa tensão (5V); 36. RB4 – Entrada / saída digital; 37. RB5 – Entrada / saída digital; 38. RB6 – Entrada / saída digital. PGC – Clock para programação ICSP ou pino para depuração; 10 39. RB7 – Entrada / saída digital. PGD – Dados para programação ICSP ou pino para depura- ção; As interrupções são ferramentas que possibilitam a execução de determinadas situ- ações no momento em que elas ocorrem. Normalmente elas ocorrem devido ações externas. O PIC 16F877A é composto por 15 interrupções diferentes, as quais sempre serão desviadas para o vetor de interrupção (0004h) da memória de programa. Segue as interrupções deste PIC: • Interrupção de Timer 0; • Interrupção Externa; • Interrupção por mudança de Estado; • Interrupção da Porta Paralela (PSP); • Interrupção dos Conversores A/D; • Interrupção de Recepção da USART; • Interrupção de Transmissão da USART; • Interrupção da Comunicação Serial (SPI e I2C); • Interrupção do CCP1 (Capture/Compare/PWM); • Interrupção do Timer 1; • Interrupção de Timer 2; • Interrupção de fim de escrita na E2PROM/FLASH; • Interrupção de Colisão de Dados (BUS Collision); • Interrupção dos Comparadores; 11 Figura 10 - Características Elétricas 2.5 FLUXOGRAMA Os fluxogramas são ferramentas usadas para ajudar o programador a estruturar de maneira grá- fica um algoritmo das atividades que posteriormente serão executadas por um determinado pro- grama. Figura 11 - Exemplo de fluxograma 12 2.6 UTILIZANDO SOFTWARES, MPLAB IDE E SIMULIDE, PARA DESENVOL- VER AS PRÁTICAS SOLICITADAS 2.6.1 Acender o LED D0 Figura 12 - Acender apenas LED "D0" 13 2.6.2 Acender 3 LEDS, D0, D3 e D7 Figura 13 - Acender LED's D0, D3 e D7 2.6.3 Piscar os LED D0, LED D3 e LED D7 Figura 14 - Piscar LED's D0, D3 e D7, em sequência 14 2.6.4 Acender o display de 7 segmentos o último número do RU Figura 15 - Acender o último número do meu RU Pino PIC D7 D6 D5 D4 D3 D2 D1 D0 Seg. Display N/A g f e d c b a 7 0 0 0 0 0 1 1 1 Tabela 1- Código usado para os bits dos 7 seguimentos, informando o último número do RU 15 2.6.5 Contador de 0 a F no display de 7 segmentos Figura 16 - Contador de "0" a "F" 16 Pino PIC D7 D6 D5 D4 D3 D2 D1 D0 Seg. Display N/A g f e d c b a 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 0 2 0 1 0 1 1 0 1 1 3 0 1 0 0 1 1 1 1 4 0 1 1 0 0 1 1 0 5 0 1 1 0 1 1 0 1 6 0 1 1 1 1 1 0 1 7 0 0 0 0 0 1 1 1 8 0 1 1 1 1 1 1 1 9 0 1 1 0 1 1 1 1 A 0 1 1 1 0 1 1 1 B 0 1 1 1 1 1 1 1 C 0 0 1 1 1 0 0 1 D 0 0 1 1 1 1 1 1 E 0 1 1 1 1 0 0 1 F 0 1 1 1 0 0 0 1 Tabela 2 - Códigos usados para os bits dos 7 seguimentos 17 3 REFERÊNCIAS BIBLIOGRÁFICAS https://www.baudaeletronica.com.br/microcontrolador-pic16f877a.html https://books-online.club/sl-SNSZH-D7256/signup-dual/#/z=3eQ5Zp3V1ThvJj7v6ndZtf/vari- ation=default/q=Register+Memory+Organiza- tion+In+Pic+16f877/s1=dnFVVzM0bklKUFd6WGYwYkVJcFNtaFh5ZDU1aG- djOGZIc1p3aWs1Qm1IV3NlOUptN2ZYdlI5UzJxaEhuaW9RSQ%3D%3D/s2=Register+Me- mory+Organization+In+Pic+16f877/s3=xamwiring/s4=/s5=/source_id=6ad50ba2-5671-686a- 9b9b-22f7a351d966/project=u82yg1/mh_offer_id=/dp=sri08VOnApV5OK0f7OE- JNx/m=/c_bg=/c_img1=/c_img2=/c_color=/source=Referral/software=Browser/do- main=cdn.bkc1a.club/ https://www.unioviedo.es/ate/alberto/TEMA2-Memoria.pdf http://www.joinville.ifsc.edu.br/~nivaldo/Microcontroladores/Aulas/Instrucoes_Assem- bler_parte_1.pdf https://pt.slideshare.net/obscurethormentor/apostila-pic-16f877 18 4 CONCLUSÃO Depois de muitos questionamentos e pesquisas, consegui realizar as atividades so- licitadas neste trabalho. Importante dessa prática, foi poder visualizar uma pequena parcela do que esse processador pode ser utilizado. Ver como pode ser aplicado a utilização deste sistema de automação, há um grande número de aplicações devido à sua quantidade de pinos ele é muito versátil para projetos envolvendo um grande poder de processamento. Processador com utilidade para comunicação visual com uso em displays para iden- tificações do dia a dia como: Placares eletrônicos, painel de mensagem e senhas, controle de display de LED, relógios de hora e marcadores de temperatura em vias públicas principalmente.