INTERCONEXIÓN DE UN EXHIBIDOR ALFANUMÉRICO, DE CRISTAL LIQUIDO DE 2 LINEAS POR 16 CARACTERES, AL MICROCONTROLADOR 8051 En la mayoría de los sistemas a desarrollar, resulta indispensable el uso de un exhibidor, el cual, nos muestre mediante mensajes escritos, las demandas del aparato, los requerimientos, los mandatos externos, las señalizaciones, las alarmas, etc. El uso de un exhibidor alfanumérico nos proporciona la solución a esta necesidad, facilitando el manejo y aprendizaje del aparato o dispositivo que ha sido implementado. En esta sección se propone utilizar el Modulo de cristal líquido de 2 líneas por 16 caracteres por línea, el cual es fabricado por diversas compañías, tales como, Philips, Sharp, AND y algunas otras. Este exhibidor puede interconectarse directamente, con el bus de datos de cualquier microprocesador o microcontrolador, gracias a que tiene un bus de datos con tres estados. Además contiene una memoria RAM que le permite almacenar hasta 128 caracteres y una memoria ROM con 160 caracteres matriciales de 5x7 puntos, y 30 caracteres de 5x10 puntos. La ventana del exhibidor permite ver 32 caracteres a la vez, en 2 líneas de 16 caracteres cada una. EXHIBIDOR ALFANUMÉRICO DE 2 LINEAS X 16 CARACTERES 14º 13º 12º 11º 10º .... 3º 2º 1º ASIGNACION DE LAS TERMINALES TERMINAL 1 2 3 4 SEÑAL GND VDD Vo RS 5 R/W 6 E 7 DB0 8 9-13 14 DB1 DB2 DB7 FUNCION TIERRA 0 Volts. 5 Volts VOLTAJE DE CONTRASTE RS=1 ENTRADA DE DATO, RS=0 ENTRADA DE CONTROL R/W=1 LECTURA R/W=0 ESCRITURA SEÑAL DE HABILITACION DEL CIRCUITO BIT MENOS SIGNIFICATIVO DEL BUS DE DATOS BUS DE DATOS 8 BITS BIT MÁS SIGNIFICATIVO DEL BUS DE DATOS El procedimiento para inicializar el exhibidor es el siguiente: Regreso al menú principal Regreso al menu Manejo de un Exhibidor y Teclado Interconexión de Periféricos 1. _ Primeramente se establece el tipo de interfase a la cual el exhibidor se va a conectar, en nuestro caso, se trata de un microcontrolador con un bus de datos de 8 bits, el cual se conecta directamente. La primera palabra de control que se envía al exhibidor es el número 38H, el cual significa lo siguiente: Código 38H RS 0 R/W 0 DB7 0 DB6 0 DB5 1 DB4 1 DB3 1 DB2 0 DB1 0 DB0 0 Se envía la palabra de control al exhibidor (RS=0 y R/W=0), los bits DB5 y DB4 especifican el tamaño del bus, y el bit DB3 el número de líneas del exhibidor. Se espera un lapso de tiempo de 40 µs antes de enviar la siguiente instrucción. NOTA: Cada instrucción, toma un cierto tiempo de ejecución que va de 40 µs a 1.64 ms. (Ver tiempos de ejecución en la Tabla1.) 2. - Se limpia toda la memoria del exhibidor y se regresa la pantalla del exhibidor a su posición inicial. Código 01H RS 0 R/W 0 DB7 0 DB6 0 DB5 0 DB4 0 DB3 0 DB2 0 DB1 0 DB0 1 Esta instrucción toma un tiempo de 1.64 ms, 3. -Se establece el movimiento del cursor hacia la derecha, la pantalla del exhibidor permanece fija con la entrada de los caracteres. Código 06H RS 0 R/W 0 DB7 0 DB6 0 DB5 0 DB4 0 DB3 0 DB2 1 DB1 1 DB0 0 Esta instrucción toma un tiempo de 40 µs. 4.-Se prende la pantalla del exhibidor, se activa el cursor señalando la próximo caracter de entrada y se desactiva el parpadeo. Código 0EH RS 0 R/W 0 DB7 0 DB6 0 DB5 0 DB4 0 DB3 1 DB2 1 posición DB1 1 del DB0 0 5._Se posiciona el cursor en el primer caracter y la primera línea. Aplicaciones del Microcontrolador 8051 2 Dr. Alejandro Vega S. Manejo de un Exhibidor y Teclado Código 80H RS 0 R/W 1 DB7 0 Interconexión de Periféricos DB6 0 DB5 0 DB4 0 DB3 0 DB2 0 DB1 0 DB0 0 Esta instrucción toma un tiempo de 40 µs __ 6.-A partir de aquí se puede comenzar a enviar los caracteres que se desean exhibir dejando un tiempo entre cada uno de ellos de 40 µs. mínimo, y con RS=1 Por ejemplo se enviar n las letras A y B, por lo tanto se escribir código ASCII para la letra A, el cual se ejecuta en 40 µs. Código 41H A RS 1 R/W 0 DB7 0 DB6 1 DB5 0 el siguiente DB4 0 DB3 0 DB2 0 DB1 0 DB0 1 DB4 0 DB3 0 DB2 0 DB1 1 DB0 0 __ Ahora se envía el código respectivo de la letra B. Código 42H RS 1 R/W 0 DB7 0 DB6 1 DB5 0 Se escribe la letra B y se incrementa el cursor. A B __ Aplicaciones del Microcontrolador 8051 3 Dr. Alejandro Vega S. Manejo de un Exhibidor y Teclado Interconexión de Periféricos BUS DE DATOS 33pF 31 19 11.05592MHz VCC 18 10uF RESET EA/VP P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 X1 X2 33pF 9 100K 12 13 14 15 1 2 3 4 5 6 7 8 1N4148 RESET P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 INT0 INT1 T0 T1 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 39 38 37 36 35 34 33 32 3 4 7 8 13 14 17 18 21 22 23 24 25 26 27 28 1 11 D0 D1 D2 D3 D4 D5 D6 D7 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 2 5 6 9 12 15 16 19 10 9 8 7 6 5 4 3 25 24 21 23 2 26 27 OC G 74LS373 17 16 29 30 11 10 RD WR PSEN ALE/P TXD RXD A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 20 22 1 5V O0 O1 O2 O3 O4 O5 O6 O7 11 12 13 15 16 17 18 19 10 9 8 7 6 5 4 3 25 24 21 23 2 26 1 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 20 22 27 CE OE VPP D0 D1 D2 D3 D4 D5 D6 D7 11 12 13 15 16 17 18 19 CE RD WR 27256 43256 BUS DE DATOS 8031 EXHIBIDOR LM 16256 14 7 6 4 2 3 1 6 5V 100K D 13 Vcc 11 17 16 15 14 12 74HC08 A12 D0 D1 D2 D3 A14 6 4 5 A B C Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 G1 G2A G2B 15 14 13 12 11 10 9 7 0.01uF 0.1uF 12 13 4 7 2 5 8 3 6 9 # 0 * VCC Y1 Y2 Y3 Y4 X1 X2 X3 X4 5 OSC 1 2 3 1 1 2 3 4 11 10 8 7 10K 6 KEYB DA /OE GND 9 RESET DEL 8031 INTERCONEXIONADO DEL MICROCONTROLADOR 8051 CON EL TECLADO Y EL EXHIBIDOR Size Document Number 74HC138 A REV SISTEMA MINIMO2 Date: March 25, 1998 Sheet of PROGRAMA PARA MANEJO DEL EXHIBIDOR ALFANUMÉRICO ; ESTE PROGRAMA COMIENZA A PARTIR DE LA LOCALIDAD 4000H POR ; SER LA LOCALIDAD DE INICIODEL EMULADOR, PERO PUEDE COMENZAR ; A PARTIR DE CUALQUIER LOCALIDAD. 4000 4000 4000 4000 4000 4000 4003 4005 4008 400B ORG 4000H ;LAS DIRECCIONES DEL EXHIBIDOR SON ;LA 8000H PARA CONTROL DEL EXHIBIDOR ;LA 8001H PARA EXHIBICI`N DEL CARACTER ;APUNTADAS POR LOS REGISTROS R0 Y P2. 904075 7800 75A050 124046 EXHIBE: MOV DPTR,#CONTEX MOV R0,#00H MOV P2,#80h LCALL XCBDOR ;CONTROL DEL ;EXHIBIDOR ;ENVIA LOS CARACTERES DE :CONTROL AL EXHIB Aplicaciones del Microcontrolador 8051 4 Dr. Alejandro Vega S. Manejo de un Exhibidor y Teclado 400B 400B A3 400C 124046 INC DPTR LCALL XCBDOR 400F 400F 400F ;SE ENVIA EL CARACTER 01 DE CONTROL ;(LIMPIA PANTALLA), EL CUAL REQUIERE ;1.64MsEG. PARA SU EJECUCION. 400F 124056 LCALL LIMPIA 4012 ;CARGA EL APUNTADOR CON EL PRIMER ;MENSAJE 4012 90407D 4015 4015 BIEN: MOV DPTR,#BIENV ;SE ENVIA A LA RUTINA QUE EXHIBE ;EN DOS LINEAS EN UNA VEZ. 4015 124030 4018 124064 401B 401B 401B LCALL DOBLEX LCALL TIME ;SE ENVIA EL CARACTER 01 DE CONTROL ;(LIMPIA PANTALLA), EL CUAL REQUIERE ;1.64MsEG. PARA SU EJECUCION. 401B 7800 401D 124056 4020 4020 4020 4023 4025 4028 402B Interconexión de Periféricos MOV R0,#00 LCALL LIMPIA ;SE ENVIA UN SOLO MENSAJE A LA PRIMERA ;LINEA A PARTIR DE LA COLUMNA 5. 90409F 7485 12403A 124064 124056 402E 80E2 4030 4030 4030 4030 MOV DPTR,#MEDIO MOV A,#85H ;ESCRIBE EN LA 1era LCALL COEXH ;LINEA (5ta. COLUMNA) LCALL TIME LCALL LIMPIA TEREXH: SJMP BIEN ;************************************ ;**** SUBRUTINA DE CONTROL Y PRE-**** ;**** SENTACION DEL EXHIBIDOR **** ;************************************ 4030 4032 4034 4035 4037 4039 403A 403C 403F 4040 4042 4043 4045 7450 113A A3 74C0 113A 22 7800 75A080 F2 1151 08 1146 22 DOBLEX: MOV A,#80 ;ESCRIBE EN LA 1era. ACALL COEXH ;LINEA (1era. COLUMNA) INC DPTR MOV A,#0C0H ;ESCRIBE EN LA 2da. ACALL COEXH ;LINEA (1era. COLUMNA) FEXH: RET COEXH: MOV R0,#00H MOV P2,#80H MOVX @R0,A ACALL QARNTA INC R0 ACALL XCBDOR RET 4046 4047 4048 404A E4 93 6006 F2 XCBDOR: CLR A MOVC A,@A+DPTR JZ TERMIN MOVX @R0,A Aplicaciones del Microcontrolador 8051 5 Dr. Alejandro Vega S. Manejo de un Exhibidor y Teclado 404B 404D 404E 4050 1151 A3 80F6 22 ACALL QARNTA INC DPTR SJMP XCBDOR TERMIN: RET 4051 4051 4051 4051 7F14 4053 DFFE 4055 22 Interconexión de Periféricos ;TIEMPO 40uSEGS ;**************************************** ;**** SUBRUTINA DE TIEMPO DE 40uSEGS **** ;**************************************** QARNTA: MOV R7,#20 TIEMPO: DJNZ R7,TIEMPO RET 4056 ;****************************************** ;** SUBRUTINA QUE ENVIA EL CARACTER *** ;** 01 DE CONTROL, Y ADEMAS CONSUME *** ;** LOS 1.64 mSEGS PARA SU EJECUCION *** ;****************************************** 4056 4056 4056 4056 4059 405C 405E 4061 4063 4064 4064 4064 4064 90407B 124046 7E28 124051 DEFB 22 4064 4066 4068 406A 406C 406E 4070 4072 4074 7902 785A 7E63 7F32 DFFE DEFA D8F6 D9F2 22 LIMPIA: MOV DPTR,#CLEAR LCALL XCBDOR MOV R6,#40 TI1600: LCALL QARNTA ;TIEMPO DE 40uSEGS DJNZ R6,TI1600 RET ;**************************************** ;**** SUBRUTINA DE TIEMPO DE 2 SEGS **** ;**************************************** 4075 4075 4075 TIME: E2: E3: E4: WAIT: MOV R1,#02 MOV R0,#90 MOV R6,#99 MOV R7,#50 DJNZ R7,WAIT DJNZ R6,E4 DJNZ R0,E3 DJNZ R1,E2 RET ;***************************************** ;**** TABLA DE MENSAJES DEL EXHIBIDOR **** ;***************************************** 4075 4076 4077 4078 4079 407A 407B 407C 38 00 06 0E 80 00 01 00 CONTEX: DB DB DB DB INIEXH: DB DB CLEAR: DB DB 407D 408D 408E 409E 409F 40A6 0000 20424945 00 20534953 00 454E4D45 00 BIENV: MEDIO 38H 00H 06H 0EH 80H 00H 01H 00H DB ' BIENVENIDOS AL ' DB 00H DB ' SISTEMA 200000 ' DB 00H DB 'ENMEDIO' DB 00H END ---- TABLA SIMBOL --- Aplicaciones del Microcontrolador 8051 6 Dr. Alejandro Vega S. Manejo de un Exhibidor y Teclado BIEN QARNTA E2 WAIT LIMPIA COEXH TI1600 P2 4012 4051 4066 406C 4056 403A 405E 00A0 DOBLEX TIME INIEXH CLEAR TERMIN E4 CONTEX TIEMPO Interconexión de Periféricos 4030 4064 4079 407B 4050 406A 4075 4053 FEXH BIENV TEREXH E3 XCBDOR MEDIO EXHIBE 4039 407D 402E 4068 4046 409F 4000 INTERCONEXIONANDO DEL MICROCONTROLADOR CON UN TECLADO MATRICIAL DE 12 TECLAS La utilización de un teclado para seleccionar una acción de control o para introducir las variables solicitadas por el sistema, es siempre indispensable. Existen dos tipos de teclado los denominados matriciales y los que tienen un punto en común con todas las teclas. En este ejemplo se trabajará con uno del tipo matricial de 3 columnas por 4 renglones. Cada vez que se oprime una tecla existen los denominados rebotes, los cuales son indeseables, debido a que se genera varias veces la demanda de la tecla oprimida. Lo cual ocasiona que el mismo valor de la tecla sea leído varias veces. En algunos sistemas este inconveniente es anulado mediante un programa que verifica los valores eliminando los rebotes, en otros sistemas se realiza mediante circuitería. En este ejemplo haremos uso del circuito 74C922 que tiene la ventaja de eliminar internamente los rebotes, ayudado por dos capacitores que se le conectan externamente. Este circuito tiene además la característica de poder manejar hasta un teclado matricial de 16 teclas (el 74C923 es de 20 teclas), y de conectarse directamente al bus de datos del microcontrolador ó microprocesador. Asimismo, mediante una señal de activación DA, nos indica cuando el dato está estable guardándolo durante todo el tiempo que así se requiera en fijadores internos. El diagrama que muestra su conexionado con el microcontrolador se presenta conjuntamente con el del exhibidor. A continuación se muestra un pequeño programa que toma datos del teclado y los envía al exhibidor. PROGRAMA PARA MANEJO DE TECLADO ;******************************************** ;** PROGRAMA PARA TOMAR DATOS DEL TECLADO ** ;** Y ENVIARLOS AL EXHIBIDOR ** ;** DIRECCIONES DEL EXHIBIDOR ** ;** 8000H = CONTROL DEL EXHIBIDOR ** ;** 8001H = EXHIBICION DEL DATO ** ;** DIRECCION DEL TECLADO = 9000H ** ;** EL DA ACTIVA LA INT0 DE MICROCONTR. ** Aplicaciones del Microcontrolador 8051 7 Dr. Alejandro Vega S. Manejo de un Exhibidor y Teclado Interconexión de Periféricos ;******************************************** 0000 ORG 00H 9000 TEC: EQU 9000H 8000 EXHI: EQU 8000H 0000 020064 LJMP TECLAD 0003 ORG 03H 0003 D200 SETB 20H.0 0005 909000 MOV DPTR,#TEC 0008 E0 MOVX A,@DPTR 0009 540F ANL A,#0FH 000B 2430 ADD A,#30H ;VALOR ASCII 000D 32 RETI ;******************************************** ;***** PROGRAMA PRINCIPAL ******** ;******************************************** 0064 ORG 100 0064 758801 TECLAD: MOV TCON,#01H 0067 9000AE MOV DPTR,#CONTRL 006A 7800 MOV R0,#00H 006C 1191 ACALL SUBEXH 006E 9000B6 MOV DPTR,#TEXTO 0071 118F ACALL SUBEX1 0073 74C0 MOV A,#0C0H 0075 11A5 ACALL POSCUR 0077 9000C7 MOV DPTR,#TEXT1 007A 118F ACALL SUBEX1 007C 3000FD ESPTEC: JNB 20H.0,ESPTEC 007F C200 CLR 20H.0 0081 908001 MOV DPTR,#8001H 0084 F0 MOVX @DPTR,A 0085 7F20 MOV R7,#20H 0087 DFFE TEX: DJNZ R7,TEX 0089 7410 008B 11A5 008D 80ED MOV A,#10H ; MUEVE EL CURSOR A LA IZQ. ACALL POSCUR ;SE REPITE EL DATO CONTINUAMENTE SJMP ESPTEC ;********************************************* ;****** SUBRUTINA DE EXHIBICION ******** ;********************************************* 008F 7801 SUBEX1: MOV R0,#01H 0091 75A080 SUBEXH: MOV P2,#80H 0094 E4 SUBEX: CLR A 0095 93 MOVC A,@A+DPTR 0096 600C JZ FINEXH 0098 F2 MOVX @R0,A 0099 7A10 MOV R2,#10H 009B 79FF LAZEX2: MOV R1,#0FFH 009D D9FE LAZEXH: DJNZ R1,LAZEXH 009F DAFA DJNZ R2,LAZEX2 00A1 A3 INC DPTR 00A2 80ED SJMP SUBEXH 00A4 22 FINEXH: RET 00A5 00A8 00A9 00AB 00AD 908000 F0 79FF D9FE 22 POSCUR: MOV DPTR,#EXHI MOVX @DPTR,A MOV R1,#0FFH LAZPOS: DJNZ R1,LAZPOS RET ;******************************************** Aplicaciones del Microcontrolador 8051 8 Dr. Alejandro Vega S. Manejo de un Exhibidor y Teclado Interconexión de Periféricos ;*********** TEXTOS ********** ;******************************************** 00AE 38010206 CONTRL: DB 38H,01H,02H,06H,0FH,80H,00H 00B5 00 DB 00H 00B6 4F505249 TEXTO: DB 'OPRIMA UNA TECLA' 00C6 00 DB 00H 00C7 5445434C TEXT1: DB 'TECLA --> ' 00D1 00 DB 00H 0000 END ---- TABLA SIMBOL ---CONTRL 0088 SUBEX 8000 FINEXH 0087 00AE TEXT1 0094 LAZPOS 00A4 LAZEX2 00C7 TEC 00AB P2 009B ESPTEC 9000 SUBEX1 00A0 Aplicaciones del Microcontrolador 8051 POSCUR 007C TEXTO 008F SUBEXH 9 00A5 LAZEXH 00B6 TECLAD 0091 TCON 009D EXHI 0064 TEX Dr. Alejandro Vega S.