Está en la página 1de 16

UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA

FACULTAD DE SISTEMAS Y TELECOMUNICACIONES


CARRERA DE ELECTRÒNICA Y TELECOMUNICACIONES

PRÀCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.

CARRERA CICLO CODIGO NOMBRE DE LA ASIGNATURA


Electrònica y 2020-1 Microprocesadores
Telecomunicaciones
PRACTICAS Microprocesadores DURACION
NOMBRE DE LA PRACTICA Interrupciones, teclado matricial, retardos. 2h

PRACTICA 8

1 OBJETIVOS

 Relacionarse con el uso del simulador 8051 usando el subsistema de conteo


y temporización del 8051.
 Explotar las posibilidades que Brinda el Kit de desarrollo para el trabajo con
el Sistema de conteo y temporización según los conocimientos adquiridos.
 Aprender el manejo del teclado 4x4 con el microcontrolador AT89C52.
 Estudiar las subrutinas de gestión de un teclado matricial 4x4.
 Estas subrutinas detectan la tecla pulsada, la identifica y le asigna un código
hexadecimal.
 El código HEX de la tecla pulsada se visualiza en un display de 7 segmentos
por un lapso de 255 milisegundos.
 Entender el uso de la directiva INCLUDE.
 Utilizar rutinas para la eliminación de rebotes mecánicos en el teclado.

2 FUNDAMENTO TEORICO

3 PROCEDIMIENTO
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÒNICA Y TELECOMUNICACIONES

PRÀCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.

3.1 EQUIPO
EQUIPO NECESARIO MATERIAL DE APOYO
 _______________________________  _______________________
 ________________________________  ________________________
 _______________________________  _______________________
 _
 _
3.2 DESARROLLO DE LA PRACTICA

Reconocer los diferentes esquemas se pueden utilizar en la práctica.

La Figura 3.3 muestra el esquema que contiene el hardware para la


simulación de esta práctica de laboratorio.

Empleando este hardware:


UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÒNICA Y TELECOMUNICACIONES

PRÀCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.

1.
Figura 2.3. Esquema para la simulación del hardware de la práctica de
laboratorio Nº 3.

3. Escriba un programa para que los LEDs conectados a la salida del


Puerto 2 (P2) permanezcan apagados mientras no se presione la tecla
SW1. Al presionar SW1 el encendido de los LEDs debe producirse
como se describe en el ejercicio 1. A partir de aquí cada vez que se
presione SW1 el encendido de los LEDs se producirá en el sentido
contrario al que llevaba. Para la realización del programa emplee las
subrutinas escritas en los ejercicios anteriores y ten en cuenta los
siguientes segmentos de programas.
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÒNICA Y TELECOMUNICACIONES

PRÀCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.

Solución al ejercicio:
;******************************************
;** SUBSISTEMA DE CONTEO Y TEMPORIZACIÓN **
;******************************************

$MOD51

PDATOS EQU P2
SW1 EQU P0.0

; Vector RESET
ORG 0000H
;LJMP INICIO

; programa principal
; ORG 50H
INICIO:
MOV TMOD, #01H ;configuración del timer o en modo1
MOV PDATOS,#00H

LAZO:JNB SW1,DERECHO ;si SW1 está presionada salta a DERECHO


JMP LAZO
; subrutina que muestra el encendido de los leds de izq. a der. de
; forma continua
; .

ORG 80H
DERECHO:CLR A
MOV PDATOS,A
LCALL DEMORA_1S
LCALL TECLA1; verifica el estado de la tecla SW1. Si
; está presionada salta a INVERSO.
MOV A,#01H
MOV PDATOS,A
LCALL DEMORA_1S
LCALL TECLA1
MOV A,#03H
MOV PDATOS,A
LCALL DEMORA_1S
LCALL TECLA1
MOV A,#07H
MOV PDATOS,A
LCALL DEMORA_1S
LCALL TECLA1
MOV A,#0FH
MOV PDATOS,A
LCALL DEMORA_1S
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÒNICA Y TELECOMUNICACIONES

PRÀCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.

