Buenos días compañeros espero que estén muy bien, les escribo para pedirles por favor una orientación.
Les quiero pedir la colaboración por favor para que me ayuden a organizar las ideas que tengo para realizar el programa que me piden en el pdf que anexo, tengo las ideas de las estructura del programa pero no sé como empezar para escribir el código, hasta el momento ya escribí el programa para que me enciendan los tres display de 7 segmentos que son de ánodo común.
trabajo3Programa Display:
#INCLUDE <16f887.h>
#FUSES INTRC_IO, NOMCLR, NOWDT
#USE delay(clock=4mhz)
#BYTE PORTB=0X06
#BYTE PORTE=0X09
#BYTE TRISB=0X86
#BYTE TRISE=0X89
INT CONST DISPLAY[10]={0x80,0xf2,0x48,0x60,0x32,0x24,0x04,0xf8,0x00,0x3 0};
INT UNIDAD=0;
INT DECENA=0;
INT CENTENA=0;
VOID MAIN (){
TRISB=0b00000000;
TRISE=0b00000000;
UNIDAD=6;
DECENA=9;
CENTENA=4;
WHILE (TRUE){
PORTB= DISPLAY[UNIDAD];
BIT_CLEAR(PORTE,0);
BIT_SET(PORTE,1);
BIT_SET(PORTE,2);
DELAY_MS(5);
PORTB=0XFF;
PORTB= DISPLAY[DECENA];
BIT_SET(PORTE,0);
BIT_CLEAR(PORTE,1);
BIT_SET(PORTE,2);
DELAY_MS(5);
PORTB=0XFF;
PORTB= DISPLAY[CENTENA];
BIT_SET(PORTE,0);
BIT_SET(PORTE,1);
BIT_CLEAR(PORTE,2);
DELAY_MS(5);
PORTB=0XFF;
}
}
Y estas son las ideas que tengo para escribir el código pero la verdad no sé como empezar para que me funciones, le agradecería mucho la asesoría.
#INCLUDE <16f887.h>
#FUSES INTRC_IO, NOMCLR, NOWDT
#USE delay(clock=4mhz)
Ubicar puertos en la RAM
while() { //para que me repita el bucle
visual_display(); // Indico la visualización con el
bit_bandera=0; // debo incluir el bit bandera pero no sé usarlo
if (bit_test(bandera,0)==0){ // preguntar por el estado del bit bandera
if(bit_test(portc,0)==1){ // preguntar por el estado del pulsador de los asesores
Mostrar el número del asesor;
incrementar el turno;
Aqui debo convertir la variable a BCD para visualizarla en el display con esta instrucción:
conver_hex_bcd(); // no se como implementarla el el programa
bit_bandera=1;
} // todo este ciclo se repite 5 veces para los 5 asesores
Si el puerto c==0{
poner bit_bandera=0;
}
Para restablecer el bit bandera tengo esta instrucción
x=portc;
x=x&0x1F;
si (x==0);{
bit_bandera=0
}
Esas son las leves ideas que tengo de como estructurar el programa pero la verdad no sé como escribirlo, si me pueden ayudar les agradecería infinitamente.
Saludos y muchas gracias de nuevo!!