Вы находитесь на странице: 1из 6

ESCUELA POLITCNICA NACIONAL

ESCUELA DE FORMACIN DE TECNLOGOS


TECNOLOGA EN ELECTRNICA Y TELECOMUNICACIONES

Laboratorio de Microprocesadores

TRABAJO PREPARATORIO

Prctica No: 7
Tema: Manejo de puertos de entrada y salida con assembler

Realizado por:

Estudiante: Largo Christian Grupo: CPR-5

(Espacio Reservado)
Fecha de entrega: ____ / ____ / ____f. _________________________
Ao mes da Recibido por:

Sancin: ____________________________________________________

PERODO
2017 A
ESCUELA POLITCNICA NACIONAL ESFOT

TEM425L - LABORATORIO DE MICROPROCESADORES

PREPARATORIO - PRCTICA 7

1. Objetivos:

Utilizar los puertos de entrada y salida del PIC para leer y desplegar informacin empleando
lenguaje de bajo nivel (Assembler-Ensamblador)
Comparar la programacin realizada en bajo nivel y en alto nivel

2. Desarrollo
2.1 Diseo
1) Elaborar un programa utilizando lenguaje de bajo nivel que cumpla con los siguientes
requerimientos:
Leer los pines A3, A2, A2, A0 con lo cual se tiene un numero de cuatro bits.
Repetir el procedimiento anterior para los pines B3, B2, B1, B0.
Restar el nmero del puerto A, del nmero del puerto B y mostrar el resultado en un
display de ctodo comn conectado en el puerto C.

FLUJO GRAMA

Laboratorio de Microprocesadores Prctica 7


ESCUELA POLITCNICA NACIONAL ESFOT

FIG1: Flujo grama del ejercicio 1

SINTAXIS DE PROGRAMACIN

LIST P=PIC16F870 ; Avisa PIC se va a usar


#INCLUDE <P16F870.INC> ; incluye libreras del PIC16F870
__CONFIG _WDT_OFF&_PWRTE_ON&_XT_OSC&_LVP_OFF&_CP_OFF ; Palabra de configuracin
ORG 0X00
GOTO INICIO ;Salto a INICIO
TABLA ADDWF PCL,F ;Control de acceso a la tabla
RETLW 0X3F ;Display muestra 0 cuando tengo 0000
RETLW 0X06 ;Display muestra 1 cuando tengo 0001
RETLW 0X5B ;Display muestra 2 cuando tengo 0010
RETLW 0X4F ;Display muestra 3 cuando tengo 0011
RETLW 0X66 ;Display muestra 3 cuando tengo 0100
RETLW 0X6D ;Display muestra 5 cuando tengo 0101
RETLW 0X7D ;Display muestra 6 cuando tengo 0110
RETLW 0X07 ;Display muestra 7 cuando tengo 0111
RETLW 0X7F ;Display muestra 8 cuando tengo 1000
RETLW 0X6F ;Display muestra 8 cuando tengo 1001
RETLW 0X77 ;Display muestra A cuando tengo 1010
RETLW 0X7C ;Display muestra B cuando tengo 1011
RETLW 0X39 ;Display muestra C cuando tengo 1100
RETLW 0X5E ;Display muestra D cuando tengo 1101
RETLW 0X79 ;Display muestra E cuando tengo 1110
RETLW 0X71 ;Display muestra F cuando tengo 1111
INICIO ;ETIQUETA INICIO
BCF STATUS,RP1 ;Seleccionar banco 1
BSF STATUS,RP0
MOVLW 0X07 ;Se copia el valor de 0x07 a work
MOVWF ADCON1 ;Se mueve el valor de work al registro ADCON1 con el fin de
hacer entradas y salidas digitales al puerto A
MOVLW 0X0F ; Se declara los cuatro bits menos significantes de puerto A como entrada
MOVWF TRISA
MOVLW 0X0F ; Se declara los cuatro bits menos significantes de puerto B como entrada
MOVWF TRISB
MOVLW 0X00 ; Se declara el puerto C como salida
MOVWF TRISC
BCF STATUS,RP0 ;Seleccionar banco 0
OPERACION ;ETIQUETA OPERACIN que contiene la operacin algebraica entre los dos puertos
MOVF PORTB,W ;Se copia el valor introducido en el PORTB a work
SUBWF PORTA,W ;Realiza la resta entre los dos prticos A Y B
CALL TABLA ; Llama la subrutina TABLA la que contiene la respuesta en formato ctodo comn
MOVWF PORTC ;Valores de tabla muestro en PORTC
BTFSS PORTC,5 ;Verifico si en 5 bit del puerto C se encuentra 1
GOTO OPERACIN ; Si en el quinto bit de portC no se encuentra 1 ir a la subrutina OPERACIN
GOTO OPERACION2 ; Si en el quinto bit de portC se encuentra 1 ir a la subrutina OPERACIN2
OPERACION2 ETIQUETA OPERACIN 2
MOVF PORTA,W ;Se copia el valor introducido en el PORTA a work
SUBWF PORTB,W ;Realiza la resta entre los dos prticos B Y A
CALL TABLA ; Llama la subrutina TABLA la que contiene la respuesta en formato ctodo comn
MOVWF PORTC ;Valores de tabla muestro en PORTC

