SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
Sistemas Electrónicos Programables
Facultad de Ingeniería, Universidad de Deusto
Introducción a la Programación
Sistemas Electrónicos Programables
Se llama Programación a la implementación de
un algoritmo en un determinado lenguaje de
programación, para realizar un programa.
¿Qué es la Programación?
 Un Algoritmo es una secuencia no ambigua, finita y
ordenada de instrucciones que han de seguirse para
resolver un problema.
 Un Programa es una secuencia de instrucciones
que un procesador puede interpretar y ejecutar.
 Un programa informático está formado por algoritmos y
estructuras de datos.
Sistemas Electrónicos Programables
Programación: Arte o Ciencia
PROGRAMACIÓN
CIENCIA
Estructuras de
Datos
Primitivas
Algorítmos
Metodologías
Paradigmas
Estructuras de
Control
Aprendizaje y Aplicación de la
Programación
Teoría de la
Programación
Diseño
Algorítmico
ARTE
Artículo completo en
http://cala.unex.es/cala/epistemowikia/index.php?title=Programaci%C3%B3n:_%C2%BFarte_o_ciencia%3F
Donald Knuth escribió ‘Mi sensación es que cuando preparamos
un programa, la experiencia es similar a la de crear poesía o
componer música; como dijo Andrei Ershov: programar puede
proporcionarnos satisfacción, tanto intelectual como
emocionalmente, ya que superar la complejidad y establecer un
sistema de normas es un logro real’
Sistemas Electrónicos Programables
Un Leguaje de Programación es el ‘idioma’
utilizado para controlar el comportamiento de un
sistema programable.
Lenguajes de Programación
 Un lenguaje de programación consiste en un
conjunto de símbolos y reglas sintácticas y
semánticas que definen su estructura y el significado
de sus elementos y expresiones.
int a = 0, b = 4, c;
c = a + b;
if (c > 5)
c = 4;
Declaración de
variables
Condicional
Sentencia
Sistemas Electrónicos Programables
Lenguajes de Programación (continuación…)
 Los lenguajes de programación se pueden clasificar
por nivel:
 Lenguajes de alto nivel: aquellos con una estructura más
cercana al lenguaje humano (C, Java, Python…).
 Lenguajes de bajo nivel: aquellos con una estructura más
cercana al lenguaje máquina (ensamblador).
 o por la forma de ejecutarse:
 Lenguajes compilados: aquellos cuyo código se
transforma a un código binario ejecutable directamente
(C, Ensamblador…)
 Lenguajes interpretados: aquellos que necesitan de un
programa que traduzca en ejecución el código fuente
escrito a instrucciones máquina (Java, Python…)
Sistemas Electrónicos Programables
Lenguajes de Alto y Bajo Nivel
 Ejemplo de aplicación:
Desarrollar un sistema de iluminación interior, alimentado
por una placa solar, el cual se encenderá automáticamente
en base a la información proporcionada por dos sensores:
1. Sensor de luminosidad: se incluye un filtro hardware para que
se trate como un sensor digital (0  luz suficiente y 1  luz
insuficiente).
2. Sensor PIR de presencia: detecta la presencia (0) o no (1) de
una persona en la zona de iluminación.
¿En que lenguaje se programaría?
Sistemas Electrónicos Programables
Lenguajes de Alto y Bajo Nivel (continuación…)
 Programa en Ensamblador (PIC12F508):
list p=12f508, f=inhx8m
#include "p12f508.inc"
__config _MCLRE_OFF & _CP_OFF & _WDT_OFF & _IntRC_OSC
counter equ 0x07
org 0 ; start program
movwf OSCCAL
init movlw b'11001011'
TRIS GPIO ; GP0 and GP1 input, GP2 ouput
clrf GPIO
movlw b'00010111'
OPTION ; Enabled Wake-Up, Clk=Osc/4, Prescaler to TMR0,
Prescaler=256
[continue...]
Sistemas Electrónicos Programables
Lenguajes de Alto y Bajo Nivel (continuación…)
 Programa en Ensamblador (PIC12F508):
Loop btfss GPIO, 0 ; check luminosity sensor
goto idle
btfsc GPIO, 1 ; check presence sensor
goto idle
call onLight ; turn on light
onLoop call delay50ms ; delay 50mS
btfss GPIO, 1 ; check presence sensor
goto onLoop
movlw 0x64
movwf counter
marginLoop call delay50ms ; delay 50mS
btfss GPIO, 1 ; check presence sensor
goto onLoop
decfsz counter, f ; execute loop 100 times  5 seconds
goto marginLoop
goto idle ; go to standby
[continue...]
Sistemas Electrónicos Programables
Lenguajes de Alto y Bajo Nivel (continuación…)
 Programa en Ensamblador (PIC12F508):
