tutorial rapido mikroc partes 12 e 3
TRANSCRIPT
-
1
SISTEMAS MICROPROCESSADOS SMP1 2EN
Introduo ao Mikro C
Tela Inicial
-
2
SISTEMAS MICROPROCESSADOS SMP1 2EN
Criando um Projeto
Para criar um projeto novo, bastar ir ao menu e em seguida .
Project Name: Nome do Projeto. Project Path: Caminho e pasta onde ser gravado o projeto. Description: Opcional. aqui que faremos uma breve descrio do projeto. Device: Aqui definimos o microcontrolador que estamos utilizando. No nosso caso 18F4520. Clock: Aqui definimos o clock do circuito de oscilao. No nosso exemplo utilizaremos 4Mhz. Devices Flags: (Fusveis ou bits de configurao): Aqui configuramos vrias funes do microcontrolador. Exemplo. Tipo de oscilador, WDT, RST, etc.
-
3
SISTEMAS MICROPROCESSADOS SMP1 2EN
Tipo de Clock:
Valores de Capcitores que devem ser acopladas ao cistal.
No nosso caso vamos utilizar cristal de 4Mhz, portanto vamos selecionar o tipo de oscilao no Device Flags como XT
PWRTEN: o temporizador de Power-UP, que faz o microcontrolador aguarda certo tempo (72ms) a fim de aguarda a estabilizao do circuito oscilador. Neste perodo, o microcontrolador fica inoperante. Vamos ativar esse fusvel.
Todos os demais fusveis devero estar desligados.
-
4
SISTEMAS MICROPROCESSADOS SMP1 2EN
Primeiro Projeto
Inicialmente deve-se criar um projeto. Project name: Pisca-Pisca Project Path: D:/lab../Proj01 Description: Programa circuito oscilador pisca-led Device: P18F4520 Clock: 004.000000 Device Flags: _XT_ON, _PWRT_ON, _WDT_ON, WDT_OFF, _LVP_OFF, _CP_OFF
Circuito: Desenhar o circuito no Proteus ISIS
-
5
SISTEMAS MICROPROCESSADOS SMP1 2EN
Aps o desenho do esquemtico, escrever o cdigo abaixo:
/****************************************************************************************** Sistemas Microprocessados 1
Turma 2EN Aula 1
Objetivo: Configuraes das portas e acesso das mesma com funo de tempo ******************************************************************************************/
void main( )
{ trisd= 0; //configurada todo o port d como sada portd = 0; //todo o portd colocado em nvel 0
while(1) //loop infinito { portd.f0=1; //Ativa a sada RD0 delay_ms(1000); //Aguarda 1 segundo portd.f0=0; //Desliga a sada RD0
delay_ms(1000); } }
Em seguida, devemos compilar o cdigo. Para compilar, devemos pressionar CTRL+F9 ou clicar em menu em seguida , conforme figura abaixo.
-
6
SISTEMAS MICROPROCESSADOS SMP1 2EN
Este campo apresenta os resultados da compilao. Quando h erro, as mensagens esto descritas em vermelho.
No apresentando nenhum erro na tela de mensagens, dever aparecer a seguinte mensagem na cor verde:
SUCCESS (RELEASE BUILD)
Essa mensagem garante que o programa foi compilado e que foi gerado o cdigo de mquina para ser gravado no microcontrolador arquivo.HEX.
Agora s carregar o arquivo no projeto do Proteus ISIS.
Exerccio: 1) Faa um programa que acenda os leds do portd em sequencia (RD0 a
RD7) progressivamente com um intervalo de tempo de 500ms. 2) Faa um programa que acenda os leds RD0, RD2, RD4 e RD6 juntos
por 1 segundo. Em seguida, apague-os e ligue os leds RD1, RD3, RD5 e RD7 por 2 segundos e apague-os. Em seguida, o ciclo se inicia novamente.
-
7
SISTEMAS MICROPROCESSADOS SMP1 2EN
Vamos estudar um novo programa.
/****************************************************************************************** Sistemas Microprocessados 1
Turma 2EN Aula 2
Objetivo: Utilizar a diretiva define ******************************************************************************************/
#define led1 portd.f1; //define o led1 como portd.f1 #define led2 portd.f2; //define o led2 como portd.f2
void main( )
{ trisd= 0; //configurada todo o port d como sada portd = 0; //todo o portd colocado em nvel 0
while(1) //loop infinito { led1=1; //Liga o led1 delay_ms(1000); //Aguarda 1 segundo led1=0; //Desliga o led1
delay_ms(1000); //Aguarda 1 segundo led2=1; //Liga o led2 delay_ms(1000); //Aguarda 1 segundo led2=0; //Desliga o led2 delay_ms(1000); //Aguarda 1 segundo
} }
-
8
SISTEMAS MICROPROCESSADOS SMP1 2EN
Acionamento de botes.
Para estudar o acionamento dos botes, vamos alterar o nosso hardware, no Proteus, conforme esquemtico da placa CuscoPic.
-
9
SISTEMAS MICROPROCESSADOS SMP1 2EN
/****************************************************************************************** Sistemas Microprocessados 1
Turma 2EN Aula 3
Objetivo: Lendo as entradas e atuando nas sadas utilizando IF-ELSE ******************************************************************************************/
void main( )
{ trisd= 0b00000001; //configurada RD0 como entrada e o restante
//como sada portd = 0; //todo o portd colocado em nvel 0
while(1) //loop infinito { if(portd.f0==0) //testa se RD0 est em nvel baixo portd=0; //se sim, todo portd em nivel baixo else portd.f7=1; //se RD0=1 , RD7 ativado
} }
-
10
SISTEMAS MICROPROCESSADOS SMP1 2EN
Parte 2
NOTA: Operadores matemticos:
Exerccios:
1) Faa um programa que ligue um LED somente quando as duas entradas estiverem ativas.
2) Faa um programa que: a) Ao acionar B1, o Led1 acende. b) Ao acionar B2, o Led1 apaga.
-
11
SISTEMAS MICROPROCESSADOS SMP1 2EN
c) Ao acionar B3, o Led1 pisca em intervalo de tempo de 1000ms. d) Ao acionar B4, o Led1 para de piscar.
3) Imagine que vamos montar um circuito que controle atravs de 4 chaves (ligar/desligar) a iluminao de uma casa. Esse controle ficar no quarto do casal, ao lado da cama, podendo com praticidade controlar/monitorar a iluminao da casa. Ento teremos as chaves em RD0, RD1, RD2 e RD3 e as sadas para acionar os rels em RD4, RD5, RD6 e RD7. Pressionado RD1 acende iluminao da sala e pressionado RD1 novamente apaga.
Idem para RD2 (cozinha), RD3 (quarto 1) e RD4 (quarto 2).
4) No Proteus ISIS, revise a interligao acrescentando: a) 02 sadas a rele no portC (C0 e C1) b) 02 sadas para controle de motor CC (com L293 C2 e C3) c) 04 sadas a transistor TIP122 com sinalizao (C4 a C7)
Agora faa o seguinte programa: a) Pressionando o boto B1 ligar o motor em sentido horrio; b) Pressionando o Boto B2 ligar o motor em sentido anti-horrio; c) Pressionando o Boto B3, parar o motor.
-
12
SISTEMAS MICROPROCESSADOS SMP1 2EN
Parte-3
Display de Cristal Lquido LCD
O Display de Cristal Lquido LCD um dos recursos mais interessantes de se trabalhar quando se trata de microcontroladores, pois oferece o recurso de integrao entre o processo e o usurio. Neste sentindo, muito importante estudarmos o funcionamento desse recurso para que possamos criar aplicaes que sejam de fcil interao com o usurio.
Abaixo veremos um quadro com a descrio da Pinagem.
Interface no MikroC
O MikroC fornece uma biblioteca de instrues completa para que possamos utilizar um display LCD de forma fcil e rpida. No Quadro abaixo, a lista de instrues mais utilizadas.
-
13
SISTEMAS MICROPROCESSADOS SMP1 2EN
No mikroC podemos utilizar o LCD no modo 4bits ou 8bits. No nosso caso utilizaremos o LCD no modo 4bits. A interligao dos pinos do LCD no microcontrolador dever ser:
R/S = RB1, EN = RB0, R/W=RB2, dados = RB4, RB5, RB6 e RB7
O comando inicial para o LCD ser:
lcd_config(&portb,1,0,2,7,6,5,4); NOTA: Observar atentamente a configurao inicial. Caso algum pino esteja invertido, o LCD no ir funcionar.
-
14
SISTEMAS MICROPROCESSADOS SMP1 2EN
/****************************************************************************************** Sistemas Microprocessados 1
Turma 2EN Aula 4
Objetivo: Configurar e enviar uma mensagem de texto ao LCD ******************************************************************************************/
void main() {
trisb=0; lcd_config(&portb,1,0,2,7,6,5,4); //Configura o LCD lcd_cmd(Lcd_Cursor_off); // Desliga o cursor lcd_cmd(lcd_clear); //Limpa o LCD
while(1) {
Lcd_out(1, 1,"SENAI CAMPINAS");// Escreve o texto linha 1 coluna 1 Lcd_out(2, 1,"3EN - SMP"); // Escreve o texto 3EN - SMP linha 2 coluna 1 delay_ms (3000);// Aguarda 3seg. lcd_cmd(lcd_clear);// Limpa o LCD delay_ms (500);// Aguarda 0,5seg. Lcd_out(1, 1,"AULA DE");// Escreve o texto na linha 1 coluna 1 Lcd_out(2, 1,"LCD");// Escreve o texto na linha 2 coluna 2 delay_ms (2000); lcd_cmd(lcd_clear);
} }
Exercicio.
Faa um programa que, ao pressionar um boto (D0 a D7) aparecer uma mensagem no LCD informando qual o boto que foi pressionado e simultaneamente acenda um LED (C0 a C7). NOTA: monte o circuito no Proteus ISIS.