Impresion de Datos hacia una impresora
Periféricos
IMPRESIÓN DE DATOS MEDIANTE EL MICROCONTROLADOR 8051, HACIENDO USO DE LA INTERFASE PARALELO TIPO CENTRONICS En muchos sistemas de adquisición y control de procesos es necesario tener por escrito una hoja de resultados, que nos indique los valores de las variables medidas o características del proceso, v.gr., si hubo algún artefacto o nivel sobrepasado, el tiempo en que se realizó tal o tal evento, el número de muestras, etc. Por tal motivo una solución, es el envío de los resultados obtenidos por nuestro sistema, hacia una computadora, en la cual mediante un programa específico, adecue la información, para posteriormente ser enviada hacia una impresora obteniéndose la hoja deseada. Desafortunadamente, el tiempo que se pierde en enviar los datos hacia la computadora, aunado a la necesidad de tener una computadora libre cada vez que se requieran imprimir los resultados, hace de esto, un medio tedioso y algunas veces molesto para los usuarios. Por tal motivo, en éste proyecto se propone interfasar directamente sistema basado en el micro- controlador 8051.
la impresora al
En la tabla 1 se puede apreciar las señales características de la interfase paralelo del tipo Centronics: Asimismo en la fig. 1 se puede apreciar las señales que se activan en el momento de la impresión de datos.
Terminal 1 2 3 4 5 6 7 8 9 10
Nombre Stro D0 D1 D2 D3 D4 D5 D6 D7 ACKN
Función Pasa de alto a bajo (>.5µ µs) cuando se activa Dato 0 del bus de datos Dato 1 del bus de datos Dato 2 del bus de datos Dato 3 del bus de datos Dato 4 del bus de datos Dato 5 del bus de datos Dato 6 del bus de datos Dato 7 del bus de datos Pulso de reconocimiento de dato 5µ µs bajo
Manual del microcontrolador 8051
1
Dr. Alejandro Vega S.
Regreso al menú principal
Impresion de Datos hacia una impresora
11
Periféricos
BUSY
Señal de ocupada Baja si la impresora está lista 12 P.E. Alto cuando no existe papel (Paper End) 13 SELE Alto cuando la impresora está en línea 14 AUTO Autoalimentación, sólo en algunas impresoras 15 ERRO Señal de error. La impresora no puede continuar 16 INIT Cuando se baja se inicializa la impresora 17 SELE Selección. Alta si la impresora está en línea 18 GND Tierra 19-25 GND Tierra Tabla 1. Terminales del conector paralelo.
A continuación se muestra el diagrama de interconexionado del puerto paralelo tipo Centronics, con el microcontrolador 8031, al igual que cada una de sus terminales. Posteriormente, se muestra el programa para imprimir tres letreros, utilizando control de carro CR, alimentadores de línea, así como tabuladores horizontales.
BUS DE DATOS
31 33pF 19 5V
11.0592Mhz
33pF
18 9
10uF RESET
12 13 14 15
100k
1 2 3 4 5 6 7 8
1N4148
EA/VP X1 X2
P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7
RESET INT0 INT1 T0 T1 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 RD WR PSEN ALE/P TXD RXD
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
2 5 6 9 12 15 16 19
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
10 9 8 7 6 5 4 3 25 24 21 23 2 26 27
OC G 74LS373
17 16 29 30 11 10
VCC
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14
20 22 1
11 12 13 15 16 17 18 19
O0 O1 O2 O3 O4 O5 O6 O7
10 9 8 7 6 5 4 3 25 24 21 23 2 26 1 20 22 27
CE OE VPP 27256
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14
11 12 13 15 16 17 18 19
D0 D1 D2 D3 D4 D5 D6 D7
CE RD WR 43256
8031
2
1 7408
13 25 12 24 11 23 10 22 9 21 8 20 7 19 6 18 5 17 4 16 3 15 2 14 1
SELECT IN GND PAPER END GND BUSY GND ACKN GND D7 GND D6 GND D5 GND D4 GND D3 D2 D1 D0 STROBE
3
CLK OC 19 16 15 12 9 6 5 2
Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0
D7 D6 D5 D4 D3 D2 D1 D0
7 9 10 11 12 13 14 15
11 1 18 17 14 13 8 7 4 3
74LS374
G2B G2A G1 C B A
5 4 6 3 2 1
A14 A13 A12
74HC138
INTERCONEXIONADO DEL MICROCONTROLADOR 8051 A LA INTERFASE DEL TIPO CENTRONICS Document Number SISTEMA MINIMO 5 A
Size
CONECTOR PARALELO TIPO CENTRONICS DE LA PC-IBM
Date:
Manual del microcontrolador 8051
Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
2
April 22, 1998
Sheet
REV of
Dr. Alejandro Vega S.
Impresion de Datos hacia una impresora
Periféricos
PROGRAMA PARA IMPRESIÓN DE DATOS
;******************************************** ;**** PROGRAMA PARA IMPRESIÓN DE DATOS ***** ;**** UTILIZANDO UN CONECTOR PARALELO ***** ;**** TIPO CENTRONICS ***** ;**** UTILIZA CUATRO TERMINALES DE P1 ***** ;**** Y UN FIJADOR (74374) COMO PERIFE- ***** ;**** RICO DE SALIDA DE DATOS. DIR=C000H***** ;**** P1.0 = SELECTOR ***** ;**** P1.1 = PAPER END (NO HAY PAPEL ***** ;**** P1.2 = BUSY (OCUPADO) ***** ;**** P1.3 = STROBE (VALIDACION) ***** ;**** INT0 = ACKNOLEDGE (RECONOCIM) ***** ;******************************************** 0000 ORG 00H 0000 010B AJMP IMPRES 0003 ORG 03H 0003 D200 0005 F2 0006 C293
SETB 20H.0 MOVX @R0,A CLR P1.3 ;SE ESTABLECE EL
0008 D293 000A 32
SETB P1.3 RETI
STROBE
;******************************************* ;** ESTE PROGRAMA CONTROLARA LA IMPRESORA ** ;** PRIMERO SALTARA 4 LINEAS, DESPUÉS ES- ** ;** CRIBIRÁ "BIENVENIDOS AL SISTEMA 2000 ** ;** VOLVERÁ A SALTAR 2 LINEAS DARA UN TAB ** ;** Y ESCRIBIRA "ESTA ES UNA PRUEBA DE ** ;** IMPRESIÓN DE DATOS", VOLVERÁ A SALTAR ** ;** 2 LINEAS DARA UN TAB Y ESCRIBIRA "PARA** ;** IMPRIMIR LOS CARACTERES HAY QUE ENVIAR** ;** SU CÓDIGO ASCII", POR ÚLTIMO SALTARÁ 2** ;** LÍNEAS DARA UN TAB Y ESCRIBIRA ** ;** "123456789" ** ;******************************************* 000B 901000 000E 75A0C0 0011 1140 0013 1140 0015 1140 0017 1140 0019 1152 001B 1164 001D 1140 001F 1140
IMPRES: MOV DPTR,#TABLA MOV P2,#0C0H ACALL LF ACALL LF ACALL LF ACALL LF ACALL HT ACALL IPRE ACALL LF ACALL LF
Manual del microcontrolador 8051
3
Dr. Alejandro Vega S.
Impresion de Datos hacia una impresora
Periféricos
0021 90101C 0024 1152 0026 1164 0028 1140 002A 1140 002C 1152 002E 901044 0031 1164 0033 1140 0035 1140 0037 1152 039 90107F 003C 1164 003E 80FE
MOV DPTR,#PRLE ACALL HT ACALL IPRE ACALL LF ACALL LF ACALL HT MOV DPTR,#SELE ACALL IPRE ACALL LF ACALL LF ACALL HT MOV DPTR,#NUMER ACALL IPRE TERMIN: SJMP TERMIN
0040 0042 0043 0045 0047 0049 004C 004F 0051
740D F2 C293 D293 740A 2092FD 3000FD C200 22
LF:
0052 0054 0055 0057 0059 005B 005E 0061 0063
740D F2 C293 D293 7409 2092FD 3000FD C200 22
HT:
0064 0065 0067 0068 006A 006C
E0 6017 F2 C293 D293 3090FD
IPRE:
006F 2091FD 0072 2092FD 0075 3000FD 0078 C200 007A A3 007B E0 007C 70EE 007E 22 007F
OCUP0: REC0:
OCUP: REC:
MOV A,#0DH MOVX @R0,A CLR P1.3 ;SE ESTABLECE EL STROBE SETB P1.3 MOV A,#0AH JB P1.2,OCUP0 ;OCUPADA LA IMPRESORA JNB 20H.0,REC0 ;ESPERA RECONOCIMIENTO CLR 20H.0 RET MOV A,#0DH MOVX @R0,A CLR P1.3 ;SE ESTABLECE EL STROBE SETB P1.3 MOV A,#09H JB P1.2,OCUP ;OCUPADA LA IMPRESORA JNB 20H.0,REC ;ESPERA RECONOCIMIENTO CLR 20H.0 RET
MOVX A,@DPTR JZ FIN CARGA: MOVX @R0,A CLR P1.3 ;SE ESTABLECE EL STROBE SETB P1.3 ESPLIN: JNB P1.0,ESPLIN ;ESPERA QUE SE PONGA ;EN LINEA LA IMPRESORA NHPAP: OCUPA: RECO:
FIN:
Manual del microcontrolador 8051
JB P1.1,NHPAP ;NO HAY PAPEL JB P1.2,OCUPA ;OCUPADA LA IMPRESORA JNB 20H.0,RECO ;ESPERA RECONOCIMIENTO CLR 20H.0 INC DPTR MOVX A,@DPTR JNZ ESPLIN RET
4
Dr. Alejandro Vega S.
Impresion de Datos hacia una impresora
1000 1000 101B 101C 103B 1043 1044 1064 107E 107F 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 0000
4249454E 00 45535441 44452044 00 50415241 51554520 00 30 31 32 33 34 35 36 37 38 39 00
Periféricos
ORG 1000H DB 'BIENVENIDOS AL SISTEMA 2000' DB 00H PRLE: DB 'ESTA ES UNA PRUEBA DE IMPRESIÓN' DB 'DE DATOS' DB 00H SELE: DB 'PARA IMPRIMIR LOS CARACTERES HAY' DB 'QUE ENVIAR SU CÓDIGO ASCII' DB 00H NUMER: DB 30H DB 31H DB 32H DB 33H DB 34H DB 35H DB 36H DB 37H DB 38H DB 39H DB 00H END TABLA:
Manual del microcontrolador 8051
5
Dr. Alejandro Vega S.