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

ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA

UNIDAD ZACATENCO

MICROPROCESADORES

BRAVO LEON JOSE LUIS

PRACTICA #3

GALVAN ALCÁNTARA ERICK

6CM1
Objetivo

Simulación de puertos en MPlab

Utilizar las herramientas de desarrollo de MPLAB IDE


Utilizar y comprender las instrucciones de programación aprendidas en clase.
Utilizar diagramas de flujo para el diseño de un programa.
Conocer los principios básicos de programar para manejar el pic 18f4550.

Marco teórico

Puertos de entrada y salida

Con el propósito de sincronizar el funcionamiento de los puertos de E/S con la organización interna
del microcontrolador de 8 bits, ellos se agrupan, de manera similar a los registros, en cinco puertos
denotados con A, B, C, D y E. Todos ellos tienen las siguientes características en común:

 Por las razones prácticas, muchos pines de E/S son multifuncionales. Si un pin realiza una
de estas funciones, puede ser utilizado como pin de E/S de propósito general.
 Cada puerto tiene su propio registro de control de flujo, o sea el registro TRIS
correspondiente: TRISA, TRISB, TRISC etc. lo que determina el comportamiento de bits del
puerto, pero no determina su contenido.

Al poner a cero un bit del registro TRIS (pin=0), el pin correspondiente del puerto se configurará
como una salida. De manera similar, al poner a uno un bit del registro TRIS (bit=1), el pin
correspondiente del puerto se configurará como una entrada. Esta regla es fácil de recordar: 0 =
Entrada 1 = Salida.
Entradas salidas digitales PIC, los pines del microcontrolador PIC pueden tener múltiples
funciones, eso dependerá del microcontrolador PIC que se utilice, en esta ocasión se verá el
uso de estos pines como entradas digitales o como salidas digitales, en los ejemplos se
utilizarán diversos PIC, se recomienda siempre tener a mano la hoja de datos del
microcontrolador PIC que se utilice.

Cada uno de los pines a ser utilizados como entradas salidas digitales PIC tienen un nombre
propio relacionado con el puerto al que pertenecen y al número de orden del bit con el cual se
programará, por ejemplo para el puerto B se tienen los pines RB0, RB1, RB2, RB3, RB4,
RB5, RB6, RB7.

Los registros importantes en la configuración de los puertos son:

STATUS dirección 0x3


PORTA dirección 0x5
PORTB dirección 0x6
TRISA dirección 0x5
TRISB dirección 0x6

Por defecto el PIC tendrá todos los I/O port's (es decir los puertos RA y RB), colocados como
entrada de datos, y si queremos cambiarlos habrá que configurarlos.

Al configurar los puertos deberás tener en cuenta que:

Si asignas un CERO (0) a un pin, éste quedará como salida y...


Si le asignas un UNO (1), quedará como entrada

Esta asignación se hace en:

TRISA para los pines del PUERTO A (5 bits)


TRISB para los pines del PUERTO B (8 bits)

BSF (SET FILE REGISTER), es la instrucción que pone un uno en el bit del registro especificado, en
este caso pone a uno el bit 5 del registro STATUS (el rp0), para pasar al banco 1.

movlw es algo así como... mueve el siguiente literal al Registro W.

W es el Registro de Trabajo, y lo usamos para almacenar momentáneamente los datos que


queremos mover. una vez hecho esto pasamos el dato a trisa, o a trisb, según el caso.
movwf es algo así como... mueve el contenido del registro W al registro f, en este caso f sería trisa
o trisb.

BCF (BIT CLEAR FILE REGISTER), ésta instrucción limpia el bit del registro especificado, o lo pone a
cero, en este caso pone a cero el bit 5 del registro STATUS para regresar al banco 0.
Desarrollo

Primera parte se realiza la apertura de un nuevo proyecto en MPlab.


 Se crea carpeta de con el nombre de la práctica.
 Se copia el archivo ASM que usamos desde la primera práctica.
 Abrimos MPlab y vamos a la opción Project.
 Creamos nuevo proyecto con el PIC18F4550.
 Abrimos nuestro archivo ASM para tener listo el entorno de MPlab y programar.
Parte dos observamos nuestro diagrama de flujo para ver que instrucciones y como vamos a
hacer el programa.

Diagrama de Flujo

INICIO DEL PROGRAMA

CONFIGURACIÓN PUERTO
A (4 ENTRADAS, 4 SALIDAS)

CONFIGURACIÓN PUERTO
B (8 SALIDAS)

INICIA EL PUERTO A Y MANDA


LA INFORMACIÓN AL REGISTRO

AGREGA 30 AL REGISTRO CARGADO


ANTERIORMENTE

MANDA EL REGISTRO AL PUERTO B


Tercer paso empezamos a programar:

DIRECCIONES CÓDIGO INSTRUCCIÓN

001000 0E0F Movlw 0x0f


