Sei sulla pagina 1di 12

CURSO DE TCNICO ESPECIALISTA AUTOMAO ROBTICA E CONTROLO INDUSTRIAL

UFCD 5136 Sistemas de micro controladores


TRABALHOS LABORATORIAIS MICROCONTROLADORES

TRABALHOS LABORATORIAIS MICROCONTROLADORES 1

Objectivos

Criao de projetos no ambiente de desenvolvimento MPLAB IDE.

Conhecer o processo de traduo de cdigo fonte para cdigo mquina.

Introduo programao em linguagem C.

Programao dos registos associados aos portos de E/S;

Leitura e escrita de dados nos portos;

Implementao de um descodificador hexadecimal / 7Segmentos por software.

Implementao de um sistema de visualizao hexadecimal com 3 displays, com a construo de uma rotina para
refrescamento dos 3 displays por multiplexagem no tempo.

Introduo terica
Este documento propriedade da ATEC - Academia de Formao.
Preparado de acordo com o referencial de formao do CNQ para o curso 523229- Tcnico/a Especialista de Automao Robtica e Controlo
Industrial (NQ:5). Documento actualizado em 11.06.2013

O MPLab IDE da Microchip a ferramenta de desenvolvimento que o fabricante disponibiliza aos programadores. Este
ambiente de desenvolvimento conta j com 6 geraes e muitos anos de experincias, aperfeioamentos, adio de novas
tecnologias, que o tem mantido a par dos melhores IDE que existem, para inmeras linguagens de programao.

Execuo do MPLAB IDE:


1.

Para executar o MPLAB IDE, clique no con instalado no ambiente de trabalho

________________________________________________________________________________________________________________
Trabalhos Laboratoriais Microcontroladores 1
Pgina 1

CURSO DE TCNICO DE ELECTRNICA AUTOMAO E COMANDO


TRABALHOS LABORATORIAIS - Microcontroladores

2.

Criao de um projeto utilizando o Project Wizard

3.

A caixa de dilogo seguinte (Step One) permitir-nos- selecionar o tipo de dispositivo

4.

O segundo passo do Project Wizard define as ferramentas a utilizar neste projeto.

________________________________________________________________________________________________________________
Trabalhos Laboratoriais Microcontroladores N3
Pgina 2

Este documento propriedade da ATEC - Academia de Formao.


Preparado de acordo com o referencial de formao do CNQ para o curso 523229- Tcnico/a Especialista de Automao Robtica e Controlo
Industrial (NQ:5). Documento actualizado em 11.06.2013

CURSO DE TCNICO ESPECIALISTA AUTOMAO ROBTICA E CONTROLO INDUSTRIAL


UFCD 5136 Sistemas de micro controladores
TRABALHOS LABORATORIAIS MICROCONTROLADORES

5.

O terceiro passo permite-nos atribuir um nome ao nosso projeto e guard-lo numa pasta

6.

O quarto passo permite-nos selecionar os ficheiros a incluir no projeto

7.

A caixa de dilogo final do Project Wizard apresenta o resumo dos passos efetuados, indicando o dispositivo
selecionado, as ferramentas e o nome de projeto;

________________________________________________________________________________________________________________
Trabalhos Laboratoriais Microcontroladores 1
Pgina 3

CURSO DE TCNICO DE ELECTRNICA AUTOMAO E COMANDO


TRABALHOS LABORATORIAIS - Microcontroladores

8.

Depois da criao do "project", ter terminado, altura de comearmos a escrever um programa. Um novo ficheiro
deve ser aberto e vai ser para abrir um novo ficheiro, clica-se em FILE>NEW

9.

A nova janela representa o ficheiro onde o programa vai ser escrito.

Template do programa a escrever


#include <HTC.h>
//comentrios
__CONFIG ( MCLRE_OFF & CP_OFF & WDTE_OFF & FOSC_INTRCIO);
#define _XTAL_FREQ 4000000
void main()
{
TRISC=0B00000000;
PORTC=0B00000000;
ANSEL=0B00000000;
while(1)
{
RC0=1;
}
}
Vejamos o significado de cada linha do programa:
# include <HTC.H>
O comando # INCLUDE uma diretiva do compilador. Neste caso est a determinar ao compilar que anexe ao
programa o arquivo especificado HTC.H.
Os arquivos com extenso H so designados de arquivos de cabealho e so utilizados em C para definir
variveis, tipos, smbolos e funes uteis ao programa.

________________________________________________________________________________________________________________
Trabalhos Laboratoriais Microcontroladores N3
Pgina 4

CURSO DE TCNICO ESPECIALISTA AUTOMAO ROBTICA E CONTROLO INDUSTRIAL


UFCD 5136 Sistemas de micro controladores
TRABALHOS LABORATORIAIS MICROCONTROLADORES

