SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
 
 
TUTORIAL PARA PROGRAMACION EN
PROTON IDE PLUS
¿Qué es un microcontrolador?
Es un circuito integrado programable que acepta un listado de instrucciones y contiene
todos los componentes de un computador. Se utilizan para realizar determinadas
tareas o para gobernar dispositivos, debido a su reducido tamaño, suele ir incorporado
en el propio dispositivo que gobierna.
El microcontrolador es un dispositivo dedicado. En su memoria solo reside un
programa destinado a gobernar una aplicación determinada, sus líneas de entradas y
salidas (I/O) permiten la conexión de sensores y relay. Una vez programado y
configurado el microcontrolador solamente sirve para gobernar la tarea asignada.
Figura 1.1 Diagrama en bloque de un Microcontrolador
 
 
Un microcontrolador dispone normalmente de los siguientes componentes:
• Procesador o UCP (Unidad Central de Proceso).
• Memoria RAM para Contener los datos.
• Memoria para el programa tipo ROM/PROM/EPROM/EEPROM & FLASH.
• Líneas de (entrada / salida) para comunicarse con el exterior.
• Diversos módulos para el control de periféricos (temporizadores, Puertos Serie
y Paralelo, A/D y D/A, etc.).
• Generador de impulsos de reloj que sincronizan el funcionamiento de todo el
sistema.
Evidentemente, el corazón del microcontrolador es un microprocesador, pero cabe
recordar que el microcontrolador es para una aplicación concreta y no es universal
como el microprocesador.
El microcontrolador es en definitiva un circuito integrado que incluye todos los
componentes de un computador. Debido a su reducido tamaño es posible montar el
controlador en el propio dispositivo al que gobierna. En este caso el controlador recibe
el nombre de controlador empotrado (embedded controller).
¿Diferencia entre microprocesadores y
Microcontroladores?
El microprocesador es un circuito integrado que contiene la Unidad Central de Proceso
(CPU), también llamado procesador, de un computador. El CPU está formado por la
Unidad de Control, que interpreta las instrucciones, y el BUS de Datos, que los ejecuta.
Los pines de un microprocesador sacan al exterior las líneas de sus buses de
direcciones, datos y control, para permitir conectarle con la Memoria y los Módulos de
(ENTRADA / SALIDA) E/S y configurar un computador implementado por varios
circuitos integrados.
Se dice que un microprocesador es un sistema abierto porque su configuración es
variable de acuerdo con la aplicación a la que se destine.
El microcontrolador es un sistema cerrado. Todas las partes del computador están
contenidas en su interior y sólo salen al exterior las líneas que gobiernan los
periféricos. Usted podría pensar que las características de un sistema cerrado
representan una desventaja con relación a los Microprocesadores, pero en la práctica
cada fabricante de microcontroladores oferta un elevado número de modelos
diferentes, desde los más sencillos hasta los más poderosos. Es difícil no encontrar uno
que se adapte a nuestros requerimientos del momento.
Es posible seleccionar la capacidad de las memorias, el número de líneas de (ENTRADA
/ SALIDA) E/S, la cantidad y potencia de los elementos auxiliares, la velocidad de
funcionamiento, etc. Por todo ello, un aspecto muy destacado del diseño es la
selección del microcontrolador a utilizar.
Podemos concluir con que la diferencia fundamental entre un Microprocesador y un
Microcontrolador: es que el Microprocesador es un sistema abierto con el que se puede
 
 
construirse un computador con las características que se desee, acoplándole los
módulos necesarios. Un Microcontrolador es un sistema cerrado que contiene un
computador completo y de presentaciones limitadas que no se pueden modificar.
Sistemas numéricos
Realmente somos educados bajo el sistema numérico decimal. Un numero decimal
como 5249 representa una cantidad igual a 5 millares, más 2 centenas, más 4
decenas, más 9 unidades. Los millares, centenas, decenas y unidades, son potencia de
10 implicadas por la posición de los coeficientes. Para ser más exactos, 5249 debe
escribirse como:
5x103 + 2x102 + 4x101 + 9x100
5x1000 + 2x100 + 4x10 + 9x1
5000 + 200 + 40 + 9
5249
El sistema de número decimales se dice que es de base, o raíz 10 debido a que usa 10
símbolos y los coeficientes se multiplican por potencia de 10.
A parte del sistema decimal existen otros sistemas numéricos como son el sistema
binario, el sistema octal y el sistema hexadecimal. Realmente los microcontroladores
manejan el sistema binario; pero en la programación el más conveniente es el
hexadecimal y para cálculos matemáticos el decimal. En la siguiente tabla vea la
conversión equivalente entre el sistema decimal, hexadecimal y binario.
 
 
El sistema decimal está compuesto por 10 símbolos (0–9), el sistema hexadecimal está
compuesto por 16 símbolos (0-9, A, B, C, D, E, F) y el sistema binario está compuesto
por dos símbolos (0-1).
Cualquier sistema numérico es infinito, mientras el sistema contenga mayor cantidad
de símbolos su representación será más abreviada; como es el caso del sistema
hexadecimal. Para convertir de un sistema numérico a otro usted puede auxiliarse de
una calculadora científica o de la calculadora incluida en el sistema operativo Windows.
Los Basic los microcontroladores trabajan con el sistema binario, decimal y
hexadecimal. No son necesarias las conversiones de un sistema a otro. Pero sin
embargo necesitan un formato de representación para que el PIC BASIC pueda
reconocerlos.
Por ejemplo suponga que se tiene el siguiente valor decimal: Mil Ciento Diez (1110):
Este valor se puede interpretar:
• En binario (1110): Decimal 14
• En hexadecimal (1110): Decimal 4368
La misma representación puede interpretarse como 3 valores diferentes. El Basic
distingue las cantidades decimales de forma natural y las hexadecimales y binarias por
símbolos a la izquierda de la cifra a representar.
Lógica Binaria o de 2 estados
La lógica binaria trata con variables que toman dos valores distantes y con operaciones
que tienen significado lógico. Los dos valores que toman las variables pueden
designarse con nombres diferentes (verdadero y falso, si y no, true y false, 0 y 1,
etc.), pero para este propósito no es conveniente pensar en términos de BITS y
asignarles los valores de 1 y 0. La lógica binaria se usa para describir, en forma
matemática, la manipulación y el proceso de la información binaria. Existe una
analogía directa entre las señales binarias, los elementos de circuito binario y digito
binario.
Un número binario de n dígitos, por ejemplo puede representarse por n elementos de
números binarios, cada uno con una señal de salida equivalente a 0 o al 1. Los
sistemas digitales representan y manipulan no sólo números binarios, sino también
otro muchos elementos discretos de información.
Un BIT, por definición, es un digito binario. Cuando se usa junto con un código binario,
es mejor considerarlo como si denotara una cantidad binaria igual a 0 o 1. Para
representar un grupo de 2n elementos distintos en un código binario, se requiere un
mínimo de n BITS. Esto se debe a que es posible ordenar n BITS en 2n formas
distintas. Por ejemplo un grupo de 16 elementos puede representarse mediante un
código de 4 BITS. 24 = 16 elementos.
Durante todo el contenido de este material usted deberá estar familiarizado con los
términos (1) lógico, (0) lógico, señal alta, señal baja, HIGH, LOW, 0 y 1. Cuando se
dice que una señal es alta quiere decir que mide +5 Voltios con relación a tierra,
cuando una señal es baja mide +0 Voltios con relación a tierra. Los BS2 trabajan con
 
 
la lógica TTL, esta opera con +5 Voltios como fuente de alimentación. Las señales se
fundamentan entre +0 Voltios y +5 Voltios.
Esto es aplicable tanto para las entradas como para las salidas, en la siguiente tabla se
puede apreciar los diferentes términos para referirse a la lógica binaria.
Operaciones lógica básicas
Existen 3 operaciones lógicas llamadas: AND, OR y NOT.
1. AND esta función es verdadera cuando todas sus entradas son verdaderas. Y es
falso cuando cualquiera de sus entradas es falsa. Se interpreta como la
multiplicación binaria.
2. OR esta función es falsa cuando todas sus entradas son falsas. Y es verdadera
cuando cualquiera de sus entradas sea verdadera. Se interpreta como la suma
binaria.
3. NOT es la negación del resultado si es verdadero lo convierte en falso. Si es
falso lo convierte en verdadero.
Estas son las 3 operaciones fundamentales en la lógica binaria, a partir de estas
funciones se derivan otras más que son las combinaciones de las 3 funciones básicas.
 
 
Software Protón
Ejecute el entorno PROTON haciendo “click” en el ícono creado en el escritorio por el
programa de instalación o a través del menú Iniciotodos los
programasProtónProtonDEMO.exe, como aparece en la figura:
Esta es la ventanilla lista para crear los programas en el icono ayuda encontrara todo
lo referente a la función de cada uno de los iconos.
 
 
PROGRAMACION DE MICROCONTROLADORES PIC EN PROTON
IDE PLUS
BASIC es un simple y fácil lenguaje de programación. Tiene sólo unas pocas normas y
el control de estructuras que definen su gramática. En este tutorial vamos a aprender
acerca de algunos principios básicos de este gran lenguaje de programación. Los
códigos presentados aquí no pretenden ser programados en el microcontrolador, como
tal, sino que se dan para explicar el tema.
Una vez que haya pasado por esta introducción al lenguaje de BASIC, sólo entonces se
puede ir a las áreas específicas de su interés. Lo que se presenta aquí se repite
muchas veces a través de los siguientes capítulos del tutorial.
Estructura del programa en Pic Basic
Un programa básico consta de:
• Programa de cabecera
• Declaraciones
• Explicación de los signos e identificadores
• Declaraciones y comandos
Además de estas estructuras de base, algunos compiladores también permiten
programación orientada a objetos, así como procedimientos y funciones. Sin embargo
Protón IDE no permite los procedimientos y funciones en el verdadero sentido, así
como no es compatible con los objetos.
Tiene enfoque orientado hacia el simple y sencillo llamado de instrucciones. La
programación comienza en la parte superior, y la continúa hacia abajo. Sin embargo
permite las repeticiones.
Las primeras líneas del programa BASIC, difieren en la memoria de los
microcontroladores, EEPROM, número de puertos y registros, etc., es necesario
informar al compilador sobre el microcontrolador que se utilizará. En segundo lugar la
velocidad de procesamiento depende de la frecuencia del cristal. Por lo tanto, a fin de
calcular con precisión el calendario de funciones de retraso también es necesario
informar al compilador de la frecuencia del cristal.
Los programas de lenguaje BASIC usualmente comienzan así:
Device = 16F877A
XTAL = 4
 
 
La primera línea indica el procesador y la segunda línea dice que el hardware utiliza
20MHz de cristal.
Declaraciones
Son instrucciones especiales sobre los diversos dispositivos a utilizar, esto ayuda al
compilador a generar instrucciones específicas. Por ejemplo, si estamos usando una
pantalla LCD y se conecta en PORTD, entonces tenemos que informar las conexiones
de nuestro LCD. Vamos a declarar este tipo de configuración generalmente después de
la sección de encabezado utilizando los comandos:
Declare LCD_DTPIN PORTD.0
Hay un número de declaraciones, sin embargo, sólo las necesarias en el proyecto
actual se fijan normalmente....
Identificadores
Los identificadores son símbolos de texto especial que se utiliza para representar algo.
Pueden ser utilizados como etiquetas para marcar ciertos lugares en el programa, de
modo que el programa se puede hacer para ir a las etiquetas y luego continuar con el
programa a partir de entonces. Del mismo modo los identificadores pueden usarse
para nombrar algunas ubicaciones de memoria.
Estos son por lo general variables llamadas, y son los identificadores más importantes
en la programación. Los identificadores también se pueden utilizar como alias en cierto
texto, de modo que en lugar de escribir el texto concerniente del identificador, el
compilador inserta el texto pertinente en su lugar.
Las declaraciones y comandos
Hay tres tipos de declaraciones:
• Comparación y declaraciones condicionales
• Repetición y declaraciones de bucle
• Biblioteca de comandos
Comparación y sentencias condicionales nos permiten comparar dos o más
variables, los puertos, los pines del puerto o registros de funciones especiales y luego
tomar la decisión de ejecutar un conjunto de instrucciones o de otro conjunto.
Considerando la importancia de estas declaraciones, el lenguaje BASIC prevé
diferentes construcciones de esto. Vamos a explorar estas a continuación.
La repetición y de bucle es una de las mayores ventajas de los microprocesadores.
Podemos encargar al microcontrolador repetir continuamente ciertas instrucciones, ya
sea indefinidamente, o hasta que una determinada condición existe.
 
 
Por ejemplo, para mantener un LED, hasta que la temperatura es alta desde un punto
de ajuste.
Biblioteca de Comandos, no son propiamente los comandos del lenguaje BASIC,
pero son proporcionados por el fabricante del compilador para hacer las tareas
comunes. Por ejemplo, un comando de biblioteca para mostrar algunos datos sobre la
LCD o para leer los datos analógicos de un pin de entrada.
Etiquetas
Para marcar las declaraciones que el programa podría hacer referencia con los
comandos Goto, Call o Gosub, PROTON utiliza las etiquetas de línea. A diferencia de los
antiguos BASICS, PROTON no permite o exige a los números de línea y no requiere
que se etiquete cada línea. En cambio, cualquier línea puede comenzar con una
etiqueta de línea, que es simplemente un identificador seguido de dos puntos (:).
LAB:
PRINT "Hola Mundo"
GOTO LAB
Los nombres de etiqueta pueden ser de hasta 32 caracteres de longitud y puede
contener cualquier carácter alfanumérico, pero no debe comenzar con un valor
numérico. Por ejemplo:
Label1:
Es perfectamente válido, sin embargo:
1LABEL:
Se producirá un error de sintaxis porque las etiquetas se inician con el valor 1. Una
etiqueta que contenga más de 32 caracteres producirá un error de sintaxis señalando
la etiqueta de reincidencia. También se permite caracteres como parte de la etiqueta.
Esto ayuda a crear más nombres de etiqueta descriptiva. Por ejemplo:
THISISALABEL:
No tiene la misma claridad de significado como:
THIS_IS_A_LABEL:
Variables
Las variables se utilizan para almacenar datos temporalmente o para mantener
números que se utilizarán en los cálculos. El número de variables que pueden ser
utilizados en un programa depende de la memoria RAM del microcontrolador, la
arquitectura del Microcontrolador, la parte de la memoria RAM, la memoria del
programa.
 
 
Por lo tanto, si usted tiene 16K de la memoria del programa y 256 bytes de memoria
RAM, no se puede utilizar la memoria de programa libre para almacenar datos.
Variables
Por lo tanto, nada más que bytes de memoria. Para facilitar este trabajo, el compilador
le permite dar a estos los nombres en lugares de la memoria, llamados nombres de
variables.
Las variables existentes en la memoria RAM, como una secuencia de bytes, pueden ser
agrupados juntos para hacer más grande las organizaciones de distintos tipos de
datos, que pueden ser manipulados por nuestro compilador. Los compiladores de
diferentes fabricantes difieren en este servicio, sin embargo algunos tipos de datos
estándar son apoyados por todos.
Las variables son declaradas mediante una instrucción Dim, seguida del nombre de
variable y su tipo de datos. La declaración Dim puede aparecer en cualquier lugar sin
embargo es una buena práctica de programación ubicar todas las declaraciones Dim en
la parte superior del programa....
Dim Dog As Byte ' Crea una variable de 8-bit (0 to 255)
Dim Cat As Bit ' Crea una variable de un bit (0 or 1)
Dim Rat As Word ' Crea una variable 16-bit (0 to 65535)
Dim Large_Rat As DWord ' Crea una variable 32-bit (-2147483647 to
+2147483647)
Dim Pointy_Rat As Float ' Cre una variable floating point de 32-bit
Dim ST As STRING * 20 ' Crea una variable STRING de capacidad de 20
Caracteres
Los tipos de datos como bit, byte, WORD, DWORD, float y string definen el número de
bytes reservados para la variable, también definen el rango de número, que puede ser
almacenada, así como la naturaleza del número almacenado.
Los números almacenados pueden ser firmados o no-firmados, así como que pueden
contener un punto decimal. Una cadena por otra parte, que es una colección de bytes
de tamaño variables, para mantener los datos de carácter.
El compilador usará parte de la memoria para almacenar las variables internas. La
cantidad de RAM usada por compilador depende de la complejidad del programa. Como
hay estructuras de control y de bucles, el compilador utilizara más la RAM.
Los nombres de variables siguen las mismas líneas de guía general como
identificadores. Sin embargo, hay ciertas palabras que no pueden ser utilizados como
nombres de variables. Consulte la ayuda de PRORON para obtener detalles de reserva
palabras.
 
 
Acceso a la parte de una variable
Muchas veces una parte de una variable se debe acceder, ya sea para lectura o
escritura. La mayoría de las veces en un Bytes de tamaño variable un poco particular,
se debe acceder. Un byte consta de 8 bits numerados del 0 al 7.
0 es el menos significativo y el bit 7, el más importante. Un bit individual de una
variable se accede por un punto seguido por el número de bits en un nombre de
variable. Así, si tenemos x como un byte de tamaño variable, su bit menos significativo
se puede acceder por X.0 y bit más significativo por X.7.
Dim x As Byte
Dim y As Byte
x.0 = 1
y.7 = x.0
End
En este ejemplo, X e Y son de bytes de tamaño variables, x.0 = 1 establece el bit 0 de
x como de alta, y y.7 = X.0 lee el valor de la X.0 y la transfiere en y.0
En el caso de la palabra DWord , se puede hacer al byte de orden alto y byte de orden
bajo, o Byte0, Byte1, etc Byte2 por separado.
DIM DWD as DWORD ' Declare la variable DWD a 32-bit
DIM PART1 as DWD.WORD0 'PART1 a la palabra baja de DWD
DIM PART2 as DWD.WORD1 'PART2 a la palabra alta de DWD
Símbolos
Los símbolos son en realidad una manera de simplificar las cosas. Se asigna a un alias
o un registro, una variable o un valor constante. El alias se utilizará en el programa, el
compilador reemplazará el alias con los datos reales, antes de compilación
Symbol LED = PORTB.0
High LED
En este ejemplo, un símbolo de LED se ha definido para el PORTB.0. Por lo tanto cada
vez que usamos la palabra LED en nuestro programa significaría PORTB.0 este
programa es más fácil de entender, y más lógico.
Matrices
Matriz es una estructura común utilizada en la programación. El concepto es utilizar
múltiples variables, con el mismo nombre, pero que tengan un número de índice que
los refiera. Dado que un número de índice en sí mismo puede ser una variable, es más
fácil caminar a través de un arsenal enorme de variables, cambiando simplemente el
índice. Para declarar una variable como una matriz, tenemos que mencionar su
longitud.
 
 
Dim Temp[20] As Byte
Dim x As Byte
For x=0 To 19
Temp[x]=0
Next x
En este ejemplo, una variable denominada Temp ha sido declarada como una matriz
de 20 variables, siendo cada uno un byte de tamaño. El número de índice de estas 20
variables serán 0 a 19. Así, para acceder al primer elemento de la matriz, que utilizará
temp [0] en lugar de Temp. El número de índice en sí puede ser una variable.
Cadenas
Las cadenas son una serie de datos alfanuméricos. Para ejemplo, su nombre, país,
dirección están configurados como cadenas. Las cadenas son más que matrices de
bytes. Sin embargo cuando las matrices son utilizados como cadenas, el último byte de
datos debe contener un 0.
Dim String1[5] As Byte ' Crear una matrix de 5 elementos
Dim String2[5] As Byte ' Crear otra matrix de 5 elementos
Str String1 = "ABCD" , 0 'llena la matrix con ASCII Y NULL determinado
Str String2 = "EFGH" , 0 ' llena la matrix con ASCII Y NULL determinado
Str String1 = Str String2 ' Copiar String2 a String1
Print Str String1 ' Mostrar el string
El uso de un prefijo Str. le dice al compilador que se tratar la matriz como una
cadena.
Representación numérica de los números
Como ya hemos comentado, el mismo número puede ser representado como formato
decimal, binario o hexadecimal. Sin embargo, se hace anteponiendo la cantidad
numérica con ciertos símbolos.
Binario es el prefijo%. Es decir, 0101%
Hexadecimal es el prefijo $. Es decir, $ 0A
Byte de caracteres está rodeado de comillas. Es decir, "A" representa un valor de 97
Los valores decimales no necesitan de ningún prefijo, se crean utilizando un punto
decimal. Es decir, 8,14.
Acceso a los puertos y registros
Son estructuras especiales internas del microcontrolador. Los puertos han sido
nombrados como PORTA, PORTB, PORTC, etc. Todos los puertos son bidireccionales, es
decir, que pueden ser utilizados para leer el estado del PIN o establecer el estado del
PIN. La mayoría de los puertos son de 8 bits, pero algunos son de menos salidas. Los
 
 
puertos y sus bits se pueden acceder de la misma manera que las variables. También
se puede utilizar en las expresiones matemáticas.
Además de los puertos hay una serie de registros internos con funciones específicas,
que se asignan a los bits específicos de estos registros. A pesar que estos registros
tienen una dirección especial, en la memoria y estas direcciones se utilizan para
acceder a ellos. BASIC PROTON hace que sea más fácil acceder a estos registros por
sus nombres para luego tratarlos como cualquier otra variable.
Estos nombres están predefinidos, y varían de acuerdo con el microcontrolador a
utilizar. El compilador Basic de PROTON sabe que los puertos y los registros están
disponibles en el microcontrolador seleccionado....
PORTA = %01010101 ' escribir el valor binario en PORTA
VAR1 = WRD * PORTA ' Multiplica variable WRD con el contenido de PORTA
TMR0=0 ' ajustar el Timer a 0
RCSTA.5=1 ' Establecer el bit 5 del registro RCSTA en valor lógico alto
Vamos a hablar de dichos registros en las secciones apropiadas. Aquí sólo quiero
mencionar que estos registros de funciones especiales pueden ser tratados como
variables normales, para establecer o leer sus valores y bits.
Toma de decisiones
La mayoría de los programas requieren algún tipo de toma de decisiones basada en las
aportaciones o condiciones. Las decisiones siempre se evalúan como verdadero o falso.
El programa se ejecuta a ciertos grupos de instrucciones en cada caso. Esto se logra
con la Declaración IF THEN ENDIF.
El formato general de IF es tomar una comparación, y para ejecutar un lote de
instrucciones en caso de que la comparación se evalúa como verdadera. El fin de la IF
se caracteriza por la instrucción ENDIF.
Symbol LED PORTC.0
If x > 10 Then
High LED
End If
En caso de que el valor de x no es mayor que 10, el programa saltará a las
declaraciones a continuación End If. En el caso que el valor de x es mayor que 10,
hará que el LED encienda y luego continúa con las declaraciones después de End If.
Otra forma de IF utiliza ELSE. Este formulario tiene dos lotes de instrucciones, una que
se ejecuta si la comparación se evalúa como verdadera, y otros se ejecuta si la
comparación se evalúa como falsa.
Symbol LED PORTC.0
If x > 10 Then
High LED
 
 
Else
Low LED
End If
La repetición o bucles
Como ya hemos visto que nuestro programa se ejecuta de arriba a abajo. Sin
embargo, si un conjunto de instrucciones se tiene que repetir una y otra vez de alguna
forma debe haber una declaración en la parte superior que controle el estado de la
instrucción. Esto proceso se denomina un bucle.
El bucle más simple se puede construir mediante el uso de una etiqueta, y luego
utilizar una instrucción Goto para saltar a la etiqueta.
Device=18F2550
Symbol LED = PORTC.0
Inicio:
High LED
DelayMS 500
Low LED
DelayMS 500
GoTo Inicio
En este programa hemos definido una etiqueta, llamada de Inicio, observe los dos
puntos después de ella. Después de haber realizado la instrucción que queremos
transferir, se utiliza el comando Goto, el cual a transfiere el control a la etiqueta de
Inicio y el programa continuará.
Este ciclo se repite sin cesar. No hay manera de que el programa puede salir de este
bucle.
La mayoría de las veces queremos un bucle de control, en la que el grupo de
instrucciones se repita de tal manera que después de una determinada condición el
bucle se terminara. Esto se puede hacer combinando un caso de declaración. Por
ejemplo, queremos que el LED se active 10 veces y luego continuar con el resto del
programa.
Device=18F2550
Symbol LED = PORTC.0
Dim x As Byte
x=0
Again:
If x = 10 Then
GoTo Cont
End If
High LED
DelayMS 500
Low LED
DelayMS 500
x=x+1
 
 
GoTo Again
Cont:
‘resto del Programa
En este programa, hemos tomado una variable de control, denominada X, y
establecido su valor a 0. Durante el bucle, incrementa su valor en 1, en cada ciclo, y
comprobara si el valor de x ha alcanzado el 10. Cuando su valor ha llegado a 10, nos
envía a una etiqueta para terminar el bucle, y continuar con el resto del programa.
Dado que este es un escenario común, BASIC de PROTON ha introducido una serie de
maneras de hacerlo, con la misma ideología, pero en más estructurada y controlada.
Uno de ellos es el llamado bucle For... Next.
Device=18F2550
Symbol LED = PORTC.0
Dim x As Byte
For x=0 To 10
High LED
DelayMS 500
Low LED
DelayMS 500
Next x
Aquí está el mismo programa, pero con bucle For. En un bucle, que da un rango a una
variable, entre los estados mencionados y la declaración siguiente se repite, cada vez
que el valor de la variable de control se incrementa y cuando la condición ha
alcanzado el límite superior, el control se transfiere a la línea debajo de la Instrucción
Next. También puede utilizar el valor de la variable de control dentro de su ciclo. Sin
embargo, no se puede cambiar el valor por sí mismo dentro del cuerpo del bucle.
¿Qué pasa si queremos incrementar el valor del control
variable por 2? Sólo se menciona el paso 2 de la declaración.
For x=0 To 10 Step 2
Del mismo modo, si queremos disminuir el valor, digamos por 1, 20 a 0:
For x=20 To 0 Step -1
Este tipo de bucle es muy usado para inicializar las matrices. Para la siguiente
declaración es útil, para repetir las instrucciones un número de veces. En algunas
ocasiones no se sabe por cuánto tiempo las instrucciones tienen que ser repetidas.
Por ejemplo, queremos repetir ciertas instrucciones hasta que se pulsa una tecla. No
sabemos cuándo una tecla se presiona. Así que el bucle debe vigilar el estado de la
tecla.
Device=18F2550
Symbol LED = PORTC.0
 
 
Symbol SW3 = PORTE.0
While SW3 <> 0
High LED
Wend
Low LED
Este programa utiliza otro método de reproducción en bucle, el While y Wend. Se
ejecuta el cuerpo del bucle si la condición es cierta. Este ciclo se repite mientras que la
condición se evalúa como falsa.
Esa fue una introducción al lenguaje de Basic En PROTON, podrá aprender más acerca
de los comandos normas y órdenes durante el tutorial , siendo esto lo mínimo que se
debe saber para comenzar.

