Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
* * * 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 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 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’s, 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; } }
Compartilhar