como estan amigos laneros, les cuento q yo estoy empezando con esto de los pics, y estoy con el 16f84a, tengo conocimientos de electronica, pero a se tiempito que no haga hago de esta rama, y por curiosidad empece con esto de los pic, el primer programa que hice fue para sacar por el puerto A del pic numeros en binario, para conectarlos a uno parecido al 4511 que pasa de bcd a led de 7 segmentos, claro q solo el RA0,RA1,RA2 y RA3 q serian el a, b, c y d respectivamente, segun iba apretando unos swichts conectados al RB0 RB1 RB2 RB3 RB4 RB5 RB6 RB7, Y segun los ponia en nivel
alto me sacaban 1 2 3 4 5 6 7 8 respectivamente, claro q me los sacaba en binario y el integrado al que estaban conectadas la salidas se encargaba de mostrarme en el 7 segmentos, logre hacerlo a la primera, pero luego decidi hacer un programa para reemplazar al 4511, osea para meter en bcd y sacar al led 7 segmentos solo con el pic, pero he tenido problemas al momento de manejar la informacion almacenada de entrada, ya q varia mucho cuando apreto una tecla o dos o tres, lo q queria hacer es usar las primeras 4 patitas del RA como entrada para binario, y usar el RB como salida directamente al led 7 segmentos, aca les pongo el programa que hice, y haber si me pueden dar consejos para mejorarlo y q funcione correctamente, de antemano graciasssss
PROGRAMA
--------------------------List p=16f84
--------------------------RADIX HEX
--------------------------PORTA EQU 05
--------------------------PORTB EQU 06
--------------------------ESTADO EQU 03
--------------------------uno equ 0c
--------------------------dos equ 0d
--------------------------tres equ 0e
--------------------------cuatro equ 0f
--------------------------cinco equ 10
--------------------------seis equ 11
--------------------------siete equ 12
--------------------------ocho equ 13
--------------------------nueve equ 14
--------------------------a equ 15
--------------------------bb equ 16
--------------------------c equ 17
--------------------------d equ 18
--------------------------e equ 19
--------------------------f equ 1a
--------------------------W EQU 0
--------------------------ORG 0
--------------------------BSF ESTADO,5
--------------------------MOVLW B'00000000'
--------------------------MOVWF PORTB
--------------------------MOVLW B'11111'
--------------------------MOVWF PORTA
--------------------------BCF ESTADO,5
--------------------------CLRF PORTB
--------------------------MOVLW B'00001'
--------------------------MOVWF uno
--------------------------MOVLW B'00010'
--------------------------MOVWF dos
--------------------------MOVLW B'00011'
--------------------------MOVWF tres
--------------------------MOVLW B'00100'
--------------------------MOVWF cuatro
--------------------------MOVLW B'00101'
--------------------------MOVWF cinco
--------------------------MOVLW B'00110'
--------------------------MOVWF seis
--------------------------MOVLW B'00111'
--------------------------MOVWF siete
--------------------------MOVLW B'01000'
--------------------------MOVWF ocho
--------------------------MOVLW B'01001'
--------------------------MOVWF nueve
--------------------------MOVLW B'01010'
--------------------------MOVWF a
--------------------------MOVLW B'01011'
--------------------------MOVWF bb
--------------------------MOVLW B'01100'
--------------------------MOVWF c
--------------------------MOVLW B'01101'
--------------------------MOVWF d
--------------------------MOVLW B'01110'
--------------------------MOVWF e
--------------------------MOVLW B'01111'
--------------------------MOVWF f
WAIT
--------------------------BTFSC PORTA,0
--------------------------GOTO INICIO
--------------------------BTFSC PORTA,1
--------------------------GOTO INICIO
--------------------------BTFSC PORTA,2
--------------------------GOTO INICIO
--------------------------BTFSC PORTA,3
--------------------------GOTO INICIO
--------------------------GOTO WAIT
INICIO
--------------------------MOVF PORTA,W
--------------------------SUBWF uno
--------------------------BTFSC ESTADO,2
--------------------------GOTO UNO
--------------------------MOVF PORTA,W
--------------------------SUBWF dos
--------------------------BTFSC ESTADO,2
--------------------------GOTO DOS
--------------------------MOVF PORTA,W
--------------------------SUBWF tres
--------------------------BTFSC ESTADO,2
--------------------------GOTO TRES
--------------------------MOVF PORTA,W
--------------------------SUBWF cuatro
--------------------------BTFSC ESTADO,2
--------------------------GOTO CUATRO
--------------------------MOVF PORTA,W
--------------------------SUBWF cinco
--------------------------BTFSC ESTADO,2
--------------------------GOTO CINCO
--------------------------MOVF PORTA,W
--------------------------SUBWF seis
--------------------------BTFSC ESTADO,2
--------------------------GOTO SEIS
--------------------------MOVF PORTA,W
--------------------------SUBWF siete
--------------------------BTFSC ESTADO,2
--------------------------GOTO SIETE
--------------------------MOVF PORTA,W
--------------------------SUBWF ocho
--------------------------BTFSC ESTADO,2
--------------------------GOTO OCHO
--------------------------MOVF PORTA,W
--------------------------SUBWF nueve
--------------------------BTFSC ESTADO,2
--------------------------GOTO NUEVE
--------------------------MOVF PORTA,W
--------------------------SUBWF a
--------------------------BTFSC ESTADO,2
--------------------------GOTO A
--------------------------MOVF PORTA,W
--------------------------SUBWF bb
--------------------------BTFSC ESTADO,2
--------------------------GOTO BB
--------------------------MOVF PORTA,W
--------------------------SUBWF c
--------------------------BTFSC ESTADO,2
--------------------------GOTO C
--------------------------MOVF PORTA,W
--------------------------SUBWF d
--------------------------BTFSC ESTADO,2
--------------------------GOTO D
--------------------------MOVF PORTA,W
--------------------------SUBWF e
--------------------------BTFSC ESTADO,2
--------------------------GOTO E
--------------------------MOVF PORTA,W
--------------------------SUBWF f
--------------------------BTFSC ESTADO,2
--------------------------GOTO F
--------------------------GOTO WAIT
UNO
--------------------------MOVLW B'00000110'
--------------------------MOVWF PORTB
--------------------------BTFSS PORTA,0
--------------------------GOTO WAIT
--------------------------GOTO UNO
DOS
--------------------------MOVLW B'01011011'
--------------------------MOVWF PORTB
--------------------------BTFSS PORTA,1
--------------------------GOTO WAIT
--------------------------GOTO DOS
TRES
--------------------------MOVLW B'01001111'
--------------------------MOVWF PORTB
--------------------------BTFSS PORTA,0
--------------------------GOTO WAIT
--------------------------BTFSS PORTA,1
--------------------------GOTO WAIT
--------------------------GOTO TRES
CUATRO
--------------------------MOVLW B'01100110'
--------------------------MOVWF PORTB
--------------------------BTFSS PORTA,2
--------------------------GOTO WAIT
--------------------------GOTO CUATRO
CINCO
--------------------------MOVLW B'01101101'
--------------------------MOVWF PORTB
--------------------------BTFSS PORTA,0
--------------------------GOTO WAIT
--------------------------BTFSS PORTA,2
--------------------------GOTO WAIT
--------------------------GOTO CINCO
SEIS
--------------------------MOVLW B'01111101'
--------------------------MOVWF PORTB
--------------------------BTFSS PORTA,1
--------------------------GOTO WAIT
--------------------------BTFSS PORTA,2
--------------------------GOTO WAIT
--------------------------GOTO SEIS
SIETE
--------------------------MOVLW B'00000111'
--------------------------MOVWF PORTB
--------------------------BTFSS PORTA,0
--------------------------GOTO WAIT
--------------------------BTFSS PORTA,1
--------------------------GOTO WAIT
--------------------------BTFSS PORTA,2
--------------------------GOTO WAIT
--------------------------GOTO SIETE
OCHO
--------------------------MOVLW B'01111111'
--------------------------MOVWF PORTB
--------------------------BTFSS PORTA,3
--------------------------GOTO WAIT
--------------------------GOTO OCHO
NUEVE
--------------------------MOVLW B'01100111'
--------------------------MOVWF PORTB
--------------------------BTFSS PORTA,0
--------------------------GOTO WAIT
--------------------------BTFSS PORTA,3
--------------------------GOTO WAIT
--------------------------GOTO NUEVE
A
--------------------------MOVLW B'01110111'
--------------------------MOVWF PORTB
--------------------------BTFSS PORTA,1
--------------------------GOTO WAIT
--------------------------BTFSS PORTA,3
--------------------------GOTO WAIT
--------------------------GOTO A
BB
--------------------------MOVLW B'01111100'
--------------------------MOVWF PORTB
--------------------------BTFSS PORTA,0
--------------------------GOTO WAIT
--------------------------BTFSS PORTA,1
--------------------------GOTO WAIT
--------------------------BTFSS PORTA,3
--------------------------GOTO WAIT
--------------------------GOTO BB
C
--------------------------MOVLW B'00111001'
--------------------------MOVWF PORTB
--------------------------BTFSS PORTA,2
--------------------------GOTO WAIT
--------------------------BTFSS PORTA,3
--------------------------GOTO WAIT
--------------------------GOTO C
D
--------------------------MOVLW B'01011110'
--------------------------MOVWF PORTB
--------------------------BTFSS PORTA,0
--------------------------GOTO WAIT
--------------------------BTFSS PORTA,2
--------------------------GOTO WAIT
--------------------------BTFSS PORTA,3
--------------------------GOTO WAIT
--------------------------GOTO D
E
--------------------------MOVLW B'01111001'
--------------------------MOVWF PORTB
--------------------------BTFSS PORTA,1
--------------------------GOTO WAIT
--------------------------BTFSS PORTA,2
--------------------------GOTO WAIT
--------------------------BTFSS PORTA,3
--------------------------GOTO WAIT
--------------------------GOTO E
F
--------------------------MOVLW B'01110001'
--------------------------MOVWF PORTB
--------------------------BTFSS PORTA,0
--------------------------GOTO WAIT
--------------------------BTFSS PORTA,1
--------------------------GOTO WAIT
--------------------------BTFSS PORTA,2
--------------------------GOTO WAIT
--------------------------BTFSS PORTA,3
--------------------------GOTO WAIT
--------------------------GOTO F
END