Vous êtes sur la page 1sur 18

UNIVERSIDAD NACIONAL JOS MARA ARGUEDAS ESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS

GUA DE EJERCICIOS RESUELTOS

TEMA

: HERRAMIENTAS DE PROGRAMACIN

ASIGNATURA

: ARQUITECTURA DE PROCESADORES I

SEMESTRE ACADMICO

: 2012-II

PRESENTADO POR

: ING. MARLON E CANALES EGAS

ESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS

ARQUITECTURA DE PROCESADOR I

1. OBJETIVOS. Conocer los procedimientos de programacin en MPLAB. Realizar programas bsicos en assembler para microcontroladores PIC Disear proyectos de aplicacin.

2. PROCEDIMIENTO DE RESOLUCIN El procedimiento estndar para la resolucin de un proyecto en general recomendado por el autor, consiste en segmentar el proyecto en tres pasos: Paso 1. Enunciado y delimitacin del Hardware: El enunciado es la razn de ser de cualquier proyecto. Es el problema que debe ser solucionado. Si el enunciado es proporcionado junto con el hardware, este paso nos los ahorraremos. En caso contrario, se deben delimitar y definir todas las variables de entradas y de salida. Debemos asignar los pines que van a actuar como entrada de datos (Sensores) y los que van a actuar como salida de datos (Actuadores o elementos finales de control). Se debe tratar de develar todo lo que se espera que haga el funcionamiento del diseo que se est proponiendo. Se debe establecer un resumen de cmo se debe comportar el circuito de control en base a lo que queremos disear. Sirve para: Ponerle lmites a nuestro proyecto Determinar las funciones que se espera que haga. Y fundamentalmente para especificar el hardware que va a ser controlado y gobernado por el microcontrolador Paso 2. Diagrama de Flujo: Este nos proporcionar el funcionamiento lgico del problema, proyecto o sistema que queremos disear. Si un proyecto es de mediana o gran complejidad, se recomienda seccionar el diagrama de flujo en partes para analizar su funcionamiento y posteriormente unirlo, bajo el lema de segmentar un proyecto grande en partes pequeas para su entendimiento y luego se agrupan, obteniendo la solucin total del proyecto. Generalmente se parte del enunciado que se ha delimitado en el paso anterior. Como recomendacin general, antes de pasar a la elaboracin del lenguaje ensamblador, hgase las siguientes preguntas: El diagrama de flujo tiene continuidad y lgica? Cumplo con las normas de elaboracin de un diagrama de flujo, vistas en clases anteriores? ING MARLON CANALES EGAS HERRAMIENTAS DE PROGRAMACIN MPLAB Pgina 2

ESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS

ARQUITECTURA DE PROCESADOR I

El diagrama de flujo cumple con el enunciado?

Si estas preguntas son afirmativas, bien, vayamos al paso 3. En caso contrario debemos corregirlo, hasta lograr que funcione como se exige o como lo deseamos. Paso 3. Elaboracin del Lenguaje Ensamblador: Si usted ha elaborado correctamente el diagrama de flujo, este paso ser sencillo de llevar a cabo, recordando que a cada bloque que se haya colocado en el diagrama le corresponder un conjunto de instrucciones que salen exclusivamente de las 35 disponibles que traen los microcontroladores de la familia 16F con la que se trabaja en este curso. Su documentacin previa, experiencia, inventiva e ingenio le permitirn combinarlas para que realicen la misma funcin expresada en el diagrama de flujo. Se deben tener presente las diferentes rutinas ya estudiadas y vistas a lo largo del curso, as como otras rutinas estndares que existen para el uso en diferentes procedimientos, tales como: Rutinas matemticas, manejo de LCD, comunicaciones, conversiones entre cdigos, etc. Veamos un diagrama de flujo de la metodologa de resolucin de problemas:

ING MARLON CANALES EGAS

HERRAMIENTAS DE PROGRAMACIN MPLAB

