Informe de Programacion
-
Upload
larry-garcia -
Category
Documents
-
view
120 -
download
0
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
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 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