idle call offLight ; turn off light
sleep ; go to sleep mode
goto loop
onLight bsf GPIO, 2
retlw 0
offLight bcf GPIO, 2
retlw 0
//delay 50mS with Timer0
delay50ms clrf TMR0
nop
waitTMR0 movf TMR0, W
movlw 0xC2
subwf TMR0,W
btfss STATUS,C
goto waitTMR0
retlw 0
END
Sistemas Electrónicos Programables
Lenguajes de Alto y Bajo Nivel (continuación…)
 Programa en C (ATMEGA328P con Arduino):
#define LIGHT 2
#define LUMINOSITY 3
#define PRESENCE 4
int cont;
void setup(){
pinMode(LIGHT, OUTPUT);
pinMode(LUMINOSITY, INPUT);
pinMode(PRESENCE, INPUT);
}
[continue...]
Sistemas Electrónicos Programables
Lenguajes de Alto y Bajo Nivel (continuación…)
 Programa en C (ATMEGA328P con Arduino):
void loop(){
if (digitalRead(LUMINOSITY) == HIGH) {
if (digitalRead(PRESENCE) == LOW){
digitalWrite(LIGHT, HIGH);
contador = 100;
do {
delay(50);
if (digitalRead(PRSESENCE) == HIGH)
contador--;
else
contador = 100;
}
while(contador > 0);
digitalWrite(LIGHT, LOW);
}
}
}
Sistemas Electrónicos Programables
Proceso de Compilación
Programa
Fuente
COMPILADOR
Programa
Objeto
LINKER
Programa
Ejecutable
Errores
Lenguaje de alto nivel
Lenguaje máquina
DepuraciónenTiempodeEjecución
Lenguaje
de bajo nivel
Sistemas Electrónicos Programables
Estructuras Básicas de Control
if (expresión)
{
sentencias
}
else
{
sentencias
}
Condicional
while (expresión)
{
sentencias
}
do
{
sentencias
}
while (expresión)
for expr1;expr2;expr3)
{
sentencias
}
Iteraciones
switch
(expresión)
{
case valor1:
sentencias
break;
...
default:
sentencias
break;
}
Selección
Sistemas Electrónicos Programables
Tipos de Datos Básicos
Tipo Tamaño Mínimo Máximo
boolean 1 bit 0 ‘falso’ 1 ‘verdadero’
char* 8 bits -128 127
unsigned char 8 bits 0 255
int 16 bits -32768 32767
unsigned int 16 bits 0 65535
short long 24 bits -8388608 8388607
unsigned short long 24 bits 0 16777215
long 32 bits -2147483648 2147483647
unsigned long 32 bits 0 4294967295
float 32 bits -3.4x10-38 3.4x1038
* El char representa un carácter ASSCI pero internamente es un valor
entero de 8 bits
Sistemas Electrónicos Programables
Variables
 Las variables es sólo un nombre para identificar
posiciones de memoria.
 Este nombre debe ser válido y único.
 Toda variable debe ser declarada antes de ser usada.
 En las variables (posiciones de memoria) se
guardan los datos usado por un programa en
ejecución.
long a;
unsigned int a = 30;
Una variable se puede
inicializar en su declaración
Sistemas Electrónicos Programables
Variables (continuación…)
 Las variables pueden ser:
 Globales: son las que se declarar fuera de cualquier
función; y son accesibles desde cualquier parte del
programa.
 Locales: son las que se declaran dentro de una función; y
sólo son accesibles para ser usadas dentro de esa
función.
int a = 5;
void funcion1(){
int b = a + 2;
}
void funcion2() {
int c = b + 4;
}
Error de Compilación
http://arduino.cc/en/pmwiki.php?n=Reference/Scope
Sistemas Electrónicos Programables
Variables (continuación…)
 Por medio de la palabra clave static se pueden crear
variables visibles sólo dentro de la función donde es
declarada;
 mientras que una variable local es destruida cada vez
que la función es llamada, las variables estáticas
persisten entre diferentes llamadas.
int getValue(){
static int value;
value = value + 1;
return value;
}
Una variable estática no
puede ser inicializada en
la declaración
http://arduino.cc/en/pmwiki.php?n=Reference/Static
Sistemas Electrónicos Programables
Constantes
 Son aquellos valores que una vez compilado el
programa, no pueden ser cambiados.
 Se declaran con la directiva ‘#define’ y pueden ser de tipo
carácter, entero, decimal…
 O con la palabra clave const:
#define A 30
¡¡INFRAUTILIZADAS!!
Muy útiles para el mantenimiento del software
const int A = 30;
Sistemas Electrónicos Programables
Operadores Aritméticos Básicos
 Suma ‘+’: a + b
 Resta ‘-’: a – b
 Multiplicación ‘*’ : a * b
 División ‘/’: a / b
 División resto ‘%’: a % b
 Incremento ‘++’: a++
 Decremento ‘--’: a--
