Escolar Documentos
Profissional Documentos
Cultura Documentos
1 Lista de Exercícios
1 Lista de Exercícios
2
Jos caro Santiago Bastos Eletrotcnica
1 Lista de Exerccios
1 O que deve ser feito para programar o pino de uma porta de I/O como:
a) Entrada digital;
Utiliza-se o comando SET_TRIS_PORTA (0xff), onde o valor 0xff define todos os pinos da respectiva
porta como entrada.
b) Sada digital.
Tambm atravs do comando SET_TRIS_PORTA (0x00), onde o valor 0x00 define todos os pinos da
respectiva porta como sada.
a) OUTPUT_HIGH (PIN);
b) OUTPUT_LOW (PIN);
a) INPUT (PIN);
a) DELAY_MS (VALOR);
Faz com que o microcontrolador espere uma quantidade x de milissegundos antes de executar o
prximo comando.
b) DELAY_US (VALOR);
Faz com que o microcontrolador espere uma quantidade x de microssegundos antes de executar o
prximo comando.
#include <16f877A.h> {
#fuses set_tris_a(0xff);
xt,nowdt,noprotect,put,brownout,nolvp set_tris_b(0x00);
7 Elabore uma rotina em C para um pisca-pisca de 500 ms para o LED1 (pino B0) e um pisca-
pisca de 250 ms para o LED2 (pino B1).
8 Modifique o exerccio anterior de modo que o pisca-pisca do LED1 funcione sempre que a
chave 1 estiver fechada.
#include <16f877A.h>
#fuses #byte porta = 0x05
xt,nowdt,noprotect,put,brownout,nolvp #byte portb = 0x06
#use delay(clock=4000000) #byte portc = 0x07
#byte portd = 0x08
#use fast_io(a) #byte porte = 0x09
#use fast_io(b)
#use fast_io(c) #bit led1 = portb.0
#use fast_io(d) #bit led2 = portb.1
#use fast_io(e) #bit chave = portb.2
led2 = !led2;
void main() delay_ms(250);
{ led2 = !led2;
set_tris_b(0xfc); if(!chave)
{
portb =0x00; led1=!led1;
}
while(TRUE) }
{ }
delay_ms(250);
#include <16f877A.h>
#fuses
xt,nowdt,noprotect,put,brownout,nolvp
#use delay(clock=4000000)
#use fast_io(a)
#use fast_io(b)
#use fast_io(c)
#use fast_io(d)
#use fast_io(e)
void main()
{
set_tris_b(0x00);
portb =0xff;
while(TRUE)
{
RED1 = 0;
YELLOW1 = 1;
GREEN1 = 1;
RED2 = 1;
YELLOW2 = 1;
GREEN2 = 0;
delay_ms(5000);
RED1 = 1;
YELLOW1 = 0;
GREEN1 = 1;
RED2 = 1;
YELLOW2 = 0;
GREEN2 = 1;
delay_ms(2000);
RED1 = 1;
YELLOW1 = 1;
GREEN1 = 0;
RED2 = 0;
YELLOW2 = 1;
GREEN2 = 1;
delay_ms(5000);
}
}