Vous êtes sur la page 1sur 11

PROGRAMACION PIC COMPILER

Edison Eduardo perez socha


Eeperez371@misena.edu.co
Ingeniero: yexsy Leonel Gonzlez vallejo
Inicial mente la programacin es un una funcin especfica ejemplo prendiera
lenguaje diferente al normal es decir es una motor al mismo tiempo se desarroll
estructura de comandos el cual permite programas que permitiera trasformar un
cambiar el lenguaje normal a un lenguaje lenguaje natural a un lenguaje binario
maquina 1 y 0 . el lenguaje maquina es permitiendo dar un salto en la informtica
aquel se vasa solo en una estructura 1y0 .
en forma de instrucciones el cual permite a
El desarrollo de los micro controladores
un micro controlador entender el
permiti programarlos el realiza funciones
significado o una computadora comn.
diferentes el cual integra gran cantidad de
Lgicamente los lenguaje maquina son
electrodomsticos el micro controlador es
dependientes del hardware ya que cada
unidad lgica de procesamiento en su
procesador posee un conjunto de
interior integra CPU integra memoria
instrucciones diferentes a otros.
RAM y ROM con puertos de entrada
I Objetivo salida los cuales define (1) entrada (0)
salida.
Con el fin de explicar la forma correcta de
programacin el buen uso de los comandos Al pasar un dato a un micro solo es
explicando cmo debe ser la sintaxis de limitado por la cantidad de bits cadenas de
una programacin con el compilador pic programacin el cual varan adems la
compiler mostrando que es un lenguaje cantidad puertos permitiendo realizar ms
simple para el que desea aprender es funciones
correcta practica para otros
III COMO PASAR UN NUMERO
programaciones ms avanzadas
DECIMAL BINARIO:
II Historia
Los dgitos del numero binario ocupan una
El lenguaje de programacin se origin posicin que se enumeran de izquierda a
por ingenieros informtico que se derecha empezando por el (0).al pasar el
desarroll en las primeras computadoras numero decimal se multiplica cada digito
que su forma de sintaxis era muy vaga en binario en dos elevado luego se suma el
su ejecucin el cual era binario .en los aos valor de los productos un valor de los
posteriores los ingenieros optaron por una productos un valor decimal.
forma de cdigo que consista en palabras
abreviadas en escrito ingles permiti que
realizar varias funciones en cada palabra
,permiti recordar mas fcilmente los
comandos para programar para realizar

CENTRO INDUSTRIAL DE MANTENIMIENTO MANUFACTURA SENA


TECNLOGO EN AUTOMATIZACIN INDUSTRIAL SOGAMOSO 1322028
Ejemplo Salida. Usan para realizar una funcin
externa del mi controlador es decir prender
un motor prenda un led visualizarse un
dato lcd
= Asignacin: este tipo de instruccin se usa
IV CLASES DE BITS: para asignar valores a las variables dentro
del programa.
Un bit=digito binario tiene un valor 0,1. Si
son mas bits combinados dan origen ms VI OPERACIONES ARITMTICAS:
estructuras de sentencias. Las expresiones lgicas representan
Nyble=4bit condiciones pueden ser verdadero o falso
el resultado ser de tipo entero
Byte=8bit -2nyble
Word=2byte -4nyble -16bit
operador propsito
Las constantes: permiten especificar en
decimal, octal, hexadecimal o binario
+ Suma
realizar intercambio entre si. Ejemplo 123 - Resta
decimal ,0123 octal (0),0*123hexadecimal * Multiplicacin
/ Divisin
V .VARIABLES:
% Modulo,restode una
Las variables se utilizan para nombrar divisin entera
posiciones de la memoria RAM el cual se I= Distinto que
debe indicar el nombre y el tipo de dato ++ Decremento
que se maneja para ser utilizada -- Incremento
TIPO NOMBRE_VARIABLE {=VALOR < Menor
INICIAL} que
TIPO: cualquier dato
> Mayor que
NOMBRE VARIABLE: cualquier valor = Igual
inicial es opcional <= Menor igual que
Toda programacin se basan en estas tres >= Mayor igual que
cosas definir el pin micro controlador ser == Igual que
usado entrada salida que funcin ara tener && And
presenten al momento copilar no colocar el ii Or
mismo pin en una funcin
Entrada.es usado adquirir los datos de
entrada y guardarlos en variables para que
puedan usarse en el programa.

