Programas
; ZONA DE CÓDIGOS ******************************************************************* ORG Inicio bsf clrf movlw movwf bcf Principal movf addlw movwf goto END STATUS,RP0 TRISB b'00011111' TRISA STATUS,RP0 PORTA,W Constante PORTB Principal ; Pone a 1 el bit 5 del STATUS. Acceso al Banco 1. ; Las líneas del Puerto B configuradas como salidas. ; Las 5 líneas del Puerto Aconfiguradas como entradas. ; Pone a 0 el bit 5 de STATUS. Acceso al Banco 0. ; Carga el registro de datos del Puerto A en (W). ; (W)=(PORTA)+Constante. ; El contenido de W se deposita en el puerto de salida. ; Crea un bucle cerrado e infinito. ; Fin del programa. 0 ; El programa comienza en la dirección 0.
Por el puerto B se obtiene el dato del puerto A multiplicando por 2. Es decir (PORTB)=2(PORTA) +(PORTA) __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC LIST P=16F84A ; Procesador utilizado. INCLUDE ; Definición de algunos operandos utilizados. ORG 0 ; El programa comienza en la dirección 0. ; Pone a 1 el bit 5 del STATUS. Acceso al Banco 1. ; Las líneas del Puerto B se configuran como salidas. ; Las líneas del Puerto A como entradas. ; Pone a 0 el bit 5 de STATUS. Acceso al Banco 0. ;Carga el registro de datos del Puerto A en (W). ; (W)=(PORTA)+(PORTA)=2(PORTA). ; El contenido de W se deposita en el Puerto B. ; Crea un bucle cerrado e infinito. ; Fin del programa.
Inicio bsf STATUS,RP0 clrf TRISB movlw b'00011111' movwf TRISA bcf STATUS,RP0 Principal movf PORTA,W addwf PORTA,W movwf PORTB goto Principal END
Por el puerto B se obtiene el dato introducido por el puerto A,pero los bits pare de la salida se fijan siempre a “1”. El orden de los bits será “b7 b6 b5 b4 b3 b2 b1 b0”, siendo los pares el b6, b4, b2 y b0. Por ejemplo, si por el puerto A se introduce el dato ‘01100’, por el puerto B se visualizara ‘11101’ Observa que Los bits pares están a “1”, efectivamente (puerto B) y los impares permanecen con el dato
del puerto de entrada (efectivamente: Puerto A =b'---x1x0x' y Puerto B = b'xxxx1x0x').
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC LIST P=16F84A ; Procesador utilizado. INCLUDE ; Definición de algunos operandos utilizados. Mascara ORG Inicio EQU 0 bsf clrf movlw movwf bcf b'01010101' ; Máscara de bits impares siempre a "0".
; El programa comienza en la dirección 0. STATUS,RP0 ; Pone a 1 el bit 5 del STATUS. Acceso al Banco 1. TRISB ;Las líneas del Puerto B se configuran como salidas. b'00011111' TRISA ; Las 5 líneas del Puerto A como entrada. STATUS,RP0 ; Pone a 0 el bit 5 de STATUS. Acceso al Banco 0.
Principal movf PORTA,W; Carga el registro de datos del Puerto A en W andlw Mascara; Pone a "0" los bits pares. movwf PORTB; El contenido de W se deposita en la salida. goto Principal; Se crea un bucle cerrado e infinito. END; Fin del programa.
Por el Puerto B obtiene el dato del Puerto A, pero en las salida los bits impares se fijan siempre a "0". El orden de los bits será "b7 b6 b5 b4 b3 b2 b1 b0", siendo los impares el b7, b5, b3 y b1. Por ejemplo si por el Puerto A se introduce el dato b'---01100', por el Puerto B se visualiza b'00000100'. Observar que los bits impares están a "0" (efectivamente: Puerto B =b'0x0x0x0x') y los pares permanecen con el dato del puerto de entrada (efectivamente: Puerto A = b'---0x1x0' y Puerto B = b'---0x1x0').
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC LIST P=16F84A ; Procesador utilizado. INCLUDE ; Definición de algunos operandos utilizados. Mascara ORG Inicio EQU 0 b'01010101' ; Máscara de bits impares siempre a "0". ; El programa comienza en la dirección...
Regístrate para leer el documento completo.