0% acharam este documento útil (0 voto)
16 visualizações33 páginas

Aula 02

Enviado por

thiago ferreira
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
16 visualizações33 páginas

Aula 02

Enviado por

thiago ferreira
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 33

Interfaceamento e Controle

Eletroeletrônico

Aula 2
PROTEUS e MPLAB

Prof. Me. Roberto Vichinsky


Prof. Dr. Cláudio Domienikan
EXERCÍCIO 1
Desenvolver um programa em linguagem C para realizar o acendimento de oito leds mediante fechamento de
uma chave alavanca on/off. Considere a seguinte montagem:
+5V

Chaves: RB0-RB7
Leds: RD0-RD7
C1
Use cores diferentes U1
15pF 13 33
OSC1/CLKIN RB0/INT
14 34
OSC2/CLKOUT RB1
X1 RB2
35
CRYSTAL 2 36
RA0/AN0 RB3/PGM
3 37
C2 RA1/AN1 RB4
4 38
RA2/AN2/VREF-/CVREF RB5
5 39
RA3/AN3/VREF+ RB6/PGC
6 40
RA4/T0CKI/C1OUT RB7/PGD
15pF 7
RA5/AN4/SS/C2OUT
15
RC0/T1OSO/T1CKI
8 16
RE0/AN5/RD RC1/T1OSI/CCP2
9 17
RE1/AN6/WR RC2/CCP1
10 18
RE2/AN7/CS RC3/SCK/SCL
23
1
RC4/SDI/SDA
24 D1
MCLR/Vpp/THV RC5/SDO
25
R2
RC6/TX/CK
26 180
RC7/RX/DT
LED-RED
19 D9
RD0/PSP0
20
R3
RD1/PSP1
21 180
RD2/PSP2
22 LED-BLUE
RD3/PSP3
27 D3
RD4/PSP4
28
R4
RD5/PSP5
29 180
RD6/PSP6
30 LED-GREEN
RD7/PSP7 D4
PIC16F877A
R1
VDD=+5V 180
VSS=GND LED-RED
D5
R5
180
LED-YELLOW
D6
R6
180
LED-GREEN
D7
R7
180
LED-YELLOW
D10
R8
180
LED-BLUE
Recursos utilizados
• Software PROTEUS para desenho e simulação do esquemático

• Ambiente integrado de desenvolvimento (IDE) MPLAB-X para


construção do programa em linguagem C

• Compilador XC8 da Microchip (em substituição do HiTech)


Download do MPLAB-X (baixe o pacote de instalação através do link abaixo)
https://www.microchip.com/en-us/development-tools-tools-and-software/mplab-x-ide#tabs
Download do compilador XC8 (baixe o pacote de instalação através do link abaixo)
https://www.microchip.com/en-us/development-tools-tools-and-software/mplab-xc-compilers
Download do compilador XC8
https://www.microchip.com/en-us/development-tools-tools-and-software/mplab-xc-compilers
Download do compilador XC8
https://www.microchip.com/en-us/development-tools-tools-and-software/mplab-xc-compilers
Após os downloads, você terá os seguintes pacotes de instalação:

MPLABX-v5.45-windows-installer.exe
xc8-v2.32-full-install-windows-x64-installer.exe

Instale primeiramente o MPLABX e em seguida o XC8.


Procedimentos para resolução do exercício 1

1. Elaboração do esquemático no software PROTEUS

Abra o PROTEUS e inicie um novo projeto:


Na janela “New Project: Start” dê um nome para o projeto e escolha a
pasta onde ele será armazenado. Clique em “Next” para prosseguir:
Na janela “Schematic Design” selecione “Create a schematic...” e escolha
a opção “Default”. Clique em “Next” para prosseguir:
Na janela “PCB Layout” mantenha a opção “Do not create...” e clique em
“Next” para prosseguir:
Na janela “Firmware” mantenha a opção “No Firmware Project” (iremos
utilizar o IDE MPLAB para desenvolver o firmware). Clique em “Next” e
depois em “Finish”:
Agora é só desenhar o esquemático de acordo com o enunciado do exercício:
Na guia “Schematic Capture” use o botão direito do mouse sobre o
microcontrolador e selecione o item “Edit Properties”. Altere a frequência do
clock para 4MHz:
2. Desenvolvimento do programa no IDE MPLAB-X

Abra o MPLAB-X e inicie um novo projeto:


