Hola.
Una compañera de trabajo entró a un curso relámpago de PICs y me pidió ayuda..... ahora yo pido ayuda
Se trata de hacer un programa que convierta un byte paralelo en forma serial.
Se mandará ese byte bit por bit con retardo de 30ms entre bit; contará con un bit de inicio y un último de paro. Nada de RS232, es una práctica que le dejaron.
La verdad sea dicha no recuerdo muy bien cómo programar en ensamblador y no le pude hacer lo que pidió pero, realicé un programa que hace lo que ella quiere pero de mala manera.
Me explico:
Antes que nada se pone en alto PORTA,0 por 30ms.
Lo que hace el programa es cargar el BYTE del PUERTB y pasarlo a PORTA y llama al retardo.
Se recorre el BYTE de PORTB y se pasa a PORTA, se llama a rutina.
Todo eso se repite ocho veces y por último se pone en alto PORTA,0 por 30ms.
Sé que no es lo mejor pero para efectos de demostración cumple con el cometido de convertir un BYTE de entrada y sacar ese BYTE por una terminal.
El código está de manera que se recorre 8 veces pero de ésta manera:
RRF DATO,W ;"Rotando" DATO hacia la derecha y guardándolo en W
MOVWF DATO ;Cargando nuevo valor de DATO ya desplazado.
MOVWF PORTA ;Moviendo segundo Bit de DATO a Puerto A.
CALL DEMORA ;30msY se repite ocho veces.
Quiero saber si alguien me puede ayudar a implementar un FOR.
Recuerdo que se usan los BTFSS o DECFSZ o algo así.
Anexo la información.
PD: Es un 16F84A.
PD#2: Eso de salirse de ensamblador para irse a BASIC no conviene mucho