29 de marzo de 2010

Puertos de E/S digital

Teoría
Teoría (inglés) desde la página 6
Cuestionario
Solución (la semana que viene)

Ejercicio: En este caso vamos a utilizar el puerto P1 como Entrada/Salida. Los 4 bits de menor peso serán las entradas (e3 e2 e1 e0) y el resto serán las salidas (e7 e6 e5 e4).

entradas e0 e1 e2 e3 -- P1.0 P1.1 P1.2 P1.3
salidas s0 s1 s2 s3 -- P1.4 P1.5 P1.6 P1.7

Escribir un programa en C que genere la siguiente secuencia:

entradas salidas (bin hex dec)
0000 -> 0100 0x4 4
0001 -> 1001 0x9 9
0010 -> 1011 0xB 11
0011 -> 0110 0x6 6
0100 -> 0101 0x5 5
0101 -> 1101 0xD 13
0110 -> 1111 0xF 15
0111 -> 1100 0xC 12
1000 -> 1010 0xA 10
1001 -> 1000 0x8 8
1010 -> 0111 0x7 7
1011 -> 0000 0x0 0
1100 -> 0010 0x2 2
1101 -> 1110 0xE 14
1110 -> 0001 0x1 1
1111 -> 0011 0x3 3

Nota: tener en cuenta que hay que configurar los bits del puerto como entrada o salida.

...................................................................

Cuando se usa un puerto -- hay que definirlo como entrada o salida
Si el puerto es de entrada -- valores a "1"

Conceptos:
- Lectura de pins y escritura latchs
- Operación lectura-modificación-escritura
- Manipulación bit a bit
- Sólo ciertas zonas lo admiten

Bibliografía:
Microcontrollers: theory and applications

Links:
8051 Forum (free ebooks)
8051 Ports
Problema de lectura-modificacion-escritura explicado
Definición de latch (wikipedia)

Ejemplo a revisar:

sfr P2=0xA0;
sbit pulsador =P2^1;
sbit rele=P2^0;

void main(void) {
rele=1;
pulsador=1;
}

No hay comentarios: