Title: Introducci
1Introducción a la Programación en C sobre uC 9S08
de FreescaleLenguaje C sobre Microcontrolador
9S08 de 8 bits para novatos
2Programa del Curso (Primer Día)
- Arquitectura 9S08. Modelo de Programación.
Registros. Mapa de Memoria. Periféricos.
Registros de Configuración. (45 minutos). - Algoritmos y Programas. El lenguaje C. Variables.
Expresiones. Estructuras de Control. - Entorno de Programación Codewarrior. Creación de
Proyectos. Simulación. (45 minutos). - Puertos de Entrada-Salida. Configuración Básica.
Encendido de un LED. (45 minutos)
3Esta Clase
- Algoritmos y Programas. El lenguaje C. Variables.
Expresiones. Estructuras de Control.
4Programa Estructurado Algoritmo Estructura
de Datos
- Algoritmo Procedimiento para realizar una tarea
compleja, basándose en realizar tareas mas
sencillas. - Algoritmo Secuencial las tareas se realizan una
por vez. - Se puede elaborar cualquier algoritmo secuencial
si existen posibilidades de - Decisión.
- Ejecución secuencial.
- Iteración condicional.
- Asignación e incremento de variables (contadores)
5Programa Estructurado Algoritmo Estructura
de Datos
- Estructura de Datos
- Los algoritmos se diseñan sin tener en cuenta
como están organizados los datos sobre los que se
va a operar. - Muchas veces una buena organización de los datos
permite mejorar la eficacia del algoritmo. - Otras veces los algoritmos dependen de la
organización de los datos
6Ejemplos. Multiplicación LargaALGORITMO
SI al ALGORITMO le asocio una ESTRUCTURA DE
DATOS, puedo saber por ejemplo, cuanto lugar
necesito para almacenar los datos de entrada y la
salida
QUIERO MULTIPLICAR 79 x 53. Solamente conozco
como multiplicar números por una ci0ra, sé sumar,
y además sé que al mutiplicar x 10 se agrega un
cero al 0inal. Como 53 3 5 x 10 Entonces
79 x 53 79 x ( 3 5 x 10) 79
x 53 79 x 3 79 x 5 x 10 79 x 53 (79 x
3) (79 x 5) x 10
2
4
7
9
5
3
X
7
3
2
0
0
0
79 x 3
9
5
3
0
0
0
79 x 5 x 10
8
7
4
1
7Ejemplos. Busqueda de númerosALGORITMO I
QUIERO BUSCAR UN NÚMERO EN UN CONJUNTO ORDENADO
DE NÚMEROS, UBICADOS EN POSICIONES MARCADAS DESDE
1 HASTA N POR EJEMPLO BUSCO EL 23 EN EL SIGUIENTE
CONJUNTO DE 18 NÚMEROS
8Ejemplos. Busqueda de númerosALGORITMO II
QUIERO BUSCAR UN NÚMERO EN UN CONJUNTO ORDENADO
DE NÚMEROS, UBICADOS EN POSICIONES MARCADAS DESDE
1 HASTA N IGUAL QUE ANTES PERO AHORA APRO1ECHO LA
ESTRUCTURA DE LOS DATOS. ESTÁN ORDENADOS!
23
lt 23
gt 23
9Variables del lenguaje C
- No usaremos tipos de punto flotante
- Tipos de 1ariable
nombre tamaño rango tipo
char 8 bits -128 a 127 Entero
short 16 bits -32768 a 32767 Entero
int 16 o 32 bits Entero
long 32 bits - 231 a 231 - 1 Entero
float 32 bits NA Punto flotante
double 64 bits NA Punto flotante
10Variables del lenguaje C
long Puede modificar al int cuando es de 16 bits llevándolo a 32 bits
unsigned Por de0ecto todos los tipos enteros son con signo, en este caso para n bits, el rango se modifica de 0 a 2n - 1
volatile En la programación de UC es muy importante indicar las variables que pueden ser modificadas por el hardware como volatile.
Existen otros modificadores que no veremos como const,static, extern, register, automatic. Existen otros modificadores que no veremos como const,static, extern, register, automatic.
11Variables del lenguaje C
- Declaración de variables
- char x
- char y -5 (-5 0x0B)
- char z B (66 0x42)
- char w 0x03 (3)
- unsigned char letra2 C (67 0x43)
- unsigned char AaBb12 0x30 (63)
- int aaBB12 0x8002 (-32766)
- int a,b,c,d
- unsigned int AABB12 0x8002 (32770)
- unsigned int x1,x2,x3,x4
12Expresiones y Operaciones
- Usamos la declaración de variables anterior
- Operadores Aritméticos (,-,,/,)
- Expresiones con operadores aritméticos
- yz yz y-z y/z yz z/y z/y
- -566 -566 -5-66 -5/66 R 66/(-5) R
- (61) (-74) (-71) (0) (-5) (-13) (1)
-
- Operadores Relacionales (gt,gt,lt,lt,,!)
- Expresiones con Operadores Relacionales
- a-1b2c-3d4
- (agtb) (cgtb) (cltb) (dltcb) (dabc) (a!b)
- F F V F F V
-
13Expresiones y Operaciones
- Operadores Lógicos (,,!)
- (AND )
- (OR)
- ! (NOT)
X Y XY X Y XY X ! X
F F F F F F F V
F V F F V V V F
V F F V F V
V V V V V V
Expresiones con Operadores Lógicos (agtb)(cltb)
(cgtb)(a!b) !(agtb)(a!b) !c V F
V F
14Expresiones y Operaciones
- Operadores a nivel de Bits
- ( )
- (AND,OR,XOR,NOT)
-
X Y X Y X Y X Y X Y X Y X X
0 0 0 0 0 0 0 0 0 0 1
0 1 0 0 1 1 0 1 1 1 0
1 0 0 1 0 1 1 0 1
1 1 1 1 1 1 1 1 0
15Expresiones y Operaciones
- Expresiones con Operadores a nivel de Bits
- y w gt 0xFB 0x03 11111011
- 00000011
- 00000011
- w y gt 0xFB 0x03 11111011
- 00000011
- 11111011
- w y gt 0xFB 0x03 11111011
- 00000011
- 11111000
16Expresiones y Operaciones
- Expresiones con Operadores a nivel de Bits
- w gt 0x03 11111011 gt 00000100
- y gt 0xFB 00000011 gt 11111100
- MASCARAS
- el AND () con 1 me copia el bit.
- el AND () con 0 me borra el bit.
- el OR () con 1 me pone en 1 el bit.
- el OR () con 0 me copia el bit.
- el XOR () con 1 me invierte el bit.
- el XOR () con 0 me invierte el bit.
17Estructuras de Control
- Asignación
- variable expresión
- Ejemplo
- a -101
- b 10
- x3 12345
- x4 54000
- x1 x4-x3
- c a/b
18Estructuras de Control
- Secuencia
-
- sentencia1
- sentencia2
- sentencia3
sentencia1
Lo que está entre llaves se llama sentencia
compuesta
sentencia2
sentencia3
19Estructuras de Control
- IF
- if(condicion)
-
- Acción si la condición es verdadera
-
- else
-
- Acción si la condición es falsa
-
CONDICIÓN?
V
F
Acción si la condición es verdadera
Acción si la condición es falsa
20Estructuras de Control
- IF
- if(condicion)
-
- Acción si la condición es verdadera
-
CONDICIÓN?
V
F
Acción si la condición es verdadera
21Estructuras de Control
- Ejemplo
- if( x lt minimo)
-
- minimox
- xx1
- Ejemplo
- if( xgt maximo)
-
- maximox
- halle_maximo1
-
- else
-
- halle_maximo0
22Estructuras de Control
- WHILE
- while (condicion)
-
- acción a realizar mientras la condición sea
verdadera
CONDICION ?
V
F
Acción a realizar mientras la condición sea
verdadera
23Estructuras de Control
- Ejemplo (que pasa acá?)
- x2
- y10
- z0
- while ( z lt y)
-
- zz-x
-
- Ejemplo
- x2
- y10
- z0
- while ( z lt y)
-
- zzx
24Estructuras de Control
- FOR
- for( asignacion inicial condición
actualización) -
- acción a realizar mientras la condición sea
verdadera -
- Ejemplo
- int k
- unsigned suma0
- for(k0 klt100 kk1)
-
- if (k2 ! 1)
-
- sumasumak
-
25Estructuras de Control
Asignación Inicial
Condicion ?
Actualización
acción a realizar mientras la condición sea
verdadera
26Hemos Visto
- Algoritmos y Estructuras de Datos
- Variables en C
- Expresiones
- Operadores aritméticos
- Operadores Lógicos
- Operaciones a Nivel de Bit
- Expresiones
- Estructuras de Control Asignación, Secuencia,
If, while,for.