LCALL TECLA1
MOV A,#1FH
MOV PDATOS,A
LCALL DEMORA_1S
LCALL TECLA1
MOV A,#3FH
MOV PDATOS,A
LCALL DEMORA_1S
LCALL TECLA1
MOV A,#7FH
MOV PDATOS,A
LCALL DEMORA_1S
LCALL TECLA1
MOV A,#0FFH
MOV PDATOS,A
LCALL DEMORA_1S
LCALL TECLA1
lJMP DERECHO ;subrutina que muestra el encendido de
;los leds de der a izq de forma
;contiuna.

ORG 150H
INVERSO:CLR A
MOV PDATOS,A
LCALL DEMORA_1S
LCALL TECLA2

MOV A,#80H
MOV PDATOS,A
LCALL DEMORA_1S
LCALL TECLA2 ; verifica el estado de la Tecla SW1, Si
; està presionada salta a DERECHO.

MOV A,#0C0H
MOV PDATOS,A
LCALL DEMORA_1S
LCALL TECLA2
MOV A,#0E0H
MOV PDATOS,A
LCALL DEMORA_1S
LCALL TECLA2
MOV A,#0F0H
MOV PDATOS,A
LCALL DEMORA_1S
LCALL TECLA2
MOV A,#0F8H
MOV PDATOS,A
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÒNICA Y TELECOMUNICACIONES

PRÀCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.

LCALL DEMORA_1S
LCALL TECLA1
MOV A,#0FCH
MOV PDATOS,A
LCALL DEMORA_1S
LCALL TECLA2
MOV A,#0FEH
MOV PDATOS,A
LCALL DEMORA_1S
LCALL TECLA2
MOV A,#0FFH
MOV PDATOS,A
LCALL DEMORA_1S
LCALL TECLA2
JMP INVERSO

; subrutina de demora de 1
segundo ORG 230H

DEMORA_1S:MOV R0,#14 ; inicializo un contador


INI_TIMER:SETB TR0 ; habilito el timer 0
; espero por flag activado por
SAL1:JNB TF0,SAL1 desborde
CLR TF0 ; limpio el bit activado
CLR TR0 ; deshabilito el timer 0
; repito el procedimiento hasta
DJNZ R0,INI_TIMER R0=0
RET

ORG 250H
TECLA1:JNB SW1,SAL2
JMP FIN1
SAL2:LCALL INVERSO
FIN1:RET

; subrutina para comprobar el estado de SW1 cuando los leds encienden


; en la dirección INVERSO.
ORG 300H
TECLA2:JNB SW1,SAL3
JMP FIN2
SAL3:LCALL DERECHO
FIN2:RET
END
Para realizar la conexión de cada una de las secciones del kit de desarrollo
que se emplean en esta práctica:
Utilice un cable multicolor F-F de 8 pines para realizar la conexión de los
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÒNICA Y TELECOMUNICACIONES

PRÀCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.

conectores CON 3 y CON 23, pertenecientes a las secciones 2 y 9


respectivamente. De igual forma emplee otro cable multicolor F-F de 8 pines
para conectar los conectores CON 4 y CON 5, pertenecientes a las
secciones 2 y 3 respectivamente.
Utilice un cable multicolor F-F de 2 pines para la conexión entre los bits del 0
y 1 del Puerto 0 (P0) correspondientes a los pines del 1 y 2 del conector
CON 26 en la sección 9 y los pines 1 y 2 del conector CON 6 en la sección 4
(Figura 3.6).

Figura 3.4. Esquema para la conexión de las secciones necesarias para la


práctica de laboratorio Nº 3.

Verifique que el cable multicolor F-F de 6 pines permanezca conectado entre los
conectores CON 27 en la sección 9 y CON 41 en la sección 12. Recuerde que
este cable es imprescindible para la programación del microcontrolador.
PARTE A)
1. INTRODUCCION
2. DIAGRAMA DE FLUJO DEL TECLADO
3. ESPECIFICACIONES
4. PROGRAMA PRINCIPAL
5. ARCHIVOS INCLUDE
6. SIMULACION EN PROTEUS

1) INTRODUCCION
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÒNICA Y TELECOMUNICACIONES

PRÀCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.

Para eliminar los rebotes es necesario introducir un retardo por software de aproximadamente 20
milisegundos cuando se pulsa una tecla de la siguiente manera:

SIN CON
ANTIREBOTE ANTIREBOTE

TECLA TECLA

APRETADA APRETADA
NO
NO
SI SI