Pgina 3

ESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS

ARQUITECTURA DE PROCESADOR I

EJERCICIO1: ENUNCIADO DEL PROBLEMA Dado el siguiente circuito, Realice un programa que permita explorar el estado del bit RA3. Si RA3 es uno, se debe mostrar en el display el nmero 5. Caso contrario se debe mostrar el nmero3.

22nF

U1
16 15 4 OSC1/CLKIN OSC2/CLKOUT MCLR RA0 RA1 RA2 RA3 RA4/T0CKI RB0/INT RB1 RB2 RB3 RB4 RB5 RB6 RB7 PIC16F84A 17 18 1 2 3 6 7 8 9 10 11 12 13

4MHZ

22nF 10k

10k

U2
7 1 2 6 4 5 3 A B C D BI/RBO RBI LT 7448 QA QB QC QD QE QF QG 13 12 11 10 9 15 14

SOLUCIN: Paso 1. Enunciado y delimitacin del Hardware: si el enunciado y el hardware ya se nos ha proporcionado, saltaremos este paso. Paso 2. Diagrama de Flujo:
INICIO

CONFIGURAR PUERTO A , B

SI RA3 =1? NO B00110000 > PB B01010000 > PB

ING MARLON CANALES EGAS

HERRAMIENTAS DE PROGRAMACIN MPLAB

Pgina 4

ESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS

ARQUITECTURA DE PROCESADOR I

Paso 3. Del Diagrama de Flujo al Lenguaje Ensamblador: Si tenemos el Diagrama de Flujo bien diseado, lo dems es Carpintera, veamos:

List Include org goto 00H INICIO

P=16F84A P16F84A.inc

; uso del microcontrolador PIC 16F84A ; incluye las libreras del microcontrolador ; inicio del programa ; salto a la etiqueta INICIO

; Bloque 1, CONFIGURACIN DE PUERTOS: INICIO bsf bsf clrf bcf STATUS,5 TRISA,3 TRISB STATUS,5 ; Ir a banco 1 ; RA3 se configura como entrada ; RB7 a RB4 como salida ; Regresar al banco 0

; Bloque 2, VERIFICACIN DEL RA3: EXPLORA btfss goto goto PORTA,3 TRES CINCO ; RA3= 1? ; RA3 =0. Mostrar 3 en display ; Este paso podemos obviarlo.

; Bloque 3, ESCRIBIR EL NUMERO 5: CINCO movlw B01010000 Movwf PORTB Goto EXPLORA ; RA3=1. Mostrar 5 en display ; 5Display ; Seguimos explorando el Bit RA3

; Bloque 4, ESCRIBIR EL NUMERO 3: TRES movlw B00110000 movwf PORTB goto end EXPLORA ; RA3=0. Mostrar 3 en display ;3Display ;Seguimos explorando el Bit RA3

Nota: Otra forma de hacer los bloques 3 y 4 sera la siguiente: Bloque 3: bcf PORTB,7 bsf PORTB,6 bcf PORTB,5 bsf PORTB,4 Bloque 4: bcf PORTB,7 bcf PORTB,6 bsf PORTB,5 bsf PORTB,4

Observe la conexin del puerto B con el display. ING MARLON CANALES EGAS HERRAMIENTAS DE PROGRAMACIN MPLAB Pgina 5

ESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS

ARQUITECTURA DE PROCESADOR I

EJERCICIO2 Dado el siguiente circuito, Realice un programa que permita mostrar en el display la letra C, si la entrada est en nivel bajo la letra U si la entrada est en nivel alto.

22nF

U1
16 15 4 OSC1/CLKIN OSC2/CLKOUT MCLR RA0 RA1 RA2 RA3 RA4/T0CKI RB0/INT RB1 RB2 RB3 RB4 RB5 RB6 RB7 PIC16F84A 17 18 1 2 3 6 7 8 9 10 11 12 13 10k