Sistemas Electrónicos Programables
Operadores a Nivel de Bit Básicos
 And ‘&’: a & b
 Or ‘|’: a | b
 xor ‘^’ : a ^ b
 not ‘~’: ~a
 Desplazamiento a la derecha ‘>>’: a >> 4
 Desplazamiento a izquierda ‘<<’: a << 4
Sistemas Electrónicos Programables
Operadores Lógicos Básicos
 and ‘&&’: a && b
 or ‘||’: a || b
 not ‘!’ : !a
 igualdad ‘==’: a == 4
 desigualdad ‘!=’: a != 4
 mayor que ‘>’: a > 4
 mayor o igual que ‘>=’: a >= 4
 Menor que ‘<’: a < 4
 Menor o igual que ‘<=’: a < 4
Sistemas Electrónicos Programables
Subrutinas o Funciones
 Las funciones tienen que estar declaradas para
poder ser utilizadas.
 Pueden recibir valores que modificarán su
comportamiento.
Una Función es un conjunto de líneas de código
que realizan una tarea específica y pueden
retornar un valor.
int Suma(int a, int b)
{
return a + b;
}
Sistemas Electrónicos Programables
Subrutinas o Funciones (continuación…)
 ¿Cómo llamar a una función?
 por su nombre,
 y pasando los parámetros que tenga declarados.
 La función Main es el punto de inicio de un
programa.
C = Suma(5, 6);
int Main() ó int Main(int argc, char *argv[])
Sistemas Electrónicos Programables
Entorno de Desarrollo
 Un buen entorno de desarrollo facilita y agiliza el
proceso de programación.
 Pueden incluir también:
 Simuladores: permite hacer una simulación del programa
implementado
 Debuggers: permite ver la ejecución real del programa
paso a paso.
Un Entorno de Desarrollo Integrado o IDE es
un programa software compuesto por un
conjunto de herramientas que facilitan a los
programadores la creación de programas.
Sistemas Electrónicos Programables
Técnicas de Programación
 Programación estructurada: es un paradigma de
programación orientado a mejorar la claridad,
calidad y tiempo de desarrollo,
 utilizando únicamente subrutinas y tres estructuras:
secuencia, selección e iteración.
 Programación orientada a objetos: es un paradigma
de programación que usa objetos para diseñar los
programas.
 Usa técnicas como la herencia, el polimorfismo o el
encapsulado.
 Otras: programación funcional, programación
dirigida a eventos…
Sistemas Electrónicos Programables
Diagramas de Secuencia
 También conocidos como organigramas, son una
representación gráfica de un algoritmo.
 Utiliza símbolos para representar las sentencias o las
estructuras de control.
 Simbología básica:
Inicio (punto de entrada) y fin (punto de salida) del
diagrama
Formula una pregunta o cuestión, y ejecuta una
salida u otra.
Indica la secuencia del diagrama
Representa la ejecución de una o más actividades o
procedimientos.
¡No lo toques!
¿Funciona?
¿Lo has
tocado?
¡Imbécil!
¿Tendrás
problemas?
Pasa del tema
¡Pobre bastardo!
¿Lo sabe
alguien?
¿Puedes
culpar a otro?
¡¡ NO HAY
PROBLEMA !!
¡Escóndelo!
Si No
Si
Si
Si
Si
No
No
No
No
Sistemas Electrónicos Programables
Fases del Desarrollo Software
IMPLANTACIÓN Se implanta el sistema donde corresponda y…
PRUEBA
Se comprueba el funcionamiento del sistema en
base a los requisitos definidos en el análisis.
IMPLEMENTACIÓN Se implementa el programa.
DISEÑO
Se diseñan los diferentes algoritmos a
implementar siguiendo las especificaciones
anteriores.
ANÁLISIS
Se debe estudiar el sistema a desarrollar,
comprenderlo y especificar los requisitos
software.
Error
Error
Sistemas Electrónicos Programables
Estrategia de Diseño Top-Down
 En el modelo Top-Down cada parte del sistema se
especifica de forma superficial para después refinar
con mayor detalle cada parte.
 Se realizan tantas iteraciones como sean necesarias.
 La codificación no puede comenzar hasta que no se haya
alcanzado un nivel de detalle suficiente.
 En el diseño Bottom-Up se diseñan en detalle las
partes individuales y después se enlazan para
formar componentes más grandes.
Sistemas Electrónicos Programables
Estrategia de Diseño Top-Down (continuación…)
Diagrama
función Main
Se define la estructura de la función Main
Diagramas de
funciones de nivel
1
Se estudian todas aquellas funciones de
alto nivel que surgen del paso anterior
Diagramas de funciones
de nivel 2..n
Se repite el proceso anterior hasta
definir el funcionamiento de todas las
funciones
Diagramas con detalles de
programación
Se complementan las funciones con
detalles relevantes para la
programación final
Esta presentación está sujeta a la licencia de Reconocimiento
de Creative Commons mediante la cual se permite la copia, la
distribución, la comunicación pública y la generación de obras
derivadas sin ninguna limitación siempre que se cite al autor y
se mantenga el aviso de la licencia.
© 2014, Jonathan Ruiz de Garibay
Algunos derechos reservados

