no_pulsa: //si no hay tecla pulsada
envia_alto(columna[i_col]);//enviamos alto a la col(cambiar segun hardware)
if (recibe_bajo(fila[i_fil])) //si es cero se pulsó una tecla(segun hardware)
return(codigo_tecla[cont_tecla]);//retornamos el valor de la tecla pulsada
envia_bajo(columna[i_col]);//enviamos un bajo a la columna para limpiar
//es al contrario del primer pulso enviado
++cont_tecla; //incrementa contador de la tecla, determina el valor en codigo_tecla[cont_tecla]
++i_col; //incrementa la col a revisar
if (i_col==5){ //si se revisaron las 5 col incrementa la fila y volvemes a col cero
i_col=0;
++i_fil;
}
if (i_fil==5){ //se se revisaron las 5 filas salimos de subrutina
envia_bajo(columna[i_col]);//bajo para limpiar puerto
//es al contrario del primer pulso enviado
return(' ');//si no hay tecla pulsada returnamos ' '
}
goto no_pulsa; //si no se an revisado las 4 col y 4 filas volvemos a no pulsa
}