Você está na página 1de 14

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 <Project> e em seguida <New Project>.

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; portd = 0; while(1) { //configurada todo o port d como sada //todo o portd colocado em nvel 0 //loop infinito portd.f0=1; delay_ms(1000); portd.f0=0; delay_ms(1000); } } //Ativa a sada RD0 //Aguarda 1 segundo //Desliga a sada RD0

Em seguida, devemos compilar o cdigo. Para compilar, devemos pressionar CTRL+F9 ou clicar em menu <Projects> em seguida <Build>, 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 led2 portd.f2; //define o led1 como portd.f1 //define o led2 como portd.f2

void main( ) { trisd= 0; portd = 0; while(1) { //configurada todo o port d como sada //todo o portd colocado em nvel 0 //loop infinito led1=1; delay_ms(1000); led1=0; delay_ms(1000); led2=1; delay_ms(1000); led2=0; delay_ms(1000); } } //Liga o led1 //Aguarda 1 segundo //Desliga o led1 //Aguarda 1 segundo //Liga o led2 //Aguarda 1 segundo //Desliga o led2 //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.

Você também pode gostar