CENTRO INDUSTRIAL DE MANTENIMIENTO MANUFACTURA SENA


TECNLOGO EN AUTOMATIZACIN INDUSTRIAL SOGAMOSO 1322028
Problemas mas destacables al momento de
programar:
.Dificultad para depurart ,localizar
Problema en la secuencia de repetir
corregir errores.
variables.
Dificultad la modificacin ampliacin
Error al manejar la sintaxis. Mal uso de los
desarroloo.
corchetes. Incorrecto el uso varios bucles.
Problema al pasar programacin No declarar correctamente la sentencia
quemador.
Correcto manejo de las libreras cc:
Las libreras estn implementadas como Eje-int numero1:
ficheros de extensin este compilador pic
Signed int numero2:
compiler se caracteriza por que debe crear
los mens en otros programas se encuentra Short int numero3:
creados cada librera contiene realizar una
funcin habilitar un componente al Unsigened int:tipo de dato sirve para
momento de programar definir enteros sin signo

Incluye una serie de comandos para Unsigned Log int-la representacin a


habilitar el uso del elemento en la seccin enteros sin signo por lo valores negativos
int (lcd,h) desaparecern y pasa a sumarse los
positivos
Indicar la palabra para habilitar la librera
se ubica despus de haberse indicado el Float es un dato flotante es decir se repite
huso de los puertos
VII TIPOS DE DATOS VIII OPERADORES
FUNDAMENTALES:
DIRECIONALES (&)
Como cualquier otro lenguaje C, tiene la INDIRECIONALES(*):
posibilidad de trabajar distintos datos
como puede ser dartos numricos o Los operadores muestran de modo
caracteres en estos estn. circunstancial la importancia lenguaje c
son operando forma ms general
Tipo char: un carcter el 1 parte expresin
aritmtica Operador(&)devuelve la direccin de
memoria del operando al que se aplica .
Eje.char letra1:
Hay que resaltar que no se debe modificar
Signed char letra2: la direccin de una varible,no esta
Tipo int: sirve para definir nmeros permitido operaciones que el
enteros con signo y su representacin operador&
memoria de 2bytes
CENTRO INDUSTRIAL DE MANTENIMIENTO MANUFACTURA SENA
TECNLOGO EN AUTOMATIZACIN INDUSTRIAL SOGAMOSO 1322028
Operador indireccion * el operador Se le conoce tambin con la expresin 1 en
complementario del &aplicado a una vez de incluir for
expreion representado una direccin de
Incluye a la ves la frmula que se realizar.
memoria
Eje:x=*y: SENTENCIA BREAK Y
CONTINUE-:_
Funcin main()
Break se usa para interrumpir la secuencia
Todo programa c,desde mas corto al mas lgica de un bucle para salir de una
complejo tiene un programa sentencia switch
Sentencia while- Contine solo es usado en los
La sentencia considerado tipo bucle que bucles(for,while,do,)la sentencia que se
permite repetir una serie de veces la encuentre a continuacin salta a la
ejecucin de un bloque de cdigo siguiente

While(condicin) SENTENCIA GOTO-:

