Modo 1 - PoliformaT
Modo 1 - PoliformaT Modo 1 - PoliformaT
Expansión de Entrada/Salida digital Expansión de E/S con lógica discreta • Expansión de las salidas – Ejemplo: Construir 3 salidas S0 a S2 de 4 bits cada una con menos de 8 líneas en el uC • C) Mapeando los latches – Sw para escribir en una salida s el dato d /* Supondremos que el decodificador activa las salidas /CS de los latches en las direcciones 0x8000, 0x8001 y 0x8002 */ xdata byte salidas[3] at 0x8000; void escribir_sal (int s, char dato) { /* Esto genera un “MOVX @DPTR, A” con A = dato y DPTR = 0x8000, 0x8001 ó 0x8002 (en función de s) */ salidas[s % 3] = dato; /* también “dato & 0x0F” */ } Contenidos sujetos a una Licencia Creative Commons 2.5: Reconocimiento – No comercial – Sin Obra Derivada 26 de 55
Expansión de Entrada/Salida digital Expansión de E/S con lógica discreta • Expansión de las salidas – Ejemplo: Construir 3 salidas S0 a S2 de 4 bits cada una con menos de 8 líneas en el uC • Ejercicio: Diseñar una nueva solución – Mapeando dos latches de 8 bits – S0 y S1 en el primer latch, S2 en el segundo latch – Sw para escribir en una salida s el dato d Contenidos sujetos a una Licencia Creative Commons 2.5: Reconocimiento – No comercial – Sin Obra Derivada 27 de 55
- Page 1 and 2: Tema 2: Expansión de E/S digital P
- Page 3 and 4: Expansión de Entrada/Salida digita
- Page 5 and 6: Expansión de Entrada/Salida digita
- Page 7 and 8: Expansión de Entrada/Salida digita
- Page 9 and 10: Expansión de Entrada/Salida digita
- Page 11 and 12: Expansión de Entrada/Salida digita
- Page 13 and 14: Expansión de Entrada/Salida digita
- Page 15 and 16: Expansión de Entrada/Salida digita
- Page 17 and 18: Expansión de Entrada/Salida digita
- Page 19 and 20: Expansión de Entrada/Salida digita
- Page 21 and 22: Expansión de Entrada/Salida digita
- Page 23 and 24: Expansión de Entrada/Salida digita
- Page 25: Expansión de Entrada/Salida digita
- Page 29 and 30: Expansión de Entrada/Salida digita
- Page 31 and 32: Expansión de Entrada/Salida digita
- Page 33 and 34: Expansión de Entrada/Salida digita
- Page 35 and 36: Expansión de Entrada/Salida digita
- Page 37 and 38: Expansión de Entrada/Salida digita
- Page 39 and 40: Expansión de Entrada/Salida digita
- Page 41 and 42: Expansión de Entrada/Salida digita
- Page 43 and 44: Expansión de Entrada/Salida digita
- Page 45 and 46: Expansión de Entrada/Salida digita
- Page 47 and 48: Expansión de Entrada/Salida digita
- Page 49 and 50: Expansión de Entrada/Salida digita
- Page 51 and 52: Expansión de Entrada/Salida digita
- Page 53 and 54: Expansión de Entrada/Salida digita
- Page 55: Expansión de Entrada/Salida digita
Expansión de Entrada/Salida digital<br />
Expansión de E/S con lógica discreta<br />
• Expansión de las salidas<br />
– Ejemplo: Construir 3 salidas S0 a S2 de 4 bits cada una<br />
con menos de 8 líneas en el uC<br />
• C) Mapeando los latches<br />
– Sw para escribir en una salida s el dato d<br />
/* Supondremos que el decodificador activa las<br />
salidas /CS de los latches en las<br />
direcciones 0x8000, 0x8001 y 0x8002 */<br />
xdata byte salidas[3] at 0x8000;<br />
void escribir_sal (int s, char dato) {<br />
/* Esto genera un “MOVX @DPTR, A” con A = dato y<br />
DPTR = 0x8000, 0x8001 ó 0x8002 (en función de s) */<br />
salidas[s % 3] = dato; /* también “dato & 0x0F” */<br />
}<br />
Contenidos sujetos a una Licencia Creative Commons 2.5:<br />
Reconocimiento – No comercial – Sin Obra Derivada<br />
26 de 55