Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Pic Trabajo

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 17

República Bolivariana de Venezuela

Ministerio del poder popular para la educación universitaria


I.U.T.E.P.I “Instituto universitario de tecnología para la informática”
Extensión Acarigua – portuguesa

PIC de Gama
media

Profesor: Alumnos:

Aníbal García Adalfio Yorgenso


Jiménez Gabriel

Acarigua, 2023
INTRODUCCIÓN

¿Por qué aprender sobre los mapas de Karnaugh? El mapa de Karnaugh, al igual que el álgebra
booleana, es una herramienta de simplificación aplicable a la lógica digital. El mapa de Karnaugh
simplificará la lógica más rápido y fácilmente en la mayoría de los casos. A través de estos,
podemos simplificar nuestra ecuación de acuerdo a la tabla de la verdad que en el momento
tengamos. Así podemos tener la posibilidad de realizar un montaje más ágil y efectivo en nuestro
Protoboard.

La simplificación booleana es en realidad más rápida que el mapa de Karnaugh para una tarea que
involucra dos o menos variables booleanas. Todavía es bastante utilizable en tres variables, pero un
poco más lento. En cuatro variables de entrada, el álgebra booleana se vuelve tedioso. Los mapas
de Karnaugh son más rápidos y fáciles. Los mapas de Karnaugh funcionan bien para hasta seis
variables de entrada, son utilizables para hasta ocho variables.
PIC DE GAMA MEDIA

Es la gama más variada y completa de los PIC. Abarca modelos con encapsulado desde 18 patitas
hasta 68, cubriendo varias opciones que integran abundantes periféricos.

En esta gama sus componentes añaden nuevas prestaciones a las que poseían los de la gama baja,
haciéndoles más adecuados en las aplicaciones complejas. Admiten interrupciones, poseen
comparadores de magnitudes analógicas, convertidores A/D, puertos serie y diversos
temporizadores.

El repertorio de instrucciones es de 35, de 14 bits cada una y compatible con el de la gama baja.
Sus distintos modelos contienen todos los recursos que se precisan en las aplicaciones de los
microcontroladores de 8 bits. También dispone de interrupciones y una Pila de 8 niveles que
permite el anidamiento de subrutinas.

Encuadrado en la gama media también se halla la versión PIC14C000, que soporta el diseño de
controladores inteligentes para cargadores de baterías, pilas pequeñas, fuentes de alimentación
ininterrumpibles y cualquier sistema de adquisición y procesamiento de señales que requiera
gestión de la energía de alimentación. Los PIC 14C000 admiten cualquier tecnología de las baterías
como Li-Ion, NiMH, NiCd, Ph y Zinc.

El temporizador TMR1 que hay en esta gama tiene un circuito oscilador que puede trabajar
asíncronamente y que puede incrementarse, aunque el microcontrolador se halle en el modo de
reposo (“sleep”), posibilitando la implementación de un reloj en tiempo real. Las líneas de E/S
presentan una carga “pull-up” activada por software.

¿QUÉ ES UN PROGRAMADOR (GRABADOR O QUEMADOR) DE PIC? 


En el contexto del hardware, es una tarjeta electrónica en la cual se inserta el microcontrolador PIC
con el propósito de transferir el código del programa (en formato binario) desde el computador del
usuario y grabarlo en la memoria interna del microcontrolador. Esta tarjeta se conecta a un puerto
(LPT1, USB, etc.) del computador y por medio del software de control se realiza la transferencia
(programación) del código ejecutable *.hex de una determinada aplicación hacia el PIC.
Programador también es el nombre que se le da a la persona encargada de escribir un programa en
un lenguaje de programación con el fin de dar solución a un determinado problema. El resultado
del proceso de programación es una aplicación.