//comentrios
chamado de comentrio. Os comentrios so descries inseridas no cdigo-fonte pelo programador com o
intuito de documentar o programa.
__CONFIG ( MCLRE_OFF & CP_OFF & WDTE_OFF & FOSC_INTRCIO);
Configura o estado dos fusveis da palavra configurao, vejamos cada item deste config.
FOSC_INTRCIO - Habilita o oscilador interno, mantendo os pinos RA4 e RA5 como portas.
WDTE_OFF - Basicamente um contador de ciclo de instrues separado do programa principal, a sua funo
fazer o RESET do programa caso o WDT no seja limpo pelo software.
MCLRE_OFF - MASTER CLEAR ENABLE (Habilita o

RESET EXTERNO), quando em ON, o RESET ser

acionado atravs do pino 4 quando em VSS, ou seja quando levamos a massa o pino 4. evidente que nesta
condio ele perde a funo de PORTA,5 (RA5), para trabalhar apenas como RESET, para tanto devemos ligar um
resistncia do pino para VDD, e um interruptor do pino para VSS.
CP_OFF - CODE PROTECT (cdigo de proteo) tem por finalidade no permitir quando habilitado ( ON), que
Este documento propriedade da ATEC - Academia de Formao.
Preparado de acordo com o referencial de formao do CNQ para o curso 523229- Tcnico/a Especialista de Automao Robtica e Controlo
Industrial (NQ:5). Documento actualizado em 11.06.2013

consigam copiar ou ler o programa gravado.

void main()

Especifica o nome de uma funo. No caso, a funo padronizada na linguagem C e utilizada para
definir a funo principal, ou corpo principal do programa.
A partir este ponto poderemos iniciar o nosso programa.
TRISC=0B00000000;
Inicializao do porto quando necessrio usar uma ou mais linhas de E/S de um determinado porto, importante
fazer-se a sua inicializao logo no incio da rotina main do programa. A inicializao no mais que a
configurao da direo dos dados presentes nas linhas de E/S
O registo TRIS um registo programvel de 1 byte (8 bits) disponvel no banco 1 (memria RAM), que controla se
uma linha em particular uma entrada ou uma sada. Existe um registo TRIS para cada porto.
Todos os bits contidos nos registos mencionados, correspondem univocamente a uma linha de entrada/ sada de
um bit. Por exemplo, o bit 0 do registo PORTC e do registo TRISC, correspondem linha RC0, o bit 1 linha RC1 e
assim por diante. Um 1 no bit 0 do registo TRIS configura a linha como entrada enquanto um 0 configura a linha
como sada.
PORTC=0B00000000;
Uma vez configuradas as direes pretendidas das linhas do porto, por programao do registo TRIS, pode-se
efetuar leituras ou escritas no porto usando o registo PORT.

ANSEL=0B00000000;
No PIC16F677, podemos selecionar como entrada analgica, por programao. O registo ANSEL e ANSELH
configuram as linhas do PIC como entradas analgicas/digitais ou referncia; a entrada selecionada deve ser

________________________________________________________________________________________________________________
Trabalhos Laboratoriais Microcontroladores 1
Pgina 5

CURSO DE TCNICO DE ELECTRNICA AUTOMAO E COMANDO


TRABALHOS LABORATORIAIS - Microcontroladores

programada como entrada afetando o bit correspondente no registo TRIS. No exemplo todos os registos AN0 at
AN7 sero considerados entradas digitais.
RC0=1;
Ativa o bit 0 do porto C correspondendo ao pino 16 do PIC 16F677
10. Uma vez escrito o programa faz-se a designao (como em todos os programas Windows) clicando em
FILE>SAVE AS, ao qual vamos designar por "exerc_X.c

"
11. Aps o programa escrito vamos adicionar o ficheiro ao nosso projeto. Com o rato em Source Files clica no boto
do lado direito e seleciona Add Files.

12. Aps a escrita do programa e adicionado ao projeto, Vamos agora compilar o nosso programa. Recorrendo ao
comando PROJECT -> BUILD ALL (se no existirem erros), uma nova janela idntica representada na figura ao
lado.

________________________________________________________________________________________________________________
Trabalhos Laboratoriais Microcontroladores N3
Pgina 6

CURSO DE TCNICO ESPECIALISTA AUTOMAO ROBTICA E CONTROLO INDUSTRIAL


UFCD 5136 Sistemas de micro controladores
TRABALHOS LABORATORIAIS MICROCONTROLADORES

13. Programar o microcontrolador


A programao de um dispositivo realizada seguindo os seguintes passos:
a)

Ligar o programador PICKIT via cabo USB.

Este documento propriedade da ATEC - Academia de Formao.


Preparado de acordo com o referencial de formao do CNQ para o curso 523229- Tcnico/a Especialista de Automao Robtica e Controlo
Industrial (NQ:5). Documento actualizado em 11.06.2013

b) Realizar as ligaes necessrias entre conector do PICKIT 2 e dispositivo que se deseja programar.

c)

Abrir o projeto anteriormente efetuado a em MPLAB que contm o cdigo a ser programado.

d) Selecionar o programador no MPLAB.

________________________________________________________________________________________________________________
Trabalhos Laboratoriais Microcontroladores 1
Pgina 7

CURSO DE TCNICO DE ELECTRNICA AUTOMAO E COMANDO


TRABALHOS LABORATORIAIS - Microcontroladores

Esquema

Trabalhos a realizar