Más contenido relacionado

La actualidad más candente

programmable logic array
programmable logic arrayprogrammable logic array
programmable logic arrayShiraz Azeem
 
programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84guestf09168b
 
Tutorial proton part 2
Tutorial proton part 2Tutorial proton part 2
Tutorial proton part 2dar851112
 
flip flop circuits and its applications
flip flop circuits and its applicationsflip flop circuits and its applications
flip flop circuits and its applicationsGaditek
 
Diseño de circuito impreso con proteus
Diseño de circuito impreso con proteusDiseño de circuito impreso con proteus
Diseño de circuito impreso con proteusJesusSimonAtencioPar
 
Electrónica digital: Tema 3 Funciones aritméticas y lógicas
Electrónica digital: Tema 3 Funciones aritméticas y lógicas Electrónica digital: Tema 3 Funciones aritméticas y lógicas
Electrónica digital: Tema 3 Funciones aritméticas y lógicas SANTIAGO PABLO ALBERTO
 
Configuracion de pc como puente
Configuracion de pc como puente Configuracion de pc como puente
Configuracion de pc como puente Luis Maza
 
Puertaslogicasysistemascombinacionales 110228082200-phpapp01
Puertaslogicasysistemascombinacionales 110228082200-phpapp01Puertaslogicasysistemascombinacionales 110228082200-phpapp01
Puertaslogicasysistemascombinacionales 110228082200-phpapp01Cati Oliver
 