Laboratorio de Microprocesadores Prctica 7


ESCUELA POLITCNICA NACIONAL ESFOT

GOTO OPERACION2 ;Una vez ejecutado la subrutina volver a ejecutarla con dicha sentencia
END ;FIN
2) Elaborar un programa utilizando lenguaje de alto nivel (mikroC) que cumpla con los mismos
requerimientos indicados en el numeral 1 de acuerdo al da de realizacin de la prctica
FLUJO GRAMA

FIG2: Flujo grama del ejercicio 2

SINTAXIS DE PROGRAMACIN

void main() {
int
display[16]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79,0X7
1}; //Declaracin de la matriz display
ADCON1=0X06;
TRISB=0b11111111; //configuro puerto B como entrada
TRISA=0b001111; //configuro puerto A como entrada
TRISC=0b00000000; //configuro puerto C como salida
PORTC = 0X00; //asigno el valor de 0X00 al portico C
while(1) // ciclo repetitivo
{
if(PORTB>PORTA){
{PORTC = display[PORTB-PORTA];} //PORTB-PORTA selecciona un elemento de la matriz display y se
le asigna al portico C

Laboratorio de Microprocesadores Prctica 7


ESCUELA POLITCNICA NACIONAL ESFOT

}
else {
{PORTC = display[PORTA-PORTB];} //PORTB-PORTA selecciona un elemento de la matriz display y se
le asigna al prtico C
}}}
2.1.1 Diagrama esquemtico
Restar el nmero del puerto A, del nmero del puerto B y mostrar el resultado en un
display de ctodo comn conectado en el puerto C.

FIG3: Diagrama esquemtico del circuito realizado en proteus

2.1.2 Diagrama de conexiones


Restar el nmero del puerto A, del nmero del puerto B y mostrar el resultado en un
display de ctodo comn conectado en el puerto C.

Laboratorio de Microprocesadores Prctica 7


ESCUELA POLITCNICA NACIONAL ESFOT

FIG4: Diagrama de conexiones del circuito realizado en ARES

2.1.3 Anlisis de resultados esperados


Podemos ver como se configura puertos de salida y de entrada los mismos que se realizan mediante
registros como el TRIS Y PORT, para todo esto necesitamos el registro ms importante de toda esta
programacin en mplab el registro WORK. No existe operacin ni configuracin que no se involucre a
este registro. Cabe recalcar a todo esto que al utilizar el prtico A se debe configurar previamente
como entradas y salidas digitales dando el valor de 0X06 al registro ADCON1 el cual nos permite
llevar a cabo dicha configuracin. En este trabajo preparatorio se bas en herramientas como
subrutinas las mismas que actan como subprogramas que mediante una instruccin call hace que el
programa ejecute la parte que contiene dicha subrutina. En este programa podemos ver que se
utiliz para llamar la subrutina tabla el cual contiene valores hexadecimales que forman caracteres
alfanumricos que se mostrara en el display. En cuestin a comparacin de Mikroc se obtiene una
programacin ms ordenada, una programacin que ayuda al usuario a entender como realiza las
operaciones la maquina

3. Bibliografa / Referencias
[1] Data Sheet de PIC16F870, Microchip. [online] available:
http://ww1.microchip.com/downloads/en/DeviceDoc/30569C.pdf

Laboratorio de Microprocesadores Prctica 7

Вам также может понравиться