SOLTADA
NO RETARDO 20
MILISEGUNDOS
SI

SOLTADA
CONTINUA NO
PROCESO
SI

CONTINUA
PROCESO

2. DIAGRAMA DE FLUJO DE EXPLORACION DE TECLADO


De igual manera cuando se utiliza un teclado para evitar molestias se emplea un antirebote por
software para cada tecla. Observe el uso de un retardo DELAY20MS de 20 milisegundos en las
subrutinas EXPTECLADO y DEJEPULSAR. Observe que si el usuario no aprieta ninguna tecla
la exploración continua indefinidamente.
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÒNICA Y TELECOMUNICACIONES

PRÀCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.

EXPLORAR
TECLADO

HABILITAR FILA 0

LEER
COLUMNAS

TECLA
APRETADA
EN ESTA
FILA?

no

si
HABILITAR FILA 1

LEER
COLUMNAS

TECLA
APRETADA
si
EN ESTA
FILA?

no no

HABILITAR FILA 2
ELIMINAR
REBOTES

LEER
COLUMNAS IDENTIFICA FILA
Y COLUMNA DE
TECLA
si
APRETADA
TECLA
APRETADA
EN ESTA
FILA?
SALIR
no

HABILITAR FILA 3

LEER
COLUMNAS
si

TECLA
APRETADA
EN ESTA
FILA?
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÒNICA Y TELECOMUNICACIONES

PRÀCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.

3) ESPECIFICACIONES

PRACTICA # 09
P2.0
R1
P2.1
R2
P2.2
R3
330R
P2.3
R4
330R
P2.4
R5
330R
R6
330R
AT89C52 P2.5
P2.6
R7
330R
330R
330R
U1
19 39
XTAL1 P0.0/AD0
38
P0.1/AD1
C1 P0.2/AD2
37 P2.7
22u 18 36
XTAL2 P0.3/AD3
35
P0.4/AD4
34
P0.5/AD5
33
P0.6/AD6
9 32
RST P0.7/AD7

R8 P2.0/A8
21 P2.0
22 P2.1
200R P2.1/A9
23 P2.2
P2.2/A10
29 24 P2.3
PSEN P2.3/A11
30 25 P2.4
ALE P2.4/A12
31 26 P2.5
EA P2.5/A13
P2.6/A14
P2.7/A15
27
28
P2.6
P2.7
P1.0
A 7 8 9
P1.0 1 10
P1.0 P3.0/RXD
P1.1
P1.2
2
3
P1.1
P1.2
P3.1/TXD
P3.2/INT0
11
12
P1.1
B 4 5 6
P1.3 4 13
P1.3 P3.3/INT1
P1.4 5 14
P1.4 P3.4/T0
P1.5
P1.6
6
7
P1.5
P1.6
P3.5/T1
P3.6/WR
15
16
P1.2
C 1 2 3
8 17
P1.7 P3.7/RD
P1.7

80C51 P1.3
D
ON
C 0 = +

4
P1.7

P1.6

P1.5

P1.4

a. Guardar en esta carpeta el archivo “include” de nombre


GESTIONTECLADO.ASM, es decir en el mismo directorio donde creará su
programa principal para que puedan ser detectados por el ensamblador.
b. Comprenda la función de la directiva INCLUDE.
c. Construya el circuito indicado arriba con el microcontrolador 8051.
d. Es su obligación entender cada detalle de la práctica.

4) EL PROGRAMA PRINCIPAL ES EL SIGUIENTE

;=========================================================
; PRACTICA # 08
;==============================================================
;
; PROPOSITO:
; Estudiar las subrutinas de gestión de un teclado matricial 4x4.
; Estas subrutinas detectan la tecla pulsada, la identifica y
; le asigna un código Hexadecimal. El código HEX de la tecla pulsada se
; visualiza en un display de 7 segmentos por un lapso de 255 milisegundos.
;
; Usar la directiva INCLUDE para incorporar al programa fuente el archivo
; GESTIONTECLADO.ASM que contiene las subrutinas de gestión del teclado,
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÒNICA Y TELECOMUNICACIONES

PRÀCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.

; también las subrutinas DELAY20ms y DELAY255ms para la eliminación de