Compuertas Logicas
Compuertas LogicasCompuertas Logicas
Compuertas Logicasgueste89e47
 
Maquinas secuenciales sincronicas
Maquinas secuenciales sincronicasMaquinas secuenciales sincronicas
Maquinas secuenciales sincronicasIvan Salazar C
 
Dispositivos logicos programables
Dispositivos logicos programablesDispositivos logicos programables
Dispositivos logicos programablesLuiS YmAY
 
PLC y Electroneumática: automatización industrial: control Electromecánico y ...
PLC y Electroneumática: automatización industrial: control Electromecánico y ...PLC y Electroneumática: automatización industrial: control Electromecánico y ...
PLC y Electroneumática: automatización industrial: control Electromecánico y ...SANTIAGO PABLO ALBERTO
 

La actualidad más candente (20)

Tipos de autómatas, y operaciones de conjunto entre autómatas
Tipos de autómatas, y operaciones de conjunto entre autómatasTipos de autómatas, y operaciones de conjunto entre autómatas
Tipos de autómatas, y operaciones de conjunto entre autómatas
 
Combinational circuit
Combinational circuitCombinational circuit
Combinational circuit
 
Arithmetic and logic unit
Arithmetic and logic unitArithmetic and logic unit
Arithmetic and logic unit
 
