Utilização didática do MULTISIM na implementação do PIC16F84 João Guilherme Correia Caldonazio1 Vladimir Rambaldi Chagas2 Prof. M.Sc. Juliano Coêlho Miranda3 RESUMO Este artigo tem como objetivo a formulação didática da implementação do microcontrolador PIC16F84 no software de simulação MULTISIM, orientando profissionais que possuem conhecimento em eletrônica e linguagem de programação a realizar um projeto de simulação antes de aplicá-lo fisicamente e auxiliar academicamente aulas voltadas a este tipo de aplicação. Apresentará um diagrama contendo o projeto de inserção do PIC16F84 em ambiente de simulação, assim como a descrição de cada etapa. A falta de documentação em língua nativa causa uma dificuldade na utilização desse sistema de simulação, o que uma parte será suprida com esse artigo, através de modelos, testes e definições de circuitos utilizando a linguagem C e Assembly. Terá como resultado a obtenção de material para satisfazer a implementação inicial do microcontrolador no sistema de simulação, e aplicabilidade em algumas situações reais. Palavras-chave: MULTISIM, implementação, microcontrolador, C, Assembly, PIC6F84. 1 INTRODUÇÃO Um ambiente de simulação eletrônico físico necessita de um investimento que não há como mensurar, onde temos várias variáveis que devem ser levadas em consideração. Caso o 1 João Guilherme Corrêia Caldonazio, Graduando em Bacharelado em Ciência da Computação (2007 – 2010) no Centro Universitário do Sul de Minas. 2 Vladimir Rambaldi Chagas, Graduando em Bacharelado em Ciência da Computação (2007-2010) no Centro Universitário do Sul de Minas. 3 Prof. M. Sc. Juliano Coêlho Miranda, Mestre em Engenharia Elétrica (EESC/USP) e Doutorando da Escola de Engenharia Elétrica de São Carlos (EESC/USP). http://lattes.cnpq.br/9613023129913069. 1 ambiente de simulação seja um laboratório de uma universidade temos que serão necessários vários tipos de conectores assim com todo material de parte elétrica, robótica e computacional para a consolidação de um equipamento eletrônico. Neste artigo será abordada a implementação de um microcontrolador PIC16F84 de maneira simples em um ambiente de simulação, o MULTISIM, visto que não há material disponível em língua portuguesa para este tipo de operação. 2 MICROCONTROLADORES E SUAS PROGRAMAÇÕES 2.1 Microcontroladores “Os microcontroladores, [...], são dispositivos mais simples, com memórias RAM e ROM internas, oscilador interno de clock, I/O interno, [...]” (PEREIRA, 2004, 3ª ed., p. 19). “O microcontrolador foi projetado para ter tudo num só. Nenhum outro componente externo é necessário nas aplicações, uma vez que todos os periféricos necessários já estão contidos nele. [...]” (Microcontroladores). Segundo PEREIRA (2004, P. 35), Os microcontroladores PIC utilizam uma arquitetura RISC, com freqüências de clock de até 40Mhz, até 2048k word de memória de programa e até 3968 bytes de memória RAM. São divididos em três famílias basicamente que se diferenciam pelo tamanho de sua memória de programa, sendo 12, 14 ou 16 Bits, possuindo todos um barramento interno de 8 bits. PEREIRA (2004, p. 36-57) ressalta que a arquitetura PIC reside na semelhança e compatibilidade entre os diversos chips, o que facilita a migração de um MCU para outro. Deve se destacar algumas características internas dos MCUs, como capacidade de pipeline, capacidade de execução de uma instrução por ciclo de máquina, cada instrução ocupar apenas uma posição de memória de programa e o tempo de execução fixo para todas as instruções. Essa arquitetura se consolida na apresentação de memória de programa, esta sendo ROM do tipo máscara, OTP, EPROM e FLASH; de Memória RAM e Registradores, sendo Registrador W, contador de programa (PC), Pilha (Stack); de interrupções, estas sendo, mascaráveis e não mascaráveis. Os PICs mais antigos possuem até quatro tipos de interrupções, sendo, externa, por mudança de nível lógico na porta B(RBIF), do timer0 (T0IF), de periférico, interrupção GPIF OU GPIO. 2 2.2 Programação de microcontroladores Em uma aplicação real, um microcontrolador, por si só, não é suficiente, é necessário que haja uma programação. O programa é uma parte fundamental quando se trabalha com microcontroladores, onde este tem a funções de informar dados ao microcontrolador, assim sucessivamente de controlar toda a estrutura onde está localizado. Esta programação pode ser realizada em Assembly, C e Basic, respectivamente do nível mais baixo de programação ao nível mais alto de programação, sendo a linguagem C um nível que realiza comunicação direta com o nível mais baixo de programação e apresenta algumas características de nível alto de programação. (Microcontrolador). 2.2.1 Linguagem Assembly Segundo PEREIRA (2007, p. 15), o Assembly consiste em uma forma alternativa de representação dos códigos de máquina, usando mnemônicos. A conversão desses mnemônicos em códigos binários executáveis pela máquina é realizada por um montador chamado Assembler. “Todos os computadores executam os comandos que residem na memória sob a forma de instruções de máquinas, assim a finalidade de um montador (Assembler), tem a finalidade de traduzir os comandos escritos em linguagem de alto nível para nível de máquina.[...]. No entanto o Assembly utiliza instruções que estão mais próximas da manipulação do hardware do computador”(GODFREY, 1989, p. 1819, tradução nossa). 2.2.2 Linguagem C PEREIRA (2007, p. 16) afirma que as linguagens de alto nível, ao qual se enquadra a linguagem C, são criadas para permitir a programação utilizando comandos de alto nível, e que são posteriormente traduzidos para a linguagem de baixo nível, ou diretamente para código de máquina do sistema utilizado. O uso da linguagem C permite a programação dos microcontoladores em situações complexas, o que não seria viável caso tivesse que ser realizada em Assembly. “A utilização de uma linguagem de alto nível como C permite que o programador preocupe-se mais com a programação da aplicação em si [...]” (PEREIRA, 2007, P. 18). 3 3. SIMULAÇÃO A simulação se define por “representação de um sistema ou de um processo por um modelo estatístico com que se trabalha, como se tratasse desse sistema ou processo, para investigar os seus efeitos” (Infopédia). Segundo (Kelton ET AL., 1998) a simulação de sistemas consiste na utilização de um conjunto de métodos e técnicas matemáticas, com o objetivo de representar o comportamento de sistemas reais, com a utilização de computadores e sistemas adequados. Define-se também, como um processo de expressar um modelo de sistema real, e de procedimentos de experimentos com este modelo, objetivando o resultado comportamental do sistema visando avaliar melhores posicionamentos ou estratégias para a operação de maneira real (Pegden et AL., 1995). Há a possibilidade de simulação de praticamente quase todos os tipo de operação ou processos reais (Freitas Filho, 1997). 4 MATERIAIS E MÉTODOS 4.1 Microcontrolador PIC16F84 Tateoki (2009, p. 5) apresenta que “um microcontrolador como o PIC16F84 é por sua natureza, um computador completo em um chip, onde este possui um processador, registradores, programa e memória de dados”. O PIC16F84 apresenta um processador de 8-bits, 90 registradores que são responsáveis pelo armazenamento interno do processador, possui uma memória de programa de 1k, ou seja, 1024 locais para programa, sendo endereçada do endereço 000h até 3ffh, possui 64 bytes de memória de dados (EEPROM), interrupções e os seus pinos de I/O, sendo um total de 13 pinos divididos em 5 sendo portas A e 8 sendo portas B (Figura 01). Figura 1 - Microcontrolador PIC16F84 (Fonte: Apostila Introdução aos microcontroladores) 4 4.2 MULTISIM O MULTISIM se apresenta como uma ferramenta de análise comportamental de circuitos eletrônicos, combinando recursos intuitivos e facilidades de utilização com o padrão industrial de simulação SPICE em um único ambiente integrado, abstraindo as complexidades e dificuldades de simulação tradicional. (MULTISIM, 2010). Segundo Braga (2009, p. 7) “o MULTISIM é capaz de verificar erros antes que eles se propaguem pelo projeto, essa verificação é feita através de um conjunto amplo de instrumentos virtuais que indicam formas de ondas, sinais, tensões e correntes, além da própria posta de freqüência de um circuito”. 5 AMBIENTE DE SIMULAÇÃO Um projeto de simulação se inicia com a escolha do ambiente de simulação. O MULTISIM se apresenta como uma ferramenta de simulação de ambientes eletrônicos, onde se pode realizar simulações de circuitos antes da implementação no ambiente laboratorial. No ambiente de simulação MULTISIM, são avaliadas as reações das ligações dos componentes juntamente com a execução de uma programação que busca o fim de manipular os dados entre o microcontrolador e o circuito, assim tendo respostas de erros de compilação de códigos como a não execução do ambiente por motivo de erro de montagem do circuito. As etapas de um projeto de simulação eletrônica se compõem pelos seguintes passos: - especificação do circuito a ser montado, isso se faz através de identificação dos componentes que serão necessários e qual será a utilidade deste circuito. - escolha do sistema de simulação para a realização da implementação do circuito elétrico planejado. - colocação do circuito elétrico no ambiente de simulação. Caso o circuito possua um sistema que necessite de programação de algum componente, parte-se para a etapa da criação do programa que será utilizado na execução de instruções em um componente específico, como um microcontrolador. Com essas etapas, temos que neste projeto realizaremos uma simulação com um circuito elétrico, contendo um microcontrolador PIC16F84, aplicado no ambiente de simulação MULTISIM, utilizando as linguagens de programação Assembly e C para a programação de seus sistemas internos para a realização das tarefas/objetivos do circuito. O diagrama 01 apresenta os passos a serem seguidos no processo de simulação. 5 Diagrama 1 - Diagrama dos processos para a simulação O ambiente de simulação MULTISIM (Figura 02) se apresenta com uma interface amigável e com grande acessibilidade, desde que o projetista tenha a noção de eletrônica (componentes e ligações) e um conhecimento de programação (lógica de programação). O MULTISIM passa ao criador do projeto ferramentas para controle da visualização do painel central onde será desenvolvido o circuito da simulação, (região 01 da Figura 02), uma barra de componentes, (região 02 da Figura 02), controles da simulação (START, PAUSE e STOP), (região 03 da Figura 02), uma barra de ferramenta de análise (multímetro, osciloscópio, etc.), (região 04 da Figura 02), a Desig toolbox (barra contendo arquivos do projeto), (região 05 da Figura 02), e a Spreadsheet View, (região 06 da Figura 02), que contém informações sobre a execução do circuito. 6 Figura 2 – Ambiente de desenvolvimento MULTISIM (Fonte: Print Screen retirado pelos autores) O projetista, tendo as noções de aplicações das ferramentas apresentadas pelo programa inicia seu projeto inserindo no painel central o microcontrolador, (Figura 03), e os componentes que compõem o circuito. Estes componentes são inseridos através da barra de ferramentas components onde ao clicar em qualquer tipo de componente é apresentada uma janela de seleção de componentes, nesta janela se encontra a caixa de busca de circuito, onde o projetista apresenta em inglês o nome do componente que será necessário. Figura 3 - Inserção do Microcontrolador PIC16F84 (Fonte: Print Screen retirado pelos autores) 7 Na inserção do microcontrolador é necessária a criação de um espaço de trabalho (projeto), (Figura 04), nesta etapa se define o nome do ambiente de trabalho passando assim a escolha da linguagem a ser utilizada (Figura 05). Tem que se aplicar um nome ao projeto e ao arquivo de programa seja ele Assembly (.asm) ou C (.c), (Figura 06). Figura 4 - Montagem do Workspace (Fonte: Print Screen retirado pelos autores) Figura 5 - Montagem do Projeto na linguagem (Fonte: Print retirado pelos autores) Figura 6 - Inserção do arquivo para o código (Fonte: Print Screen retirado pelos autores) 8 Inserido o microcontrolador temos no design toolbox os arquivos do projeto definidos como arquivo geral do design, arquivo do microcontrolador (workspace), arquivo indicando o projeto que está sendo executado, e o arquivo do programa (Figura 07). Figura 7 - Design Toolbox contendo os arquivos do projeto (Fonte: Print Screen retirado pelos autores) No arquivo design serão implantados os outros componentes para a formação do circuito desejado. O simulador apresenta uma ferramenta de gerenciamento do microcontrolador (Figura 08), esta ferramenta é acessada pelo projetista através de dois cliques no MCU apresentado na área Design Toolbox. Figura 8 - Gerenciamento do Microcontrolador (Fonte: Print Screen retirado pelos autores) 9 O gerenciamento do projeto possibilita ao projetista a inserção de novos arquivos de códigos assim como novos projetos interligados ao que está sendo montado, fazendo com que haja a interação de projetos distintos. No arquivo de programa temos a abertura de um ambiente onde serão inseridas as linhas de programação (Figura 09), para a informação de ordens ao microcontrolador, informando-lhe bits de programação de portas, assim como informações a serem passadas aos outros componentes do circuito (Figura 10). Figura 9 - Ambiente de programação (Fonte: Print Screen retirado pelos autores) Figura 10 - Programação realizada no ambiente (Fonte: Print Screen retirado pelos autores) 10 Na etapa de programação são necessários alguns princípios básicos de lógica da programação como sintaxe e semântica, com esses princípios são aplicadas as funções específicas de programação para microcontroladores tendo em Assembly (Figura 11) e em C (Figura 12) onde é necessário o conhecimento e domínio destas linguagens para poder realizar a implementação. 11 Figura 11 – Código aplicado no projeto Assembly.asm (Fonte: Print Screen retirado pelos autores) Figura 12 - Código aplicado no projeto main.c (Fonte: Print Screen retirado pelos autores) Realizada a programação do microcontrolador apresentados na Figuras 11 e 12, juntamente com a montagem do circuito conforme projeto desejado. Inicia-se então a fase de execução do circuito, nessa fase utilizam-se os comandos de controle da simulação. Ao dar START no circuito, na Spreadsheet View acompanhamos o que ocorreu ao programa ser executado, caso o programa apresente alguma irregularidade, é neste ambiente que conterá as informações de erros ou alertas. Apresentando erros ou alertas, é necessário que o projetista realize as correções para que tudo esteja operando de maneira correta, para que possa haver a aplicação em ambiente laboratorial (físico) sem que haja a necessidade de correções. 8 PROJETOS FUTUROS Será realizada a continuação dos estudos para a simulação de um sistema real, assim como a disponibilização dos materiais programados no MULTISIM, com passo a passo na criação dos circuitos e geração dos códigos. 12 7 CONCLUSÃO O direcionamento para a aplicação de um microcontrolador no ambiente de simulação MULTISIM não é encontrado na língua portuguesa. O embasamento neste campo possibilitou a aprendizagem de simulação eletrônica assim como o conhecimento de programação em uma linguagem de nível próximo ao de máquina. Um conteúdo didático apresentando as características de montagem de um ambiente para trabalho e estudos de circuitos semiaplicados, pois estes a priori se apresentam em forma de simulação e posteriormente podendo ser aplicado de maneira física, evitando perdas em excesso de componentes e placas. Com esta aplicação tem-se um material semi-narrativo apresentando a maneira de se realizar a implementação do microcontrolador no ambiente de simulação MULTISIM, assim como a sua aplicação. PIC16F84: didatic use of MULTISIM in implementing PIC16F84A ABSTRACT This article aims at teaching the formulation of the implementation of the PIC16F84 microcontroller simulation software MULTISIM, targeting professionals who are knowledgeable in electronics and programming language to perform a simulation project before you apply it physically. Submit a diagram containing the project's insertion into PIC16F84 simulation environment, as well as a description of each step. The lack of documentation in the native language causes a difficulty in using this simulation system, which will be supplied with a part of this article, from models, tests and definitions of circuits using C and Assembly. Will result in the procurement of material to satisfy the initial implementation of the microcontroller in the system simulation, and applicability to some real situations. Keywords: MULTISIM, implementation, microcontroller, C, Assembly, PIC6F84. 13 REFERÊNCIAS Introdução aos microcontroladores. Disponível em: <http://www3.fsa.br/LocalUser/Eletronica/mario.garcia/Microprocessaores/Apostila%20Micr ocontrolador%20PIC16F84.pdf>. Acesso em: 06 nov. 2010. O que é MULTISIM?. Disponível em: <http://digital.ni.com/express.nsf/bycode/braf3i>. Acesso em: 06 nov. 2010. BRAGA. N. C. Aprenda a Usar o MULTISIM. Saber. 2009. p. 7. GODFREY, J. T. IBM microcomputer assembly language: begining to advanced. Prenticehall, 1989. p. 18-19. PEREIRA, F. Controladores PIC: Técnicas Avançadas. São Paulo: Érica, 2004. p.19; 35-57. PEREIRA, F. Microcontroladores PIC: programação em C. 7. ed. São Paulo: Erica, 2007. p.15-18. TATEOKI, G. T. Apostila curso de programação PIC. 2009. Disponível em: http://www.getulio.eng.br/meusalunos/EDII/curso_pic_16f84.pdf>. Acesso em: 06 nov. 2010. KELTON, W. D.; SADOWSKI, R. P.;SADOWSKI, D. A. – Simulation with Arena. McGraw-Hill, NY, 1998. PEDGEN, C. D.; SHANON, R. E.; SADOWSKI, R. P. – Introduction to simulation using SIMAN. McGraw-Hill: 2nd ed., NY, 1995. FREITAS FILHO, Paulo J. – Introdução a modelagem e a simulação de sistemas discretos. Apostila, UFSC, SC, 1997. Definição de simulação. Disponível em: <http://www.infopedia.pt/pesquisa- global/Simulação>. Acesso em: 12 dez. 2010. 14