001002 6EC1 Movwf ADCON1
001004 6E92 Movwf TRISA
001006 0E00 Movlw 0x00
001008 6E93 Movwf TRISB

00100A ETQS
00100A 5080 Movf PORTA,0
00100C 0F30 Addlw 0x30
00100E 6E81 Movwf PORTB
001010 EF?? Goto ETQS

Cuarto paso compilamos y simulamos nuestro programa.


Quinto paso observando el registro watch llenamos nuestra primera tabla para
configurar los puertos

REGISTROS
DIRECCIÓN INSTRUCCIÓN
TRISA TRISB PCL W PORTA PORTB
001000 MAIN: Movlw 0x0f 0x3f 0xff 0x00 0x00 0x00 0x00
001002 Movwf ADCON1 0x3f 0xff 0x02 0x0f 0x00 0x00
001004 Movwf TRISA 0x3f 0xff 0x04 0x0f 0x00 0x00
001006 Movlw 0x00 0x0f 0xff 0x06 0x0f 0x00 0x00
001008 Movwf TRISB 0x0f 0xff 0x08 0x00 0x00 0x00

Sexto paso ya que tenemos los puertos configurados utilizamos Stimulus para poner las
líneas de entrada y probar nuestros puertos.

0001 REGISTROS
DIRECCIÓN INSTRUCCIÓN
TRISA TRISB PCL W PORTA PORTB
00100A MAIN: Movf PORTA,0 0x0f 0x00 0x0A 0x00 0x01 0x00
00100C Addlw 0x30 0x0f 0x00 0x0C 0x01 0x01 0x00
00100E Movwf PORTB 0x0f 0x00 0x0E 0x31 0x01 0x00
001010 Goto Leer 0x0f 0x00 0x10 0x31 0x01 0x31
Séptimo paso repetimos los pasos anteriores con 4 entrada de datos más.

1010 REGISTROS
DIRECCIÓN INSTRUCCIÓN
TRISA TRISB PCL W PORTA PORTB
00100A Leer: Movf PORTA,0 0x0f 0x00 0x0A 0x31 0x0A 0x31
00100C Addlw 0x30 0x0f 0x00 0x0C 0x0A 0x0A 0x31
00100E Movwf PORTB 0x0f 0x00 0x0E 0x3A 0x0A 0x31
001010 Goto Leer 0x0f 0x00 0x10 0x3A 0x0A 0x3A

0101 REGISTROS
DIRECCIÓN INSTRUCCIÓN
TRISA TRISB PCL W PORTA PORTB
00100A Leer: Movf PORTA,0 0x0f 0x00 0x0A 0x3A 0x05 0x3A
00100C Addlw 0x30 0x0f 0x00 0x0C 0x05 0x05 0x3A
00100E Movwf PORTB 0x0f 0x00 0x0E 0x35 0x05 0x3A
001010 Goto Leer 0x0f 0x00 0x10 0x35 0x05 0x3A

0110 REGISTROS
DIRECCIÓN INSTRUCCIÓN
TRISA TRISB PCL W PORTA PORTB
00100A Leer: Movf PORTA,0 0x0f 0x00 0x0A 0x35 0x06 0x35
00100C Addlw 0x30 0x0f 0x00 0x0C 0x06 0x06 0x35
00100E Movwf PORTB 0x0f 0x00 0x0E 0x36 0x06 0x35
001010 Goto Leer 0x0f 0x00 0x10 0x36 0x06 0x36

1001 REGISTROS
DIRECCIÓN INSTRUCCIÓN
TRISA TRISB PCL W PORTA PORTB
00100A Leer: Movf PORTA,0 0x0f 0x00 0x0A 0x36 0x0f 0x36
00100C Addlw 0x30 0x0f 0x00 0x0C 0x0f 0x0f 0x36
00100E Movwf PORTB 0x0f 0x00 0x0E 0x3f 0x0f 0x36
001010 Goto Leer 0x0f 0x00 0x10 0x3f 0x0f 0x3f
Conclusiones.
Con los módulos de memorias podemos hacer varios tipos de arreglo de memoria según sea nuestra
necesidad, hay que tener en cuenta la configuración de cada integrado y sus especificaciones de
trabajo para así lograr que nuestros circuitos funcionen correctamente. En la parte dos y tres
pudimos comprobar el estado de alta impedancia lo cual hace que una memoria se desactive y
pueda funcionar la otra sin causar alguna interferencia.

Bibliografía

Microprocesadores Intel

Autor Barry B. Brey


Editorial: PRENTICE HALL MEXICO
ISBN: 9789702608042
Año edición: 2006

Fundamentos de los microprocesadores.

Autor: Roger L. Tokheim.


Editorial: McGraw
Lugar de edición: Madrid
Año edición: 1992

 https://www.carrod.mx/products/ci-ttl-buffer-de-8-entradas-no-invertido-74ls244

 https://www.carrod.mx/products/ci-ttl-buffer-de-8-entradas-no-invertido-74ls244

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