programmable logic array
programmable logic arrayprogrammable logic array
programmable logic array
 
programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84
 
Tutorial proton part 2
Tutorial proton part 2Tutorial proton part 2
Tutorial proton part 2
 
PRACTICA_EXCESO_3-COD_GRAY
PRACTICA_EXCESO_3-COD_GRAY PRACTICA_EXCESO_3-COD_GRAY
PRACTICA_EXCESO_3-COD_GRAY
 
flip flop circuits and its applications
flip flop circuits and its applicationsflip flop circuits and its applications
flip flop circuits and its applications
 
Diseño de circuito impreso con proteus
Diseño de circuito impreso con proteusDiseño de circuito impreso con proteus
Diseño de circuito impreso con proteus
 
Adders
AddersAdders
Adders
 
Electrónica digital: Tema 3 Funciones aritméticas y lógicas
Electrónica digital: Tema 3 Funciones aritméticas y lógicas Electrónica digital: Tema 3 Funciones aritméticas y lógicas
Electrónica digital: Tema 3 Funciones aritméticas y lógicas
 
Configuracion de pc como puente
Configuracion de pc como puente Configuracion de pc como puente
Configuracion de pc como puente
 
Sesion 7 S Dbos
Sesion 7 S DbosSesion 7 S Dbos
Sesion 7 S Dbos
 
