Informe de Programacion

45
INFORME DE PROGRAMACION PRESENTADO POR: EFREN ANTONIO PORRAS MONTILLA JOSE VICENTE GARCIA PUENTES FICHA: 396991 CENTRO DE INDUSTRIA Y SERVICIOS DEL META SENA VILLAVICENCIO META 2013

Transcript of Informe de Programacion

INFORME DE PROGRAMACION

PRESENTADO POR:

EFREN ANTONIO PORRAS MONTILLA

JOSE VICENTE GARCIA PUENTES

FICHA: 396991

CENTRO DE INDUSTRIA Y SERVICIOS DEL META SENA

VILLAVICENCIO – META

2013

INFORME DE PROGRAMACION

PRESENTADOR POR:

EFREN ANTONIO PORRAS MONTILLA

JOSE VICENTE GARCIA PUENTES

PRESENTADO A:

IVAN DARIO DUARTE BRITO

CENTRO DE INDUSTRIA Y SERVICIOS DEL META

VILLAVICENCIO – META

2013

TABLA DE CONTENIDO

Portada

Contraportada

Tabla de contenido

Objetivo General

Objetivos específicos

Introducción

Marco teórico

Desarrollo de la Practica

Lista de materiales

Conclusiones

Bibliografía

OBJETIVO GENERAL

Diseñar la programación de los circuitos de un auto fantástico, contador de 0 a 99, de 0 a 999 multiplex y 7 segmentos para generar el código fuente en lenguaje ensamblador y de ahí compilarlo, depurarlo, guardarlo, cargarlo y ejecutarlo utilizando para ello el Entorno de Desarrollo Integrado MPLAB y demostrar su funcionamiento en proteus.

Implementar y demostrar a través de circuitos funcionales las capacidades básicas de los Microcontroladores, desarrollando una solución acertada a los problemas planteados. Sustentar el desarrollo de la práctica ante el profesor.

OBJETIVOS ESPEFICOS

Aprender a programar los circuitos que se fueron propuestos en la clase utilizando el tutorial asembler de el pic 16f84a.

Manejar adecuadamente los programas mplab y proteus.

Analizar cada uno de los circuitos para programarlo adecuadamente.

Implementar y demostrar a través de circuitos funcionales las capacidades básicas de los Microcontroladores, desarrollando una solución acertada a los problemas planteado

INTRODUCCION

En este informe se presentan las conclusiones generales de la experiencia vivida

en la Práctica de programación, profundizando los temas teóricos básicos tratados

en clase de Microprocesadores y Microcontroladores, primero iniciaremos con el

diseño de un programa de el auto fantástico, contador de 0 a 99, de 0 a 999

multiplex y 7 segmentos y demostrar cada uno de sus funcionamientos.

MARCO TEORICO

El microcontrolador es uno de los logros más sobresalientes del siglo XX. Hoy en

día, existen casi 15,000 millones de PIC’s de alguna clase en uso. Para la mitad del

siglo próximo, es posible que el microcontrolador típico tenga mayor poder de

cómputo que las supercomputadoras más veloces de hoy.

Actualmente los podemos encontrar en cualquier sitio: microondas, frigoríficos,

coches, aviones, mandos a distancia, radios, televisores, etc.

El objetivo principal de esta guía consiste en que el lector comprenda el

funcionamiento de los microcontroladores y sea capaz de emplearlos en situaciones

que requieren una solución práctica.

Dentro de este manual es posible encontrar información acerca del origen de esta

línea de microcontroladores PIC, así como las diferentes familias que integran la

amplia gama de dispositivos PIC Micro.

Un aspecto fundamental es la explicación clara y explícita de la operación del

microcontrolador PIC16F84A, dispositivo al cual está enfocado este manual y del

cual se tratan temas relacionados con sus características, su arquitectura, la

organización de memoria y los diversos periféricos que posee dicho PIC.

En lo que se refiere a la programación de este dispositivo tan popular, se ha

desarrollado un pequeño tutorial acerca del MPLAB, el cual es el programa

compilador y simulador más popular para este propósito. De la misma forma, para

efectos de facilitar la grabación de un programa en el PIC, se anexó una guía de

los grabadores de microcontroladores NOPPP y PonyProg2000. El primero de ellos