Más contenido relacionado

Destacado

Strengthening family resilience among vulnerable communities in Zambia
Strengthening family resilience among vulnerable communities in ZambiaStrengthening family resilience among vulnerable communities in Zambia
Strengthening family resilience among vulnerable communities in ZambiaHumana People to People
 
3 kompetensi dasar manusia berjiwa sukses
3 kompetensi dasar manusia berjiwa sukses3 kompetensi dasar manusia berjiwa sukses
3 kompetensi dasar manusia berjiwa suksesslamet soegiarto
 
Pelatihan dan pengembangan sumber daya manusia dalam persaingan
Pelatihan dan pengembangan sumber daya manusia dalam persainganPelatihan dan pengembangan sumber daya manusia dalam persaingan
Pelatihan dan pengembangan sumber daya manusia dalam persainganali mubarokapandi
 
Teknik Negosiasi - Negotiation Techniques
Teknik Negosiasi - Negotiation TechniquesTeknik Negosiasi - Negotiation Techniques
Teknik Negosiasi - Negotiation TechniquesTogap Siagian, CPSM
 
Materi "Negosiasi Bisnis" TRAINING
Materi "Negosiasi Bisnis" TRAININGMateri "Negosiasi Bisnis" TRAINING
Materi "Negosiasi Bisnis" TRAININGKanaidi ken
 
Memahami seseorang lewat body language
Memahami seseorang lewat body languageMemahami seseorang lewat body language
Memahami seseorang lewat body languageCitra Siskaliana
 
5 teknik pembukaan presentasi by mustofa thovids (slide presentation expert)
5 teknik pembukaan presentasi by mustofa thovids (slide presentation expert)5 teknik pembukaan presentasi by mustofa thovids (slide presentation expert)
5 teknik pembukaan presentasi by mustofa thovids (slide presentation expert)Mustofa Thovids
 
Materi Pelatihan Motivasi Kerja Karyawan
Materi Pelatihan Motivasi Kerja Karyawan Materi Pelatihan Motivasi Kerja Karyawan
Materi Pelatihan Motivasi Kerja Karyawan Yodhia Antariksa
 
Teknik presentasi1
Teknik presentasi1Teknik presentasi1
Teknik presentasi1Ami Ibrahim
 
Communication body language
Communication   body languageCommunication   body language
Communication body languageSeta Wicaksana
 
Presentasi motivasi diri
Presentasi motivasi diriPresentasi motivasi diri
Presentasi motivasi diriRona Binham
 

Destacado (20)

Strengthening family resilience among vulnerable communities in Zambia
Strengthening family resilience among vulnerable communities in ZambiaStrengthening family resilience among vulnerable communities in Zambia
Strengthening family resilience among vulnerable communities in Zambia
 
Talent management
Talent managementTalent management
Talent management
 
Pelatihan body language 3
Pelatihan body language 3Pelatihan body language 3
Pelatihan body language 3
 
3 kompetensi dasar manusia berjiwa sukses
3 kompetensi dasar manusia berjiwa sukses3 kompetensi dasar manusia berjiwa sukses
3 kompetensi dasar manusia berjiwa sukses
 
Pelatihan dan pengembangan sumber daya manusia dalam persaingan
Pelatihan dan pengembangan sumber daya manusia dalam persainganPelatihan dan pengembangan sumber daya manusia dalam persaingan
Pelatihan dan pengembangan sumber daya manusia dalam persaingan
 
Teknik Negosiasi - Negotiation Techniques
Teknik Negosiasi - Negotiation TechniquesTeknik Negosiasi - Negotiation Techniques
Teknik Negosiasi - Negotiation Techniques
 
Materi "Negosiasi Bisnis" TRAINING
Materi "Negosiasi Bisnis" TRAININGMateri "Negosiasi Bisnis" TRAINING
Materi "Negosiasi Bisnis" TRAINING
 
Memahami seseorang lewat body language
Memahami seseorang lewat body languageMemahami seseorang lewat body language
Memahami seseorang lewat body language
 
Presentation Body Language
Presentation Body LanguagePresentation Body Language
Presentation Body Language
 
Bahasa tubuh
Bahasa tubuhBahasa tubuh
Bahasa tubuh
 
Gesture recognition
Gesture recognitionGesture recognition
Gesture recognition
 