; rebotes y pausa para el display respectivamente.
; Observe la posición en este programa fuente de la directiva INCLUDE.
; Procesador: AT89C52 de Intel
;
; Crystal: 12 MHz
;
;==============================================================
; PROGRAMA PRINCIPAL
; Este programa permite visualizar momentáneamente en el display de 7 segmentos el
; valor hexadecimal de la tecla pulsada.
;==============================================================
ORG 000H
INICIO: NOP
MOV A,#0
MOV P2,A ;PUERTO P2 SALIDA
SETB P2.7
MOV A,#0F0H
MOV P1,A ;P1.0, P1.1, P1.2 y P1.3 salida - filas
NOP ;P1.4, P1.5, P1.5 y P1.7 entradas -colum
NOP
LAZO: LCALL EXPTECLADO ;explora teclado
LCALL BUSCAHEX ;busca codigo hex asociado
MOV DPTR,#HEXA7SEG ;direcc tabla 7seg
MOVC A,@A+DPTR ;lee codigo de 7 segmentos
MOV P2,A ;codigo 7 seg a display
CLR P2.7 ;habilita display
CALL DELAY255MS ;pausa
SETB P2.7 ;deshabilita display
CALL DEJEPULSAR ;dejar de pulsar tecla actual
SJMP LAZO ; repite proceso

$INCLUDE (GESTIONTECLADO.ASM)
END ; FIN
;==============================================================
5) EL ARCHIVO “INCLUDE” ES EL SIGUIENTE

; GESTIONTECLADO.ASM
;
; CONTIENE SUBRUTINAS PARA GESTION DE UN TECLADO MATRICIAL
; 4X4
;
; SUBRUTINA DEJEDEPUSAR.
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÒNICA Y TELECOMUNICACIONES

PRÀCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.

; SUBRUTINA EXPTECLADO
; SUBRUTINA BUSCAHEX
; SUBRUTINA DELAY20MS para eliminar rebotes en teclado
; SUBRUTINA DELAY255MS para una pausa en display de 7 segmentos

;==============================================================
; TABLA DE CODIGO HEX PARA CADA FILA DEL TECLADO MATRICIAL 4X4
;
; CODIGO_F0: DB 7H, 8H, 9H, 0FH
; CODIGO_F1: DB 4H, 5H, 6H, 0EH
; CODIGO_F2: DB 1H, 2H, 3H, 0DH
; CODIGO_F3: DB 0H ,0AH,0BH,0CH

DEJEPULSAR:
; PERMANECE EN ESTA SUBRUTINA HASTA QUE EL USUARIO LEBERE LA
; TECLA APRETADA Y VUELVA A APRETAR UNA SEGUNDA TECLA, CON
; ESTA ULTIMA ACCION SE SALE DE LA SUBRUTINA.
; ESTO CON LA FINALIDAD DE NO REPETIR LA MISMA TECLA SI FUERA EL
; CASO.
;
K1: NOP
MOV P1,#0F0H
MOV A,P1
ANL A,#0F0H
CJNE A,#0F0H,K1
K2: ACALL DELAY20MS
MOV A,P1
ANL A,#0F0H
CJNE A,#0F0H,OVER
SJMP K2
OVER: ACALL DELAY20MS
MOV A,P1
ANL A,#0F0H
CJNE A,#0F0H,OVER1
SJMP K2
OVER1: RET;
;==============================================================
EXPTECLADO:
; Esta subrutina explora contínuamente el teclado matricial 4x4. Si encuentra
; una tecla apretada sale de la subrutina con la dirección en DPTR de la
; Fila de Tabla de código HEX, y además en el nibble alto del registro A se tiene la
; información (un cero) de la columna en la que se encuentra la tecla apretada.
;
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÒNICA Y TELECOMUNICACIONES

PRÀCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.

MOV P1,#0FEH;habilita fila 0.