CUÁLES SON LOS PASOS A SEGUIR PARA REALIZAR UNA APLICACIÓN REAL
CON UN PIC?
1. Construir o comprar un programador de PIC compatible con los dispositivos a programar y
con el sistema operativo disponible.
2. Descargar el software de control (software de programación) del programador e instalarlo:
por ejemplo, PICkit2 v2.61, etc.
3. Descargar e instalar el ambiente de desarrollo de programación de PIC en lenguaje C
(mikroC).
4. Seguir las indicaciones del libro para crear un nuevo proyecto, configurarlo, escribir el
código fuente en lenguaje C y compilarlo para obtener el ejecutable *.hex (aplicación).
5. Descargar el fichero ejecutable al PIC por medio del software de programación y del
programador conectado a la computadora personal.
6. Retirar el PIC del programador y colocarlo en el circuito de aplicación y, ¡a disfrutar con
los maravillosos resultados! La siguiente figura muestra la secuencia de programación:
Un microcontrolador está compuesto de varios bloques
funcionales, los cuales cumplen una tarea específica;
incluye en su interior las tres principales unidades
funcionales de una computadora:
 Unidad central de procesamiento (CPU): se
encarga de ejecutar las instrucciones y realizar las
operaciones con los datos.
 Memorias: FLASH para las instrucciones del
programa, EEPROM (de almacenamiento
permanente) para datos y RAM (de
almacenamiento temporal) para datos.
 Periféricos de entrada/salida: permiten la
comunicación del microcontrolador con su entorno
físico recibiendo y entregando datos en forma de
señales eléctricas. La conexión a los periféricos se
realiza por medio de las patillas (alfileres o pines)
del circuito integrado que conforma el
microcontrolador.
Adicionalmente existe otra terminología que conviene
conocer y entender ya que se emplea con mucha frecuencia
en el mundo de la programación de microcontroladores: 
 Compilador: Software que se encarga de convertir
el código escrito en lenguaje C (lenguaje humano) a
código de maquina (lenguaje de maquina). El
código en lenguaje C se conoce como código fuente
mientras que el código de maquina se conoce como
código ejecutable.
 IDE (Integrated Development Environment) Ambiente de desarrollo
Integrado: software de computador que sirve para el desarrollo de programas para
microcontroladores PIC. mikroC PRO for PIC es un IDE. Básicamente un IDE está
conformado por dos partes: a) Un editor de texto para escribir el código fuente y b) Un
compilador.
 Programador: es un dispositivo de hardware electrónico diseñado para transferir el código
ejecutable (código de maquina) desde el computador hacia la memoria de programa del
microcontrolador PIC. La conexión entre el computador y el programador se realiza por
medio del puerto USB; el proceso se conoce como programación, grabación o quemado
(por esta razón el programador también se suele llamar grabador o quemador). También
recibe el nombre de programador la persona que se encarga de escribir programas para
microcontroladores.
 Pin: cada una de las patillas o alfileres del microcontrolador. Por ejemplo, el PIC16F628A
tiene 18 pines (encapsulado DIP18).
 Sintaxis: Conjunto de reglas definidas para escribir correctamente un lenguaje de
programación. mikroC PRO para PIC tiene su propia sintaxis que es muy similar a la
sintaxis del lenguaje C de computadoras (ANSI C). 
 Programa: Es una secuencia de instrucciones, escritas en un determinado lenguaje de
programación para realizar una tarea específica en un microcontrolador. En este curso se
escribirán los programas de acuerdo a la sintaxis propia de mikroC PRO for PIC.
INSTRUCCIONES EN BASIC PARA PICS

Existen compiladores “especiales” en los que se puede editar en el lenguaje Basic o C y obtener un
file “hex” listo para que su grabador de PICs lo utilice.

Existen muchos proveedores de software especializados en ofrecer compiladores Basic para


programar Pics.

PicBasic Pro de Micro Engineering Labs Inc. es uno de los más conocidos. Este poderoso
compilador pone al alcance del usuario potentes instrucciones para comunicación serie, matemática
de 16 bits, mediciones de censores analógicos, PWM, sonido, y muchísimas más. Además de
general los files “hex” y también es capaz de generar los files “asm”. De tal manera que sí se
pueden hacer modificaciones de bajo nivel.

