Você está na página 1de 9

INSTITUTO POLITCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERA MECNICA Y


ELECTRICA
Unidad Zacatenco

INGENIERA EN COMUNICACIONES Y ELECTRNICA

MICROPROCESADORES

Prctica Nmero 2:
USO DE PUERTOS A, B y D DEL PIC18F4550

Hora del grupo: Lab 11:30 a 1 pm

Grupo: 6CM6

Fecha de entrega:
4 de Abril del 2017

Nombre del profesor:


Saucedo Flores Salvador

Tiempo estimado en la prctica: 4:30 hrs.

FIRMAS

-Prctica 2-

-Prctica Delay-
USO DE PUERTOS A, B y D DEL PIC18F4550

-INTRODUCCIN-

Un microprocesador es un chip de muy alta escala de integracin que contiene:


Registros
ALU
Unidad de Control.

Es un circuito integrado que se encarga de realizar el control de uno o varios


programas, operaciones aritmticas lgicas, de transferencia, comparacin, etc.

Unidad Central de Proceso (CPU)


Compuesta por la Unidad de Control (CU) y la Unidad Aritmtica y Lgica (ALU).

Unidad Aritmtica y Lgica (ALU)


Realiza operaciones aritmticas y lgicas con los datos suministrados por las
dems unidades del sistema.

Unidad de Control (CU)


Sincroniza las operaciones y la transferencia de datos dentro y fuera de la ALU.
Busca, Decodifica y Ejecuta las instrucciones almacenadas en la memoria del
sistema.

Registros
Es un conjunto de celdas similares a las celdas de memoria y pueden almacenar
un dato o una instruccin dependiendo del registro de que se trate.
Los registros bsicos son:

Registro de Direccin de Memoria (MAR): Sirve para especificar la direccin


de la localidad de memoria cuyo contenido sea leer o escribir.

Registro de Datos de Memoria (MDR): Se utiliza para transferir datos entre


la unidad de memoria y la unidad central de proceso.

Registro Contador de Programa (PC): Contiene la direccin de la localidad


de memoria que tiene almacenada la siguiente instruccin.

Registro de Instruccin (IR): Contiene la instruccin que actualmente est


ejecutando la Unidad Central de Proceso.

Acumulador (AC): En este registro se almacenan datos en forma temporal,


ALU emplea este registro para ejecutar sus funciones.
Registro de Bandera (FR): Las banderas son indicadores que slo pueden
tener 2 valores: activado o desactivado. Estos se modifican de acuerdo con
el resultado de cualquier operacin aritmtica o lgica. El objetivo de tener
banderas, es permitir que la unidad de control pueda tomar acciones
diferentes dependiendo del resultado de las operaciones.

-ENUNCIADO-

Realizar un contador con ayuda del PIC18f4550.

-PROCEDIMIENTO-

Para poder realizar el contador primero se hizo la programacin correspondiente


en MPLAB, se grab el cdigo en el PIC, se hizo el cableado correspondiente y
por ltimo se prob el circuito.

DIAGRAMA DE BLOQUES Y DE FLUJO

Diagrama de bloques de un microprocesador


TABLA DE FUNCIN

INSTRUCCIN FUNCIN
ADDLW Aade Literal a W
ANDLW Suma literal con W
COMF Complementa a F
CALL Llama a una subrutina
GOTO Va a una direccin
MOVF Mueve a F
MOVWF Mueve W a F
RETLW Retorna una literal a W
RETURN Retorna de la subrutina
SUBLW Sustrae W de una literal

A) CAPTURA ESQUEMATICA

B) ARCHIVO EN FORMATO MPLAB Y EXPLICACION DE SUBRUTINAS