5 teknik pembukaan presentasi by mustofa thovids (slide presentation expert)
5 teknik pembukaan presentasi by mustofa thovids (slide presentation expert)5 teknik pembukaan presentasi by mustofa thovids (slide presentation expert)
5 teknik pembukaan presentasi by mustofa thovids (slide presentation expert)
 
Secrets of Body Language
Secrets of Body LanguageSecrets of Body Language
Secrets of Body Language
 
7 insights of Indonesia
7 insights of Indonesia7 insights of Indonesia
7 insights of Indonesia
 
Materi Pelatihan Motivasi Kerja Karyawan
Materi Pelatihan Motivasi Kerja Karyawan Materi Pelatihan Motivasi Kerja Karyawan
Materi Pelatihan Motivasi Kerja Karyawan
 
Manajemen waktu
Manajemen waktuManajemen waktu
Manajemen waktu
 
Teknik presentasi1
Teknik presentasi1Teknik presentasi1
Teknik presentasi1
 
Communication body language
Communication   body languageCommunication   body language
Communication body language
 
Coca Cola
Coca ColaCoca Cola
Coca Cola
 
Presentasi motivasi diri
Presentasi motivasi diriPresentasi motivasi diri
Presentasi motivasi diri
 

Similar a 04a 150206074952-conversion-gate02

Como programar un pic
Como programar un pic  Como programar un pic
Como programar un pic oskarjgf
 
38912287 practica1
38912287 practica138912287 practica1
38912287 practica1rexmersxa7
 
Programación en PLC Xinje - banda transportadora
Programación en PLC Xinje - banda transportadoraProgramación en PLC Xinje - banda transportadora
Programación en PLC Xinje - banda transportadoraLenin Jiménez
 
Microcontroladores: Programación en lenguaje ensamblador de Atmel Studio AVR
Microcontroladores: Programación en lenguaje ensamblador de Atmel Studio AVRMicrocontroladores: Programación en lenguaje ensamblador de Atmel Studio AVR
Microcontroladores: Programación en lenguaje ensamblador de Atmel Studio AVRSANTIAGO PABLO ALBERTO
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxJose Manuel Mansilla Carrasco
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxJose Manuel Mansilla Carrasco
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxfreddymadriz
 
Intro programacion conceptos_2012
Intro programacion conceptos_2012Intro programacion conceptos_2012
Intro programacion conceptos_2012Rafael Pérez
 
Programación tic
Programación ticProgramación tic
Programación ticlunanogales
 
Entrada y salida de información; Escritura de algoritmos.
Entrada y salida de información; Escritura de algoritmos.Entrada y salida de información; Escritura de algoritmos.
Entrada y salida de información; Escritura de algoritmos.Damian Chuncho
 
Presentacion de informatica
Presentacion de informaticaPresentacion de informatica
Presentacion de informaticaEduardo_jose
 
Lenguajes de programación parte i.4
Lenguajes de programación parte i.4Lenguajes de programación parte i.4
Lenguajes de programación parte i.4Marquina, Santiago
 
Algoritmos y pseudocodigos.
Algoritmos y pseudocodigos.Algoritmos y pseudocodigos.
Algoritmos y pseudocodigos.srm28
 
Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]Jalil Segura
 
Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]Jalil Segura
 

Similar a 04a 150206074952-conversion-gate02 (20)

Como programar un pic
Como programar un pic  Como programar un pic
Como programar un pic
 
Practica1
Practica1Practica1
Practica1
 
38912287 practica1
38912287 practica138912287 practica1
38912287 practica1
 
Practica1
Practica1Practica1
Practica1
 
Programación en PLC Xinje - banda transportadora
Programación en PLC Xinje - banda transportadoraProgramación en PLC Xinje - banda transportadora
Programación en PLC Xinje - banda transportadora
 
Microcontroladores: Programación en lenguaje ensamblador de Atmel Studio AVR
Microcontroladores: Programación en lenguaje ensamblador de Atmel Studio AVRMicrocontroladores: Programación en lenguaje ensamblador de Atmel Studio AVR
Microcontroladores: Programación en lenguaje ensamblador de Atmel Studio AVR
 
Curso-de-PLC.pdf
Curso-de-PLC.pdfCurso-de-PLC.pdf
Curso-de-PLC.pdf
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Arduino 1
Arduino 1Arduino 1
Arduino 1
 
Intro programacion conceptos_2012
Intro programacion conceptos_2012Intro programacion conceptos_2012
Intro programacion conceptos_2012
 
Programación tic
Programación ticProgramación tic
Programación tic
 
Programación tic
Programación ticProgramación tic
Programación tic
 
Entrada y salida de información; Escritura de algoritmos.
Entrada y salida de información; Escritura de algoritmos.Entrada y salida de información; Escritura de algoritmos.
Entrada y salida de información; Escritura de algoritmos.
 
Presentacion de informatica
Presentacion de informaticaPresentacion de informatica
Presentacion de informatica
 