Puertaslogicasysistemascombinacionales 110228082200-phpapp01
Puertaslogicasysistemascombinacionales 110228082200-phpapp01Puertaslogicasysistemascombinacionales 110228082200-phpapp01
Puertaslogicasysistemascombinacionales 110228082200-phpapp01
 
Compuertas Logicas
Compuertas LogicasCompuertas Logicas
Compuertas Logicas
 
Maquinas secuenciales sincronicas
Maquinas secuenciales sincronicasMaquinas secuenciales sincronicas
Maquinas secuenciales sincronicas
 
Semaforo
SemaforoSemaforo
Semaforo
 
Multiplexores.
Multiplexores.Multiplexores.
Multiplexores.
 
Dispositivos logicos programables
Dispositivos logicos programablesDispositivos logicos programables
Dispositivos logicos programables
 
PLC y Electroneumática: automatización industrial: control Electromecánico y ...
PLC y Electroneumática: automatización industrial: control Electromecánico y ...PLC y Electroneumática: automatización industrial: control Electromecánico y ...
PLC y Electroneumática: automatización industrial: control Electromecánico y ...
 

Similar a Tutorial proton ide plus part 1

Similar a Tutorial proton ide plus part 1 (20)

Tutorial proton ide plus part 1
Tutorial proton ide plus part 1Tutorial proton ide plus part 1
Tutorial proton ide plus part 1
 
Tema1
Tema1Tema1
Tema1
 
Tema1 informatica.
Tema1 informatica.Tema1 informatica.
Tema1 informatica.
 
El mundo digital en las computadoras
El mundo digital en las computadorasEl mundo digital en las computadoras
El mundo digital en las computadoras
 
Como representar la informacion
Como representar la informacionComo representar la informacion
Como representar la informacion
 
Libro de informatica
Libro de informaticaLibro de informatica
Libro de informatica
 
INFORMATICA BASICA
INFORMATICA BASICAINFORMATICA BASICA
INFORMATICA BASICA
 
unidades funcionales de una computadora
unidades funcionales de una computadoraunidades funcionales de una computadora
unidades funcionales de una computadora
 
Tutorial De Comunicacion De Datos
Tutorial De Comunicacion De DatosTutorial De Comunicacion De Datos
Tutorial De Comunicacion De Datos
 
Trabajo
TrabajoTrabajo
Trabajo
 
Trabajo
TrabajoTrabajo
Trabajo
 
74 ls148
74 ls14874 ls148
74 ls148
 
Trabajo LUIS MARTINEZ
Trabajo LUIS MARTINEZTrabajo LUIS MARTINEZ
Trabajo LUIS MARTINEZ
 
Guia de-programacion-i-visual-b-net
Guia de-programacion-i-visual-b-netGuia de-programacion-i-visual-b-net
Guia de-programacion-i-visual-b-net
 
Tema 1 el ordenador y sus componentes
Tema 1 el ordenador y sus componentesTema 1 el ordenador y sus componentes
Tema 1 el ordenador y sus componentes
 
Informática básica
Informática básicaInformática básica
Informática básica
 
9. Electrónica Digital PDF
9. Electrónica Digital PDF9. Electrónica Digital PDF
9. Electrónica Digital PDF
 
Curso básico de ensamblador
Curso básico de ensambladorCurso básico de ensamblador
Curso básico de ensamblador
 
Folleto de todo
Folleto de todoFolleto de todo
Folleto de todo
 
Tic
TicTic
Tic
 

Último

Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasSegundo Silva Maguiña
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosOscarGonzalez231938
 
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinaciónEstacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinaciónAlexisHernandez885688
 
Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1victorrodrigues972054
 
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTOESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTOCamiloSaavedra30
 
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdffredyflores58
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosJeanCarlosLorenzo1
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptxNayeliZarzosa1
 
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...esandoval7
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCANDECE
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEANDECE
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfIsbelRodrguez
 
lean manufacturing and its definition for industries
lean manufacturing and its definition for industrieslean manufacturing and its definition for industries
lean manufacturing and its definition for industriesbarom
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
Sistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesSistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesjohannyrmnatejeda
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaANDECE
 
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidasSOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidasLeonardoMendozaDvila
 
POBLACIONES CICLICAS Y NO CICLICAS ......
POBLACIONES CICLICAS Y NO CICLICAS ......POBLACIONES CICLICAS Y NO CICLICAS ......
POBLACIONES CICLICAS Y NO CICLICAS ......dianamontserratmayor
 
4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptxEfrain Yungan
 

Último (20)

Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la Ingenierías
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneos
 
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinaciónEstacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
 
Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1
 
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTOESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
 
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
 
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRC
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSE
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdf
 
lean manufacturing and its definition for industries
lean manufacturing and its definition for industrieslean manufacturing and its definition for industries
lean manufacturing and its definition for industries
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
Sistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesSistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajes
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes Granada
 
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidasSOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
 
POBLACIONES CICLICAS Y NO CICLICAS ......
POBLACIONES CICLICAS Y NO CICLICAS ......POBLACIONES CICLICAS Y NO CICLICAS ......
POBLACIONES CICLICAS Y NO CICLICAS ......
 
4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx
 