Na janela “New Project” escolha a categoria “Microchip Embedded” e
“Standalone Project”. Clique em “Next”:
Na próxima janela escolha a família “Baseline 8-bit MCUs”, selecione o
microcontrolador PIC16F877A e clique em “Next”:
Na janela “Select Compiler” selecione o compilador XC8 e clique em “Next”:
Para finalizar as definições, na próxima janela digite o nome do projeto e
escolha a pasta onde ele deverá ser alocado. Em seguida clique em “Finish”:
Com o botão direito do mouse, clique sobre o item “Source Files”, que se
encontra na guia “Projects”, e selecione as opções “New / C Main File” para
criar o novo programa principal em linguagem C:
Surgirá a janela “New C Main File”. Digite o nome do programa principal e
clique em “Finish”:
Será aberta uma janela de texto contendo uma estrutura básica do programa
em linguagem C. Antes de digitar o seu programa, apague todas as linhas
dessa janela:
Com a janela (área de texto) limpa, digite o seu programa:
Após a digitação, acesse o menu “Production” e selecione o item “Build Main
Project”. Você pode usar a tecla de atalho F11:
Se o processo de compilação não acusar erros, surgirá uma mensagem de
sucesso na área de notificação:
Para verificar se o arquivo em linguagem de máquina foi criado, entre na
pasta do projeto e abra a subpasta “dist/default/production”. Lá você deve
encontrar um arquivo com sufixo “.hex”, que é o programa em linguagem de
máquina.
Volte para o projeto em PROTEUS e com o botão direito do mouse sobre o
microcontrolador acesse a opção “Edit Properties”:
No campo “Program File”, clique sobre o ícone da pastinha amarela e localize
o programa “.HEX” na subpasta “dist/default/production” do projeto MPLAB:
Pronto! Agora é só simular o circuito no Proteus.
Programa em texto

/* Programa: exercicio_1
Autor: Claudio Domienikan
Data: 24/02/2021
*/
#include <xc.h>
#define _XTAL_FREQ 4000000
#pragma config FOSC = XT // Oscillator Selection bits (XT oscillator)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled)
#pragma config LVP = OFF // Low-Voltage (Single-Supply)
#pragma config CPD = OFF // Data EEPROM Memory Code Protection bit
#pragma config WRT = OFF // Flash Program Memory Write Enable bits (
#pragma config CP = OFF // Flash Program Memory Code Protection bit
unsigned char leitura_portb; // variável 8 bits sem sinal
void main (void)
{
TRISB=0b11111111; // Port B como Entrada
OPTION_REGbits.nRBPU=0; // Habilita Pull_Up na porta B
TRISD=0b00000000; // Port D como Saída
PORTD=0b00000000; // Valor inicial da saída do Port D

while (1) // Laço infinito


{
leitura_portb=PORTB; // Variável com valor da saida
leitura_portb=~leitura_portb; // Invertendo a lógica
PORTD=leitura_portb; // saída com o valor da variável
}
}
/* Programa: exercicio_1
Autor: Claudio Domienikan
Data: 23/02/2023
*/
U1
#include <xc.h> 13
OSC1/CLKIN RB0/INT
33
14 34
__CONFIG( FOSC_XT & PWRTE_ON & CP_OFF & BOREN_ON & OSC2/CLKOUT RB1
RB2
35
2 36
LVP_OFF ); 3
RA0/AN0
RA1/AN1
RB3/PGM
RB4
37
4 38
#define _XTAL_FREQ 4000000 5
6
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RB5
RB6/PGC
39
40
RA4/T0CKI/C1OUT RB7/PGD
7
RA5/AN4/SS/C2OUT
15
RC0/T1OSO/T1CKI
int main() +5V
8
9
RE0/AN5/RD RC1/T1OSI/CCP2
16
17
RE1/AN6/WR RC2/CCP1
{ 10
RE2/AN7/CS RC3/SCK/SCL
18
23
RC4/SDI/SDA
TRISD = 0b11111011; //RD2 (Pino 21) definido como OUTPUT 1
MCLR/Vpp/THV RC5/SDO
RC6/TX/CK
24
25
26
while(1) RC7/RX/DT
19
{ RD0/PSP0
RD1/PSP1
20
21
RD2 = 1; RD2/PSP2
RD3/PSP3
22
27 D4
__delay_ms(100); RD4/PSP4
RD5/PSP5
28
29
LED-RED
RD6/PSP6
RD2 = 0; RD7/PSP7
30

__delay_ms(100); PIC16F877A
VDD=+5V
+
470
} VSS=GND

return 0;
}

Você também pode gostar