Otra magnífica característica de este compilador es que además de soportar al PIC16F84 también
soporta a muchos otros de la gran familia de MICROCHIP. Por ejemplo, los micros Flash
PIC16F628, 16F876 y el 16F877.

Mencionemos algunas instrucciones

If . . Then
Salto condicional a otra instrucción.

For . . Next
Repite varias veces una serie de instrucciones.

Gosub
Llamada a una subrutina

High
Enciende un pin
Low
Apaga un pin
Serin
Entrada serie asíncrona en un pin. (RS232)

Serout
Salida serie asincrona en un pin. (RS232)

Adcin
Lee el convertidor analógico digital

Write
Escribe en la memoria EEPROM del PIC

Hpwm
Salida para generar modulación en anchura de pulsos
El Proton Plus IDE es un elemento de programación basado en Basic estructurado orientado a la
entrada y salida de señales. La utilización de sencillas instrucciones de alto nivel, permite
programar los microcontroladores para controlar cualquier aplicación llevada a cabo por un
proceso. Las instrucciones de PBASIC PROTON PLUS IDE permiten controlar las líneas de
(entrada/salida) de un microcontrolador PIC, realizar temporizadores, realizar transmisiones serie
asíncrona, utilizar el protocolo SPI, programar pantallas LCD, capturar señales analógicas, emitir
sonidos, etc... Y todo ello en un sencillo entorno de programación que facilita la creación de
estructuras condicionales y repetitivas con instrucciones como IF THEN o FOR…NEXT y la
creación de etiquetas de referencia.

El compilador Proton Basic es un lenguaje de programación de nueva generación que hace más
fácil y rápido el manejo de microcontroladores Pic micro de Microchip. El lenguaje Basic es
mucho más fácil de leer y escribir que el lenguaje ensamblador Microchip.

El Proton Basic produce un código que puede ser programado para una variedad de micro
controladores PIC que tengan de 8 a 68 pins y varias opciones en el chip incluyendo convertidores
A/D, temporizadores y puertos seriales.

BASES DEL PROTÓN BASIC

IDENTIFICADORES

Un identificador es simplemente un nombre. Son usados en Pronto Basic como etiquetas de líneas
y nombres de variables. Un identificador es cualquier secuencia de letras, dígitos y símbolos,
aunque no deben comenzar con un dígito. Los identificadores no distinguen las letras mayúsculas
de las minúsculas, por lo que etiqueta, ETIQUETA, Etiqueta son todas tratadas como equivalentes.
Aunque las etiquetas pueden tener cualquier número de caracteres de longitud, Protón Basic
solamente reconoce los primeros 32.

ETIQUETAS

Para marcar líneas que el programa puede desear referenciar con comandos GOTO o GOSUB,
Proton BAsic usa tiquetas de línea y no permite número de línea y no requiere que cada línea sea
etiquetada. Cualquier línea puede comenzar con una etiqueta de línea que es simplemente un
identificador seguido por dos puntos (:)

Ejemplo:

here:

Goto here

VARIABLES

Variables es donde se guardan datos en forma temporaria en el programa. Son creadas usando la
palabra clave DIM. Pueden ser bits, bytes, word, dword, float y string.

El Espacio para cada variable es automáticamente destinado en la memoria RAM del


microcontrolador.

El formato para crear una variable es el siguiente:


DIM etiqueta AS tipo

Etiqueta es cualquier identificador excluyendo palabras claves como se describe anteriormente.

Tipo es bit, byte, word, dword or float.

Algunos ejemplos de declaración de variables de cada tipo son:

DIM Var1 AS BYTE ‘Crea una variable de 8-bit sin signo (0 - 255)

DIM Var2 AS BIT ' Crea una variable de un simple bit (0 - 1)

DIM Var3 AS WORD ' Crea una variable de 16-bit sin signo (0 - 65535)

DIM Var4 AS DWORD ' Crea a variable de 32-bit con signo (-2147483647 , +2147483647)

