Quisiera colocar los programas que hecho en Mplab en lenguaje ensamblador, para mi es complejo para hacer programas muy dificiles por eso estan los de alto nivel, pero nada es imposible, el ensamblador es muy bueno para ahorrar velocidad y memoria del pic.
Y los que tengas por ahi programas hechos en Ensamblador si quieren pueden subirlo para compartirlos. y SI TIENE LIBRERIAS APRA LCD Y TECLADOS 4X4 SE LOS AGRADECERIA YA QUE NO ME HAN FUNCIONADO LAS MIAS.
Bueno empezemos...
Este es un simple contador de 0 a 9.
Y los que tengas por ahi programas hechos en Ensamblador si quieren pueden subirlo para compartirlos. y SI TIENE LIBRERIAS APRA LCD Y TECLADOS 4X4 SE LOS AGRADECERIA YA QUE NO ME HAN FUNCIONADO LAS MIAS.
Bueno empezemos...
Este es un simple contador de 0 a 9.
Código:
;/////////////////////////////////////////
;TITULO: CONTADOR
;AUTOR: Ing. Jorge Arturo Rdz Hdz
;FECHA: 04/Abril/2009
;/////////////////////////////////////////
LIST P=16F628A
#INCLUDE<P16F628A.INC>
__CONFIG _XT_OSC & _MCLRE_ON & _CP_OFF & _WDT_OFF & _LVP_OFF & _PWRTE_ON
CBLOCK 0X20 ;INICIO DE LA MEMORIA
NUMERO ;VARIBALE PARA CONTAR 0 A 9
CONTADOR ;VARIABLE PARA EL TIMER
ENDC
ORG 0
GOTO START
ORG 5
;///////////////////////////////
; CONFIGURACION
;///////////////////////////////
START BSF STATUS,5 ;BANK 1
CLRF TRISB ;PORTB COMO SALIDA
MOVLW 0X1F ;RA0 RA4 COMO ENTRADA
MOVWF TRISA
MOVLW B'11000111' ;SE CARGA CON 256 TMR0
MOVWF OPTION_REG
BCF STATUS,5 ;BANK 0
CLRW ;W=0
CLRF NUMERO ;LIMPIAR VARIBALE
;///////////////////////////////
; INICIO DEL PROGRAMA
;//////////////////////////////
MAIN MOVF NUMERO,W ;AGARRA EL VALOR DE LA VARIABLE
CALL TABLA ;LLAMA A TABLA
MOVWF PORTB ;VISUALIZA EL VALOR QUE AGARRO DE TABLA
CALL PAUSE_1 ;PAUSA DE 1 SEGUNDO
INCF NUMERO,F ;INCREMENTE VARIBALE A 1
MOVF NUMERO,W ;W SE CARGA CON LA VARIABLE
XORLW 0X0A ;COMPARA SI A LLEGADO A 10
BTFSS STATUS,Z ;CHEKADOR SI A LLEGADO
GOTO MAIN ;BUCLE
CLRW ;SI LLEGA A 10 RESETEA W
CLRF NUMERO ;TAMBIEN LIMPIA LA VARIBALE
GOTO MAIN ;BUCLE
;/////////////////////////////
; RETARDO DE UN SEGUNDO
;////////////////////////////
PAUSE_1 MOVLW 0X64 ;SE CARGA LA CONTADOR CON 100
MOVWF CONTADOR
DELAY BCF INTCON,T0IF ;LE LIMPIA EL BIT, DE DESBORDAMIENTO DE TMRO
MOVLW 09 ;SE CARGA 217
MOVWF TMR0 ;A TMRO
DELAY2 BTFSS INTCON,T0IF ;ESPERA EL DESBORAMIENTO DE TMRO
GOTO DELAY2 ;BUCLE
DECFSZ CONTADOR,F ;DECREMENTE A 1 EL CONTADOR
GOTO DELAY ;BUCLE
RETURN
;/////////////////////////////
; TABLA
;/////////////////////////////
TABLA ADDWF PCL,F
RETLW B'00111111'
RETLW B'00000110'
RETLW B'01011011'
RETLW B'01001111'
RETLW B'01100110'
RETLW B'01101101'
RETLW B'01111100'
RETLW B'00000111'
RETLW B'01111111'
RETLW B'01100111'
END