-
Notifications
You must be signed in to change notification settings - Fork 1
/
Practica4_TMR0 correccion.asm
107 lines (95 loc) · 2.5 KB
/
Practica4_TMR0 correccion.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;EstebanTapia FernandoVargas ;
;Uso de TMR0 en retardos entre salidas de LEDs ;
;Microcontroladores ;
;V0 09 de Octubre de 2018 Inicio de programacion ;
;V1 23 de Octubre de 2018 Uso de ciclo IDLE en la programacion y demas correcciones en INTERRUPCION ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LIST P=16F887
#INCLUDE P16F887.INC
__CONFIG _CONFIG1, _WDT_OFF & _CP_OFF &_BOR_OFF & _LVP_OFF & _XT_OSC & _MCLRE_ON & _CPD_OFF & _BOR_OFF & _PWRTE_OFF
CBLOCK 0x20 ;Guarda en las localidades 0x20, 0x21 y 0x22 a los registros de proposito general MEM0, MEM1 Y MEM2
SECUENCIA_SIG
CONTEO_1S
ENDC
BANK0 MACRO ;Guardado de macros para saltos simples de bancos
BCF STATUS,RP0
BCF STATUS,RP1
ENDM
BANK1 MACRO
BSF STATUS,RP0
BCF STATUS,RP1
ENDM
BANK2 MACRO
BCF STATUS,RP0
BSF STATUS,RP1
ENDM
BANK3 MACRO
BSF STATUS,RP0
BSF STATUS,RP1
ENDM
ORG 0X00 ;Reinicio del PIC
GOTO INICIALIZACION
ORG 0X04
GOTO INTERRUPCION
INICIALIZACION ;Inicializacion
BANK1 ;Salto a Banco1
MOVLW 0X47
MOVWF OPTION_REG
MOVLW 0X00 ;Movemos un valor 0x00 a W
MOVWF TRISB ;Movemos de W hacia TRISB. Bits: 1=Entrada 0=Salida;
BANK3 ;Salto a Banco3
MOVLW 0X00 ;Movemos un valor 0x00 a W
MOVWF ANSELH ;Movemos de W hacia ANSELH. Bits: 1=ADC en PORTB Activado 0=ADC en PORTB Desactivado
BANK0 ;Salto a Banco0
MOVLW 0X14 ;Movemos un 20 a W
MOVWF CONTEO_1S
CLRF TMR0 ;Limpia TMR0
MOVLW 0X3C ;
MOVWF TMR0
MOVLW 0XA0
MOVWF INTCON
MOVLW 0X01
MOVWF PORTB
MOVLW 0XFF
MOVWF SECUENCIA_SIG
CLRW
IDLE GOTO IDLE
INTERRUPCION
BCF INTCON,2
DECFSZ CONTEO_1S
GOTO RESTART_DE_CONTADOR_50mS
INCF SECUENCIA_SIG,1
MOVF SECUENCIA_SIG,0
CALL SECUENCIA_LEDS
MOVWF PORTB
MOVLW 0X14
MOVWF CONTEO_1S
RESTART_DE_CONTADOR_50mS
MOVLW 0X3C
MOVWF TMR0
RETFIE
SECUENCIA_LEDS
ADDWF PCL,1
RETLW B'00000010
RETLW B'00000100
RETLW B'00000010
RETLW B'00000100
RETLW B'00001000
RETLW B'00000100
RETLW B'00001000
RETLW B'00010000
RETLW B'00001000
RETLW B'00010000
RETLW B'00100000
RETLW B'00010000
RETLW B'00100000
RETLW B'01000000
RETLW B'00100000
RETLW B'01000000
RETLW B'10000000
MOVLW 0XFF
MOVWF SECUENCIA_SIG
MOVLW 0X01
RETURN
END