consiste en un programa muy elemental, mientras que el segundo es un software

que soporta la programación de varios dispositivos.

Finalmente, se considera que la práctica es un factor fundamental para la

implementación de sistemas mediante microcontroladores, es por esto que se ha

incluido dentro de esta obra, una sección de prácticas que ayudarán al usuario a

familiarizarse con el manejo del PIC16F84A.

MICROCONTROLADORES

¿Qué es un microcontrolador?

El microcontrolador se emplea en aplicaciones concretas y no es universal como el

microprocesador. Un microcontrolador es un circuito integrado que contiene una

Unidad Central de Proceso (CPU) y una serie de recursos internos en un solo

encapsulado. El CPU permite que el microcontrolador pueda ejecutar instrucciones

almacenadas en una memoria. Los recursos internos son memoria RAM, memoria

ROM, memoria EEPROM, puerto serie, puertos de entrada/salida, temporizadores,

comparadores, etc. Se puede decir que es una evolución del microprocesador, al

añadirle a este último las funciones que antes era necesario situar externamente

con otros circuitos. El ejemplo típico esta en los puertos de entrada/salida y en la

memoria RAM, en los sistemas con microprocesadores es necesario desarrollar

una lógica de control y unos circuitos para implementar las funciones anteriores,

con un microcontrolador no hace falta porque lo lleva todo incorporado, además en

el caso de tener que ampliar el sistema ya ofrece recursos que facilitan esto. En

resumen, un microcontrolador es un circuito integrado independiente, que no

necesita memoria ni puertos externos pues los lleva en su interior, que facilita la

tarea de diseño y reduce el espacio, traduciéndose todo a una aplicación final más

económica y fiable.

DIFERENCIA ENTRE MICROCONTROLADOR Y MICROPROCESADOR

En el diseño de un sistema con un microprocesador, además del procesador y

dependiendo del circuito, se requiere de algunos circuitos integrados adicionales,

como por ejemplo: memorias RAM para almacenar los datos temporalmente y

memorias ROM para almacenar el programa que se encargará del proceso del

equipo, un circuito integrado para los puertos de entrada y salida y finalmente un

decodificador de direcciones.

Un microcontrolador es un solo circuito integrado que contiene todos los elementos

electrónicos que se utilizaban para hacer funcionar un sistema basado con un

microprocesador; es decir contiene en un solo integrado la Unidad de Proceso, la

memoria RAM, memoria ROM, puertos de entrada, salida y otros periféricos.

Historia de los microcontroladores:

En 1965 GI formó una división de microelectrónica, destinada a generar las

primeras arquitecturas viables de memoria EPROM y EEPROM. De forma

complementaria GI Microelectronics División fue también responsable de

desarrollar una amplia variedad de funciones digitales y analógicas en las familias

AY3-xxxx y AY5-xxxx.

GI también creó un microprocesador de 16 bit, denominado CP1600, a principios

de los 70’s. Este fue un microprocesador razonable, pero no particularmente bueno

manejando puertos de e/s. Alrededor del año 1975 GI diseño un controlador de

interfase periférico (PIC) para algunas aplicaciones muy específicas. Fue diseñado

para ser muy rápido, además de ser un controlador de e/s para una máquina de 16

bits pero sin necesitar una gran cantidad de funcionalidades, por lo que su lista de

instrucciones fue pequeña.

No es de extrañar que la estructura diseñada en 1975 es, sustancialmente, la

arquitectura del actual PIC16C5x. Además, la versión de 1975 fue fabricada con

tecnología NMOS y sólo estaba disponible en versiones de ROM de máscara, pero

seguía siendo un buen pequeño microcontrolador. El mercado, no obstante, no

pensó así y el PIC quedó reducido a ser empleado únicamente por grandes

fabricantes.

PIC16F84A

El microcontrolador PIC16F84A posee 18 pines, de los cuales 13 son usados para

Entrada/Salida. Además, cuenta con un Timer/Contador interno y 4 fuentes de

interrupción a la CPU. En la Figura 1 se presenta un diagrama con su apariencia

externa. Cada uno de los pines que lo componen se describen a continuación.

BANCOS