{ Rompe la secuencia lgica del programa


haciendo que salte hasta donde este la
Sentencia1: sentencia de la etiqueta
} //*salir 1/
La condicin se evalua la ejecusion del
bloque de sentencia su resultadfo ser true
(verdadero)
Sentencia do IX ESTRUCTURA
El bucle utilizado la sentencia comporta Conocido como registro esta compuesto en
igual a un while al realizar el siclo inicia un conjunto de variables tambin llamadas
de nuevo desde el comienzo campos que podrn ser diferente tipo y
Ejemplo: indicaran las caracterististicas de un
elemento de la misma
Do
Estos campos se almacenan de forma
{ consecutiva en memoria por lo longitud
Sentencia; estructura ser la suma de la longitud de
cada tipo de dato de los campos que
}while(condicin); compone
Sentencia for- Ejemplo
Se considera de tipo bucle similar a un Struct tipo _estructura
while permite repetir una serie de veces
indefinidas {

CENTRO INDUSTRIAL DE MANTENIMIENTO MANUFACTURA SENA


TECNLOGO EN AUTOMATIZACIN INDUSTRIAL SOGAMOSO 1322028
Tipo _dato_1campo_1; #include<stdio.h>
Tipo_dato_n campo_n: Main()
Errores comunes Chart x
*Olvidar finalizar cada sentencia con } X _a;
*Comentarios anidados Putchar(X)
*Problemas con maysculas y minsculas
*Uso de;directiva#define Function printf()
*Confusin entre asignacin y La funcin printf imprime por pantalla el
comparacin de igualdad texto las constantes y variables que se
indiquen el prototipo de esta funcin es el
*Olvidar la sentencia break en la sentencia
siguiente
switch
Modificador de formato
*Sobrepasar la memoria reservada
*No definir los puertos que se usan D,i Entero decimal
O Entero octal
Funcion getchar() U Entero decimal sin signo
La funcion getchart()en caso de xito X Entero hexadecimal
permite leer un solo carcter introducido F Como flotante
por teclado y lo devuelve convertido en un E Coma flotante
unsigned int G Flotannte segn valor
Ejemplo e Como e mayuscula
#include <stdio.h>
Main()
Estructura de un programa:

{ Z continua con un comando


especifico. La sintaxis depende del
Char x; comando. Algunos comandos no
X_getchart() permiten otros elementos sintcticos
en la misma expresin. Muchas de las
} directivas utilizadas ccs son extensiones
Function putchart() del c estndar

La function putchart()permite impirimir


un solo character pasado como argumento X .MANEJO DE UNA LCD_:
por pantalla
en la programacin se puede visualizar los
Ejemplo datos en una pantalla permitiendo mostrar
los valores es decir mostrar un mensaje de
CENTRO INDUSTRIAL DE MANTENIMIENTO MANUFACTURA SENA
TECNLOGO EN AUTOMATIZACIN INDUSTRIAL SOGAMOSO 1322028
bienvenida en otra cosa en un circuito con Lx Largo hexadecimal minscula
integracin de un sensor se puede f Flotante con truncado
observar los datos que esta recibiendo g Flotante redondo
mostrar una serie de valores con la e Flotante en formato
operacin (&%%)en este pequeo exponencial
corchete permite darse un mensaje de ola w Entero sin signo
el cual acta de forma comentario
Incluye una serie de comandos para XI TECLADO(MATRICIAL)
funcionar en estos estn: Las entradas ea travs de un pulsador son
lcd_gotoxy: indica la posicin de acceso al muy habituales en los sistemas con micro
lcd ejemplo (1,1)indica la primera controladores para trabajar con una mayor
posicin de la primera lnea y (1,2)indica informacin o informacin alfanumrica
la primera posicin de la segunda lnea. los siguientes comandos que utiliza son los
siguientes.
Getc:lee el carcter de la posicin (xy)
Kbd_init()
Putc(char s):s una variable de tipo char.
Escribe la variable en la posicin
correspondiente si adems se indica:
/f se limpia el lcd
Inicia el sistema debe ser la primera
/n el cursor va al posicin (12) funcion en el programa
/b cursor retrocede una posicin Kbd_getc()
String: una lista de variables separadas por Devuelve el valor de la tecla pulsada en
comas funcin de la tabla que tiene programa
Glcd_update: escribe la RAM del lcd; solo Para realizar funciones de suma resta de
es posible si est definido fast_glcd valores con el teclado y la lcd se utiliza
A continuacin se muestra una formas de La ecuacin cuando el valor de teclado sea
utilizar varibles en la lcd 0 la salida ser 0 de forma continua
%nt donde n es opcional y puede ser un Que se debe tener en cuenta al crear una
valor variable matemtica
C Carcter Al momento de construir la variable menor
S Cadena o carcter mayor que un resultado se debe utilizar
U Entero sin signo matemtica de algebra para tener claro las
D Entero con signo operaciones decimales, los naturales,
Lu Entero largo signo pares, impares teniendo claro el concepto
Ld Entero consigno se puede proseguir utilizando la operacin
X Hexadecimal minscula de pasar un valor decimal a binario
X Hexadecimal mayscula
Lx Largo hexadecimal mayscula