4MHZ

22nF 10k

SOLUCIN: Paso 1. Enunciado y delimitacin del Hardware: Tenemos el enunciado pero el hardware no est del todo claro. Como no se especifica que bit del microcontrolador controla a cul segmento del display, debemos especificarlo. Adems no se especifica que display vamos a utilizar, no sabemos si es nodo comn o ctodo comn. Por lo tanto lo asignaremos a nuestro criterio. Eligiendo un ctodo comn tendremos: Bits de microcontrolador

RB7

RB6

RB5

RB4

RB3

RB2

RB1

RB0

Segmentos del Display Dp 0 0 g 0 0 f 1 1 e 1 1 d 1 1 c 0 1 b 0 1 a 1 0 LETRA Valor Hex C U 39H 3EH

La identificacin de los segmentos de un display a nivel internacional es la siguiente:

ING MARLON CANALES EGAS

HERRAMIENTAS DE PROGRAMACIN MPLAB

Pgina 6

ESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS

ARQUITECTURA DE PROCESADOR I

Paso 2. Diagrama de Flujo:

Paso 3. Del Diagrama de Flujo al Lenguaje Ensamblador: List Include org goto 00H INICIO ; Bloque 1: INICIO bsf bsf clrf bcf STATUS,5 TRISA,1 TRISB STATUS,5 ; Ir a banco 1 ; RA1 se configura como entrada ; Todo el Puerto B como salida ; Regresar al banco 0 P=16F84A P16F84A.inc ; Encabezado

; Bloque 2: EXPLORA btfss goto goto PORTA,1 CCC UUU ; RA1= 1? ; RA1 =0. Mostrar C en display ; Este paso podemos obviarlo.

; Bloque 3: UUU movlw 3EH movwf PORTB goto EXPLORA ; Bloque 4: CCC movlw 39H movwf PORTB goto end ING MARLON CANALES EGAS HERRAMIENTAS DE PROGRAMACIN MPLAB Pgina 7 EXPLORA ; RA1=0. Mostrar C en display ; 39HDisplay ; Seguimos explorando el Bit RA1 ; RA1=1. Mostrar U en display ; 3EHDisplay ; Seguimos explorando el Bit RA1

ESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS

ARQUITECTURA DE PROCESADOR I

EJERCICIO3. Disee un contador de 8 bits, que se incrementa cada vez que se pulsa P (RA3). Visualice el resultado por el puerto B. Activar un led (RA0), cuando el contador llegue a D125 y apagarlo cuando llegue a D221. Repetir el ciclo. SOLUCIN: Paso 1. Enunciado y delimitacin del Hardware: Tenemos el enunciado y parte del hardware definido. Se ha asignado a RA3 como un sensor de entrada (Pulsador) Se ha asignado a RA0 como un elemento de salida (Led) Se pide al puerto B que muestre el valor de un contador (Son ocho bits), por lo que es un elemento de salida (8 leds) Cmo quedara delimitado el hardware? Asignaremos la lgica del Pulsador (Lgica negativa): Si P es presionado, RA3=0 Si P no es presionado, RA3=1.

Si usted desea trabajar con lgica positiva, no hay problema, debe reconfigurar el circuito del pulsador.

22nF

U1
16 15 4 OSC1/CLKIN OSC2/CLKOUT MCLR RA0 RA1 RA2 RA3 RA4/T0CKI RB0/INT RB1 RB2 RB3 RB4 RB5 RB6 RB7 PIC16F84A 17 18 1 2 3 6 7 8 9 10 11 12 13 330

4MHZ

22nF 10k

10k

ING MARLON CANALES EGAS

HERRAMIENTAS DE PROGRAMACIN MPLAB

Pgina 8

ESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS

ARQUITECTURA DE PROCESADOR I

Listo, tenemos el cascarn vaco del proyecto. Ahora vamos a darle inteligencia.

