TODOPIC
Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: microcom en 04 de Mayo de 2006, 18:43:24
-
programa con teclado matricial para realizar operaciones matematicas solo con dos digitos
+ - * potencia de dos. resultado negativo y visualizacion en display 7 segmento. teclado 4*4
LIST P=16F84A
#INCLUDE<P16F84A.INC>
;DECLARACION DE VARIABLES
MEMORIA EQU 10
REG1 EQU 11
REG2 EQU 12
REG3 EQU 13
VALOR1 EQU 14
VALOR2 EQU 15
RESULT EQU 16
DECENAS EQU 17
UNIDAD EQU 18
RESTA EQU 19
PORTA EQU 05
PORTB EQU 06
STATUS EQU 03
POT EQU 20
REG7 EQU 21
BEN EQU 22
PUNTO EQU 23
NAL EQU 24
ORG 00
GOTO INICIO
RETARDO return
MOVLW .9
MOVWF REG1
DEC3 MOVLW .9
MOVWF REG2
DEC2 MOVLW .5
MOVWF REG3
DEC1 DECFSZ REG3,1
GOTO DEC1
DECFSZ REG2,1
GOTO DEC2
DECFSZ REG1,1
GOTO DEC3
RETURN
TABLA RETURN
ADDWF PCL,1
RETLW B'11000000'
RETLW B'11111001'
RETLW B'10100100'
RETLW B'10110000'
RETLW B'10011001'
RETLW B'10010010'
RETLW B'10000010'
RETLW B'11111000'
RETLW B'10000000'
RETLW B'10011000'
RETLW B'10111111'
RETLW B'11111111'
;CONFIGURACION DE PUERTOS
INICIO
BSF STATUS,5
MOVLW 0F
MOVWF PORTA
CLRF PORTB
BCF STATUS,5
CLRF PORTA
CLRF PORTB
CLRF UNIDAD
CLRF DECENAS
MOVLW .5
MOVWF NAL
CAPTURA
CALL COLUMNA
MOVWF VALOR1
CLRF DECENAS
MOVWF UNIDAD
POR BSF PORTB,3
BTFSC PORTA,0 ;POR *
GOTO VAL2
BSF PORTB,0 ;SUMA LETRAA
BTFSC PORTA,3
GOTO VAL3
BSF PORTB,1 ;RESTA LETRAB
BTFSC PORTA,3
GOTO VAL4
BSF PORTB,2
BTFSC PORTA,3 ;CUADRADO LETRAC
GOTO VAL5
BSF PORTB,3
BTFSC PORTA,3 ;EMPEZAR LETRAD
GOTO EMPE
CALL VISUALIZACION
GOTO POR
VAL2 CALL COLUMNA
MOVWF VALOR2
MOVWF UNIDAD
IGUA BSF PORTB,3
BTFSC PORTA,2
GOTO MULTIPLICACION
CALL VISUALIZACION
GOTO IGUA
MULTIPLICACION
CLRF RESULT
MOVF VALOR2,W
XORLW 00
BTFSC STATUS,2
GOTO CEROS
SUMA MOVF VALOR1,W
ADDWF RESULT,1
DECFSZ VALOR2,1
GOTO SUMA
GOTO DECODIFICAR
CEROS CLRF RESULT
GOTO DECODIFICAR
INCREME INCF DECENAS,1
GOTO RE
DECODIFICAR
MOVF RESULT,W
MOVWF RESTA
CLRF DECENAS
MOVLW .10
RE SUBWF RESTA,1
BTFSC STATUS,0
GOTO INCREME
ADDWF RESTA,1
MOVF RESTA,W
MOVWF UNIDAD
CALL VISUALIZACION
MOVLW .5
MOVWF NAL
GOTO CAPTURA
VISUALIZACION RETURN
MOVF UNIDAD,W
CALL TABLA
BCF PORTA,4
MOVWF PORTB
CALL RETARDO
BSF PORTA,4
MOVF DECENAS,W
CALL TABLA
MOVWF PORTB
BCF PORTB,7
CALL RETARDO
BSF PORTB,7
RETURN
SUCRE
COLUMNA
CLRF PORTB
BSF PORTB,0
BTFSC PORTA,0
GOTO UNO
BTFSC PORTA,1
GOTO DOS
BTFSC PORTA,2
GOTO TRES
CLRF PORTB
BSF PORTB,1
BTFSC PORTA,0
GOTO CUATRO
BTFSC PORTA,1
GOTO CINCO
BTFSC PORTA,2
GOTO SEIS
CLRF PORTB
BSF PORTB,2
BTFSC PORTA,0
GOTO SIETE
BTFSC PORTA,1
GOTO OCHO
BTFSC PORTA,2
GOTO NUEVE
CLRF PORTB
BSF PORTB,3
BTFSC PORTA,1
GOTO CERO
BTFSC PORTA,3
GOTO EMPE
CALL VISUALIZACION
DECFSZ NAL,1
GOTO ESPERA
GOTO APAGAR
GOTO COLUMNA
ESPERA CALL RETARDO
GOTO COLUMNA
APAGAR MOVLW .11
MOVWF DECENAS
MOVWF UNIDAD
CALL VISUALIZACION
GOTO EMPE
UNO MOVLW 01
CALL MOSTRAR
RETLW 01
CUATRO MOVLW 04
CALL MOSTRAR
RETLW 04
SIETE MOVLW 07
CALL MOSTRAR
RETLW 07
DOS MOVLW 02
CALL MOSTRAR
RETLW 02
CINCO MOVLW 05
CALL MOSTRAR
RETLW 05
OCHO MOVLW 08
CALL MOSTRAR
RETLW 08
CERO MOVLW 0
CALL MOSTRAR
RETLW 0
TRES MOVLW 03
CALL MOSTRAR
RETLW 03
SEIS MOVLW 06
CALL MOSTRAR
RETLW 06
NUEVE MOVLW 09
CALL MOSTRAR
RETLW 09
MOSTRAR CALL TABLA
MOVWF PORTB
MOVWF MEMORIA
BCF PORTA,4
CALL RETARDO
RETURN
VAL3 CALL COLUMNA
MOVWF VALOR2
MOVWF UNIDAD
SUM BSF PORTB,3
BTFSC PORTA,2
GOTO PROCESO
CALL VISUALIZACION
GOTO SUM
PROCESO MOVF VALOR2,0
ADDWF VALOR1,0
MOVWF RESULT
GOTO DECODIFICAR
VAL4 CALL COLUMNA
MOVWF VALOR2
MOVWF UNIDAD
SER BSF PORTB,3
BTFSC PORTA,2
GOTO CHORY
CALL VISUALIZACION
GOTO SER
CHORY MOVF VALOR2,0
XORWF VALOR1,0
BTFSS STATUS,2
GOTO FEME
CLRF UNIDAD
CLRF DECENAS
CALL VISUALIZACION
GOTO CAPTURA
FEME MOVF VALOR2,0
SUBWF VALOR1,0
MOVWF UNIDAD
BTFSS STATUS,0
GOTO BLADY
MOVLW UNIDAD
CALL VISUALIZACION
GOTO CAPTURA
BLADY COMF UNIDAD,1
INCF UNIDAD,1
MOVLW .10
MOVWF DECENAS
CALL VISUALIZACION
GOTO CAPTURA
VAL5 CLRF POT
MOVF VALOR1,0
MAR ADDWF POT,1
DECFSZ VALOR1,1
GOTO MAR
MOVF POT,0
MOVWF RESULT
CALL DECODIFICAR
GOTO CAPTURA
END