Subido por Deivid Quinde Constante

Interrupciones, teclado matricial, retardos.

Anuncio
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE LECTRONICA Y TELECOMUNICACIONES
PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
CARRERA
Electronica y
Telecomunicaciones
PRACTICAS
NOMBRE DE LA PRACTICA
CICLO
2017-1
CODIGO
NOMBRE DE LA ASIGNATURA
Microprocesadores
Microprocesadores
Interrupciones, teclado matricial, retardos.
DURACION
2h
PRACTICA 8
1 OBJETIVOS








2
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.
FUNDAMENTO TEORICO
µVisión
El µVisión IDE combina la gestión de proyectos, el entorno en tiempo de ejecución, las
instalaciones de compilación, la edición de código fuente y la depuración de programas
en un único entorno potente. µVisión es fácil de usar y acelera el desarrollo de software
integrado. µVisión admite varias pantallas y le permite crear diseños de ventana
individuales en cualquier parte de la superficie visual.
El µVisión Debugger proporciona un entorno único en el que puede probar, verificar y
optimizar el código de su aplicación. El depurador incluye características tradicionales
como puntos de interrupción simples y complejos, ventanas de vigilancia y control de
ejecución, y proporciona visibilidad completa a los periféricos del dispositivo.
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE LECTRONICA Y TELECOMUNICACIONES
PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
Teclado matricial 4x4.
Un teclado matricial es un simple arreglo de botones conectados en filas y columnas,
de modo que se pueden leer varios botones con el mínimo número de pines requeridos.
Un teclado matricial 4x4 solamente ocupa 4 líneas de un puerto para las filas y otras 4
líneas para las columnas, de este modo se pueden leer 16 teclas utilizando solamente
8 líneas de un microcontrolador. Si asumimos que todas las columnas y filas
inicialmente están en alto (1 lógico), la pulsación de un botón se puede detectar al
poner cada fila a en bajo (0 lógico) y checar cada columna en busca de un cero, si
ninguna columna está en bajo entonces el 0 de las filas se recorre hacia la siguiente y
así secuencialmente.
Las resistencias de pull-up del puerto B se habilitan poniendo en 0 el bit NOT_RBPU
del registro OPTION_REG.Al método aquí expuesto para detectar la pulsación de una
tecla en un teclado matricial se le conoce como muestreo secuencial.
3
PROCEDIMIENTO
3.1 EQUIPO
EQUIPO NECESARIO
 Computador
 Programa uvision
 Programa Proteus
MATERIAL DE APOYO
 Practica Impresa
 Pizarron
 Marcadores
 Proyector