La primera es la de RFS (Registros de Funciones Especiales) que controlan el funcionamiento del dispositivo. Estos se emplean para el control del funcionamiento de la CPU y de los periféricos. El segundo área (68 bytes SRAM) es la de RGP (Registros de Propósito General), y puede accederse a ellos tanto directa como indirectamente haciendo uso del registro FSR.

Banco 0:

Este banco está formado por 80 bytes, desde la posición 00 hasta la 4Fh (de la 0 a la 79).

El área RFS consta de 12 registros que serán utilizados por funciones especiales del microcontrolador. Comienza en la dirección 00h y termina en la 0Bh, es decir, de la 0 a la 11.

El Área RGP consta de 68 registros de memoria RAM que serán utilizados para almacenar datos temporales requeridos por los programas. Comienza en la dirección 0Ch y termina en la posición 4Fh (de la 12 a la 79). Esta parte es la memoria de registros de propósito general.

Banco 1:

Este banco tiene las mismas dimensiones que el anterior, pero su uso es menor, ya que no tiene banco para registros de propósito general. Solamente tiene una sección de registros especiales que van de la posición 80h a la 8Bh ( de la 128 a la 139)

35 instrucciones

Las 35 instrucciones ó mnemónicos de la gama media de Microchip las encontraremos resumidas en la siguiente tabla. w es el acumulador, f representa un registro cualquiera y C, DC, Z los flags del registro STATUS

Instrucciones orientadas a registros

MNEMÓNICO

OPERANDOS DESCRIPCIÓN CÓDIGO OP BANDERAS NCIC NOTAS

ADDWF f,d w + f → d 00 0111 dfff ffff C, DC, Z 1 1,2

ANDWF f,d w AND f → d 00 0101 dfff ffff Z 1 1,2

CLRF f 00 h → f 00 0001 1fff ffff Z 1 2

CLRW - 00 h → w 00 0001 0xxx

xxxx Z 1 -

COMF f,d Complemento de f → d 00 1001 dfff ffff Z 1 1,2

DECF f,d f - 1 → d 00 0011 dfff ffff Z 1 1,2

DECFSZ f,d f - 1 → d (si es 0 salta) 00 1011 dfff ffff Ninguna 1(2) 1,2,3

INCF f,d f + 1 → d 00 1010 dfff ffff Z 1 1,2

INCFSZ f,d f + 1 → d (si es 0 salta) 00 1111 dfff ffff Ninguna 1(2) 1,2,3

IORWF f,d w OR f → d 00 0100 dfff ffff Z 1 1,2

MOVF f,d f → d 00 1000 dfff ffff Z 1 1,2

MOVWF f w → f 00 0000 1fff ffff Ninguna 1 -

NOP - No operación 00 0000 0xx0

0000 Ninguna 1 -

RLF f,d Rota f izq por carry → d 00 1101 dfff ffff C 1 1,2

RRF f,d Rota f dcha por carry → d 00 1100 dfff ffff C 1 1,2

SUBWF f,d f - w → d 00 0010 dfff ffff C,DC,Z 1 1,2

SWAPF f,d Intercambia nibbles de f → d 00 1110 dfff ffff Ninguna 1 1,2

XORWF f,d w XOR f → d 00 0110 dfff ffff Z 1 1,2

Instrucciones orientadas a bit

MNEMÓNICO

OPERANDOS DESCRIPCIÓN CÓDIGO OP BANDERAS NCIC NOTAS

BCF f,b Pone a 0 bit b de registro f 01 00bb bfff ffff Ninguna 1 1,2

BSF f,b Pone a 1 bit b de registro f 01 01bb bfff ffff Ninguna 1 1,2

BTFSC f,b Salto si bit b de reg.f es 0 01 10bb bfff ffff Ninguna 1(2) 3

BTFSS f,b Salto si bit b de reg.f es 1 01 11bb bfff ffff Ninguna 1(2) 3

Instrucciones con literales y de control

MNEMÓNICO

OPERANDOS DESCRIPCIÓN CÓDIGO OP BANDERAS NCIC NOTAS

ADDLW k w + k → w 11 111x kkkk

kkkk C,DC,Z 1 -

ANDLW k w AND k → w 11 1001 kkkk

kkkk Z 1 -

CALL k Llamada a subrutina k 10 0kkk kkkk

kkkk Ninguna 2 -

CLRWDT - Borra temporizador del WDT 00 0000 0110

