Documentos de Académico
Documentos de Profesional
Documentos de Cultura
0x00
goto
0x05
INICIO
INICIO
;-- CONFIGURACION DE PUERTOS --CLRF STATUS
BSF
STATUS,5
BCF
STATUS,6
MOVLW
b'00000111'
MOVWF
ADCON1
MOVLW
b'00000000'
MOVWF
TRISA
MOVLW
b'11111111'
MOVWF
TRISB
MOVLW
b'00000000'
MOVWF
TRISC
;-- CODIGO DE PROGRAMA ---LEER
BANKSEL PORTB
MOVF
PORTB,0
ANDLW
0X0F
MOVWF
H'20'
SWAPF
PORTB,0
ANDLW
0X0F
MOVWF
H'21'
SUBWF
H'20',0
BTFSC
STATUS,0
GOTO RESTA_NORMAL
GOTO RESTA_NEGATIVA
RESTA_NORMAL
MOVWF
PORTA
MOVLW
MOVWF
GOTO
0X00
PORTC
LEER
RESTA_NEGATIVA
MOVLW
0X01
MOVWF
PORTC
MOVF
H'20',0
SUBWF
H'21',0
MOVWF
PORTA
GOTO LEER
end.
EJERCICIO 2
Desarrollar un programa para el microcontrolador PIC16F84A, que realice la
siguiente tarea:
Por el puerto B se obtiene el dato introducido por el puerto A, pero los bits pares 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 ' 0 1 1 0 0 ', por el puerto B se visualiza ' 1 1 1 0 1 '. En el ejemplo se observa
que los bits impares permanecen con el dato del puerto de entrada.
;ZONA DE DATOS
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
LIST
P=16F877
INCLUDE
P16F877.INC
;ZONA DE CODIGOS
org
0x00
goto Inicio
org
0x05
Inicio
bsf
movlw
movwf
movlw
movwf
bcf
Principal
movf
movwf
andlw
movwf
STATUS,RP0
b'00000000'
TRISB
b'11111111'
TRISA
STATUS,RP0
PORTA,W
H'0C'
b'10101010'
H'0C'
addlw
andlw
movwf
goto
b'01010101'
b'00011111'
PORTB
Principal
END
EJERCICIO 3
Al puerto B se conectan dos displays de siete segmentos a travs de decodificadores
BCD para mostrar la salida indicada en la tabla 1.
Disear un programa cuya salida corresponda conforme a lo indicado en la tabla 1.
Los pines Ra2 y Ra1 determinan el valor de salida. Programar para el PIC16F877A.
LIST P=16F877
RADIX
HEX
INCLUDE
P16F877.inc
ORG
0X00
GOTO
ORG
INICIO
0X05
INICIO
;-- CONFIGURACION DE PUERTOS --CLRF STATUS
BSF
STATUS,5
BCF
STATUS,6
MOVLW
b'00000111'
MOVWF
ADCON1
MOVLW
b'00000000'
MOVWF
TRISB
MOVLW
b'00000111'
MOVWF
TRISA
PORTA,1
BIT2UNO_BIT1UNO
BIT2UNO_BIT1CERO
BIT2UNO_BIT1CERO
MOVLW
0X02
MOVWF
PORTB
GOTO
LEER
BIT2UNO_BIT1UNO
MOVLW
0X03
MOVWF
PORTB
GOTO
LEER
END