Powered By Blogger

viernes, 3 de abril de 2015

Hola Mundo Con PIC18F4620 Y Display 16 Segmentos Anodo Comun

Versión 1: "Solo Texto"


A continuación se expone el programa que realiza la escritura de la oración HOLA MUNDO en 5 display de 16 segmentos ac (Anodo Comun), esto se realiza mediante el uso de la Multiplexeacion y la activación de cada uno de los pines del display para llevar el control de que letra deberá desplegarse en cada display.






Versión 2: "Texto Con Corrimiento" 


Finalmente adjunto imágenes de la segunda versión de este mismo programa, en la cual ahora se muestra el texto HOLA MUNDO y se procede a hacer el corrimiento de cada letra en cada uno de los display en un ciclo infinito.









Código:

A petición de un usuario aquí muestro mi código, el programa fue trabajado en Mikro C, esta es el código del programa de la versión 1 "Texto sin corrimiento":
 
int i;
int k=0;
void main() {
adcon1=0b11111111;
trisc=0;
trisd=0;
trisa=1;
trisb=1;
porta=0;
portb=0;
portc=0;
portd=0;


do{
k=0;
k++;


for (i=0; i<60; i++){
k=0;
portb=0b00000010;
portc=0b00110011;
portd=0b01110111;
delay_ms(2);



portb=0b00000100;
portc=0b00000000;
portd=0b11111111;
delay_ms(2);


portb=0b00001000;
portc=0b00001111;
portd=0b11111111;
delay_ms(2);



portb=0b00010000;
portc=0b00110000;
portd=0b01110111;
delay_ms(2);
}


trisc=0;
trisd=0;
trisa=1;
porta=0b11111111;
portb=0b00000000;
portc=0b00000000;
portd=0b00000000;
delay_ms(1500);


for (i=0; i<60; i++){
portb=0b00000010;
portc=0b00110011;
portd=0b11111010;
delay_ms(2);


portb=0b00000100;
portc=0b00000011;
portd=0b11111111;
delay_ms(2);


portb=0b00001000;
portc=0b00110011;
portd=0b11101110;
delay_ms(2);


portb=0b00010000;
portc=0b10000011;
portd=0b01110111;
delay_ms(2);


portb=0b00100000;
portc=0b00000000;
portd=0b11111111;
delay_ms(2);
}

trisc=0;
trisd=0;
trisa=1;
porta=0b11111111;
portb=0b00000000;
portc=0b00000000;
portd=0b00000000;


delay_ms(1500);


}
while(k<400);


}


Finalmente esta es la Versión 2 "Texto con corrimiento":

