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/