MICROCONTRLADORES CAPÍTULO_5

MICROCONTRLADORES CAPÍTULO_5


DisciplinaProjetos Elétricos I30 materiais229 seguidores
Pré-visualização1 página
*
*
*
CAPÍTULO 5
 OPERADORES 
*
*
*
OPERADOR DE ATRIBUIÇÃO 
	Como o próprio nome diz é utilizado para atribuir certo valor a uma variável. Por exemplo:
a-) 		x = 50; 
		
	Atribui à variável x o valor 50.
b-) 		PORTB.F0 = PORTA.F1;
		
		Atribui ao pino 0 da porta B (esquerda) o nível lógico do pino 1 da porta A (direita).
*
*
*
OPERADORES ARITMÉTICOS 
		São utilizados para realizar operações matemáticas. 
*
*
*
DIFERANÇA ENTRE / E %
		Em uma divisão real (em que as variáveis são declaradas como sendo do tipo float) quando realizamos a operação de divisão, 9/2 por exemplo, obtemos como resultado 4,5. 
		Se as variáveis forem declaradas como sendo do tipo inteira, a operação 9/2 resulta igual a 4 (parte inteira da divisão) e a operação 9%2 resulta igual a 1 (que é o resto da divisão).
 		9 2
		 		1 4
*
*
*
OPERADORES RELACIONAIS 
		São utilizados em testes condicionais para determinar a relação existente entre dados. 
*
*
*
DIFERENÇA ENTRE OS OPERADORES = E ==
		Os operadores = e == realizam tarefas diferentes. 
		Por exemplo:
		if (PORTB.F0 == 0) PORTA.F0 = 1; 		
		 Se o pino 0 da porta B for igual a 0 ( faz uma comparação)	 atribui ao pino 0 da porta A nível lógico 1 (faz uma atribuição).
*
*
*
OPERADORES LÓGICOS BIT A BIT 
*
*
*
	Faça um programa que só permita a partida do motor de uma guilhotina quando as mãos do operador estiverem pressionando dois botões, um de cada lado da máquina.
EXEMPLO 1
\uf0de FUNÇÃO AND
*
*
*
 CIRCUITO DO EXEMPLO 1
*
*
*
FLUXOGRAMA DO EXEMPLO 1
*
*
*
PROGRAMA DO EXEMPLO 1
void main()
{
 	TRISB.F0 = 0,
		TRISA = 6; 
		PORTB = 0; 
 	 	CMCON = 7;			 
		while (1) 		 
 		{ 		 
	 	PORTB.F0 = PORTA.F2 & PORTA.F1; 
 	 }
}
*
*
*
	Faça um programa para ligar o led da figura 1 quando a chave 1 estiver aberta e a chave 0 fechada. 
EXEMPLO 2
\uf0de RB0 = ~RA2 & RA1 
*
*
*
 CIRCUITO DO EXEMPLO 1
*
*
*
FLUXOGRAMA DO EXEMPLO 2
início
1
N
S
fim
*
*
*
PROGRAMA DO EXEMPLO 1
void main()
{
 	TRISB.F0 = 0,
		TRISA = 6; 
		PORTB = 0; 
 	 	CMCON = 7;			 
		while (1) 		 
 		{ 		 
	 	PORTB.F0 = ~ PORTA.F2 & PORTA.F1; 
 	 }
}
*
*
*
OPERADORES LÓGICOS
	O operador NOT (~) pode estar acompanhado dos operadores AND, OR ou EX-OR.
	
exemplo: 
PORTB.F0 = PORTA.F0 & ~PORTA.F1; 
PORTB.F0 = PORTA.F0 & (~PORTA.F1); 
 
 É possível colocar em uma mesma expressão dois ou mais operadores, iguais ou diferentes.
exemplos: 
PORTB.F0 = PORTA.F0 & PORTA.F1 & PORTA.F2 & PORTA.F3 
PORTB.F0 = PORTA.F0 & PORTA.F1 | PORTA.F2 & PORTA.F3 
*
*
*
EXEMPLO 3
	Faça um programa para ligar 8 led\u2019s, conectados nos pinos da porta B do microcontrolador, da figura 3, de forma sequencial ou seja, liga Led 0, depois desliga o Led 0 e liga o Led 1, depois desliga o Led 1 e liga o Led 2 e assim por diante. Após ligar e desligar o led 7, liga o led 0 e o ciclo reinicia. Cada Led deve permanecer ligado durante 0,5 s. Utilize o operador << (deslocamento à esquerda). 
*
*
*
CIRCUITO ELETRÔNICO
*
*
*
FLUXOGRAMA
*
*
*
PROGRAMA
void main()
{
 TRISB = 0;
 PORTB = 0;
 while(1)	
 {
 PORTB = 1;
 delay_ms (500);
 PORTB = PORTB << 1;
 delay_ms (500);
 PORTB = PORTB << 1;
 delay_ms (500);		
 PORTB = PORTB << 1;
 delay_ms (500);
 
 PORTB = PORTB << 1;
 delay_ms (500);
 PORTB = PORTB << 1;
 delay_ms (500);
 PORTB = PORTB << 1;
 delay_ms (500);
 PORTB = PORTB << 1;
 delay_ms (500);	
 }
}
*
*
*
2ª OPÇÃO
void main()
{ 
	 int i;
 TRISB = 0;
 PORTB = 0b00000001;
 while(1)
 {
 delay_ms (500);
 i = PORTB.F7;
 PORTB = PORTB << 1;
 PORTB.F0 = i;
 }
}