Tutorial proton ide plus part 1

  • 1.     TUTORIAL PARA PROGRAMACION EN PROTON IDE PLUS ¿Qué es un microcontrolador? Es un circuito integrado programable que acepta un listado de instrucciones y contiene todos los componentes de un computador. Se utilizan para realizar determinadas tareas o para gobernar dispositivos, debido a su reducido tamaño, suele ir incorporado en el propio dispositivo que gobierna. El microcontrolador es un dispositivo dedicado. En su memoria solo reside un programa destinado a gobernar una aplicación determinada, sus líneas de entradas y salidas (I/O) permiten la conexión de sensores y relay. Una vez programado y configurado el microcontrolador solamente sirve para gobernar la tarea asignada. Figura 1.1 Diagrama en bloque de un Microcontrolador
  • 2.     Un microcontrolador dispone normalmente de los siguientes componentes: • Procesador o UCP (Unidad Central de Proceso). • Memoria RAM para Contener los datos. • Memoria para el programa tipo ROM/PROM/EPROM/EEPROM & FLASH. • Líneas de (entrada / salida) para comunicarse con el exterior. • Diversos módulos para el control de periféricos (temporizadores, Puertos Serie y Paralelo, A/D y D/A, etc.). • Generador de impulsos de reloj que sincronizan el funcionamiento de todo el sistema. Evidentemente, el corazón del microcontrolador es un microprocesador, pero cabe recordar que el microcontrolador es para una aplicación concreta y no es universal como el microprocesador. El microcontrolador es en definitiva un circuito integrado que incluye todos los componentes de un computador. Debido a su reducido tamaño es posible montar el controlador en el propio dispositivo al que gobierna. En este caso el controlador recibe el nombre de controlador empotrado (embedded controller). ¿Diferencia entre microprocesadores y Microcontroladores? El microprocesador es un circuito integrado que contiene la Unidad Central de Proceso (CPU), también llamado procesador, de un computador. El CPU está formado por la Unidad de Control, que interpreta las instrucciones, y el BUS de Datos, que los ejecuta. Los pines de un microprocesador sacan al exterior las líneas de sus buses de direcciones, datos y control, para permitir conectarle con la Memoria y los Módulos de (ENTRADA / SALIDA) E/S y configurar un computador implementado por varios circuitos integrados. Se dice que un microprocesador es un sistema abierto porque su configuración es variable de acuerdo con la aplicación a la que se destine. El microcontrolador es un sistema cerrado. Todas las partes del computador están contenidas en su interior y sólo salen al exterior las líneas que gobiernan los periféricos. Usted podría pensar que las características de un sistema cerrado representan una desventaja con relación a los Microprocesadores, pero en la práctica cada fabricante de microcontroladores oferta un elevado número de modelos diferentes, desde los más sencillos hasta los más poderosos. Es difícil no encontrar uno que se adapte a nuestros requerimientos del momento. Es posible seleccionar la capacidad de las memorias, el número de líneas de (ENTRADA / SALIDA) E/S, la cantidad y potencia de los elementos auxiliares, la velocidad de funcionamiento, etc. Por todo ello, un aspecto muy destacado del diseño es la selección del microcontrolador a utilizar. Podemos concluir con que la diferencia fundamental entre un Microprocesador y un Microcontrolador: es que el Microprocesador es un sistema abierto con el que se puede
  • 3.     construirse un computador con las características que se desee, acoplándole los módulos necesarios. Un Microcontrolador es un sistema cerrado que contiene un computador completo y de presentaciones limitadas que no se pueden modificar. Sistemas numéricos Realmente somos educados bajo el sistema numérico decimal. Un numero decimal como 5249 representa una cantidad igual a 5 millares, más 2 centenas, más 4 decenas, más 9 unidades. Los millares, centenas, decenas y unidades, son potencia de 10 implicadas por la posición de los coeficientes. Para ser más exactos, 5249 debe escribirse como: 5x103 + 2x102 + 4x101 + 9x100 5x1000 + 2x100 + 4x10 + 9x1 5000 + 200 + 40 + 9 5249 El sistema de número decimales se dice que es de base, o raíz 10 debido a que usa 10 símbolos y los coeficientes se multiplican por potencia de 10. A parte del sistema decimal existen otros sistemas numéricos como son el sistema binario, el sistema octal y el sistema hexadecimal. Realmente los microcontroladores manejan el sistema binario; pero en la programación el más conveniente es el hexadecimal y para cálculos matemáticos el decimal. En la siguiente tabla vea la conversión equivalente entre el sistema decimal, hexadecimal y binario.
  • 4.     El sistema decimal está compuesto por 10 símbolos (0–9), el sistema hexadecimal está compuesto por 16 símbolos (0-9, A, B, C, D, E, F) y el sistema binario está compuesto por dos símbolos (0-1). Cualquier sistema numérico es infinito, mientras el sistema contenga mayor cantidad de símbolos su representación será más abreviada; como es el caso del sistema hexadecimal. Para convertir de un sistema numérico a otro usted puede auxiliarse de una calculadora científica o de la calculadora incluida en el sistema operativo Windows. Los Basic los microcontroladores trabajan con el sistema binario, decimal y hexadecimal. No son necesarias las conversiones de un sistema a otro. Pero sin embargo necesitan un formato de representación para que el PIC BASIC pueda reconocerlos. Por ejemplo suponga que se tiene el siguiente valor decimal: Mil Ciento Diez (1110): Este valor se puede interpretar: • En binario (1110): Decimal 14 • En hexadecimal (1110): Decimal 4368 La misma representación puede interpretarse como 3 valores diferentes. El Basic distingue las cantidades decimales de forma natural y las hexadecimales y binarias por símbolos a la izquierda de la cifra a representar. Lógica Binaria o de 2 estados La lógica binaria trata con variables que toman dos valores distantes y con operaciones que tienen significado lógico. Los dos valores que toman las variables pueden designarse con nombres diferentes (verdadero y falso, si y no, true y false, 0 y 1, etc.), pero para este propósito no es conveniente pensar en términos de BITS y asignarles los valores de 1 y 0. La lógica binaria se usa para describir, en forma matemática, la manipulación y el proceso de la información binaria. Existe una analogía directa entre las señales binarias, los elementos de circuito binario y digito binario. Un número binario de n dígitos, por ejemplo puede representarse por n elementos de números binarios, cada uno con una señal de salida equivalente a 0 o al 1. Los sistemas digitales representan y manipulan no sólo números binarios, sino también otro muchos elementos discretos de información. Un BIT, por definición, es un digito binario. Cuando se usa junto con un código binario, es mejor considerarlo como si denotara una cantidad binaria igual a 0 o 1. Para representar un grupo de 2n elementos distintos en un código binario, se requiere un mínimo de n BITS. Esto se debe a que es posible ordenar n BITS en 2n formas distintas. Por ejemplo un grupo de 16 elementos puede representarse mediante un código de 4 BITS. 24 = 16 elementos. Durante todo el contenido de este material usted deberá estar familiarizado con los términos (1) lógico, (0) lógico, señal alta, señal baja, HIGH, LOW, 0 y 1. Cuando se dice que una señal es alta quiere decir que mide +5 Voltios con relación a tierra, cuando una señal es baja mide +0 Voltios con relación a tierra. Los BS2 trabajan con
  • 5.     la lógica TTL, esta opera con +5 Voltios como fuente de alimentación. Las señales se fundamentan entre +0 Voltios y +5 Voltios. Esto es aplicable tanto para las entradas como para las salidas, en la siguiente tabla se puede apreciar los diferentes términos para referirse a la lógica binaria. Operaciones lógica básicas Existen 3 operaciones lógicas llamadas: AND, OR y NOT. 1. AND esta función es verdadera cuando todas sus entradas son verdaderas. Y es falso cuando cualquiera de sus entradas es falsa. Se interpreta como la multiplicación binaria. 2. OR esta función es falsa cuando todas sus entradas son falsas. Y es verdadera cuando cualquiera de sus entradas sea verdadera. Se interpreta como la suma binaria. 3. NOT es la negación del resultado si es verdadero lo convierte en falso. Si es falso lo convierte en verdadero. Estas son las 3 operaciones fundamentales en la lógica binaria, a partir de estas funciones se derivan otras más que son las combinaciones de las 3 funciones básicas.
  • 6.     Software Protón Ejecute el entorno PROTON haciendo “click” en el ícono creado en el escritorio por el programa de instalación o a través del menú Iniciotodos los programasProtónProtonDEMO.exe, como aparece en la figura: Esta es la ventanilla lista para crear los programas en el icono ayuda encontrara todo lo referente a la función de cada uno de los iconos.
  • 7.     PROGRAMACION DE MICROCONTROLADORES PIC EN PROTON IDE PLUS BASIC es un simple y fácil lenguaje de programación. Tiene sólo unas pocas normas y el control de estructuras que definen su gramática. En este tutorial vamos a aprender acerca de algunos principios básicos de este gran lenguaje de programación. Los códigos presentados aquí no pretenden ser programados en el microcontrolador, como tal, sino que se dan para explicar el tema. Una vez que haya pasado por esta introducción al lenguaje de BASIC, sólo entonces se puede ir a las áreas específicas de su interés. Lo que se presenta aquí se repite muchas veces a través de los siguientes capítulos del tutorial. Estructura del programa en Pic Basic Un programa básico consta de: • Programa de cabecera • Declaraciones • Explicación de los signos e identificadores • Declaraciones y comandos Además de estas estructuras de base, algunos compiladores también permiten programación orientada a objetos, así como procedimientos y funciones. Sin embargo Protón IDE no permite los procedimientos y funciones en el verdadero sentido, así como no es compatible con los objetos. Tiene enfoque orientado hacia el simple y sencillo llamado de instrucciones. La programación comienza en la parte superior, y la continúa hacia abajo. Sin embargo permite las repeticiones. Las primeras líneas del programa BASIC, difieren en la memoria de los microcontroladores, EEPROM, número de puertos y registros, etc., es necesario informar al compilador sobre el microcontrolador que se utilizará. En segundo lugar la velocidad de procesamiento depende de la frecuencia del cristal. Por lo tanto, a fin de calcular con precisión el calendario de funciones de retraso también es necesario informar al compilador de la frecuencia del cristal. Los programas de lenguaje BASIC usualmente comienzan así: Device = 16F877A XTAL = 4
  • 8.     La primera línea indica el procesador y la segunda línea dice que el hardware utiliza 20MHz de cristal. Declaraciones Son instrucciones especiales sobre los diversos dispositivos a utilizar, esto ayuda al compilador a generar instrucciones específicas. Por ejemplo, si estamos usando una pantalla LCD y se conecta en PORTD, entonces tenemos que informar las conexiones de nuestro LCD. Vamos a declarar este tipo de configuración generalmente después de la sección de encabezado utilizando los comandos: Declare LCD_DTPIN PORTD.0 Hay un número de declaraciones, sin embargo, sólo las necesarias en el proyecto actual se fijan normalmente.... Identificadores Los identificadores son símbolos de texto especial que se utiliza para representar algo. Pueden ser utilizados como etiquetas para marcar ciertos lugares en el programa, de modo que el programa se puede hacer para ir a las etiquetas y luego continuar con el programa a partir de entonces. Del mismo modo los identificadores pueden usarse para nombrar algunas ubicaciones de memoria. Estos son por lo general variables llamadas, y son los identificadores más importantes en la programación. Los identificadores también se pueden utilizar como alias en cierto texto, de modo que en lugar de escribir el texto concerniente del identificador, el compilador inserta el texto pertinente en su lugar. Las declaraciones y comandos Hay tres tipos de declaraciones: • Comparación y declaraciones condicionales • Repetición y declaraciones de bucle • Biblioteca de comandos Comparación y sentencias condicionales nos permiten comparar dos o más variables, los puertos, los pines del puerto o registros de funciones especiales y luego tomar la decisión de ejecutar un conjunto de instrucciones o de otro conjunto. Considerando la importancia de estas declaraciones, el lenguaje BASIC prevé diferentes construcciones de esto. Vamos a explorar estas a continuación. La repetición y de bucle es una de las mayores ventajas de los microprocesadores. Podemos encargar al microcontrolador repetir continuamente ciertas instrucciones, ya sea indefinidamente, o hasta que una determinada condición existe.
  • 9.     Por ejemplo, para mantener un LED, hasta que la temperatura es alta desde un punto de ajuste. Biblioteca de Comandos, no son propiamente los comandos del lenguaje BASIC, pero son proporcionados por el fabricante del compilador para hacer las tareas comunes. Por ejemplo, un comando de biblioteca para mostrar algunos datos sobre la LCD o para leer los datos analógicos de un pin de entrada. Etiquetas Para marcar las declaraciones que el programa podría hacer referencia con los comandos Goto, Call o Gosub, PROTON utiliza las etiquetas de línea. A diferencia de los antiguos BASICS, PROTON no permite o exige a los números de línea y no requiere que se etiquete cada línea. En cambio, cualquier línea puede comenzar con una etiqueta de línea, que es simplemente un identificador seguido de dos puntos (:). LAB: PRINT "Hola Mundo" GOTO LAB Los nombres de etiqueta pueden ser de hasta 32 caracteres de longitud y puede contener cualquier carácter alfanumérico, pero no debe comenzar con un valor numérico. Por ejemplo: Label1: Es perfectamente válido, sin embargo: 1LABEL: Se producirá un error de sintaxis porque las etiquetas se inician con el valor 1. Una etiqueta que contenga más de 32 caracteres producirá un error de sintaxis señalando la etiqueta de reincidencia. También se permite caracteres como parte de la etiqueta. Esto ayuda a crear más nombres de etiqueta descriptiva. Por ejemplo: THISISALABEL: No tiene la misma claridad de significado como: THIS_IS_A_LABEL: Variables Las variables se utilizan para almacenar datos temporalmente o para mantener números que se utilizarán en los cálculos. El número de variables que pueden ser utilizados en un programa depende de la memoria RAM del microcontrolador, la arquitectura del Microcontrolador, la parte de la memoria RAM, la memoria del programa.
  • 10.     Por lo tanto, si usted tiene 16K de la memoria del programa y 256 bytes de memoria RAM, no se puede utilizar la memoria de programa libre para almacenar datos. Variables Por lo tanto, nada más que bytes de memoria. Para facilitar este trabajo, el compilador le permite dar a estos los nombres en lugares de la memoria, llamados nombres de variables. Las variables existentes en la memoria RAM, como una secuencia de bytes, pueden ser agrupados juntos para hacer más grande las organizaciones de distintos tipos de datos, que pueden ser manipulados por nuestro compilador. Los compiladores de diferentes fabricantes difieren en este servicio, sin embargo algunos tipos de datos estándar son apoyados por todos. Las variables son declaradas mediante una instrucción Dim, seguida del nombre de variable y su tipo de datos. La declaración Dim puede aparecer en cualquier lugar sin embargo es una buena práctica de programación ubicar todas las declaraciones Dim en la parte superior del programa.... Dim Dog As Byte ' Crea una variable de 8-bit (0 to 255) Dim Cat As Bit ' Crea una variable de un bit (0 or 1) Dim Rat As Word ' Crea una variable 16-bit (0 to 65535) Dim Large_Rat As DWord ' Crea una variable 32-bit (-2147483647 to +2147483647) Dim Pointy_Rat As Float ' Cre una variable floating point de 32-bit Dim ST As STRING * 20 ' Crea una variable STRING de capacidad de 20 Caracteres Los tipos de datos como bit, byte, WORD, DWORD, float y string definen el número de bytes reservados para la variable, también definen el rango de número, que puede ser almacenada, así como la naturaleza del número almacenado. Los números almacenados pueden ser firmados o no-firmados, así como que pueden contener un punto decimal. Una cadena por otra parte, que es una colección de bytes de tamaño variables, para mantener los datos de carácter. El compilador usará parte de la memoria para almacenar las variables internas. La cantidad de RAM usada por compilador depende de la complejidad del programa. Como hay estructuras de control y de bucles, el compilador utilizara más la RAM. Los nombres de variables siguen las mismas líneas de guía general como identificadores. Sin embargo, hay ciertas palabras que no pueden ser utilizados como nombres de variables. Consulte la ayuda de PRORON para obtener detalles de reserva palabras.
  • 11.     Acceso a la parte de una variable Muchas veces una parte de una variable se debe acceder, ya sea para lectura o escritura. La mayoría de las veces en un Bytes de tamaño variable un poco particular, se debe acceder. Un byte consta de 8 bits numerados del 0 al 7. 0 es el menos significativo y el bit 7, el más importante. Un bit individual de una variable se accede por un punto seguido por el número de bits en un nombre de variable. Así, si tenemos x como un byte de tamaño variable, su bit menos significativo se puede acceder por X.0 y bit más significativo por X.7. Dim x As Byte Dim y As Byte x.0 = 1 y.7 = x.0 End En este ejemplo, X e Y son de bytes de tamaño variables, x.0 = 1 establece el bit 0 de x como de alta, y y.7 = X.0 lee el valor de la X.0 y la transfiere en y.0 En el caso de la palabra DWord , se puede hacer al byte de orden alto y byte de orden bajo, o Byte0, Byte1, etc Byte2 por separado. DIM DWD as DWORD ' Declare la variable DWD a 32-bit DIM PART1 as DWD.WORD0 'PART1 a la palabra baja de DWD DIM PART2 as DWD.WORD1 'PART2 a la palabra alta de DWD Símbolos Los símbolos son en realidad una manera de simplificar las cosas. Se asigna a un alias o un registro, una variable o un valor constante. El alias se utilizará en el programa, el compilador reemplazará el alias con los datos reales, antes de compilación Symbol LED = PORTB.0 High LED En este ejemplo, un símbolo de LED se ha definido para el PORTB.0. Por lo tanto cada vez que usamos la palabra LED en nuestro programa significaría PORTB.0 este programa es más fácil de entender, y más lógico. Matrices Matriz es una estructura común utilizada en la programación. El concepto es utilizar múltiples variables, con el mismo nombre, pero que tengan un número de índice que los refiera. Dado que un número de índice en sí mismo puede ser una variable, es más fácil caminar a través de un arsenal enorme de variables, cambiando simplemente el índice. Para declarar una variable como una matriz, tenemos que mencionar su longitud.
  • 12.     Dim Temp[20] As Byte Dim x As Byte For x=0 To 19 Temp[x]=0 Next x En este ejemplo, una variable denominada Temp ha sido declarada como una matriz de 20 variables, siendo cada uno un byte de tamaño. El número de índice de estas 20 variables serán 0 a 19. Así, para acceder al primer elemento de la matriz, que utilizará temp [0] en lugar de Temp. El número de índice en sí puede ser una variable. Cadenas Las cadenas son una serie de datos alfanuméricos. Para ejemplo, su nombre, país, dirección están configurados como cadenas. Las cadenas son más que matrices de bytes. Sin embargo cuando las matrices son utilizados como cadenas, el último byte de datos debe contener un 0. Dim String1[5] As Byte ' Crear una matrix de 5 elementos Dim String2[5] As Byte ' Crear otra matrix de 5 elementos Str String1 = "ABCD" , 0 'llena la matrix con ASCII Y NULL determinado Str String2 = "EFGH" , 0 ' llena la matrix con ASCII Y NULL determinado Str String1 = Str String2 ' Copiar String2 a String1 Print Str String1 ' Mostrar el string El uso de un prefijo Str. le dice al compilador que se tratar la matriz como una cadena. Representación numérica de los números Como ya hemos comentado, el mismo número puede ser representado como formato decimal, binario o hexadecimal. Sin embargo, se hace anteponiendo la cantidad numérica con ciertos símbolos. Binario es el prefijo%. Es decir, 0101% Hexadecimal es el prefijo $. Es decir, $ 0A Byte de caracteres está rodeado de comillas. Es decir, "A" representa un valor de 97 Los valores decimales no necesitan de ningún prefijo, se crean utilizando un punto decimal. Es decir, 8,14. Acceso a los puertos y registros Son estructuras especiales internas del microcontrolador. Los puertos han sido nombrados como PORTA, PORTB, PORTC, etc. Todos los puertos son bidireccionales, es decir, que pueden ser utilizados para leer el estado del PIN o establecer el estado del PIN. La mayoría de los puertos son de 8 bits, pero algunos son de menos salidas. Los
  • 13.     puertos y sus bits se pueden acceder de la misma manera que las variables. También se puede utilizar en las expresiones matemáticas. Además de los puertos hay una serie de registros internos con funciones específicas, que se asignan a los bits específicos de estos registros. A pesar que estos registros tienen una dirección especial, en la memoria y estas direcciones se utilizan para acceder a ellos. BASIC PROTON hace que sea más fácil acceder a estos registros por sus nombres para luego tratarlos como cualquier otra variable. Estos nombres están predefinidos, y varían de acuerdo con el microcontrolador a utilizar. El compilador Basic de PROTON sabe que los puertos y los registros están disponibles en el microcontrolador seleccionado.... PORTA = %01010101 ' escribir el valor binario en PORTA VAR1 = WRD * PORTA ' Multiplica variable WRD con el contenido de PORTA TMR0=0 ' ajustar el Timer a 0 RCSTA.5=1 ' Establecer el bit 5 del registro RCSTA en valor lógico alto Vamos a hablar de dichos registros en las secciones apropiadas. Aquí sólo quiero mencionar que estos registros de funciones especiales pueden ser tratados como variables normales, para establecer o leer sus valores y bits. Toma de decisiones La mayoría de los programas requieren algún tipo de toma de decisiones basada en las aportaciones o condiciones. Las decisiones siempre se evalúan como verdadero o falso. El programa se ejecuta a ciertos grupos de instrucciones en cada caso. Esto se logra con la Declaración IF THEN ENDIF. El formato general de IF es tomar una comparación, y para ejecutar un lote de instrucciones en caso de que la comparación se evalúa como verdadera. El fin de la IF se caracteriza por la instrucción ENDIF. Symbol LED PORTC.0 If x > 10 Then High LED End If En caso de que el valor de x no es mayor que 10, el programa saltará a las declaraciones a continuación End If. En el caso que el valor de x es mayor que 10, hará que el LED encienda y luego continúa con las declaraciones después de End If. Otra forma de IF utiliza ELSE. Este formulario tiene dos lotes de instrucciones, una que se ejecuta si la comparación se evalúa como verdadera, y otros se ejecuta si la comparación se evalúa como falsa. Symbol LED PORTC.0 If x > 10 Then High LED
  • 14.     Else Low LED End If La repetición o bucles Como ya hemos visto que nuestro programa se ejecuta de arriba a abajo. Sin embargo, si un conjunto de instrucciones se tiene que repetir una y otra vez de alguna forma debe haber una declaración en la parte superior que controle el estado de la instrucción. Esto proceso se denomina un bucle. El bucle más simple se puede construir mediante el uso de una etiqueta, y luego utilizar una instrucción Goto para saltar a la etiqueta. Device=18F2550 Symbol LED = PORTC.0 Inicio: High LED DelayMS 500 Low LED DelayMS 500 GoTo Inicio En este programa hemos definido una etiqueta, llamada de Inicio, observe los dos puntos después de ella. Después de haber realizado la instrucción que queremos transferir, se utiliza el comando Goto, el cual a transfiere el control a la etiqueta de Inicio y el programa continuará. Este ciclo se repite sin cesar. No hay manera de que el programa puede salir de este bucle. La mayoría de las veces queremos un bucle de control, en la que el grupo de instrucciones se repita de tal manera que después de una determinada condición el bucle se terminara. Esto se puede hacer combinando un caso de declaración. Por ejemplo, queremos que el LED se active 10 veces y luego continuar con el resto del programa. Device=18F2550 Symbol LED = PORTC.0 Dim x As Byte x=0 Again: If x = 10 Then GoTo Cont End If High LED DelayMS 500 Low LED DelayMS 500 x=x+1
  • 15.     GoTo Again Cont: ‘resto del Programa En este programa, hemos tomado una variable de control, denominada X, y establecido su valor a 0. Durante el bucle, incrementa su valor en 1, en cada ciclo, y comprobara si el valor de x ha alcanzado el 10. Cuando su valor ha llegado a 10, nos envía a una etiqueta para terminar el bucle, y continuar con el resto del programa. Dado que este es un escenario común, BASIC de PROTON ha introducido una serie de maneras de hacerlo, con la misma ideología, pero en más estructurada y controlada. Uno de ellos es el llamado bucle For... Next. Device=18F2550 Symbol LED = PORTC.0 Dim x As Byte For x=0 To 10 High LED DelayMS 500 Low LED DelayMS 500 Next x Aquí está el mismo programa, pero con bucle For. En un bucle, que da un rango a una variable, entre los estados mencionados y la declaración siguiente se repite, cada vez que el valor de la variable de control se incrementa y cuando la condición ha alcanzado el límite superior, el control se transfiere a la línea debajo de la Instrucción Next. También puede utilizar el valor de la variable de control dentro de su ciclo. Sin embargo, no se puede cambiar el valor por sí mismo dentro del cuerpo del bucle. ¿Qué pasa si queremos incrementar el valor del control variable por 2? Sólo se menciona el paso 2 de la declaración. For x=0 To 10 Step 2 Del mismo modo, si queremos disminuir el valor, digamos por 1, 20 a 0: For x=20 To 0 Step -1 Este tipo de bucle es muy usado para inicializar las matrices. Para la siguiente declaración es útil, para repetir las instrucciones un número de veces. En algunas ocasiones no se sabe por cuánto tiempo las instrucciones tienen que ser repetidas. Por ejemplo, queremos repetir ciertas instrucciones hasta que se pulsa una tecla. No sabemos cuándo una tecla se presiona. Así que el bucle debe vigilar el estado de la tecla. Device=18F2550 Symbol LED = PORTC.0
  • 16.     Symbol SW3 = PORTE.0 While SW3 <> 0 High LED Wend Low LED Este programa utiliza otro método de reproducción en bucle, el While y Wend. Se ejecuta el cuerpo del bucle si la condición es cierta. Este ciclo se repite mientras que la condición se evalúa como falsa. Esa fue una introducción al lenguaje de Basic En PROTON, podrá aprender más acerca de los comandos normas y órdenes durante el tutorial , siendo esto lo mínimo que se debe saber para comenzar.