Descargar

Comunicación serie (SCI) y teclado

Enviado por Pablo Turmero


    edu.red

    Subrutina serial Tx SubDescripción de la comunicación serial Para el Kit EVALQTY 1

    edu.red

    Terminologías y Conceptos Operación Half-Duplex. Formato de Transmisión. Detección de error de Trama.

    edu.red

    Transmisión Half-Duplex Solo transmite un nodo a la vez. El MCU no puede transmitir mientras está recibiendo, ni recibir mientras transmite.

    edu.red

    Formato de transmisión Formato estándar de transmisión non-return-to-zero (NRZ) Formato 8-N-1 (8 bits de datos, sin bit de paridad, un bit de parada)

    tp = periodo de un bit = 1/ tasa de baudio

    edu.red

    Detección de Error de Trama El bit de parada está definido como un uno lógico, si el bit de parada recibido es un cero, quiere decir que ocurrió un error de Trama.

    edu.red

    Descripción de la Comunicación Serie en el MCU. Descripción de las subrutinas. Transmisión. Aplicación.

    edu.red

    Descripción de las subrutinas Estás subrutinas se deberán hacer para una frecuencia de Bus de 2,45 MHz y un periodo T=0,406 useg. La rutina de comunicación se dividirá en tres subrutinas; inicializa_cristal, Saca_caracter, delay

    edu.red

    Transmisión Características principales: Se envía el bit de inicio. Se cuenta el tiempo equivalente a 1 bit de datos y se envían el primer bit, Luego se cuenta nuevamente y se envía el segundo, hasta enviar los 8 bits. Por último se pone el pin TDX a 1 (bit de parada).

    edu.red

    Transmisión Formato de transmisión: El formato de transmisión es estándar NRZ n,8,1 posee una estructura configurable. El orden de los bits es el siguiente: – bit START – bit 0 – bit 1 – bit 2 – bit 3 – bit 4 – bit 5 – bit 6 – bit 7 – bit STOP.

    edu.red

    Implementación en el Kit Configuración de HW Pin PTA0 como Tx serial Configuración de jumpers en modo usuario 1. JP2(1-2), JP3 (2-3), JP4(2-3), JP5(1-2), JP6(2-3), JP7(1-2) y JP8(2-3) Configuración de oscilador externo de 9,8304 Mhz Para transmitir un “0” poner el PTA0 como salida y e cero. Para transmitir un 1 poner el PTA0 como entrada. Configuración de Hiperterminal Se debe configurar con un bit de inicio, 8 bits de datos y uno de parada. Sin paridad y sin control de flujo Cuando se inicie la comunicación se encenderá el led amarillo del kit lo que indica que la placa está alimentada. Los datos se muestran en ASCII 10

    edu.red

    Conclusiones El objetivo de esta Aplicación es realizar un Modulo SCI “virtual” en microcontroladores de muy bajo costo que no poseen un módulo “real”.

    edu.red

    Referencias

    Nota de Aplicación NA_SyHDe – SyHDe, Soft y Hard Desarrollos. Nota de Aplicación AN1240 – Motorola Semiconductor by Scott George, CSIC MCU Product Engineering.

    edu.red

    Implementación del Teclado SubImplementación del Teclado mediante el Kit EvalQTY 13

    edu.red

    Conexiones de Hardware 14

    edu.red

    Configuración del Puerto B Se deberán configurar 4 pines como entrada interrumpibles KBI Se deberán configurar 4 pines como salida normalmente en alto Una subrutina que ponga a ‘0’ uno de los pines de salida durante cierto tiempo, (ej. 100ms) y verifique el estado de los pines de entrada. Cuando se verifique un ‘0’ en una entrada y una salida se deberá ir a la tabla para determinar que tecla se presionó Se deberá hacer circular el “cero” por los 4 pines de salida.

    15

    edu.red

    Subrutina de retardo void espera(int micros) {

    TMOD=micros; /*configura el límite del contador*/ TSC=0x02; /*arranca el contador con un prescaler de 4*/ while(TSC_TOF==0){ /*espera el desborde del contador*/ ; } TSC=0x32; /*detiene el contador y borra su cuenta*/ } 16

    edu.red

    Rutina del Teclado interrupt void isrINT_KBI(void){ /*funcion que atiende las interrupciones por teclado*/ //El nibble bajo del puerto B se se usa como selector de filas //El nibble bajo del puerto A se se usa como detector de columnas (entradas)

    17

    edu.red

    Rutina del Teclado temp=PTA; temp=temp & 0x0f;/*se aisla el nibble bajo del PTA*/ car=0; for(car=0;—–;car++){ ; }

    temp=PTB; temp=temp & 0x0f; /*se aisla el nibble bajo del PTB*/ for(;——–;——){ ; } car=car+0x30;/*el primer caracter del teclado es el 0 (0x30 en ASCII)*/ 18

    edu.red

    Bibliografía b) AN1239r1 MOTOROLA SEMICONDUCTOR APPLICATION NOTE (HC05 MCU Keypad Decoding Techniques Using the MC68HC705J1A).

    19