Pic16f84a control

Solo disponible en BuenasTareas
  • Páginas : 2 (351 palabras )
  • Descarga(s) : 0
  • Publicado : 27 de octubre de 2010
Leer documento completo
Vista previa del texto
;Descripción--------------------------------------------------------
;
;Lea un dato por el puerto A guarde los primeros tres bits en una
;variable de datos y los ultimos dos bits en una variablede
;control dependiendo del valor de control muestrelo en el puerto B
; Control | PORTB
; ----------------|-------------
; 00 | Dato + 15
; ----------------|-------------
; 01 | 15- Dato
; ----------------|-------------
; 10 | Dato * 15
; ----------------|-------------
; 11 | Dato
;
;------------------------------------------------------------------;Configuración MPLAB

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
LIST P=16F84A
INCLUDE

CBLOCK 0x0C ;Inicia un bloque de variables
V_Dato
V_MUL
V_Control
ENDC;------------------------------------------------------------------
Inicio
bsf STATUS,RP0 ;Acceso al banco 1
clrf TRISB ;PORTB como salida
movlw 0xFF ;W='11111111'
movwf TRISA ;Mueve WA TRISA= PORTA como entrada
bcf STATUS,RP0 ;acceso al banco 0

Main
movf PORTA,W ;Lee PORTA
andlw b'00000111' ;Se queda con los ultimos tres digitos
movwf V_Dato ;Mueve los tresdigitos
movf PORTA,W ;Meve PORTA a W
andlw b'00011000' ;Se queda con los dos primeros digitos
movwf V_Control ;Guarda los dos digitos
bcf STATUS,C;Limpia el carry
rrf V_Control,F ;1 digito recorrido
rrf V_Control,F ;2 digito recorrido
rrf V_Control,F ;3 digito recorrido
movf V_Control,W ;Mueve V_Control a W
addwf PCL,F;Salto indexado al contador
goto Opcion_00 ;Si el control=00 salta a Opcion_00
goto Opcion_01 ;Si el control=01 salta a Opcion_01
goto Opcion_10 ;Si el control=10 salta a Opcion_10
gotoOpcion_11 ;Si el control=11 salta a Opcion_11
Opcion_00
movf V_Dato,W ;Mueve V_Dato a W
addlw .15 ;Suma W+15=W
movwf PORTB ;Mueve W a PORTB
goto Fin ;Salta a Fin
Opcion_01
movf V_Dato,W...
tracking img