You are on page 1of 8

ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA

UNIDAD ZACATENCO

MICROPROCESADORES

BRAVO LEON JOSE LUIS

PRACTICA #3

GALVAN ALCÁNTARA ERICK

6CM1
Objetivo

Calcular tiempos de ejecución de un programa.

Simulación de puertos en MPlab.

Utilización de sub rutinas.

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
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 nuestros diagramas de flujo para ver, que instrucciones y como vamos a hacer el
programa.

Llamar a subrutina Cpuertos.

Suma uno al valor de PORTD y lo manda a W.

Llama a la subrutina T500 y regresa a la Suma de un valor en PORTD.


Tercer paso empezamos a programar:
DIRECCIONES INSTRUCCIÓN

R0 EQU 0x03
R1 EQU 0x04
R2 EQU 0x05

001000 Call Cpuertos; Manda a llamar a la Sub-Rutina Cpuertos para que la ejecute.
001004 ETQ1: Incf PORTD,0 ; Incrementa en uno al puerto D y lo manda al registro
001006 Addlw 0x00 ; And logica
001008 Daw ; Intercabio de Nielf
00100A Movwf PORTD ; Manda al puerto "D" lo que hay en el registro.
00100C Call T500 ; Manda a llamar a la Sub-Rutina T500(Nos sirve para contar el tiempo)

001010 Goto ETQ1 ; Regresar a la Etiqueta


; end of main

Iniciamos Subrutinas

Cpuertos:

001014 movlw 0x0f


001016 movwf ADCON1 ;Activa las entradas diguitales
001018 movlw 0x00 ;carga 0 a w
00101A movwf TRISD ;Activa el buffer del pueto D
00101C movwf PORTD ;carga puerto D con el valor de w
00101E Return

T500:

001020 movlw 0x1e ; carga 01 a w


001022 movwf R0 ; copia el contenido de w en R0
001024 ETQ2:
001024 movlw 0xff ;Carga ff a w
001026 movwf R1 ;Copia el contenido de w a R1
001028 ETQ3:
001028 movlw 0xff ;Carga con ff a W
00102A movwf R2 ;Copia el contenido de w R2
00102C ETQ4:
00102C Decf R2,1 ;Decrementa a R2-1 y manda el valo a R2
00102E BNZ ETQ4 ;Comprueba si es 0 si no lo manda ETQ3
001030 Decf R1,1 ;Decrementa a R1-1 y manda el valo a R1
001032 BNZ ETQ4 ;Comprueba si es 0 si no lo manda ETQ3
001034 Decf R0,1 ;Decrementa a R0-1 y manda el valo a R0
001036 BNZ ETQ4 ;comprueba si es 0 si no lo manda ETQ2
001038 Return
Cuarto paso compilamos y simulamos nuestro programa.

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

Sexto paso ya que tenemos los puertos configurados utilizamos Stimulus para poner las líneas de
entrada y probar nuestros puertos.
Séptimo paso repetimos los pasos anteriores con 4 entrada de datos más.

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

You might also like