CENTRO INDUSTRIAL DE MANTENIMIENTO MANUFACTURA SENA


TECNLOGO EN AUTOMATIZACIN INDUSTRIAL SOGAMOSO 1322028
Al mismo tiempo al colocar la Delay_ms: permite dar un retardo a
sentencia en la programacin que la programacin
realice un a medicin muestre al
mismo tiempo en la lcd los valores
if (condicin){
Cuando i=1 equivale 1
instrucciones1;
i++ incremento 1
}
n=aplica la mima funcin pero en
parte decimal en i es otra funcin else{
XII LA SINTAXIS instrucciones2;
la sintaxis al crear una secuencia es }
textual numrico el cual utiliza Ejemplo de sintaxis
secuencias de texto incluyen
palabras nmeros similar a un Manejo de lcd
lenguaje natural solo con la #include <16F877A.h>
diferencia que tiene frase en ingls #fuses XT,NOWDT
para permitir recordar al momento
#use delay( clock = 4000000 ) // Reloj de 4
programar .
MHz
la sintaxis de un lenguaje de #BYTE TRISA = 0x85
programacin describe las
#BYTE PORTA = 0x05
combinaciones posibles de los
smbolos forman un programa #BYTE TRISB= 0x86

sintcticamente correcto #BYTE PORTB= 0x06