DIM Var5 AS FLOAT ‘Crea una variable de 32-bit punto flotante.

DIM ST AS STRING * 20 ' Crea una cadena con capacidad de 20 caracteres (8-bit)

ALIAS

DIM también puede ser usado para crear un alias para una variable. Esto es muy útil para acceder al
interior de una variable.

Dim Var1 as Var2 ´Var2 es otro nombre de var1

Dim VAr3 as Portb.1 ´asigna el alias Var3 a la patilla RB0

ARREGLOS

Los arreglos de variables pueden ser creados en una manera similar a las variables.

Dim Etiqueta [tamaño] as tipo

Etiqueta es cualquier identificador, excluyendo palabras claves, como se describió anteriormente.

Tipo es BIT, BYTE ó WORD. Número de elementos es cuantos lugares en el arreglo se desean.
Algunos ejemplos de creación de arreglo son los siguientes:

DIM sharks[10] as byte

DIM var3[10] as Word

La primera ubicación dentro del arreglo es el elemento cero. Dada la forma en que los arreglos
están localizados en memoria hay límites de tamaño para cada tipo.

CONSTANTES

Las llamadas constantes pueden ser creadas de manera similar a las variables. Puede ser más
conveniente usar un nombre de constante en lugar de un número constante. Si el número necesita
ser cambiado, únicamente puede ser cambiando en un lugar del programa donde se define la
constante. No pueden guardarse datos variables dentro de una constante. Ejemplos:

Dim Mice as 4.13

En este ejemplo la constante mice es de 4,13 y la misma no puede ser modificada durante el
transcurso del programa.

CONSTANTES NUMÉRICAS

Proton BAsic permite definir constantes numéricas en tres bases: decimal, binario y hexadecimal.
Valores binarios son definidos usando el prefijo “%” y valores hexadecimales usando el prefijo
“$”. Los valores decimales se toman por defecto y no requieren prefijo. Ejemplos:

100 ´ valor decimal 100

%100 ´ valor binario para el decimal 4.

$100 ´ valor hexadecimal para el decimal 256.

PINES

A los pines de Microcontrolador, se puede acceder de diferentes modos. El mejor camino para
especificar un pin para una operación, es simplemente usar sus nombres PORT y un número de bit:
PORTB.1=1 ‘Coloca PORTB, bit 1 a 1

Para recordar fácilmente para qué puede ser usado un pin, debe serle asignado un nombre usando
el comando DIM. De esta manera, el nombre puede ser utilizado luego en cualquier operación.

COMENTARIOS

Un comentario de Protón Basic comienza con la palabra clave REM o el apóstrofe (´). Todos los
demás caracteres de esa línea se ignoran. REM es una única palabra clave y no es una abreviación
de REMark, por lo tanto, los nombres de variables pueden comenzar con REM (aunque REM por sí
mismo no es válido).

DECLARACIONES MÚLTIPLES

Para permitir programas más compactos y agrupamientos lógicos de comandos relacionados,


Proton Basic soporta el uso de (:) para separar comandos ubicados en la misma línea. Los
siguientes dos ejemplos son equivalentes.

W2 = W0
W0 = W1
W1 = W2
Es lo mismo que:

W2 = w0 : W0 = W1 : W1 = W2

En los dos casos, el tamaño del código generado es el mismo.


OPERADORES MATEMÁTICOS

Protón Basic efectúa todas las operaciones matemáticas en orden jerárquico. Esto significa que
existe precedencia para los operadores. Multiplicación y división son efectuados antes que suma y
resta, por ejemplo.

Para asegurarse que las operaciones son efectuadas en el orden que se desea, se usan paréntesis
para agrupar las operaciones.

A=(B+C)*(D-E)

Todas las operaciones matemáticas se realizan sin signo y con una precisión de 16 bit.
Los operadores soportados son:

Operador matemático Descripción

+ Suma

- Resta

* Multiplicación

** 16 bits superiores de la multiplicación