Paso 2. Diagrama de Flujo: Debemos usar un registro que lleve la cuenta (Contador de 8 bits) por lo que debemos declararlo en el paso 3. Veamos el diagrama de flujo:

Paso 3. Del Diagrama de Flujo al Lenguaje Ensamblador: Recuerde la declaracin el registro CONTADOR:

List Include

P=16F84A P16F84A.inc ; Encabezado ;Bloque 1: (Declaraciones)

CONTADOR equ org goto 00H INICIO

20H

; Declaramos el Registro

ING MARLON CANALES EGAS

HERRAMIENTAS DE PROGRAMACIN MPLAB

Pgina 9

ESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS

ARQUITECTURA DE PROCESADOR I

; Bloque 2: INICIO bsf bsf bcf clrf bcf STATUS,5 TRISA,3 TRISA,0 TRISB STATUS,5 ; Bloque 3: clrf clrf CONTADOR PORTB ; Bloque 4: movf CONTADOR,0 ; Bloque 5: CUENTA NO btfsc goto goto PORTA,3 CUENTA SI ;RA3= 1? Se ha pulsado P? ;No. Seguimos explorando ;Si. Vamos al bloque 6 ; Bloque 6 Y 7: SI incf movf CONTADOR,1 CONTADOR,0 ;Si. Contador= Contador + 1 ;CONTADORW ; WPORTB ;CONTADORW ; WPORTB ;Inicializamos el contador ;Limpiamos el Puerto B ;Ir a banco 1 ;RA1 se configura como entrada ;RA0 como salida ;Todo el Puerto B como salida ;Regresar al banco 0

movwf PORTB

movwf PORTB ; Bloque 8: sublw .125 btfss goto bsf goto STATUS,2 VALOR2 PORTA,0 EXPLORA ; Bloque 9: VALOR2 movf CONTADOR

;Contador=125? W =Contador. ;Z=1? ;Ir a preguntar si Contador=221 ;Contador=125, Led=ON ;Volvemos a explorar el Pulsador ; CONTADORW ;Contador=221? ;Z=1? ; Volvemos a explorar el Pulsador ;Contador=221, Led=OFF ;Volvemos a explorar el Pulsador

sublw .221 btfss goto bcf goto end ING MARLON CANALES EGAS STATUS,2 EXPLORA PORTA,0 EXPLORA

HERRAMIENTAS DE PROGRAMACIN MPLAB

Pgina 10

ESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS

ARQUITECTURA DE PROCESADOR I

PROBLEMA1 Disee un control de nivel para un tanque. Al pulsar INICIO, se activa la bomba B1. La bomba permanece encendida hasta alcanzar el nivel mximo, mediante el cual se apagar. Se debe abrir la vlvula de vaciado. La bomba (B1) se volver a activar de forma automtica cuando se alcance el nivel mnimo procediendo a cerrar la vlvula de vaciado, hasta que alcance el nivel mximo, repitiendo el ciclo de forma automtica sin necesidad de volver a pulsar INICIO.

SOLUCIN

Paso 1. Enunciado y delimitacin del Hardware: Tenemos el enunciado pero el hardware debemos delimitarlo. Para lograr esta tarea debemos asignar los pines de control de Entrada y de salida, con la finalidad de saber qu vamos a controlar y quin nos dar la informacin. Debemos identificar cuales elementos son entrada y cuales salida: ENTRADA Sensor Mximo Sensor Mnimo Pulsador INICIO Qu pin Asignamos? SALIDA RA0 RA1 RA2 Bomba B1 Vlvula Vaciado Qu pin Asignamos? RB0 RB1

Y si quiero asignar otros pines? Perfecto, queda a libre eleccin.

Paso 2. Diagrama de Flujo:

ING MARLON CANALES EGAS

HERRAMIENTAS DE PROGRAMACIN MPLAB

Pgina 11

ESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS

ARQUITECTURA DE PROCESADOR I

