Você está na página 1de 5

RESUMO DA AULA 5 (CRISTAL OSCILADOR EXTERNO, POLLING)

Nessa aula, vamos entender sobre cristal oscilador e POLLING.

Cristal: O cristal oscilador, é para definir o ciclo da maquina do processador, onde é calculado pela formula de

C valor
C m=
4
Onde para podemos definir que cristal utilizando recorremos as datasheet, aqui vamos usar como exemplos o
PIC12675. Abaixo podemos ver a tabela do cristal e seus capacitores, e podemos ver também a montagem do cristal

Aonde através dessa tabela podemos ver qual valor de cristal utilizar.

Programação:

Na programação fizemos um oscilador de 500Hz no GP0 e 50Hz no GP1, através com delas, e sentamos 0 ou 1 na
onda. Porém usando o modo de delay, uma função depende da outra tendo assim que frequência não é correta,
para corrigir isso é só através de Interrupções.

/* ========================================================================== */

/* PRINCIPIO VERIFICAR QUE PROJENTANDO OSCILIADOR USANDO O MODO


POLLING(DELAY), TERÁ UM EFIETO TOTALMENTE INESPERADOS, E TAMBEM

AULA 6 : Diretiva Define e Registrador CMCOM.

Podemos fazer um mapeamento de Hardware usando uma função #define, onde podemos trocar nomes dos pinos
pelo nome que deseja colocar, muitos projetistas usam muito o #define.

Observe o código abaixo: Podemos usar para um projeto de automação, como um interruptor.

#define S1 GPIO.F0

#define S2 GPIO.F1

#define D1 GPIO.F5

#define D2 GPIO.F4

void main()

ANSEL = 0;

CMCON = 7;

TRISIO0_bit = 1;

TRISIO1_bit = 1;

TRISIO4_bit = 0;

TRISIO5_bit = 0;

S1 = 1;

S2 = 1;

D1 = 0;

D2 = 0;

while(1)

if(S1 == 0)

D1 = ~D1; //Seu Inverso

delay_ms(300);

if (S2 == 0)

D2 = ~D2;

delay_ms(300);

}
Registrador CMCON: A função desse registrador é desligar os comparadores interno dentro do PIC, pois estamos
sentamos entradas digitais e não analógica, e o termo 7 vem, por causa que temos que colocar 111 nos bits menos
significativos como mostra imagem datasheet abaixo;
Aula 7: PIC16F628A e comando Shith letf(deslocamento e bit)

Observe o programa e diagrama abaixo;

int control = 0xFF; // Pode ser 255 em decimal ou 0b1111111;

void main()

TRISB = 0; //Setando todo saida

PORTB = 0xFF; //Pode colcoar 255

while(1)

PORTB = control; //Esta atribuindo valor PORTB para control

//Concamitante

delay_ms(300);

control = control<<1; // Camando shit letf

//Desloca um bit, que seria menos significativo;

if(control == 0) control =0xFF; //retorna o valor 111111111;

}/* end while */

}
Analise:

-Podemos atribuir um TRIS e PORT todo apenas colocando 0 ou 1, assim atribuindo todo se são entrar ou
saída, ou vamos nos inicializar com 0, pode colocar em forma decimal (255), hexadecimal(0xFF). E muito
hexadecimal, pois economiza memória.

-Foi criado uma variável control, com atribuição de 255, pois os led estão ligados em current sink, e são ativa
quando são zero nos PORT.

-Assim atribuímos o valor de control a PORT, e fazemos um deslocamento de bit, utilizando comando shif left
onde << deslocamento para esquerda, >> deslocamento para direita. E assim desligando todo o PORTB e
fazendo com que led ligue sequencial, quando control =0; restaura o valor,

Você também pode gostar