#include"p16f84a.inc"

;programa contador ascedente del 0 al 9
;multiplos de 2 enciende el led que esta localizaco en rb7
;enciendo con cero el anodo va a 5v
;el  display es de anodo comun el comun va a 5v
;el display va al puertob
;la tabla1 no enciende el led
;la tabla2 enciende el led.
;todo numero impar no es multiplo de 2 y siempre su ultimo bits es 1 
ejm    	5 =	0101
	8 =	1000  
	9=          1001  
por eso   btfss cont,0





;definicion de registros

status	equ	03
porta	equ	05
portb	equ	06
trisb	equ	86
trisa	equ 	85
cont	equ	0c
pcl	equ	02
reg1	equ	10
reg2	equ	11
reg3	equ	12



	org	00
	goto	inicio
inicio 	bsf	status,5
	clrf	trisb
	movlw	b'11111111'
	movwf	trisa
	bcf	status,5
	goto	increm
	

increm 	clrf	cont
ciclo1	movf	conta,0
	call	tabla1
	movwf	portb
	call	retardo
	incf	cont,1
	btfss	cont,0
	goto	par
	movf	cont,0
	call	tabla1
	movwf	portb
	call	retardo
	goto	A
par	movf	cont,0
	call	tabla2
	movwf	portb
	call	retardo
A	movlw	d'10'
	subwf	cont,w
	btfss	status,2
	goto	ciclo1
	clrf	conta
	movf	conta,0
	call	tabla2
	movwf	portb
	call	retardo
	goto	increm
	
tabla1	TABLA	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'
tabla2	TABLA	ADDWF	PCL,1
	RETLW	B'01000000'
	RETLW	B'01111001'
	RETLW	B'00100100'
	RETLW	B'00110000'
	RETLW	B'00011001'
	RETLW	B'00010010'
	RETLW	B'00000010'
	RETLW	B'01111000'
	RETLW	B'00000000'
	RETLW	B'00011000'

RETARDO	
	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
	end