0100 TO,PD 1 -

GOTO k Ir a dirección k 10 1kkk kkkk

kkkk Ninguna 2 -

IORLW k w OR k → w 11 1000 kkkk

kkkk Z 1 -

MOVLW k k → w 11 00xx kkkk

kkkk Ninguna 1 -

RETFIE - Retorno de una interrupción 00 0000 0000

1001 Ninguna 2 -

RETLW k Retorno con k en w 11 01xx kkkk

kkkk Ninguna 2 -

RETURN - Retorno de una subrutina 00 0000 0000

1000 Ninguna 2 -

SLEEP - Modo Standby 00 0000 0110

0011 TO, PD 1 -

SUBLW k k - w → w 11 110x kkkk

kkkk C,DC,Z 1 -

XORLW k w XOR k → w 11 1010 kkkk

kkkk Z 1 -

Notas:

1. Al modificar un registro de E/S con una operación sobre él mismo (por ejemplo MOVF PORTB,1), el valor utilizado es el que se halle presente en las patillas del PORTB. Por ejemplo, si el biestable tiene un "1" para una patilla configurada como entrada y se pone a nivel bajo desde el exterior, el dato se volverá a escribir como "0".

2. Si se ejecuta esta instrucción sobre el TMR0 y d=1, se borrará el conteo de la preescala asignada (preescaler), si está asignado al TMR0, pero no se borrará la preescala asignada en OPTION_REG, que controla Timer0.

3. Si se modifica el Contador de Programa PC o una condición de prueba es verdadera, la instrucción requiere dos ciclos máquina. El segundo ciclo se ejecuta como un NOP.

En las tablas siguientes, por orden alfabético, veremos todos los datos de interés sobre las 35 instrucciones.

Algunos son de poca importancia. En cambio otros, como la operación, la sintaxis, el comportamiento del registro STATUS y los ejemplos, son imprescindibles para comprender su funcionamiento.

Aparte de estas 35 instrucciones, hay otro tipo de instrucciones usadas para simplificar la tarea de programar, y que generalmente están formadas por dos instrucciones básicas. Estas no las trataremos a fondo, pero las veremos en un resumen después de comprender el funcionamiento de las 35 instrucciones básicas.

INSTRUCCIONES MÁS USADAS

A continuación se presentan las instrucciones más frecuentemente usadas en los programas. Se recomienda revisar el datasheet si se requieren más instrucciones o se desean ver más detalles.

BCF F,B: Escribe un 0 en el bit B del registro F.

BSF F,B: Escribe un 1 en el bit B del registro F.

BTFSC F,B: Lee el bit B del registro F. Si B está en 0, se salta la siguiente línea de código. Si B está en 1, no hace nada extra y continúa ejecutando la siguiente línea.

BTFSS F,B: Lee el bit B del registro F. Si B está en 1, se salta la siguiente línea de código. Si B está en 0, no hace nada extra y continúa ejecutando la siguiente línea.

CALL K: Llama a una subrutina (etiqueta) con el nombre K. (requiere un RETURN al final de la subrutina).

RETURN: Retorna desde una subrutina.

RETFIE: Retorna desde una interrupción.

GOTO K: El programa salta a la etiqueta con el nombre K. No se debe poner RETURN en este caso.

MOVLW A: Se carga el registro W(Working Register) con el contenido del literal A (un número escrito en cualquier formato, ya sea decimal, hexadecimal o binario)

MOVWF F: Copia el contenido del registro W al registro F

ADDLW A: Sumar W con un número A. El resultado queda en W. PIC16F84A

ADDWF F,D: Sumar W con F. Esta instrucción suma el contenido de un registro específico F al contenido del registro W donde F puede ser un registro cualquiera con un determinado valor. Si D = 1, el resultado se graba en F, si es 0, se graba en W

SUBLW A: Resta W de A. Resta el contenido del registro W de un literal A, el resultado queda en W.

SUBWF F,D: Resta W de F. Resta el contenido del registro W del registro F. Si D = 1, el resultado se graba en F, si es 0, se graba en W

DECFSZ F: Decrementa el registro F en 1, salta la siguiente línea si el resultado de eso es cero.

INCFSZ F: Aumenta el registro F en 1, salta la siguiente línea si el resultado de eso es cero. (overflow).

