Regreso al menú principal

Anuncio
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.
Descargar