UNIVERSIDAD AUTÓNOMA “TOMÁS FRÍAS”
FACULTAD DE ING. TECNOLÓGICA CARRERA DE INGENIERÍA ELECTRÓNICA
“ETN-807”
LABORATORIO Nro. 1 Estudiante:
UNIV. ARIEL MAXIMILIANO MAXIMILIANO BONIFACIO CONDORI.
Docente:
ING JUAN ALBERTO MENDIETA
Materia:
ETN-807
Fecha de entrega:
20/10/2017
…………. POTOSÍ BOLIVIA………..
PROGRAMA N° 1 Por los leds conectados al puerto B visualiza el valor de una constante, por ejemplo el numero binario b’01010101’.
LIST P=16F84A include
NUM EQU 0X0C ORG 0 GOTO INICIO ORG 4 INICIO BSF STATUS RPO CLRF TRISB BCF STATUS RPO PRINCIPAL MOVLWF PORB END PROGRAMA N° 2 Los leds conectados al nibble bajo del puero B se apagan y los conectados al nibble alto se encienden.
LIST P=16F84A include VAR EQU 0X0C ORG 0 GOTO INICO ORG 4 INICIO BSF STATUS, RPO CLFR TRISB BSF STATUS, RPO PRINCIPAL MOVLW b'11110000' MOVWF VAR MOVWF PORTB END PROGRAMA N° 3 Por el puerto B se obtiene el dato de las cinco líneas del puerta A al que esta conectado un array de interruptores. Por ejemplo, si por el puerto A se introduce “---11001”, por el puerto B aparecerá “xxx11001” (el valor de las tres líneas superiores no importa).
LIST P=16F84A include ORG 0 GOTO INICIO
ORG 5 INICIO BSF STATUS, RP0 CLFR TRISB MOVLW b'00011111' MOVWF TRISA BSF STATUS, RP0 PRINCIPAL MOVF PORTA MOVWF PORTB GOTO PRINCIPAL END PROGRAMA N° 4 El puerto B, que actua como salida es controlado por el bit 0 del puerto A, que actua como entrada. De manera tal que: -
Si el bit 0 del PORTA es “1”, se encienden todos los leds de salida.
-
Si el bit 0 del PORTA es “0”, se encienden los leds del nibble alto y se apagan los bajo.
LIST P=16F84A include ORG 0 GOTO INICIO ORG 5 INICIO BSF STATUS, RP0 CLFR TRISB MOVLW b'00011111' MOVWF TRISA BSF STATUS, RP0 PRINCIPAL BTFSC PORTA0 GOTO PRIM GOTO SEG PRIM MOVLW b'11111111' MOVWF PORTB GOTO PRINCIPAL SEG MOVLW b'11110000' MOVWF PORTB GOTO PRINCIPAL END
PROGRAMA N° 5 Compara el dato del puerto de entrada PORTA y un “Numero” (por ejemplo el 13): -
Si (PORTA)=Numero, se encienden todos los led de salida .
Si (PORTA)y Numero no son iguales, se activan los leds pares de salida y se apagan los impares.
LIST P=16F84A include CONST EQU d'13' ORG 0 GOTO INICIO ORG 5 INICIO BSF STATUS, RP0 CLFR TRISB MOVLW b'00011111' MOVWF TRISA BSF STATUS, RP0 BUCLE MOVLW CONST SUBF PORTA,W MOVLW b'11111111' BTFSC STATUS,Z GGOTO SALIDA MOVLW b'01010101' SALIDA MOVWF PORTB GOTO BUCLE END
PROGRAMA N°6 Compara el dato introducido por el puerto A que actua como entrada, con un “Numero”. Si (PORTA) es mayor o igual que “Numero“ se encienden todos los leds de salida. Si (PORTA) es menor que “Numero” se activan se activan los LEDs pares de salida.
LIST P=16F84A include CONST EQU d'13' ORG 0 GOTO INICIO ORG 5 INICIO BSF STATUS, RP0 CLFR TRISB MOVLW b'00011111'
MOVWF TRISA BSF STATUS, RP0 BUCLE MOVLW CONST SUBF PORTA,W MOVLW b'11111111' BTFSC STATUS,Z GGOTO SALIDA MOVLW b'10101010' SALIDA MOVWF PORTB GOTO BUCLE END PROGRAMA N° 7 Compara el dato del puerto de entrada PORTA y un “Numero” (por ejemplo el 13): -
Si (PORTA) es mayor que Numero, se encienden todos los led de salida.
-
Si (PORTA) es menor o igual que Numero, se activan los leds pares de salida.
LIST P=16F84A include CONST EQU d'13' ORG 0 GOTO INICIO ORG 5 INICIO BSF STATUS, RP0 CLFR TRISB MOVLW b'00011111' MOVWF TRISA BSF STATUS, RP0 BUCLE MOVLW CONST SUBF PORTA,W MOVLW b'11111111' BTFSC STATUS,C GOTO MUESTRA MOVLW b'01010101' MUESTRA MOVWF PORTB GOTO BUCLE END PROGRAMA N° 8 Compara el dato del puerto de entrada PORTA con un “Numero”. Tres posibilidades: Si (PORTA) = Numero se encienden todos los LEDs de salida.
Si (PORTA) > Numero se activan los LEDs pares de salida. Si (PORTA) < Numero se encienden los L EDs del nibble alto y se apagan los del bajo. Hay que destacar que, al no haber instrucciones de comparación, estas se realizan mediante restas.
LIST P=16F84A include CONST EQU d'13' ORG 0 GOTO INICIO ORG 5 INICIO BSF STATUS, RP0 CLFR TRISB MOVLW b'00011111' MOVWF TRISA BSF STATUS, RP0 SUBF PORTA,W MOVLW b'11111111' BTFSC STATUS,Z GOTO SALIDA MOVLW b'01010101' SALIDA MOVWF PORTB GOTO BUCLE END PROGRAMA N° 9 Implementar una tabla de la verdad mediante el manejo de tablas grabadas en ROM. Por ejemplo, la tabla será de 3 entradas y 6 salidas tal como la siguiente: C 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1
S5 0 0 1 0 1 0 0 1
S4 0 0 0 0 0 0 1 1
S3 1 1 0 1 0 0 0 1
S2 0 0 0 1 0 1 1 1
S1 1 0 1 1 0 1 1 1
S0 0 1 1 1 0 1 1 1
;(configuración ;(configuración ;(configuración ;(configuración ;(configuración ;(configuración ;(configuración ;(configuración
Las entradas C, B, A se conectaran a las líneas del puerto A: RA2 (C), RA1 (B) y RA0 (A). Las salidas se obtienen en el puerto B : RB5 (S5), RB4 (S4), RB3 (S3), RB2 (S2), RB1 (S1) y RB0 (S0)
0). 1). 2). 3). 4). 5). 6). 7).
LIST P=16F84A include ORG 0 GOTO INICIO ORG 5 INICIO BSF STATUS, RP0 CLFR TRISB MOVLW b'00011111' MOVWF TRISA BSF STATUS, RP0 PRINCIPAL SUBF PORTA,W MOVLW b'11111111' CALL TABLA DE VERDAD MOVWF PORTB GOTO PRINCIPAL TABLA DE VERDAD ADDWF PCL,F RETLW b'00001010' RETLW b'00001001' RETLW b'10000011' RETLW b'00001111' RETLW b'00100000' RETLW b'00000111' RETLW b'00010111' RETLW b'00111111' END
UNIVERSIDAD AUTÓNOMA “TOMÁS FRÍAS”
FACULTAD DE ING. TECNOLÓGICA CARRERA DE INGENIERÍA ELECTRÓNICA
“ETN-807”
LABORATORIO Nro. 2 Estudiante:
UNIV. ARIEL MAXIMILIANO BONIFACIO CONDORI.
Docente:
ING JUAN ALBERTO MENDIETA
Materia:
ETN-807
Fecha de entrega:
20/10/2017
…………. POTOSÍ BOLIVIA………..
ELABORE LOS SIGUIENTES PROGRAMAS EN LENGUAJE ASSEMBLER PARA EL PIC 16C84 PROGRAMA N°1 Sumar en binario 00CE y 0010 Guardar el resultado en 0x0E
LIST P=16C84A include RESUL EQU 0XCE NUM1 EQU 0X0D NUM2 EQU 0X0C ORG 0 GOTO INICIO ORG 5 INICIO MOVLW b'00000001' MOVWF NUM1 MOVLW b'00000010' MOVWF NUM2 ADDWF NUM1.W MOVWF RESUL END
PROGRAMA N° 2 Restar dos números binarios y almacenar el resultado en la dirección 0x10
LIST P=16C84A include RESUL EQU 0XCE NUM1 EQU 0X0D NUM2 EQU 0X0C ORG 0 GOTO INICIO ORG 5 INICIO MOVLW b'00001001' MOVWF NUM1 MOVLW b'00000011' MOVWF NUM2 ADDWF NUM1.W MOVWF RESUL END
PROGRAMA N° 3 Decrementar el valor 10 ocho veces y almacenarlo en la dirección 0x2b
LIST P=16C84A include NUM EQU 0X2B ORG 0 GOTO INICIO ORG 5 INICIO BSF STATUS,RP0 BCF PORTB,5 BCF STATUS,RP0 SIGUE MOVLW 0X0A MOVWF NUM SUBLW 0X05 BTFSS STATUS,2 GOTO PRINCIPAL MOVWF NUM BSF PORT,5 GOTO SIGUE END PROGRAMA N° 4 Realizar un decremento de 255 a 0
LIST P=16C84A include DECRE EQU 0X0D ORG 0 GOTO INICIO ORG 5 INICIO MOVLW 0XFF MOVWF DECRE REPETE MOVWF DECRE DECFSZ DECRE,W GOTO REPETE BSF PORTB,5 CICLO GOTO CICLO END
PROGRAMA N° 5 Que genere la serie de FIBONACCI en sus primeros 13 numeros. Usar como datos iniciales el 0 y 1. Los números generados deben verse en la PUERTA B donde se tiene conectados diodos led.
LIST P=16C84A include NUM1 EQU 0X0D NUM2 EQU 0X0E NUM3 EQU 0X0C ORG 0 GOTO INICIO ORG 5 INICIO BSF STATUS,RP0 CLRF PORTB BCF STATUS,RP0 BUCLE MOVLW 0X00 MOVWF NUM1 MOVWF PORTB MOVLW 0X01 MOVWF NUM2 MOVWF PORTB BUCLE2 MOVWF NUM2 ADDWF NUM,W MOVWF SUMA BTFSC STATUS,C GOTO FIN MOVWF PORTB MOVF NUM2,W MOVWF NUM1 MOVF SUMA,W GOTO BUCLE FIN MOVFW NUM2 MOVWF PORTB END PROGRAMA N° 6 Que encienda los leds del puerto B e n forma secuencial uno a uno comenzando por el bit 7 y seguidamente hasta el 0, luego que apague todos los leds y se repita indefinidamente el siglo.
LIST P=16C84A include ORG 0 GOTO INICIO ORG 5 INICIO BSF STATUS,RP0
CLRF PORTB MOVLW 0X07 MOVWF option_REG BCF STATUS,RP0 CICLO MOVLW b'10000000' MOVWF PORTB CALL REPARADO CALL REPARADO CALL REPARADO CALL REPARADO CALL REPARADO CALL REPARADO CALL REPARADO MOVLW b'01000000' MOVWF PORTB CALL REPARADO CALL REPARADO CALL REPARADO CALL REPARADO CALL REPARADO MOVLW b'00000000' MOVWF PORTB CALL REPARADO CALL REPARADO CALL REPARADO CALL REPARADO CALL REPARADO CALL REPARADO CALL REPARADO GOTO CICLO REPARADO MOVLW D'6' MOVWF TMRO SIGUE BTFSS INTCON,2 GOTO SIGUE BCF INTCON,2 RETURN END PROGRAMA N° 7 Por el puerto B se obtiene el dato del puerto A multiplicado por 2, es necesario poner 5 switches en todos los pines del puerto A y diodos leds en las líneas del puerto B
LIST P=16C84A include DATO EQU 0X0C ORG 0 GOTO INICIO ORG 5 INICIO
BSF STATUS,RP0 MOVLW 0XFF MOVWF PORTA CLRF PORT BCF STATUS,RP0 CICLO MOVWF DATO RLF DATO,W MOVWF PORTB GOTO CICLO END