Veamos el diagrama de flujo:

ING MARLON CANALES EGAS

HERRAMIENTAS DE PROGRAMACIN MPLAB

Pgina 12

ESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS

ARQUITECTURA DE PROCESADOR I

Paso 3. Del Diagrama de Flujo al Lenguaje Ensamblador: List Include org goto 00H INICIO ; Bloque 1: INICIO bsf bsf bsf bsf bcf bcf bcf STATUS,5 TRISA,0 TRISA,1 TRISA,2 TRISB,0 TRISB,1 STATUS,5 ;Ir a banco 1 ;RA0 entrada. Sensor mximo. ;RA1 entrada. Sensor mnimo. ;RA2 entrada. Pulsador. ;RB0 salida. Bomba B1 ;RB1 salida. Vlvula Vaciado. ;Regresar al banco 0 P=16F84A P16F84A.inc ; Encabezado

; Bloque 2: bcf PORTB,0 ;Bomba=OFF

; Bloque 3: bcf PORTB,1 ; Vlvula Vaciado=OFF

; Bloque 4: EXPLORA btfsc goto PORTA,2 EXPLORA ;Se ha pulsado INICIO? ;No. Seguimos explorando

; Bloques 5 y 6: REPITE bsf bcf PORTB,0 PORTB,1 ;Se puls INICIO. Bomba=ON ;Vlvula=OFF

; Bloque 7: MAXIMO btfsc goto PORTA,0 MAXIMO ;Se ha llegado al mximo? ;No. Seguimos explorando

; Bloque 8: SIMAX bcf PORTB,0 ;Nivel Mximo. Bomba=OFF.

; Bloque 9: bsf MINIMO btfsc goto goto End ING MARLON CANALES EGAS HERRAMIENTAS DE PROGRAMACIN MPLAB Pgina 13 PORTB,1 PORTA,1 MINIMO REPITE ;Vlvula=ON ;Se ha llegado al mnimo? ;No. Seguimos explorando ;Nivel mnimo, repetimos ciclo.

ESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS

ARQUITECTURA DE PROCESADOR I

PROBLEMA2 Disee un control de nivel para un tanque. Se tiene un interruptor selector de MODO. Si MODO es manual, las bombas se activan sin importar el nivel del tanque subterrneo. Si MODO es automtico, la activacin de las bombas depender de: Si el nivel del agua est por debajo del nivel mnimo, se activar la bomba 1 hasta que se alcance el nivel Mximo, y proceder a apagarse. Si el nivel del agua est por encima del nivel mnimo, pero por debajo del nivel mximo, se activar la bomba 2 hasta que se alcance el nivel Mximo y proceder a apagarse. Se debe monitorear si ha cambiado el MODO. SOLUCIN:

Paso 1. Enunciado y delimitacin del Hardware: Tenemos el enunciado, sin embargo debemos delimitar el hardware. Para lograr esta tarea debemos asignar los pines de control de Entrada y de salida, con la finalidad de saber qu vamos a controlar y quin nos dar la informacin. Debemos identificar cuales elementos son entrada y cuales salida:

ENTRADA Interruptor INICIO Sensor Mximo Sensor Mnimo

Qu pin Asignamos? RA0 RA1 RA2

SALIDA Bomba B1 Bomba B2

Qu pin Asignamos? RB0 RB1

Y si quiero asignar otros pines? Perfecto, queda a libre eleccin.

ING MARLON CANALES EGAS

HERRAMIENTAS DE PROGRAMACIN MPLAB

Pgina 14

ESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS

ARQUITECTURA DE PROCESADOR I

Paso 2. Diagrama de Flujo:

ING MARLON CANALES EGAS

HERRAMIENTAS DE PROGRAMACIN MPLAB

Pgina 15

ESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS

ARQUITECTURA DE PROCESADOR I

Paso 3. Del Diagrama de Flujo al Lenguaje Ensamblador:

