Eje 1 Exh
Eje 1 Exh
Eje 1 Exh
Código RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
38H 0 0 0 0 1 1 1 0 0 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.
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.)
Código RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
01H 0 0 0 0 0 0 0 0 0 1
3. -Se establece el movimiento del cursor hacia la derecha, la pantalla del exhibidor
permanece fija con la entrada de los caracteres.
Código RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
06H 0 0 0 0 0 0 0 1 1 0
4.-Se prende la pantalla del exhibidor, se activa el cursor señalando la posición del
próximo caracter de entrada y se desactiva el parpadeo.
Código RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0EH 0 0 0 0 0 0 1 1 1 0
Código RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
80H 0 1 0 0 0 0 0 0 0 0
__
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
Código RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
41H 1 0 0 1 0 0 0 0 0 1
A __
Código RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
42H 1 0 0 1 0 0 0 0 1 0
BUS DE DATOS
33pF 31 39 3 2 10 11 10 11
EA/VP P0.0 D0 Q0 A0 O0 A0 D0
P0.1 38 4 D1 Q1 5 9 A1 O1 12 9 A1 D1 12
19 37 7 6 8 13 8 13
11.05592MHz X1 P0.2 D2 Q2 A2 O2 A2 D2
36 8 9 7 15 7 15
VCC P0.3 D3 Q3 A3 O3 A3 D3
35 13 12 6 16 6 16
P0.4 D4 Q4 A4 O4 A4 D4
18 34 14 15 5 17 5 17
X2 P0.5 D5 Q5 A5 O5 A5 D5
33 17 16 4 18 4 18
33pF P0.6 D6 Q6 A6 O6 A6 D6
10uF 32 18 19 3 19 3 19
P0.7 D7 Q7 A7 O7 A7 D7
9 25 25
RESET RESET A8 A8
21 1 24 24
P2.0 OC A9 A9
22 11 21 21
P2.1 G A10 A10
12 23 23 23
13 INT0 P2.2 24 74LS373 2 A11 2 A11
100K INT1 P2.3 A12 A12
14 25 26 26
T0 P2.4 A13 A13
15 26 27 1
T1 P2.5 A14 A14
27
P2.6
1N4148 1 28 20 20
P1.0 P2.7 CE CE
2 P1.1
22
OE
22
RD
3 17 1 27
P1.2 RD 5V VPP WR
4 P1.3 WR
16
5 29 27256 43256
P1.4 PSEN
6 P1.5 ALE/P
30
7 11
P1.6 TXD
8 P1.7 RXD 10 BUS DE DATOS
8031
EXHIBIDOR
LM 16256
14 7 6 4 2 3 1 6
5V
100K
D
13 Vcc 1 4 7
11 17 D0
12 16 D1 VCC
15 D2 Y1 1 2 5 8
74HC08 14 D3 Y2 2
Y3 3
Y4 4 3 6 9
X1 11
A12 5 OSC X2 10 10K
1 15 X3 8 # 0 *
A Y0
2 14 X4 7
B Y1 0.1uF
3 13 0.01uF 6 KEYB
C Y2
A14 12 12 DA
Y3
11 13 /OE
Y4
6 10 GND
G1 Y5 RESET DEL 8031
4 9 9
G2A Y6
5 7 INTERCONEXIONADO DEL MICROCONTROLADOR
G2B Y7
8051 CON EL TECLADO Y EL EXHIBIDOR
74HC138 Size Document Number REV
A SISTEMA MINIMO2
Date: March 25, 1998 Sheet of
400B
400B A3 INC DPTR
400C 124046 LCALL XCBDOR
4030 ;************************************
4030 ;**** SUBRUTINA DE CONTROL Y PRE-****
4030 ;**** SENTACION DEL EXHIBIDOR ****
4030 ;************************************
4051 ;****************************************
4051 ;**** SUBRUTINA DE TIEMPO DE 40uSEGS ****
4051 ;****************************************
4051 7F14 QARNTA: MOV R7,#20
4053 DFFE TIEMPO: DJNZ R7,TIEMPO
4055 22 RET
4056
;******************************************
;** SUBRUTINA QUE ENVIA EL CARACTER ***
4056 ;** 01 DE CONTROL, Y ADEMAS CONSUME ***
4056 ;** LOS 1.64 mSEGS PARA SU EJECUCION ***
4056 ;******************************************
4075 ;*****************************************
4075 ;**** TABLA DE MENSAJES DEL EXHIBIDOR ****
4075 ;*****************************************
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.
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.
A continuación se muestra un pequeño programa que toma datos del teclado y los
envía al exhibidor.
;********************************************
;** 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. **
;********************************************
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
;*********************************************
;****** 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
;********************************************