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...
muy bueno tu programa pero me harias el favor de poner lo que programaste en el pic
ResponderEliminarEspero te sea de utilidad el programa y una disculpa por la demora, saludos...!
Eliminar