cronometro con interrupciones en mplab

BUeno pues me dejaorn esto en la escuela, voy en la voca 1 en mexico y quiero compartir lo que he aprendido, se trata de un programa que consiste en un cronometro hasta 999.99 con boton de inicio, boton de play pause, y boton de reset,
esta hecho a base de una interrupcion de 10 milisegundos para las centecimas de segundo, creanme que me costo un huevo aprender interrupciones de no haber sido por esta pagina web, http://r-luis.xbot.es/pic3/pic3_ref.html, y gracias a mi compañero el Wesker quien amablemente me explico unas pendejadas, bueno aqui adjunto el codigo fuente y una foto pa que vean como va conectado, si tiene alguna duda en conexxion o en el programa mandenme un correo a (kevinsjf6quemonito@hotmail.com) y ya les digo que pedo, esto lo hago con la finalidad de que no sufran igual que yo desvelandose a lo wey nadamas,

Código:
TIMER0	EQU 0X01
STATUS	EQU 0X03
INTCON	EQU 0X0B
OPREG	EQU 0X81
CMCON	EQU 0X1F
TRISA	EQU 0X85
TRISB	        EQU 0X86
PORTA 	EQU 0X05
PORTB 	EQU 0X06
UNO		EQU 0X20
DOS		EQU 0X21
TRES	        EQU 0X22
CUATRO	EQU 0X23
CINCO	EQU 0X24
TEMP	        EQU 0X25

ORG 0X00
GOTO CONFI

ORG 0X04
INCF UNO
BCF INTCON, 2
MOVLW D'99'
MOVWF TIMER0
RETFIE



CONFI
MOVLW 0X07
MOVWF CMCON
BSF STATUS, 5
MOVLW B'00000000'
MOVWF TRISA
MOVLW B'11100000'
MOVWF TRISB
BCF STATUS, 5

START
BTFSS PORTB, 7
GOTO $ - 1
BSF STATUS, 5
MOVLW B'00000101'
MOVWF OPREG
BCF STATUS, 5
MOVLW B'10100000'
MOVWF INTCON
MOVLW D'99'
MOVWF TIMER0

GOTO INICIO

RETARDO
MOVLW 0XFF
MOVWF TEMP
DECFSZ TEMP, 1
GOTO $ - 1
RETURN

INICIO

PAUSE
BTFSS PORTB, 6
GOTO RESETIAR
CLRF INTCON
MOVF UNO, 0
MOVWF PORTB
CALL RETARDO
MOVF DOS, 0
MOVWF PORTB
CALL RETARDO
MOVF TRES, 0
MOVWF PORTB
CALL RETARDO
MOVF CUATRO, 0
MOVWF PORTB
CALL RETARDO
MOVF CINCO, 0
MOVWF PORTB
CALL RETARDO
BTFSS PORTB, 6
GOTO PAUSE
MOVLW B'10100000'
MOVWF INTCON
MOVLW D'99'
MOVWF TIMER0

RESETIAR
BTFSS PORTB, 5
GOTO ONE
CLRF UNO
CLRF DOS
CLRF TRES
CLRF CUATRO
CLRF CINCO

ONE
MOVLW B'00000001'
MOVWF PORTA
MOVF UNO, 0
MOVWF PORTB
CALL RETARDO
MOVLW D'10'
SUBWF UNO,0
BTFSS STATUS, 2
GOTO TWO
INCF DOS
CLRF UNO

TWO
MOVLW B'00000010'
MOVWF PORTA
MOVF DOS, 0
MOVWF PORTB
CALL RETARDO
MOVLW D'10'
SUBWF DOS,0
BTFSS STATUS, 2
GOTO THRE
INCF TRES
CLRF DOS


THRE
MOVLW B'00000100'
MOVWF PORTA
MOVF TRES, 0
MOVWF PORTB
CALL RETARDO
MOVLW D'10'
SUBWF TRES,0
BTFSS STATUS, 2
GOTO FOUR
INCF CUATRO
CLRF TRES

FOUR
MOVLW B'00001000'
MOVWF PORTA
MOVF CUATRO, 0
MOVWF PORTB
CALL RETARDO
MOVLW D'10'
SUBWF CUATRO,0
BTFSS STATUS, 2
GOTO FIVE
INCF CINCO
CLRF CUATRO

FIVE
MOVLW B'10000000'
MOVWF PORTA
MOVF CINCO, 0
MOVWF PORTB
CALL RETARDO
MOVLW D'10'
SUBWF CINCO,0
BTFSS STATUS, 2
GOTO INICIO
CLRF UNO
CLRF DOS
CLRF TRES
CLRF CUATRO
CLRF CINCO

END



ya esta lisot nomas pa que lo programen y listo, el pic utilizado fue el 16f627A,


http://www.imagengratis.org/?v=coneccione.jpg
 
Última edición por un moderador:
Atrás
Arriba