Pessoal
Meu professor de sistemas digitais me passou um trabalho utilizando encoder.
O problema é o seguinte: quando eu girar o encoder no sentido horário tenho que incrementar uma variável e se girar no sentido anti-horário tenho que decrementar a mesma. Se o valor da variável for maior que 100 ou menor que 0 tenho que acender um led de aviso.
Até aqui já fiz o programa e o professor disse que está beleza mas ai que surge o problema: ele quer que eu mostre o valor da variável utilizando os BCD's da bancada, mas não tenho ideia de como vou fazer isso
.
Se vocês puderem ajudar fico grato.
Estou utilizando o programa MPLAB, o compilador HI-TECH e o PIC16F877A para fazer o código fonte, que seque abaixo:
int RODA = 50;
int A = 1;
int B = 1;
void main(void) {
TRISB4 = 1;
TRISB5 = 1;
INTCON = 0;
TRISB0 = 0;
TRISD0 = 0;
RBIE = 1;
GIE = 1;
while (1);
}
void interrupt Bayblade(void) {
RBIF = 0;
if ((A == 1) && (B == 1)) {
if ((RB4 == 0) && (RB5 == 1)) {
RODA++;
if (RODA > 100) {
RD0 = 1;
}
}
if ((RB5 == 0) && (RB4 == 1)) {
RODA--;
if (RODA < 0) {
RD1 = 1;
}
}
}
A=RB4;
B=RB5;
}