3.2 DESARROLLO DE LA PRACTICA
Reconocer los diferentes esquemas se pueden utilizar en la práctica.
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE LECTRONICA Y TELECOMUNICACIONES
PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
La Figura 3.3 muestra el esquema que contiene el hardware para la
simulación de esta práctica de laboratorio.
Empleando este hardware:
1.
Figura 2.3. Esquema para la simulación del hardware de la práctica de
laboratorio Nº 3.
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE LECTRONICA Y TELECOMUNICACIONES
PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
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.
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
JMP LAZO
;si SW1 está presionada salta a DERECHO
; 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
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE LECTRONICA Y TELECOMUNICACIONES
PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
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
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
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE LECTRONICA Y TELECOMUNICACIONES
PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
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
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
INI_TIMER:SETB TR0
SAL1:JNB
CLR
CLR
TF0,SAL1
TF0
TR0
DJNZ R0,INI_TIMER
RET
ORG 250H
TECLA1:JNB SW1,SAL2
JMP FIN1
SAL2:LCALL INVERSO
FIN1:RET
; inicializo un contador
; habilito el timer 0
; espero por flag activado por
desborde
; limpio el bit activado
; deshabilito el timer 0
; repito el procedimiento hasta
R0=0
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE LECTRONICA Y TELECOMUNICACIONES
PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
; 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
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.
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE LECTRONICA Y TELECOMUNICACIONES
PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
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.
2.
3.
4.
5.
6.
INTRODUCCION
DIAGRAMA DE FLUJO DEL TECLADO
ESPECIFICACIONES
PROGRAMA PRINCIPAL
ARCHIVOS INCLUDE
SIMULACION EN PROTEUS
1) INTRODUCCION
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
ANTIREBOTE
CON
ANTIREBOTE
TECLA
TECLA
APRETADA
NO
SI
SOLTADA
APRETADA
NO
SI
NO
RETARDO 20
MILISEGUNDOS
SI
SOLTADA
NO
CONTINUA
PROCESO
SI
CONTINUA
PROCESO
SIMULACION EN PROTEUS
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE LECTRONICA Y TELECOMUNICACIONES
PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE LECTRONICA Y TELECOMUNICACIONES
PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
SIMULACION EN PROTEUS
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE LECTRONICA Y TELECOMUNICACIONES
PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
Ahora los leds se encienden en sentido antihorario.
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 LECTRONICA Y TELECOMUNICACIONES
PRACTICA 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
EN ESTA
FILA?
no
si
no
HABILITAR FILA 2
ELIMINAR
REBOTES
LEER
COLUMNAS
si
IDENTIFICA FILA
Y COLUMNA DE
TECLA
APRETADA
TECLA
APRETADA
EN ESTA
FILA?
SALIR
no
HABILITAR FILA 3
LEER
COLUMNAS
TECLA
APRETADA
EN ESTA
FILA?
si
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE LECTRONICA Y TELECOMUNICACIONES
PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
3)
ESPECIFICACIONES
PRACTICA # 09
R1
P2.0
R2
P2.1
R3
330R
P2.2
R4
330R
P2.3
R5
330R
P2.4
R6
330R
P2.5
R7
330R
P2.6
330R
330R
AT89C52
U1
22u
9
XTAL1
XTAL2
RST
R8
200R
29
30
31
P1.0
P1.1
P1.2
P1.3
P1.4
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
80C51
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
39
38
37
36
35
34
33
32
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
P2.7
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
P2.7
P1.0
P1.1
P1.2
P1.3
A
7
8
9
B
4
5
6
1
2
3
ON
0
=
+
C
D
C
1
P1.7
P1.5
P1.6
1
2
3
4
5
6
7
8
PSEN
ALE
EA
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
4
18
3
C1
2
19
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 LECTRONICA Y TELECOMUNICACIONES
PRACTICA 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
5)
$INCLUDE (GESTIONTECLADO.ASM)
END
; FIN
;==============================================================
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 LECTRONICA Y TELECOMUNICACIONES
PRACTICA 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 LECTRONICA Y TELECOMUNICACIONES
PRACTICA 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 LECTRONICA Y TELECOMUNICACIONES
PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
RLC
JNC
INC
SJMP
A
HEX
DPTR
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 LECTRONICA Y TELECOMUNICACIONES
PRACTICA 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
;==============================================================
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE LECTRONICA Y TELECOMUNICACIONES
PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
Compilación de los programas
6)
SIMULACION EN PROTEUS.
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE LECTRONICA Y TELECOMUNICACIONES
PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
Una vez cargado el programa en el circuito integrado probamos los números del teclado, el la imagen se
observa el numero 1
Luego probamos el numero 2
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE LECTRONICA Y TELECOMUNICACIONES
PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
Ahora observamos el numero 3
Luego el numero 4
Observamos el numero 5
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE LECTRONICA Y TELECOMUNICACIONES
PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
Ahora se muestra en el display el numero 6
en el display se observa ahora el numero 7
Ahora presionamos el numero 8
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE LECTRONICA Y TELECOMUNICACIONES
PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
Luego se visualiza el numero 9
Para finalizar observamos el numero 0
==============================================================
PARTE B)
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.
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE LECTRONICA Y TELECOMUNICACIONES
PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
Programa
;==============================================================
;
PROGRAMA PRINCIPAL
; Este programa permite visualizar en el display de 7 segmentos
; rotaciones en contra de las manecillas del reloj de los LEDs que lo
;componen, siguiendo la secuencia (g-f-e-d-c-b-a). El número de
;rotaciones completas será igual al número ingresado por teclado.
;==============================================================
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
R6,A
MOV
A,#0F0H
MOV
P1,A ;P1.0, P1.1, P1.2 y P1.3 salida - filas
CALL
DELAY255MS ;pausa
CLR
P2.7
;habilita display
LCALL ROTAR
SETB
P2.7
;deshabilita display
CALL
DEJEPULSAR ;dejar de pulsar tecla actual
SJMP
LAZO
; repite proceso
$INCLUDE (GESTIONTECLADOP8.ASM)
END
;
FIN;==============================================================
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE LECTRONICA Y TELECOMUNICACIONES
PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
; GESTIONTECLADO.ASM
;; CONTIENE SUBRUTINAS PARA GESTION DE UN TECLADO MATRICIAL
; 4X4
; SUBRUTINA DEJEDEPUSAR.
; SUBRUTINA EXPTECLADO
; SUBRUTINA BUSCAHEX
; SUBRUTINA DELAY20MS para eliminar rebotes en teclado
; SUBRUTINA DELAY255MS para una pausa en display de 7 segmentos
; SUBRUTINA ROTAR
;==============================================================
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.
;
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
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE LECTRONICA Y TELECOMUNICACIONES
PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
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
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
;========================================================
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
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE LECTRONICA Y TELECOMUNICACIONES
PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
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;
;==============================================================
; 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
;==============================================================
ROTAR:
LOOP2:
MOV A,#40H
LOOP1:
MOV P2,A
RR A
CALL DELAY255MS
JNB P2.0,LOOP1
CALL DELAY255MS
DEC R6
MOV A,R6
JNZ LOOP2
MOV A,#00
MOV P2,A
RET
;==============================================================
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE LECTRONICA Y TELECOMUNICACIONES
PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
COMPILACION DEL PROGRAMA
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE LECTRONICA Y TELECOMUNICACIONES
PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
SIMULACIÓN EN PROTEUS
Probamos que la simulación funcione
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE LECTRONICA Y TELECOMUNICACIONES
PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
5
Conclusiones y Bibliografia
6.1 Conclusiones
6.2 Bibliografia


https://www.geekfactory.mx/tutoriales/tutoriales-pic/teclado-matricial-con-pic/
Descargar