Você está na página 1de 2

;****************************************************************************** ;Librera para el control de un teclado matricial 4x4 ; que fue publicado en el libro titulado: ;"Microcontrolador PIC16F84A ;"del

;autor: ENRIQUE PALACIOS, FERNANDO REMIRO, LUCAS LOPEZ ;TECLADO.inc ;CAMBIAR EL FORMATO DEL ARCHIVO A .INC ;******************************************************************************* * cblock TECL_TECLAORDEN endc TECL_ULTIMATECLA equ d'15' TECLADO_LEEHEX call TECLADO_LEEORDENTECLA btfss STATUS,C goto TECL_FINLEEHEX call TECL_CONVIERTEORDENENHEX bsf STATUS,C TECL_FINLEEHEX return TECL_CONVIERTEORDENENHEX addwf PCL,F DT 1h,2h,3h,0Fh DT 4h,5h,6h,0Eh DT 7h,8h,9h,0Dh DT 0Ah,0h,0Bh,0Ch TECLADO_FINTABLEHEX if(TECLADO_FINTABLEHEX> 0xFF) ERROR "Atencion:la tabla a superado el tamo de la pagina de los " MESSG "Primeros 256bytes de memoria rom, no funconara correctamente " endif TECLADO_INICIALIZA bsf STATUS,RP0 movlw b'11110000' movwf PORTB bcf OPTION_REG,7 bcf STATUS,RP0 call TECLADO_ESPERADEJEPULSAR return TECLADO_COMPROBACION EQU b'11110000' TECLADO_ESPERADEJEPULSAR movlw TECLADO_COMPROBACION movwf PORTB TECLADO_SIGUEESPERANDO call RETARDO_20MS movf PORTB,W sublw TECLADO_COMPROBACION btfss STATUS,Z goto TECLADO_SIGUEESPERANDO return TECLADO_LEEORDENTECLA clrf TECL_TECLAORDEN movlw b'11111110' TECL_CHEQUEAFILA movwf PORTB TECL_COMLUMNA1 btfss PORTB,4 goto TECL_GUARDARVALOR incf TECL_TECLAORDEN,F

TECL_COMLUMNA2 btfss PORTB,5 goto TECL_GUARDARVALOR incf TECL_TECLAORDEN,F TECL_COMLUMNA3 btfss PORTB,6 goto TECL_GUARDARVALOR incf TECL_TECLAORDEN,F TECL_COMLUMNA4 btfss PORTB,7 goto TECL_GUARDARVALOR incf TECL_TECLAORDEN,F TECLA_TERMINARCOLUMNAS movlw TECL_ULTIMATECLA subwf TECL_TECLAORDEN,W btfsc STATUS,C goto TECL_NOPULSADA bsf STATUS,C rlf PORTB,W goto TECL_CHEQUEAFILA TECL_NOPULSADA bcf STATUS,C goto TECL_FINTECLADOLEE TECL_GUARDARVALOR movf TECL_TECLAORDEN,W bsf STATUS,C TECL_FINTECLADOLEE return

Você também pode gostar