Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LIST P=16F887
#include "p16f887.inc"
__CONFIG _CONFIG1, _LVP_OFF & _FCMEN_ON & _IESO_OFF & _BOR_OFF & _CPD_OFF &
_CP_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
GOTO INTERRUPCION
;**** Programa principal ****
INICIO
BANKSEL TRISA
MOVWF TRISB
BANKSEL PORTA
CLRF PORTB
CLRF PORTC
BANKSEL ANSEL
BANKSEL ANSELH
BANKSEL OPTION_REG
BANKSEL WPUB
MOVWF WPUB
BANKSEL TXSTA
BANKSEL SPBRG
BANKSEL RCSTA
MOVWF RCSTA
MOVWF INTCON
BANKSEL IOCB
MOVWF IOCB
BANKSEL PIE1
CLRF NTECLA
BUCLE
GOTO BUCLE
INTERRUPCION
BANKSEL PIR1
TECLA_PRESIONADA
BANKSEL PORTB
NOP
NOP
NOP
TEST_COLUMNAS
ULTIMA_TECLA
NULL_TECLA
; y reactivaciones de tecla
SUELTA_TECLA
ESPERA1
ESPERA2
ESPERA3
ESPERA4
TX_DATO
;BANKSEL PIR1
BANKSEL TXREG
MOVF NTECLA,0
TX_DAT_W
BANKSEL TXSTA
BTFSS TXSTA,TRMT ; ¿Byte transmitido?
DELAY
MOVLW 0xF0
MOVWF CNT1
D1
MOVLW 0xFA
MOVWF CNT0
D0
DECFSZ CNT0
GOTO D0
DECFSZ CNT1
GOTO D1
GOTO FIN
RECEPCION
BANKSEL RCREG
CALL TABLA
BANKSEL PORTA
GOTO FIN
RETLW 0XF9 ;1
RETLW 0XA4 ;2
RETLW 0XB0 ;3
RETLW 0X88 ;A
RETLW 0X99 ;4
RETLW 0X92 ;5
RETLW 0X82 ;6
RETLW 0X83 ;b
RETLW 0XF8 ;7
RETLW 0X80 ;8
RETLW 0X90 ;9
RETLW 0XC6 ;C
RETLW 0X86 ;E
RETLW 0XC0 ;0
RETLW 0X8E ;F
RETLW 0XA1 ;d
FIN
MOVWF STATUS
;..........................................
END