list include org goto INICIO 00H INICIO

P=16F84A P16F84A.INC

bsf clrf

STATUS,5 TRISB

movlw 1FH movwf TRISA bcf clrf MODO btfsc goto MANUAL bsf bsf goto AUTO btfsc goto btfsc goto MODO2 bsf bcf UNO btfss goto DOS bcf bcf goto MODO1 bcf bsf goto end STATUS,5 PORTB PORTA,0 AUTO PORTB,0 PORTB,1 MODO PORTA,1 DOS PORTA,2 MODO1 PORTB,0 PORTB,1 PORTA,1 UNO PORTB,0 PORTB,1 MODO PORTB,0 PORTB,1 UNO ;Bomba 1=OFF ;Bomba 2=ON ;Bomba 1=OFF ;Bomba 2=OFF ;Bomba 1=ON ;Bomba 2=OFF ;MXIMO ALCANZADO ;MNIMO ;MXIMO? ;No. Modo manual. Bomba 1= ON ;Bomba 2=ON ;MODO AUTO?

ING MARLON CANALES EGAS

HERRAMIENTAS DE PROGRAMACIN MPLAB

Pgina 16

ESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS

ARQUITECTURA DE PROCESADOR I

3. CONCLUSIONES. Es necesario e imprescindible contar con los procedimientos de programacin ya que ayuda a no cometer errores, y si lo hubiera errores se puede supervisar cada una de las etapas. En la edicin del cdigo se recomienda llevar el orden como se muestra en los ejemplos a fin de hacer la supervisin y seguimiento del diagrama de flujo. 4. EJERCICIOS PROPUESTOS. 1 2 3 4 Por el puerto B se obtiene el dato del puerto A Por el puerto B se obtiene el dato del puerto A complementado Por el puerto B se obtiene el dato del puerto A multiplicado por 3 unidades. Por el puerto B se obtiene el dato del puerto A intercambiado los nibbles alto y bajo. 5 Por el puerto B se obtiene el doto del puerto A desplazando un bit hacia la izquierda, por la derecha entra xx110011. 6 7 8 Por el puerto B rotar hacia la izquierda un bit activado en 1 Por el puerto B rotar hacia la derecha dos bits activados 11 Escribir en un display de 7 segmentos sin utilizar decodificador ascendente entre 0 F. 9 Por el puerto B visualizar un contador binario ascendente un valor un 1 ejm. A= xxx11001 entonces B=

10 Por el puerto B visualizar un contador binario descendente 11 Mediante un display alfanumrico mostrar en forma descendente las letras del alfabeto de A a Z. 12 Por el puerto B mostrar las siguientes operaciones portB.0 = portC.0 and portC.1 portB.1= portC.2 or portC.3 portB.2 = portC.4 xor portC.5

ING MARLON CANALES EGAS

HERRAMIENTAS DE PROGRAMACIN MPLAB

Pgina 17

ESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS

ARQUITECTURA DE PROCESADOR I

5. BIBLIOGRAFA JOS M. ANGULO USATEGUI, JOS : Los LUIS GUTIERREZ TEMIO. a fondo. Espaa,

Arquitectura de Microprocesadores MORRIS Prentice

Pentium

Thompson Editores Spain Paraninfo, S.A. 2003. MANO, M. Arquitectura de Computadores. Mxico,

Hall Hispanoamericana, S.A., 1985.

SITIOS WEB VISITADOS: http://www.monografias.com/trabajos55/microprocesadores-ciscrisc/microprocesadores-cisc-risc.shtml. http://www.zator.com/Hardware/H3_2.htm. http://www.azc.uam.mx/publicaciones/enlinea2/num1/1-2.htm. http://usuarios.lycos.es/aortegon/arquitectura.htm

ING MARLON CANALES EGAS

HERRAMIENTAS DE PROGRAMACIN MPLAB

Pgina 18

Vous aimerez peut-être aussi