MOV A,P1
ANL A,#0F0H
CJNE A,#0F0H,FILA0
;-----------------------------------------------------------------
MOV P1,#0FDH;habilita fila 1.
MOV A,P1
ANL A,#0F0H
CJNE A,#0F0H,FILA1
;-----------------------------------------------------------------
MOV P1,#0FBH;habilita fila 2.
MOV A,P1
ANL A,#0F0H
CJNE A,#0F0H,FILA2
;-----------------------------------------------------------------
MOV P1,#0F7H;habilita fila 3.
MOV A,P1
ANL A,#0F0H
CJNE A,#0F0H,FILA3
LJMP EXPTECLADO
;-----------------------------------------------------------------
FILA0: ACALL DELAY20MS ; ELIMINA REBOTES
MOV DPTR,#CODIGO_F0 ;apunta a fila 0
RET
FILA1: ACALL DELAY20MS
MOV DPTR,#CODIGO_F1 ; apunta a fila 1
RET
FILA2: ACALL DELAY20MS
MOV DPTR,#CODIGO_F2 ; apunta a fila 2
RET
FILA3: MOV DPTR,#CODIGO_F3 ; apunta a fila 3
RET
;==============================================================

BUSCAHEX:
; ESTA SUBRUTINA BUSCA EL CODIGO HEX DE TECLA PULSADA EN LA
; TABLA.
; DPTR APUNTA A LA FILA DE LA TECLA APRETADA.
; EL NIBBLE ALTO DE REGISTRO A REGISTRA LA COLUMNA (UN 0) DE FILA
; CORRESPONDIENTE QUE IDENTIFICA A LA COLUMNA DE LA TECLA
; PULSADA.
;
; SALIDA: SALE CON CODIGO HEX DE TECLA PULSADA EN REGISTRO A
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÒNICA Y TELECOMUNICACIONES

PRÀCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.

RLC A
JNC HEX
INC DPTR
SJMP BUSCAHEX
HEX: CLR A
MOVC A,@A+DPTR
RET
;==============================================================
; TABLA DE CODIGO HEX PARA CADA FILA DEL TECLADO MATRICIAL 4X4
ORG 90H
CODIGO_F0: DB 7H, 8H, 9H, 0FH
CODIGO_F1: DB 4H, 5H, 6H, 0EH
CODIGO_F2: DB 1H, 2H, 3H, 0DH
CODIGO_F3: DB 0H ,0AH,0BH,0CH
;==============================================================
; SUBRUTINA RETARDO DE 20 MILISEGUNDOS usada para eliminar rebotes
DELAY20MS: MOV R2,#20
LAZO2: MOV R3,#250
LAZO1: NOP
NOP
DJNZ R3,LAZO1
DJNZ R2,LAZO2
RET
;==============================================================
; SUBRUTINA RETARDO DE 255 MILISEGUNDOS PARA PAUSA EN DISPLAY
DELAY255MS: MOV R2,#255
LAZO4: MOV R3,#250
LAZO3: NOP
NOP
DJNZ R3, LAZO3
DJNZ R2, LAZO4
RET
;==============================================================
; TABLA CON CODIGO DE 7 SEGMENTOS PARA DISPLAY CATODO COMUN.
ORG 0C8H
HEXA7SEG:
DB 3FH ;0
DB 06H ;1
DB 5BH ;2
DB 4FH ;3
DB 66H ;4
DB 6DH ;5
DB 7CH ;6
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÒNICA Y TELECOMUNICACIONES

PRÀCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.

DB 07H ;7
DB 7FH ;8
DB 6FH ;9
DB 77H ;A
DB 7CH ;B
DB 39H ;C
DB 5EH ;D
DB 79H ;E
DB 71H ;F
;==============================================================

6) SIMULACION EN PROTEUS.

Muestre el funcionamiento a su profesor para evaluar su trabajo.

==============================================================
PARTE B)
1. ESPECIFICACIONES

Modifique el programa principal de tal forma que rote en el sentido contrario a las manecillas
del reloj cada uno de los 7 leds (g f e d c b a) del display de 7 segmentos conectado a P2. El
número de rotaciones completas depende del valor de la tecla pulsada. Inicialmente el display
está apagado. Para iniciar las rotaciones el programa espera hasta que el usuario apreté
cualquier tecla. Por ejemplo, si se aprieta la tecla 4, entonces el display ejecuta 4 vueltas
completas en el sentido de las manecillas del reloj y apaga el display. La subrutina para
realizar esta tarea de rotación la vamos a llamar ROTAR que debe incorporarse al fichero
GESTIONTECLADO.ASM.

5 Conclusiones y Bibliografia
6.1 Conclusiones

6.2 Bibliografia
 _
 _
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÒNICA Y TELECOMUNICACIONES

PRÀCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.

 _

También podría gustarte