pic Jul. 2016 | Page 61

; Definición de variables cont1 cont2 cont3 tecla EQU EQU EQU EQU 0X0C 0X0D 0X0E 0X0F ; ; ; ; Contador1 de la pausa Contador2 de la pausa Contador3 de la pausa Número de Tecla ORG 0X00 ;Colocamos el vector de reset GOTO inicio ; Y saltamos a la dirección 0x05, para evitar ; el vector de interrupción, en 0x04 BSF estado,banco ; Cambio de página para cambiar ; los TRIS de cada puerto ; El puerto A es todo de salida ORG 0X05 Inicio MOVLW 0x00 MOVWF TRISA MOVLW 0xF0 MOVWF TRISB BSF opcion,rbpu BCF estado,banco borrar cuerpo chkcol BCF leds,pulsada ; Borra que la tecla siga pulsada CLRF tecla MOVLW 0x0E MOVWF teclado ; Tecla actual=0 BTFSS teclado,4 GOTO numtecla ; Chequea la columna 0 en busca de un '0' ; si encuentra un 0 muestra el número ; de tecla pulsada ; si no encuentra el 0, incrementa el número de tecla ; Carga el retardo de 0.5 segundos ; Saca 0 a la fila 1, para testearla INCF tecla ; Chequea la columna 1 en busca de un '0' ; si encuentra un 0 muestra el número ;de tecla pulsada ; si no encuentra el 0, incrementa el número de tecla BTFSS teclado,6 GOTO numtecla ; Chequea la columna 2 en busca de un '0' ; si encuentra un 0 muestra el número de tecla INCF tecla ; si no encuentra el 0, incrementa el número de tecla BTFSS teclado,7 GOTO numtecla ; Chequea la columna 3 en busca de un '0' ; si encuentra un 0 muestra el número ;de tecla pulsada ; si no encuentra el 0, incrementa el número de tecla INCF tecla MOVLW 0x10 SUBWF tecla,w BTFSC estado,Z GOTO cuerpo BSF estado,C RLF teclado GOTO chkcol numtecla ; Conectamos las resistencias de polarización ; interna del puerto B ; Cambio de página de nuevo al banco 0 ; Borra el contador ; Borra el contador BTFSS teclado,5 GOTO numtecla UltTec? Las patillas RB0-RB3 representan las filas del teclado, y son salidas Las patillas RB4-RB7 representan las columnas, y son entradas CLRF cont1 CLRF cont2 MOVLW 0x08 MOVWF cont3 INCF tecla pulsada ; ; ; ; MOVF tecla MOVWF leds ; ; ; ; ; ; ; ; Carga W con el número de teclas +1 y lo compara con el valor actual de tecla Si hemos llegado a Tecla+1 acabamos el ciclo de filas y no se habrá pulsado ninguna tecla Y ponemos a 1 el bit C para... que la fila 1 pase a ser un 1 en la rotación de pilas, y el 0 se desplace ; Pasa el valor de la tecla a los LED's 59