DESARROLLO DE LA PRÁCTICA

1. Al tener los programas de MPLAB y PROTEUS(ISIS) en el computador iniciamos realizando nuestro primer proyecto del auto fantástico. En las

siguientes imágenes podemos darnos cuenta el procedimiento que se realizo durante la programación y simulación del proyecto.

MONTAJE DEL AUTO FANTASTICO EN EL PROGRAMA DE PROTEUS(ISIS)

MPLAB EMPEZAR HACER NUESTRA PROGRAMACION

Al haber terminado la programación del circuito la compilamos y luego le ponemos la demora y al tener esto listo podemos ver la simulación en proteus(isis)

la demora de nuestra programación la configuramos a la velocidad mas apropiada a la vista del ojo humano

Aquí se ve la simulación en proteus al haber terminado la programación del

circuito.

PROGRAMACION

;Presentado por Jose Vicente Garcia Puentes y Efren Porras

;Programacion de (Auto Fantastico).

;******************************************************************************

LIST P=16F84A,

include <p16f84A.inc>

__CONFIG 0X3FF9

PDel0 EQU 0X10

PDel1 EQU 0X11

ORG 0

BSF STATUS,5

MOVLW B'00000'

MOVWF TRISA

MOVLW B'00000000'

MOVWF TRISB

BCF STATUS,5

CLRF PORTB

INICIO

BSF PORTB,0

BCF STATUS,0

REPETIR

DERECHA

CALL DEMORA

RLF PORTB,1

BTFSS PORTB,7

GOTO DERECHA

IZQUIERDA

CALL DEMORA

RRF PORTB,1

BTFSS PORTB,0

GOTO IZQUIERDA

GOTO REPETIR

GOTO INICIO

;-------------------------------------------------------------

; Generado con PDEL ver SP r 1.0 el 14/05/2013 Hs 09:03:36 p.m.

; Descripcion: Delay 400000 ciclos

;-------------------------------------------------------------

DEMORA movlw .147 ; 1 set numero de repeticion (B)

movwf PDel0 ; 1 |

PLoop1 movlw .247 ; 1 set numero de repeticion (A)

movwf PDel1 ; 1 |

PLoop2 clrwdt ; 1 clear watchdog

PDelL1 goto PDelL2 ; 2 ciclos delay

PDelL2 goto PDelL3 ; 2 ciclos delay

PDelL3 goto PDelL4 ; 2 ciclos delay

PDelL4 clrwdt ; 1 ciclo delay

decfsz PDel1, 1 ; 1 + (1) es el tiempo 0 ? (A)

goto PLoop2 ; 2 no, loop

decfsz PDel0, 1 ; 1 + (1) es el tiempo 0 ? (B)

goto PLoop1 ; 2 no, loop

PDelL5 goto PDelL6 ; 2 ciclos delay

PDelL6 goto PDelL7 ; 2 ciclos delay

PDelL7 goto PDelL8 ; 2 ciclos delay

PDelL8 goto PDelL9 ; 2 ciclos delay

PDelL9 return ; 2+2 Fin.

;-------------------------------------------------------------

END

CONTADOR O A 99

CIRCUITO MONTADO EN PROTEUS(ISIS)

la programación de nuestro montaje listo y compilado para mostrar en el circuito

su simulación.

La demora de nuestro circuito para que sea visto adecuadamente

Al darle dos veces click a nuestro pic buscamos la programación en mplab y la

guardamos para iniciar nuestra simulación.

La simulación del contador de 0a 99 funcionando correctamente después de

haber realizado todos los pasos correctamente.

PROGRAMACION

;Presentado por Jose Vicente Garcia Puentes y Efren Porras

;Programacion de 2 displays de 0 a 99 .

;******************************************************************************

__CONFIG 0X3FF9

LIST P=PIC16F84A

INCLUDE<P16F84A.INC>

ORG 0X00

W EQU 0

F EQU 1

UNI EQU 0X13

DEC EQU 0X14

PDel0 EQU 0X10

PDel1 EQU 0X11

CONFIGURACION BSF

STATUS,5

MOVLW B'00000'

MOVWF TRISA

MOVLW B'00000000'

MOVWF TRISB

BCF STATUS,5

INICIO CLRF UNI

CLRF DEC

BCF STATUS,Z

