You are on page 1of 2

Tc = 1/f = 1/4MHz = 0.

25us

Tins =4 * Tc = 1us

1:256 prescaler

256 conteos * 256 * Tins => 256us * 256 = 65,536us =0.065s

Si tomamos este valor de tiempo y lo multiplicamos por 20:

0.0065*20 = 1.3 s

Crear una variable de memoria RAM, con el objetivo de cargarle un valor (en este caso de 20) y
luego proceder a verificar cada desborde del TMR0 y cada vez que se desborde,
decrementaremos la variable, de forma que, cuando esté en cero, se rompa el ciclo de conteo.

DECFSZ
;Programa que blinkea un led, utilizando
;el osc interno de 4mhz del micro
;version alfa 14-06-2007

;LIST P=12F675, agrego las comillas al primer call y su siguiente instruccion para correrlo en el
primo 12F683
;RADIX HEX
;NOMBRAMIENTO DE EQUIVALENCIAS
STATUS EQU 0x03
GPIO_TRI EQU 0x05
TMR0_OPT EQU 0x01
INTCON EQU 0x0B
PIR1_PIE EQU 0x0C
CMCON EQU 0x19
ADCON_ANSEL EQU 0x1F
T1CON_OSCAL EQU 0x10
RP0 EQU 0x05
; CONFIGURACIONES ESPECIALES
ORG 0
bcf STATUS, RP0
clrf GPIO_TRI
movlw 0x07
movwf CMCON
bsf STATUS, RP0
;call 3FFh ;segun datasheet 3FFh y segun simulador es
2007 con valor de 3ff5
;movwf T1CON_OSCAL ;carga el valor del osc de la ultima direccion de
la memoria de programa
clrf ADCON_ANSEL ;limpia a ANSEL
movlw 0x0C ; GP(3;2)entradas
movwf GPIO_TRI ;carga el valor en Trisio
movlw 0xD7 ;lleva d7 para colocar prescaler 256
movwf TMR0_OPT ;configura el option register
bcf STATUS,RP0

blink bsf GPIO_TRI,0


call delay
bcf GPIO_TRI,0
call delay
goto blink

delay clrf TMR0_OPT


checo btfss INTCON,2
goto checo
bcf INTCON,2
return
END

You might also like