int i;
int k=0;
void main() {
adcon1=0b11111111;
trisc=0;
trisd=0;
trisa=1;
trisb=1;
porta=0;
portb=0;
portc=0;
portd=0;


do{
k=0;
k++;


for (i=0; i<60; i++){
k=0;
portb=0b00000010;
portc=0b00110011;
portd=0b01110111;
delay_ms(2);



portb=0b00000100;
portc=0b00000000;
portd=0b11111111;
delay_ms(2);


portb=0b00001000;
portc=0b00001111;
portd=0b11111111;
delay_ms(2);



portb=0b00010000;
portc=0b00110000;
portd=0b01110111;
delay_ms(2);
}


for (i=0; i<60; i++){
k=0;
portb=0b00000100;
portc=0b00110011;
portd=0b01110111;
delay_ms(2);



portb=0b00001000;
portc=0b00000000;
portd=0b11111111;
delay_ms(2);


portb=0b00010000;
portc=0b00001111;
portd=0b11111111;
delay_ms(2);



portb=0b00100000;
portc=0b00110000;
portd=0b01110111;
delay_ms(2);
}



for (i=0; i<60; i++){
k=0;
portb=0b00001000;
portc=0b00110011;
portd=0b01110111;
delay_ms(2);



portb=0b00010000;
portc=0b00000000;
portd=0b11111111;
delay_ms(2);


portb=0b00100000;
portc=0b00001111;
portd=0b11111111;
delay_ms(2);



portb=0b01000000;
portc=0b00110000;
portd=0b01110111;
delay_ms(2);
}



for (i=0; i<60; i++){
k=0;
portb=0b00010000;
portc=0b00110011;
portd=0b01110111;
delay_ms(2);



portb=0b00100000;
portc=0b00000000;
portd=0b11111111;
delay_ms(2);


portb=0b01000000;
portc=0b00001111;
portd=0b11111111;
delay_ms(2);



portb=0b10000000;
portc=0b00110000;
portd=0b01110111;
delay_ms(2);
}



for (i=0; i<60; i++){
k=0;
portb=0b00100000;
portc=0b00110011;
portd=0b01110111;
delay_ms(2);



portb=0b01000000;
portc=0b00000000;
portd=0b11111111;
delay_ms(2);


portb=0b00000000;
portc=0b11111111;
portd=0b11111111;
delay_ms(2);
}


//HOLA CON CORRIDA



for (i=0; i<60; i++){
portb=0b00000010;
portc=0b00110011;
portd=0b11111010;
delay_ms(2);


portb=0b00000100;
portc=0b00000011;
portd=0b11111111;
delay_ms(2);


portb=0b00001000;
portc=0b00110011;
portd=0b11101110;
delay_ms(2);


portb=0b00010000;
portc=0b10000011;
portd=0b01110111;
delay_ms(2);


portb=0b00100000;
portc=0b00000000;
portd=0b11111111;
delay_ms(2);
}



for (i=0; i<60; i++){
portb=0b00000100;
portc=0b00110011;
portd=0b11111010;
delay_ms(2);


portb=0b00001000;
portc=0b00000011;
portd=0b11111111;
delay_ms(2);


portb=0b00010000;
portc=0b00110011;
portd=0b11101110;
delay_ms(2);


portb=0b00100000;
portc=0b10000011;
portd=0b01110111;
delay_ms(2);


portb=0b01000000;
portc=0b00000000;
portd=0b11111111;
delay_ms(2);
}


for (i=0; i<60; i++){
portb=0b00001000;
portc=0b00110011;
portd=0b11111010;
delay_ms(2);


portb=0b00010000;
portc=0b00000011;
portd=0b11111111;
delay_ms(2);


portb=0b00100000;
portc=0b00110011;
portd=0b11101110;
delay_ms(2);


portb=0b01000000;
portc=0b10000011;
portd=0b01110111;
delay_ms(2);


portb=0b10000000;
portc=0b00000000;
portd=0b11111111;
delay_ms(2);
}




for (i=0; i<60; i++){
portb=0b00010000;
portc=0b00110011;
portd=0b11111010;
delay_ms(2);


portb=0b00100000;
portc=0b00000011;
portd=0b11111111;
delay_ms(2);


portb=0b01000000;
portc=0b00110011;
portd=0b11101110;
delay_ms(2);


portb=0b10000000;
portc=0b10000011;
portd=0b01110111;
delay_ms(2);

}


for (i=0; i<60; i++){
portb=0b00100000;
portc=0b00110011;
portd=0b11111010;
delay_ms(2);


portb=0b01000000;
portc=0b00000011;
portd=0b11111111;
delay_ms(2);


portb=0b10000000;
portc=0b00110011;
portd=0b11101110;
delay_ms(2);


}


for (i=0; i<60; i++){
portb=0b01000000;
portc=0b00110011;
portd=0b11111010;
delay_ms(2);


}


delay_ms(1500);


}
while(k<400);


}

Espero les sea de utilidad...



2 comentarios:

  1. muy bueno tu programa pero me harias el favor de poner lo que programaste en el pic

    ResponderEliminar
    Respuestas
    1. Espero te sea de utilidad el programa y una disculpa por la demora, saludos...!

      Eliminar