#BYTE TRISC= 0x87
#BYTE PORTC= 0x07
comandos frecuentemente utilizados
signo puntuacin: #BYTE TRISD= 0x88
#BYTE PORTD= 0x08
bit _set: declara predido funcion
#BYTE TRISE= 0x89
bit_clear :declara apagado funcion
#BYTE PORTE= 0x09
{}:corchetes permite serar la accin
Port:declara los puertos que utiliza void main()
microcontrolador
{int n,i,d;
SET_TRIS_B(0b00000000);

CENTRO INDUSTRIAL DE MANTENIMIENTO MANUFACTURA SENA


TECNLOGO EN AUTOMATIZACIN INDUSTRIAL SOGAMOSO 1322028
SET_TRIS_A(0b00000011); delay_ms(100);
SET_TRIS_D(0b00000000); n=n+1;
SET_TRIS_C(0b00000000); delay_ms(100);
lcd_init(); }
n=0; if(bit_test(PORTA,1)==1)
i=9; {zx:
bit_clear(portd,0); bit_clear(portd,0);
bit_clear(portd,1); bit_clear(portd,1);
bit_clear(portd,2); bit_clear(portd,2);
bit_clear(portd,3); bit_clear(portd,3);
bit_clear(portd,4); bit_clear(portd,4);
bit_clear(PORTA,2); bit_clear(PORTA,2);
bit_clear(PORTA,3); bit_clear(PORTA,3);
bit_clear(PORTA,4); bit_clear(PORTA,4);
bit_clear(PORTA,5); bit_clear(PORTA,5);
delay_ms(100); printf(lcd_putc,"\f");
for(;;) delay_ms(100);
{ n=n-1;
if(bit_test(PORTA,0)==1) delay_ms(100);
{ xx: if(n>=5)
bit_clear(portd,0); {
bit_clear(portd,1); n=0;
bit_clear(portd,2); }
bit_clear(portd,3); s(n)
bit_clear(portd,4); {
bit_clear(PORTA,2); case 0:
bit_clear(PORTA,3); {
bit_clear(PORTA,4); lcd_gotoxy(1,0);
bit_clear(PORTA,5); printf(lcd_putc,"\fDISPLAY 9-0");
printf(lcd_putc,"\f"); delay_ms(100);

CENTRO INDUSTRIAL DE MANTENIMIENTO MANUFACTURA SENA


TECNLOGO EN AUTOMATIZACIN INDUSTRIAL SOGAMOSO 1322028
while (TRUE) SET_TRIS_A(0b00000000);
while(i<=9) SET_TRIS_B(0b00000011);
{f(bit_test(PORTA,0)==1) XX:
goto xx;
output_a(0);
if(bit_test(PORTA,1)==1)
delay_ms(100);
goto zx;
while(TRUE)
output_b(i);
delay_ms(200); {while(n<=9)
i=i-1; { bit_clear(PORTB,2);
delay_ms(500); output_a(n);
if(bit_test(PORTA,0)==1)
if(bit_test(PORTB,0)==1)
{
goto xx;
bit_set(PORTB,3);
if(bit_test(PORTA,1)==1)
{ delay_ms(200);
n=n+1;
Ejemplo de programacin apagado delay_ms(500);
encendido led en visualizacin }else
desplay 7 secmentos
bit_clear(PORTB,3);
#include <16F84A.h>
#fuses XT,NOWDT
while (n==10)

#use delay( clock = 4000000 ) // Reloj de if(n==10)


4 MHz
principal:
#BYTE TRISA = 0x85
{if(bit_test(PORTB,1)==1)
#BYTE PORTA = 0x05
{GOTO XX;
#BYTE TRISB= 0x86
}bit_set(PORTB,2);
#BYTE PORTB= 0x06
#BYTE OPTION_REG = 0x81
output_a(9);

void main() delay_ms(100);


{int n=0; output_a(15);

CENTRO INDUSTRIAL DE MANTENIMIENTO MANUFACTURA SENA


TECNLOGO EN AUTOMATIZACIN INDUSTRIAL SOGAMOSO 1322028
if(bit_test(PORTB,1)==1)
{GOTO XX;
}bit_clear(PORTB,2);
delay_ms(100);
goto principal;

XIVREFERENCIAS
XIII CONCLUSIONES
1. Libro fundamentos de
la estructura de programacin debe programacin Autor :Manuel
ser ordenada acorde a lo que desea
Santos, Ismael Patino ,Ral
realizar .tener en cuenta los errores
de sintaxis en las sentencias de if el Carrasco
cual el compilador da como error 2. compilador c ccs y simudor
pero da correcto la compilacin al
momento pasar a realidad no realiza
proteus para
ninguna funcin. microcontroladores pic
autor: Eduardo Garca breijo
Tener atencin a los bucles de
repeticin y de salto al faltar un 3.
corchete da error .
http://programarpicenc.com/a
cada declaracin puerto debe incluir rticulos/programacion-de-pic-
un punto y coma. Siempre tener en en-c-con-el-compilador-
cuenta las definiciones de los
comandos hacer correcto su uso al mikroc-pro/ (tecmikro)
momento de la programacin pic
compiler.
4.http://www.edudevices.com.
Al utilizar las variables matemticas
que permiten visualizar un dato ar/download/articulos/MCUsP
natural a decimal se debe tener en IC/Programando_PICs_CCS_08.
cuenta las variables en la vida real pdf (aprendiendo a programar
Al utilizar la lcd tener en cuenta microntroladores pic en
colocar los corchetes en los
lugares indicados

CENTRO INDUSTRIAL DE MANTENIMIENTO MANUFACTURA SENA


TECNLOGO EN AUTOMATIZACIN INDUSTRIAL SOGAMOSO 1322028
lenguaje c con ccs) autor
Andres Ral Bruno Saravia
5.
https://everac99.wordpress.co
m/2012/12/13/desempeno-de-
c-vs-java-todo-reside-en-la-
calidad-del-compilador-y-del-
programador-tambien/
(desempeo c++)autor:everac

CENTRO INDUSTRIAL DE MANTENIMIENTO MANUFACTURA SENA


TECNLOGO EN AUTOMATIZACIN INDUSTRIAL SOGAMOSO 1322028

Vous aimerez peut-être aussi