Lenguajes de programación parte i.4
Lenguajes de programación parte i.4Lenguajes de programación parte i.4
Lenguajes de programación parte i.4
 
Algoritmos y pseudocodigos.
Algoritmos y pseudocodigos.Algoritmos y pseudocodigos.
Algoritmos y pseudocodigos.
 
Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]
 
Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]
 

Último

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 

Último (10)

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 

04a 150206074952-conversion-gate02

  • 1. Sistemas Electrónicos Programables Facultad de Ingeniería, Universidad de Deusto Introducción a la Programación
  • 2. Sistemas Electrónicos Programables Se llama Programación a la implementación de un algoritmo en un determinado lenguaje de programación, para realizar un programa. ¿Qué es la Programación?  Un Algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema.  Un Programa es una secuencia de instrucciones que un procesador puede interpretar y ejecutar.  Un programa informático está formado por algoritmos y estructuras de datos.
  • 3. Sistemas Electrónicos Programables Programación: Arte o Ciencia PROGRAMACIÓN CIENCIA Estructuras de Datos Primitivas Algorítmos Metodologías Paradigmas Estructuras de Control Aprendizaje y Aplicación de la Programación Teoría de la Programación Diseño Algorítmico ARTE Artículo completo en http://cala.unex.es/cala/epistemowikia/index.php?title=Programaci%C3%B3n:_%C2%BFarte_o_ciencia%3F Donald Knuth escribió ‘Mi sensación es que cuando preparamos un programa, la experiencia es similar a la de crear poesía o componer música; como dijo Andrei Ershov: programar puede proporcionarnos satisfacción, tanto intelectual como emocionalmente, ya que superar la complejidad y establecer un sistema de normas es un logro real’
  • 4. Sistemas Electrónicos Programables Un Leguaje de Programación es el ‘idioma’ utilizado para controlar el comportamiento de un sistema programable. Lenguajes de Programación  Un lenguaje de programación consiste en un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. int a = 0, b = 4, c; c = a + b; if (c > 5) c = 4; Declaración de variables Condicional Sentencia
  • 5. Sistemas Electrónicos Programables Lenguajes de Programación (continuación…)  Los lenguajes de programación se pueden clasificar por nivel:  Lenguajes de alto nivel: aquellos con una estructura más cercana al lenguaje humano (C, Java, Python…).  Lenguajes de bajo nivel: aquellos con una estructura más cercana al lenguaje máquina (ensamblador).  o por la forma de ejecutarse:  Lenguajes compilados: aquellos cuyo código se transforma a un código binario ejecutable directamente (C, Ensamblador…)  Lenguajes interpretados: aquellos que necesitan de un programa que traduzca en ejecución el código fuente escrito a instrucciones máquina (Java, Python…)
  • 6. Sistemas Electrónicos Programables Lenguajes de Alto y Bajo Nivel  Ejemplo de aplicación: Desarrollar un sistema de iluminación interior, alimentado por una placa solar, el cual se encenderá automáticamente en base a la información proporcionada por dos sensores: 1. Sensor de luminosidad: se incluye un filtro hardware para que se trate como un sensor digital (0  luz suficiente y 1  luz insuficiente). 2. Sensor PIR de presencia: detecta la presencia (0) o no (1) de una persona en la zona de iluminación. ¿En que lenguaje se programaría?
  • 7. Sistemas Electrónicos Programables Lenguajes de Alto y Bajo Nivel (continuación…)  Programa en Ensamblador (PIC12F508): list p=12f508, f=inhx8m #include "p12f508.inc" __config _MCLRE_OFF & _CP_OFF & _WDT_OFF & _IntRC_OSC counter equ 0x07 org 0 ; start program movwf OSCCAL init movlw b'11001011' TRIS GPIO ; GP0 and GP1 input, GP2 ouput clrf GPIO movlw b'00010111' OPTION ; Enabled Wake-Up, Clk=Osc/4, Prescaler to TMR0, Prescaler=256 [continue...]
  • 8. Sistemas Electrónicos Programables Lenguajes de Alto y Bajo Nivel (continuación…)  Programa en Ensamblador (PIC12F508): Loop btfss GPIO, 0 ; check luminosity sensor goto idle btfsc GPIO, 1 ; check presence sensor goto idle call onLight ; turn on light onLoop call delay50ms ; delay 50mS btfss GPIO, 1 ; check presence sensor goto onLoop movlw 0x64 movwf counter marginLoop call delay50ms ; delay 50mS btfss GPIO, 1 ; check presence sensor goto onLoop decfsz counter, f ; execute loop 100 times  5 seconds goto marginLoop goto idle ; go to standby [continue...]
  • 9. Sistemas Electrónicos Programables Lenguajes de Alto y Bajo Nivel (continuación…)  Programa en Ensamblador (PIC12F508): idle call offLight ; turn off light sleep ; go to sleep mode goto loop onLight bsf GPIO, 2 retlw 0 offLight bcf GPIO, 2 retlw 0 //delay 50mS with Timer0 delay50ms clrf TMR0 nop waitTMR0 movf TMR0, W movlw 0xC2 subwf TMR0,W btfss STATUS,C goto waitTMR0 retlw 0 END
  • 10. Sistemas Electrónicos Programables Lenguajes de Alto y Bajo Nivel (continuación…)  Programa en C (ATMEGA328P con Arduino): #define LIGHT 2 #define LUMINOSITY 3 #define PRESENCE 4 int cont; void setup(){ pinMode(LIGHT, OUTPUT); pinMode(LUMINOSITY, INPUT); pinMode(PRESENCE, INPUT); } [continue...]
  • 11. Sistemas Electrónicos Programables Lenguajes de Alto y Bajo Nivel (continuación…)  Programa en C (ATMEGA328P con Arduino): void loop(){ if (digitalRead(LUMINOSITY) == HIGH) { if (digitalRead(PRESENCE) == LOW){ digitalWrite(LIGHT, HIGH); contador = 100; do { delay(50); if (digitalRead(PRSESENCE) == HIGH) contador--; else contador = 100; } while(contador > 0); digitalWrite(LIGHT, LOW); } } }
  • 12. Sistemas Electrónicos Programables Proceso de Compilación Programa Fuente COMPILADOR Programa Objeto LINKER Programa Ejecutable Errores Lenguaje de alto nivel Lenguaje máquina DepuraciónenTiempodeEjecución Lenguaje de bajo nivel
  • 13. Sistemas Electrónicos Programables Estructuras Básicas de Control if (expresión) { sentencias } else { sentencias } Condicional while (expresión) { sentencias } do { sentencias } while (expresión) for expr1;expr2;expr3) { sentencias } Iteraciones switch (expresión) { case valor1: sentencias break; ... default: sentencias break; } Selección
  • 14. Sistemas Electrónicos Programables Tipos de Datos Básicos Tipo Tamaño Mínimo Máximo boolean 1 bit 0 ‘falso’ 1 ‘verdadero’ char* 8 bits -128 127 unsigned char 8 bits 0 255 int 16 bits -32768 32767 unsigned int 16 bits 0 65535 short long 24 bits -8388608 8388607 unsigned short long 24 bits 0 16777215 long 32 bits -2147483648 2147483647 unsigned long 32 bits 0 4294967295 float 32 bits -3.4x10-38 3.4x1038 * El char representa un carácter ASSCI pero internamente es un valor entero de 8 bits
  • 15. Sistemas Electrónicos Programables Variables  Las variables es sólo un nombre para identificar posiciones de memoria.  Este nombre debe ser válido y único.  Toda variable debe ser declarada antes de ser usada.  En las variables (posiciones de memoria) se guardan los datos usado por un programa en ejecución. long a; unsigned int a = 30; Una variable se puede inicializar en su declaración
  • 16. Sistemas Electrónicos Programables Variables (continuación…)  Las variables pueden ser:  Globales: son las que se declarar fuera de cualquier función; y son accesibles desde cualquier parte del programa.  Locales: son las que se declaran dentro de una función; y sólo son accesibles para ser usadas dentro de esa función. int a = 5; void funcion1(){ int b = a + 2; } void funcion2() { int c = b + 4; } Error de Compilación http://arduino.cc/en/pmwiki.php?n=Reference/Scope
  • 17. Sistemas Electrónicos Programables Variables (continuación…)  Por medio de la palabra clave static se pueden crear variables visibles sólo dentro de la función donde es declarada;  mientras que una variable local es destruida cada vez que la función es llamada, las variables estáticas persisten entre diferentes llamadas. int getValue(){ static int value; value = value + 1; return value; } Una variable estática no puede ser inicializada en la declaración http://arduino.cc/en/pmwiki.php?n=Reference/Static
  • 18. Sistemas Electrónicos Programables Constantes  Son aquellos valores que una vez compilado el programa, no pueden ser cambiados.  Se declaran con la directiva ‘#define’ y pueden ser de tipo carácter, entero, decimal…  O con la palabra clave const: #define A 30 ¡¡INFRAUTILIZADAS!! Muy útiles para el mantenimiento del software const int A = 30;
  • 19. Sistemas Electrónicos Programables Operadores Aritméticos Básicos  Suma ‘+’: a + b  Resta ‘-’: a – b  Multiplicación ‘*’ : a * b  División ‘/’: a / b  División resto ‘%’: a % b  Incremento ‘++’: a++  Decremento ‘--’: a--
  • 20. Sistemas Electrónicos Programables Operadores a Nivel de Bit Básicos  And ‘&’: a & b  Or ‘|’: a | b  xor ‘^’ : a ^ b  not ‘~’: ~a  Desplazamiento a la derecha ‘>>’: a >> 4  Desplazamiento a izquierda ‘<<’: a << 4
  • 21. Sistemas Electrónicos Programables Operadores Lógicos Básicos  and ‘&&’: a && b  or ‘||’: a || b  not ‘!’ : !a  igualdad ‘==’: a == 4  desigualdad ‘!=’: a != 4  mayor que ‘>’: a > 4  mayor o igual que ‘>=’: a >= 4  Menor que ‘<’: a < 4  Menor o igual que ‘<=’: a < 4
  • 22. Sistemas Electrónicos Programables Subrutinas o Funciones  Las funciones tienen que estar declaradas para poder ser utilizadas.  Pueden recibir valores que modificarán su comportamiento. Una Función es un conjunto de líneas de código que realizan una tarea específica y pueden retornar un valor. int Suma(int a, int b) { return a + b; }
  • 23. Sistemas Electrónicos Programables Subrutinas o Funciones (continuación…)  ¿Cómo llamar a una función?  por su nombre,  y pasando los parámetros que tenga declarados.  La función Main es el punto de inicio de un programa. C = Suma(5, 6); int Main() ó int Main(int argc, char *argv[])
  • 24. Sistemas Electrónicos Programables Entorno de Desarrollo  Un buen entorno de desarrollo facilita y agiliza el proceso de programación.  Pueden incluir también:  Simuladores: permite hacer una simulación del programa implementado  Debuggers: permite ver la ejecución real del programa paso a paso. Un Entorno de Desarrollo Integrado o IDE es un programa software compuesto por un conjunto de herramientas que facilitan a los programadores la creación de programas.
  • 25. Sistemas Electrónicos Programables Técnicas de Programación  Programación estructurada: es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo,  utilizando únicamente subrutinas y tres estructuras: secuencia, selección e iteración.  Programación orientada a objetos: es un paradigma de programación que usa objetos para diseñar los programas.  Usa técnicas como la herencia, el polimorfismo o el encapsulado.  Otras: programación funcional, programación dirigida a eventos…
  • 26. Sistemas Electrónicos Programables Diagramas de Secuencia  También conocidos como organigramas, son una representación gráfica de un algoritmo.  Utiliza símbolos para representar las sentencias o las estructuras de control.  Simbología básica: Inicio (punto de entrada) y fin (punto de salida) del diagrama Formula una pregunta o cuestión, y ejecuta una salida u otra. Indica la secuencia del diagrama Representa la ejecución de una o más actividades o procedimientos.
  • 27. ¡No lo toques! ¿Funciona? ¿Lo has tocado? ¡Imbécil! ¿Tendrás problemas? Pasa del tema ¡Pobre bastardo! ¿Lo sabe alguien? ¿Puedes culpar a otro? ¡¡ NO HAY PROBLEMA !! ¡Escóndelo! Si No Si Si Si Si No No No No
  • 28. Sistemas Electrónicos Programables Fases del Desarrollo Software IMPLANTACIÓN Se implanta el sistema donde corresponda y… PRUEBA Se comprueba el funcionamiento del sistema en base a los requisitos definidos en el análisis. IMPLEMENTACIÓN Se implementa el programa. DISEÑO Se diseñan los diferentes algoritmos a implementar siguiendo las especificaciones anteriores. ANÁLISIS Se debe estudiar el sistema a desarrollar, comprenderlo y especificar los requisitos software. Error Error
  • 29. Sistemas Electrónicos Programables Estrategia de Diseño Top-Down  En el modelo Top-Down cada parte del sistema se especifica de forma superficial para después refinar con mayor detalle cada parte.  Se realizan tantas iteraciones como sean necesarias.  La codificación no puede comenzar hasta que no se haya alcanzado un nivel de detalle suficiente.  En el diseño Bottom-Up se diseñan en detalle las partes individuales y después se enlazan para formar componentes más grandes.
  • 30. Sistemas Electrónicos Programables Estrategia de Diseño Top-Down (continuación…) Diagrama función Main Se define la estructura de la función Main Diagramas de funciones de nivel 1 Se estudian todas aquellas funciones de alto nivel que surgen del paso anterior Diagramas de funciones de nivel 2..n Se repite el proceso anterior hasta definir el funcionamiento de todas las funciones Diagramas con detalles de programación Se complementan las funciones con detalles relevantes para la programación final
  • 31. Esta presentación está sujeta a la licencia de Reconocimiento de Creative Commons mediante la cual se permite la copia, la distribución, la comunicación pública y la generación de obras derivadas sin ninguna limitación siempre que se cite al autor y se mantenga el aviso de la licencia. © 2014, Jonathan Ruiz de Garibay Algunos derechos reservados