1. Escreva um programa que faz com que um LED, ligado porta RC0, seja aceso, caso um interruptor
C, ligada porta RB4, esteja em 1. Caso contrrio, o LED apaga-se.

2. Escreve um programa que faz com que o LED, ligado ao pino RC0 da porta B acenda e apague a
cada segundo.

________________________________________________________________________________________________________________
Trabalhos Laboratoriais Microcontroladores N3
Pgina 8

CURSO DE TCNICO ESPECIALISTA AUTOMAO ROBTICA E CONTROLO INDUSTRIAL


UFCD 5136 Sistemas de micro controladores
TRABALHOS LABORATORIAIS MICROCONTROLADORES

Este documento propriedade da ATEC - Academia de Formao.


Preparado de acordo com o referencial de formao do CNQ para o curso 523229- Tcnico/a Especialista de Automao Robtica e Controlo
Industrial (NQ:5). Documento actualizado em 11.06.2013

3. Escreve um programa que utiliza a cada impulso em RC0, alterne o estado do rel ligado a RC6

4. Escreve um programa que utiliza um display de 7 segmentos, ligado ao porto C . para mostrar o valor
de um interruptor ligado ao pino RB4. Se o interruptor estiver ligado, o display exibe o nmero 1. Caso
contrrio, exibido o nmero 0.

5. Aproveitando o circuito anterior escreve um programa que efetue a contagem de 0 a 9. O contador


ser incrementado a cada impulso na RB4.

________________________________________________________________________________________________________________
Trabalhos Laboratoriais Microcontroladores 1
Pgina 9

CURSO DE TCNICO DE ELECTRNICA AUTOMAO E COMANDO


TRABALHOS LABORATORIAIS - Microcontroladores

6. Escreve um programa que faa ligar sequencialmente cada um dos leds, ligado aos pino RC0 a RC7.

7. Igual ao programa anterior, mas quando chegar sada RC7 recua at a RC0.
8. Contador 0 a 999, com boto RESET.

R10
R11
10k
10k

19
18
17
4
3
2
13
12
11
10

RA0/AN0/C1IN+/ICSPDAT/ULPWU RC0/AN4/C2IN+
RA1/AN1/C12IN0-/VREF/ICSPCLK RC1/AN5/C12IN1RA2/AN2/T0CKI/INT/C1OUT
RC2/AN6/C12IN2RA3/MCLR/VPP
RC3/AN7/C12IN3RA4/AN3/T1G/OSC2/CLKOUT
RC4/C2OUT
RA5/T1CKI/OSC1/CLKIN
RC5
RC6/AN8/SS
RB4/AN10/SDI/SDA
RC7/AN9/SDO
RB5/AN11
RB6/SCK/SCL
RB7

16
15
14
7
6
5
8
9

R1
R2
R3
330R
R4
330R
R5
330R
R6
330R
R7
330R
330R
330R

R8

Q1
BC548

R9

Q2

R13

BC548
10k

Q3
BC548

10k

10k

________________________________________________________________________________________________________________
Trabalhos Laboratoriais Microcontroladores N3
Pgina 10

CURSO DE TCNICO ESPECIALISTA AUTOMAO ROBTICA E CONTROLO INDUSTRIAL


UFCD 5136 Sistemas de micro controladores
TRABALHOS LABORATORIAIS MICROCONTROLADORES

EXERCCIOS RESOLVIDOS

Exerccio 1
#include<htc.h>
__CONFIG ( MCLRE_OFF & CP_OFF & WDTE_OFF & FOSC_INTRCIO);
#define _XTAL_FREQ 4000000
void main()

Este documento propriedade da ATEC - Academia de Formao.


Preparado de acordo com o referencial de formao do CNQ para o curso 523229- Tcnico/a Especialista de Automao Robtica e Controlo
Industrial (NQ:5). Documento actualizado em 11.06.2013

{
TRISC=0;
PORTC=0;
ANSEL=0;
while(1)
{
RC0=1;
}
}

Exerccio 2
#include<htc.h>
__CONFIG ( MCLRE_OFF & CP_OFF & WDTE_OFF & FOSC_INTRCIO);
#define _XTAL_FREQ 4000000
#define led RC0
#define bot RB4
void main()
{
TRISB4=1;
TRISC=0;
PORTC=0;
ANSEL=0;
ANSELH=0;
while(1)
{
if(bot) {led=1;}
else {led=0;}
}
}

________________________________________________________________________________________________________________
Trabalhos Laboratoriais Microcontroladores 1
Pgina 11

CURSO DE TCNICO DE ELECTRNICA AUTOMAO E COMANDO


TRABALHOS LABORATORIAIS - Microcontroladores

Exerccio 3
#include<htc.h>
__CONFIG ( MCLRE_OFF & CP_OFF & WDTE_OFF & FOSC_INTRCIO);
#define _XTAL_FREQ 4000000
void main()
{
TRISC=0;
PORTC=0;
ANSEL=0;
while(1)
{
RC0=1;
__delay_ms (1000);
RC0=0;
__delay_ms (1000);
}
}

________________________________________________________________________________________________________________
Trabalhos Laboratoriais Microcontroladores N3
Pgina 12

Potrebbero piacerti anche