hola tengo un problema con un microcontrolador y un teclado matricial de 4 x 4 la cuestion es que necesito hacer una calculadora usando ensamblador mas especificamente el asem8x5x2 estoy empezando a hacer las rutinas para imprimir en el LCD los numero que entran en el teclado pero tengo un problema, yo leo los numeros que entran al teclado desde una memoria externa pues el teclado lo tengo conectado a un decodificador 74C922 que se encarga de escanear la entrada de teclado.
despues de inicializar todo en mi codigo capturo la tecla presionada por medio de estas lineas
dato:
MOV DPTR,#0C000H
MOVX A,@DPTR
CJNE A,#0F0H,dato
donde #0F0H hace referencia a la recla 1 del teclado,la cuestion es que este codigo esta capturando bien el teclado pero una vez realizo la funcion correspondiente a cada tecla quiero que el programa vuelva a un ciclo de espera pero cuando regreso al ciclo de espera en memoria externa se encuentra guardada la ultima tecla presionada en el teclado lo que hace que el programa se quede en un ciclo infinito de impresion de esa tecla hasta que presione otra,esto no es muy util en mi caso de una calculadora
he intentado cada que leo el valor de memoria limpiar esa posicion de memoria #0C000H poniendo un numero cualquiera alli.
estas son las lineas usadas
MOV A,#00FFH
MOVX @DPTR,A
pero esto no ha dado resultado.
cualquier idea o codigo de ejemplo seria de mucha ayuda
agradeciendoles de antemano
despues de inicializar todo en mi codigo capturo la tecla presionada por medio de estas lineas
dato:
MOV DPTR,#0C000H
MOVX A,@DPTR
CJNE A,#0F0H,dato
donde #0F0H hace referencia a la recla 1 del teclado,la cuestion es que este codigo esta capturando bien el teclado pero una vez realizo la funcion correspondiente a cada tecla quiero que el programa vuelva a un ciclo de espera pero cuando regreso al ciclo de espera en memoria externa se encuentra guardada la ultima tecla presionada en el teclado lo que hace que el programa se quede en un ciclo infinito de impresion de esa tecla hasta que presione otra,esto no es muy util en mi caso de una calculadora
he intentado cada que leo el valor de memoria limpiar esa posicion de memoria #0C000H poniendo un numero cualquiera alli.
estas son las lineas usadas
MOV A,#00FFH
MOVX @DPTR,A
pero esto no ha dado resultado.
cualquier idea o codigo de ejemplo seria de mucha ayuda
agradeciendoles de antemano