CLRF PORTB

CLRF PORTA

ENTRADA CALL DEMORA

MOVF UNI,W

MOVWF PORTB

INCF UNI,F

SUBLW B'00001010'

BTFSS STATUS,Z

GOTO ENTRADA

CLRF PORTB

CLRF UNI

MOVLW B'00000001'

MOVWF UNI

BCF STATUS,Z

INCF DEC,F

MOVF DEC,W

MOVWF PORTA

SUBLW B'00001010'

BTFSS STATUS,Z

GOTO ENTRADA

GOTO INICIO

;-------------------------------------------------------------

; Generado con PDEL ver SP r 1.0 el 14/05/2013 Hs 09:29:31 p.m.

; Descripcion: Delay 400000 ciclos

;-------------------------------------------------------------

DEMORA movlw .147 ; 1 set numero de repeticion (B)

movwf PDel0 ; 1 |

PLoop1 movlw .247 ; 1 set numero de repeticion (A)

movwf PDel1 ; 1 |

PLoop2 clrwdt ; 1 clear watchdog

PDelL1 goto PDelL2 ; 2 ciclos delay

PDelL2 goto PDelL3 ; 2 ciclos delay

PDelL3 goto PDelL4 ; 2 ciclos delay

PDelL4 clrwdt ; 1 ciclo delay

decfsz PDel1, 1 ; 1 + (1) es el tiempo 0 ? (A)

goto PLoop2 ; 2 no, loop

decfsz PDel0, 1 ; 1 + (1) es el tiempo 0 ? (B)

goto PLoop1 ; 2 no, loop

PDelL5 goto PDelL6 ; 2 ciclos delay

PDelL6 goto PDelL7 ; 2 ciclos delay

PDelL7 goto PDelL8 ; 2 ciclos delay

PDelL8 goto PDelL9 ; 2 ciclos delay

PDelL9

return ; 2+2 Fin.

;-------------------------------------------------------------

END

CONTADOR 0-999 MULTIPLEXADO

Circuito montado en proteus(isis)

Programación terminada en mplab y compilada

Al darle dos veces click a nuestro pic buscamos la programación en mplab y la

guardamos para iniciar nuestra simulación.

El circuito funcionando correctamente.

PROGRAMACION

LIST P=PIC16F84A

INCLUDE <P16F84A.INC>

__CONFIG 0X3FF9

LIST P=PIC16F84A

#INCLUDE <P16F84A.INC>

__CONFIG 0X3FF9

ORG 0X00

W EQU 0

F EQU 1

UNI EQU 0X14

DEC EQU 0X13

CEN EQU 0X12

PDel0 EQU 0X10

PDel1 EQU 0X11

CONFIGURACION

BSF STATUS,5

MOVLW B'00000'

MOVWF TRISA

MOVLW B'00000000'

MOVWF TRISB

BCF STATUS,5

INICIO

CLRF UNI

CLRF DEC

CLRF CEN

BSF STATUS,Z

UNIDAD

CALL DEMORA

MOVF UNI,W

SUBLW B'00001010'

BTFSC STATUS,Z

CALL DECENA

CALL BUILD

INCF UNI,F

GOTO UNIDAD

DECENA

BCF STATUS,Z

CLRF UNI

INCF DEC,F

MOVF DEC,W

SUBLW B'00001010'

BTFSC STATUS,Z

CALL CENTENA

RETURN

CENTENA

BCF STATUS,Z

CLRF DEC

INCF CEN,F

MOVF CEN,W

SUBLW B'00001010'

BTFSC STATUS,Z

GOTO INICIO

RETURN

BUILD

MOVF UNI,W

IORLW B'00010000'

MOVWF PORTB

CALL DEMORA

MOVF DEC,W

IORLW B'00100000'

MOVWF PORTB

CALL DEMORA

MOVF CEN,W

IORLW B'01000000'

MOVWF PORTB

CALL DEMORA

RETURN

;-------------------------------------------------------------

; Generado con PDEL ver SP r 1.0 el 02/05/2013 Hs 09:37:11 a.m.

; Descripcion: Delay 40000 ciclos

;-------------------------------------------------------------

DEMORA movlw .93 ; 1 set numero de repeticion (B)

movwf PDel0 ; 1 |