*/ 16 nits medios de la multiplicación

/ División

// Resto (módulo)

<< Desplazamiento izquierdo

>> Desplazamiento derecho

ABS Valor absoluto

COS Coseno

DIG Digito

SIN Seno

SQR Raiz cuadrada

OPERADORES LÓGICOS

Los operadores lógicos difieren de las operaciones de bit inteligente. Entregan un resultado
CIERTO / FALSO de su operación. Valores 0 son tratados como falso. Cualquier otro valor es
cierto. Se usan junto a operadores de comparación en una declaración IF..THEN. Los operadores
soportados son:
Operador Descripción

AND o && AND logico

OR o I I OR logico

XOR o ^ ^ OR exclusivo logico

NOT AND NAND logico

NOT OR NOR logico

NOT XOR NXOR logico

Relational operators are used to compare two values as shown in the list below. The result can be
used to make a decision regarding program flow.

OPERADORES DEL TIPO EXPRESSION DE RELACION

Los Operadores de Relación son usados para comparar dos valores como se muestra en la lista
abajo. El resultado es boleano y puede ser usado para tomar decisiones en el flujo del programa.

Operador Relación Ejemplo


= Igualdad X=Y
<> desigualdad X <> Y
< menor que X<Y
> mayor que X>Y
<= menor o igual que X <= Y
>= mayor o igual que X >= Y

CALL ETIQUETA

Ejecuta la subrutina ensamblador llamada etiqueta. Normalmente se usa GOSUB para ejecutar una
subrutina. La principal diferencia entre GOSUB y CALL, es que con ésta última no se chequea la
existencia de etiquetas hasta el momento de ensamblar. Usando CALL se puede acceder a una
etiqueta en una sección de lenguaje ensamblador, lo que es inaccesible mediante Protón Basic.

Dentro de los comandos de Protón Basic más estudiados para la elaboración del diseño se describen
los Siguientes:

END

Detiene la ejecución del proceso y entra en modo de baja potencia. Todos los pins de I/O
permanecen en el estado en que se encuentran, END trabaja ejecutando una instrucción SLEEP
continua dentro de un loop. Un END, STOP ó GOTO deben ser colocados al final de un programa
para evitar pasar del límite de la misma u comience nuevamente.

FOR .. NEXT

FOR Count = Start TO End {STEP {-} Inc}


{Body}
NEXT {Count}

El loop FOR .. NEXT permite a los programas ejecutar un número de declaraciones (Body) un
número de veces, usando una variable como contador. Debido a su complejidad y versatilidad, es
mejor describirla paso a paso.

El valor de Start se asigna a la variable índice, Count, que puede ser una variable de cualquier tipo.
Se ejecuta el Body. Body es opcional y puede ser omitido (quizás por un loop de demora). El valor
de Inc es sumado a (o restado si se especifica “-“) Count .Si no se define una cláusula STEP, se
incrementa Count en uno . Si Count no pasó End o desbordó el tipo de variable, la ejecución vuelve
al paso 2). Si el loop necesita contar más de 255 (Count > 255), se debe usar una variable de
tamaño Word.

IF ...THEN

IF Comp { AND/OR Comp ... } THEN


{Declaración}
ELSE
{Declaración}
ENDIF

Efectúa una o más comparaciones. Cada término Comp puede relacionar una variable con una
constante u otra variable e incluye uno de los operadores listados anteriormente. En la segunda
forma, IF..THEN puede ejecutar condicionalmente un grupo de declaraciones que sigan al THEN.
Las declaraciones deben estar seguidas por un ELSE o un ENDIF para completar la estructura.

ON INTERRUPT GOTO LABEL

Permite el manejo de las interrupciones del micro controlador por medio de una subrutina. Existen
dos formas de manejar interrupciones usando Proton Basic. La primera es escribir una subrutina de
interrupción en lenguaje ensamblador. Esta es la forma de manejar interrupciones con la menor
latencia y el menor overhead. El segundo método es escribir un handler (manejador) de
interrupciones. Es similar a una subrutina, pero termina con un RESUME. Cuando ocurre una
interrupción, se marca con una bandera. Cuando la ejecución de la declaración que se estaba
ejecutando termina, el programa salta al handler de interrupciones indicado en Label.