;*************************************************************************
***
**
;*
; Files required: P18F4550.INC *
;*
;*************************************************************************
***
**
LIST P=18F4550, F=INHX32 ;directive to define processor
#include <P18F4550.INC> ;processor specific variable definitions
;*************************************************************************
***
**
;
VAR equ 0x06
;*************************************************************************
***
**
;Variable definitions
; These variables are only needed if low priority interrupts are used.
; More variables may be needed to store other special function registers used
; in the interrupt routines.
cod0 equ 0x3F
cod1 equ 0x06
cod2 equ 0x5B
cod3 equ 0x4F
cod4 equ 0x66
cod5 equ 0x6D
cod6 equ 0x7D
cod7 equ 0x07
cod8 equ 0x7F
cod9 equ 0x67
codA equ 0x77
codB equ 0x7C
codC equ 0x69
codD equ 0x5E
codiE equ 0x79
codF equ 0x71
;*************************************************************************
***
;Reset vector
; This code will start executing when a reset occurs.
RESET_VECTOR ORG 0
goto Main ;go to start of main code
;*************************************************************************
***
;*************************************************************************
***
;Start of main program
; The main program code is placed here.
ORG 0x1000
Main:
; *** main code goes here **
call Cfgptos ;Subrutina para configurar puertos I/O
Leer
movf PORTB,W
comf WREG
andlw 0x30
movwf LATA
movf PORTA,W
andlw 0x0F
bnz uno
cero movlw cod0
movwf PORTD
bra Leer
uno sublw 0x01
bnz dos
movlw cod1
movwf PORTD ; exhibe "1"
bra Leer
dos addlw 0x01
bnz tres
movlw cod2
movwf PORTD
bra Leer
tres addlw 0x01
bnz cuatro
movlw cod3
movwf PORTD ; exhibe "3"
bra Leer
cuatro addlw 0x01
bnz cinco
movlw cod4
movwf PORTD ; exhibe "4"
bra Leer
cinco addlw 0x01
bnz seis
movlw cod5
movwf PORTD
bra Leer
seis addlw 0x01
bnz siete
movlw cod6
movwf PORTD
goto Leer
siete addlw 0x01
bnz ocho
movlw cod7
movwf PORTD ; exhibe "7"
goto Leer
ocho addlw 0x01
bnz nueve
movlw cod8
movwf PORTD
bra Leer
nueve addlw 0x01
bnz diez
movlw cod9
movwf PORTD
bra Leer
diez addlw 0x01
bnz once
movlw codA
movwf PORTD ; exhibe "A"
goto Leer
once addlw 0x01
bnz doce
movlw codB
movwf PORTD ; exhibe "b"
bra Leer
doce addlw 0x01
bnz trece
movlw codC
movwf PORTD ; exhibe "C"
goto Leer
trece addlw 0x01
bnz catorce
movlw codD
movwf PORTD
goto Leer
catorce addlw 0x01
bnz quince
movlw codiE
movwf PORTD
quince bra Leer
org 0x10d0
TABLA ADDWF PCL,F
retlw cod0
retlw cod1
retlw cod2
retlw cod3
retlw cod4
retlw cod5
retlw cod6
retlw cod7
retlw cod8
retlw cod9
retlw codA
retlw codB
retlw codC
retlw codD
retlw codiE
retlw codF
;****************************************************************************
; Cfgptos - Subrutina para configurar los puertos de E/S
Cfgptos
movlw 0x0F ;Configura las entradas mutiplexadas con el
movwf ADCON1 ;convertidor A/D como entradas digitales.
movlw 0x07 ;Configura las entradas multiplexadas con
movwf CMCON ;los comparadores como entradas digitales.
movlw 0x0F ;Configura cuatro de las lneas del
movwf TRISA ;puerto A como entradas y 2 como salidas.
movlw 0x00 ;Configura todas las lneas del
movwf TRISD ;puerto D como salidas.
movlw 0xff ;Configura todas las lneas del
movwf TRISB ;puerto B como entradas.
return
;****************************************************************************
;End of program
END
DISTRIBUCION DE TERMINALES

PIN DESCRIPCIN FUNCIN


2 Puerto A - RA0 Entrada
3 Puerto A - RA1 Entrada
4 Puerto A - RA2 Entrada
5 Puerto A - RA3 Entrada
6 Puerto A - RA4 Entrada
7 Puerto A - RA5 Entrada
9 Puerto A - RA6 Entrada
11 Puerto A - RA7 Entrada
34 Puerto B - RB1 Entrada
35 Puerto B - RB2 Entrada
36 Puerto B - RB3 Entrada
37 Puerto B - RB4 Entrada
38 Puerto B - RB5 Entrada
39 Puerto B - RB6 Entrada
40 Puerto B - RB7 Entrada
19 Puerto D - RD0 Salida
20 Puerto D - RD1 Salida
21 Puerto D - RD2 Salida
22 Puerto D - RD3 Salida
27 Puerto D - RD4 Salida
28 Puerto D - RD5 Salida
29 Puerto D - RD6 Salida
30 Puerto D - RD7 Salida

CONCLUSIONES

Un microprocesador es un chip de integracin de alta escala que contiene una


Unidad Aritmtica Lgica, una Unidad de Control y Registros.

En esta prctica el microprocesador que se utilizo fue el PIC18F4550. Este PIC


cuenta con 4 puertos que pueden ser utilizados como puertos de entrada o
puertos de salida segn la configuracin que se le d dentro del programa.

El programa que se codifica para que el PIC realice diferentes acciones puede ser
en lenguaje ensamblador o en lenguaje C pero ambos deben quedar en un archivo
en formato MPLAB ya que para cargar un programa en el PIC se utiliza el
HIDBootLoader que utiliza dicho archivo.

En esta prctica se codifico un programa con dos puertos de entrada (A y B) y un


puerto de salida (D) para crear un contador de 0-9 utilizando un DIP switch.

Você também pode gostar