PLoop1 movlw .71 ; 1 set numero de repeticion (A)

movwf PDel1 ; 1 |

PLoop2 clrwdt ; 1 clear watchdog

PDelL1 goto PDelL2 ; 2 ciclos delay

PDelL2

decfsz PDel1, 1 ; 1 + (1) es el tiempo 0 ? (A)

goto PLoop2 ; 2 no, loop

decfsz PDel0, 1 ; 1 + (1) es el tiempo 0 ? (B)

goto PLoop1 ; 2 no, loop

PDelL3 goto PDelL4 ; 2 ciclos delay

PDelL4 goto PDelL5 ; 2 ciclos delay

PDelL5 clrwdt ; 1 ciclo delay

return ; 2+2 Fin.

;-------------------------------------------------------------

END

DISPLAY DIGITAL

Montaje de nuestro circuito.

La programación de nuestro circuito terminada y compilada para demostrar que

la programación fue correcta.

Al haber realizado nuestra programación buscamos nuestro archivo dándole

dos veces click a nuestro pic.

Demostramos que nuestra programación y montaje estuvo correctamente

realizado y en la imagen podemos ver el funcionamiento del circuito.

PROGRAMACION

; Presentado por José Vicente García Puentes y Efren Porras

; Programación de display de 7 segmentos.

;******************************************************************************

LIST P=16F84A

#INCLUDE <P16F84A.INC>

__CONFIG 0X3FF9

W EQU 0

F EQU 1

ORG 0X00

CONFIGURA BSF STATUS, RP0

MOVLW B'11111111'

MOVWF TRISA

CLRF TRISB

BCF STATUS,RP0

CLRF PORTB

CLRF PORTA

BUCLE MOVF PORTA,W

CALL ENTRADA

MOVWF PORTB

GOTO BUCLE

ENTRADA ADDWF PCL,F

RETLW B'00111111' ;CERO

RETLW B'00000110' ;UNO

RETLW B'01011011' ;DOS

RETLW B'01001111' ;TRES

RETLW B'01100110' ;CUATRO

RETLW B'01101101' ;CINCO

RETLW B'11111101' ;SEIS

RETLW B'00000111' ;SIETE

RETLW B'01111111' ;OCHO

RETLW B'01101111' ;NUEVE

RETLW B'01110111' ;DIEZ

RETLW B'01111100' ;ONCE

RETLW B'00111001' ;DOCE

RETLW B'01011110' ;TRECE

RETLW B'01111011' ;CATORCE

RETLW B'01110001' ;QUINCE

END

LISTA DE MATERIALES

PIC16F84A

7404

CONDESADORES

CRYSTALES

LEDS

CONTADORES CA

CERAMIC22P

2N2222 TRANSISTORES

ISIS PROTEUS

MPLAB X

RESISTENCIAS

COMPUTADOR

CONCLUCIONES

El programa MPLAB es un software que contiene un editor, un ensamblador, un

emulador y un simulador, todos ellos integrados en el mismo ambiente. El editor

nos sirve para escribir un nuevo programa o modificarlo, para empezar a trabajar

en el editor se necesita abrir o crear un nuevo archivo fuente.

Se sabe que proteus es un programa para simular circuitos electrónicos

complejos integrando inclusive desarrollos realizados con microcontroladores de

varios tipos, es una herramienta de alto desempeño con unas capacidades

graficas muy buenas.

Se aprender los manejos simples del pic16f84A y empezar a conocer los

puertos A y B del pic.

ver la forma en cómo ejecuta su función el pic16f84a una vez que ha sido

programado.

Se aprendió que para poder resolverlo no es necesario seguir una sola dirección

ya que se puede resolver el circuito de distintas maneras.

BIBLIOGRAFIA

Angulo, J. Ma., E. M. Cuenca y J. Angulo, Aplicaciones de los

microcontroladores PIC de Microchip, Editorial McGraw Hill, 1998.

Microchip Technology Inc, Microchip PIC16F84 Microcontroller Data Book,

1997.

Joyanes, Luis A., Problemas de metodología de la programación,

Editorial McGraw Hill, 1996.

Duque, Edison C., Curso Avanzado de Microcontroladores PIC,CEKIT, 1998.

Goñi, Julio, “Robots. Construye tu microbot” F&G Editores, 2000