Вы находитесь на странице: 1из 2

#include P16F877A.

inc

ORG 0x2007
DW 0x2F09

ORG 0x0000

GOTO INICIO
ORG 0X0005 ;ugjggjh

INICIO:
BSF STATUS, RP0 ;cambia al banco 1
BCF STATUS, RP1
MOVLW 0XF0 ;11110000 1=entrada 0=salida
MOVWF TRISB ;configura el puerto B
BCF OPTION_REG, 7 ;resistencias pull-up
CLRF TRISD ; configura el puerto como salida
BCF STATUS, RP0 ; regresa al banco 0
MOVLW PORTB

RUTINA:
MOVLW 0X00
CLRF PORTB ;inicia el puerto B, estado logico=0
CALL CODIGO_TECLA ;llama a la subrutina codigo_tecla
GOTO MOSTRAR ;muestra la tecla

MOSTRAR:
MOVWF PORTD
GOTO RUTINA

CODIGO_TECLA:
MOVLW 0XFE
MOVWF PORTB
BTFSS PORTB,4
RETLW b'00000110' ;1
BTFSS PORTB,5 ;lee rengl�n 4,5,6,B
RETLW b'01100110' ;4
BTFSS PORTB,6 ;lee rengl�n 7,8,9,C
RETLW b'00000111' ;7
BTFSS PORTB,7 ;lee rengl�n *,0,#,D
RETLW b'10000000' ;.

MOVLW 0XFD
MOVWF PORTB

BTFSS PORTB,4 ;lee rengl�n 1,2,3,A


RETLW b'01011011'
BTFSS PORTB,5 ;lee rengl�n 4,5,6,B
RETLW b'01101101'
BTFSS PORTB,6 ;lee rengl�n 7,8,9,C
RETLW b'01111111'
BTFSS PORTB,7 ;lee rengl�n *,0,#,D
RETLW b'00111111'

MOVLW 0XFB ;activa las cuatro columnas


MOVWF PORTB
BTFSS PORTB,4 ;lee rengl�n 1,2,3,A
RETLW b'01001111'
BTFSS PORTB,5 ;lee rengl�n 4,5,6,B
RETLW b'01111101'
BTFSS PORTB,6 ;lee rengl�n 7,8,9,C
RETLW b'01101111'
BTFSS PORTB,7 ;lee rengl�n *,0,#,D
RETLW b'01000000'

MOVLW 0XF7 ;activa las cuatro columnas


MOVWF PORTB

BTFSS PORTB,4 ;lee rengl�n 1,2,3,A


RETLW b'01110111'
BTFSS PORTB,5 ;lee rengl�n 4,5,6,B
RETLW b'01111100'
BTFSS PORTB,6 ;lee rengl�n 7,8,9,C
RETLW b'00111001'
BTFSS PORTB,7 ;lee rengl�n *,0,#,D
RETLW b'01011110'
RETLW 0x00

END

Вам также может понравиться