Una vez que termina el trabajo del handler, una declaración RESUME envía el programa de vuelta
a donde estaba cuando ocurrió la interrupción, tomando todo como lo dejó.

DISABLE Y ENABLE

Permiten que distintas secciones de un programa se ejecuten sin la posibilidad de ser interrumpidas.
El lugar más notorio para usar DISABLE es justo antes del actual handler de interrupciones. O el
handler puede ser colocado antes que la declaración ON INTERRUPT ya que la bandera de
interrupciones no se chequea antes del primer ON INTERRUPT en un programa.

USO DE SIMULADOR PROTEUS APLICADO AL PICs DE GAMA MEDIA

1. Creación del proyecto. Dentro del simulador proteus iniciamos un nuevo proyecto y a
continuación nos abrirá una ventana llamada “New Project Wizard”.
En la sección start, le damos un nombre a nuestro proyecto, a continuación, nos pedirá una
serie de pasos para poder iniciar el proyecto y pulsamos next.

En la sección Schematic Design elegimos la opción “create a schematic from the selected
template” y pulsamos next.

En la sección PCB Layout elegimos “Do not create a PCB Layout” y pulsamos next.
En la sección firmware elegimos la opción “No firmware project” y pulsamos next.

En la sección Summary nos da un resumen de cómo quedará nuestro proyecto, pulsamos


“Finish”. Así se debería ver nuestro Summary:

2. Agregar componentes: Ahora debemos agregar los componentes que utilizaremos a nuestro
Device Selector, esto se hace dando click derecho en cualquier parte del mapa de bits y
colocamos el cursor sobre “Place” luego en “Component” luego damos click en “From
libraries”. Se nos abrirá la siguiente ventana:
En el buscador escribimos PIC16F877A, seleccionamos el resultado y damos doble click.

Repetimos el
proceso para
agregar la resistencia y el led, buscamos RES para la resistencia y LED-GREEN
para el led. Una vez que hayamos agregado los tres componentes damos click en
“Ok”.
3. Armar el circuito: Tenemos en la parte de “Devices” los componentes que anteriormente
hemos agregado, ahora sólo basta con dar click en el que queramos comenzar a utilizar y
elegimos en que parte del mapa de bits colocarlo.
Así debe quedar al terminar.
Unimos dando click la parte que deseamos unir con la parte a la que se unirá.
Ahora para colocar el GND debemos
cambiar en la barra de herramientas de
“Devices” a “Terminals Mode” y de la
misma forma que agregamos nuestros
componentes vamos a agregar GROUND.
Unimos el GND con nuestro LED-GREEN,
el PIN 33 del PIC con la resistencia y la
resistencia al
LED-GREEN.
Para cambiar el valor de la resistencia damos
doble clik sobre ella y cambiamos 10k por
330.

Nuestro circuito deberá quedar de la siguiente manera.

4. Programar el PIC: Para programar nuestro PIC utilizaremos el software PIC C


Compiler. Abrimos el programa y damos click en el icono de la carpeta, luego en “New” y
luego en “New source file” elegimos el nombre y la ruta donde se guardará.

Escribimos el código. Una vez escrito damos click derecho en cualquier parte dentro del
código y damos click en “Compile”.
Si el código está bien escrito nos creará un archivo hexadecimal que ocuparemos más
adelante.

5. Iniciar simulación: Para poder iniciar nuestra simulación en Proteus de manera


correcta debemos ingresar el archivo hexadecimal dentro de nuestro PIC, damos
doble click en el PIC y en la parte “Program File” colocamos la ruta del archivo
hexadecimal. Y eso es todo, si todo está correcto podemos iniciar con la simulación.
CONCLUSIÓN

También podría gustarte