Categorías: Todo - oscilador - código - puertos - simulación

por Irán Velásquez hace 5 años

345

iranvelas@gmail.com

El código presentado está diseñado para configurar y manejar el temporizador TMR0 en un microcontrolador PIC18F4620. Se detalla la configuración de varios parámetros del microcontrolador, incluyendo el oscilador interno, el temporizador de encendido y diferentes opciones de configuración como la protección de memoria y la configuración de puertos.

iranvelas@gmail.com

Topic flotante

Temporizador TMR0 pic18F4620

Amito Irán Velásquez Mejía

Simulación

Codigo

LIST P=18F4620; PIC INCLUDE ;LIBRERIA DEL REGISTRO CONFIG OSC = INTIO67; OSCILADOR INTERNO CONFIG FCMEN = OFF ;FAIL-SAFE CLOCK CONFIG IESO = OFF;OSCILADOR SWITCH CONFIG PWRT = ON;POWER UP TIMER CONFIG BOREN = OFF CONFIG BORV = 3 CONFIG WDT = OFF CONFIG WDTPS = 1 CONFIG CCP2MX = PORTBE CONFIG PBADEN = OFF CONFIG LPT1OSC = OFF CONFIG MCLRE = OFF CONFIG STVREN = OFF CONFIG LVP = OFF CONFIG XINST = OFF CONFIG CP0=OFF, CP1=OFF, CP2=OFF, CP3=OFF CONFIG CPB = OFF CONFIG CPD = OFF CONFIG WRT0=OFF, WRT1=OFF, WRT2=OFF, WRT3=OFF CONFIG WRTC = OFF CONFIG WRTB = OFF CONFIG WRTD = OFF CONFIG EBTR0 = OFF CONFIG EBTR1 = OFF CONFIG EBTR2 = OFF CONFIG EBTR3 = OFF CONFIG EBTRB = OFF CBLOCK 0X100 ENDC ORG 0X00 X EQU 0x20 Y EQU 0x21 CONTADOR EQU 0x22 BEGIN CALL _ALLDIGITAL CALL _OSCILADOR CALL _TRIS REPEAT CALL _TMRO2 MOVF CONTADOR,W MOVWF PORTB GOTO REPEAT ;******************************OSCILADOR INTERNO*********************************** _OSCILADOR MOVLW B'0001111' MOVWF BSR BCF OSCCON,IDLEN BSF OSCCON,IRCF2 BSF OSCCON,IRCF1 BCF OSCCON,IRCF0 BCF OSCCON,SCS1 BCF OSCCON,SCS0 BCF OSCTUNE,INTSRC BCF OSCTUNE,PLLEN BCF OSCTUNE,TUN4 BCF OSCTUNE,TUN3 BCF OSCTUNE,TUN2 BCF OSCTUNE,TUN1 BCF OSCTUNE,TUN0 RETURN ;*******************************TODO DIGITAL****************************************** _ALLDIGITAL MOVLW B'00001111' MOVWF BSR BCF ADCON0,ADON BSF ADCON1,PCFG3 BSF ADCON1,PCFG2 BSF ADCON1,PCFG1 BSF ADCON1,PCFG0 BSF CMCON,CM2 BSF CMCON,CM1 BSF CMCON,CM0 BCF CVRCON,CVREN RETURN ;***************************PUERTOS***************************************************** _TRIS MOVLW B'00001111' MOVWF BSR MOVLW B'00000000' MOVWF TRISA MOVLW B'00000000' MOVWF TRISB MOVLW B'11111111' MOVWF TRISC MOVLW B'00000000' MOVWF TRISD MOVLW B'00000000' MOVWF TRISE RETURN ;************************TMR0 PRUEBA TAREA********************************** _TMRO2 MOVLW B'00001111' MOVWF BSR BSF T0CON,TMR0ON BCF T0CON,T08BIT BCF T0CON,T0CS BCF T0CON,T0SE BCF T0CON,PSA BCF T0CON,T0PS2 BSF T0CON,T0PS1 BSF T0CON,T0PS0 BTFSS INTCON,TMR0IF GOTO _NO_7 GOTO _SI_7 _NO_7 RETURN _SI_7 BCF INTCON,TMR0IF ;LIMPIA BANDERA INCF CONTADOR MOVLW .64 CPFSEQ CONTADOR,W RETURN CLRF CONTADOR RETURN ENDa

Conclusión

Al poner el microcontrolador en el modo de reposo se apaga el oscilador de reloj. No puede ocurrir el desbordamiento ya que no hay pulsos a contar. Es la razón por la que la interrupción por el desbordamiento del TMR0 no puede“despertar” al procesador del modo de reposo.

Capturas e implementación

Visto Bueno

Introducción

En este mapa se explica sobre un temporizador TMR0 con el pic18F4620 (implementado), configurando el registro T0CON del microcontrolador como un oscilador interno realizando retardos en un contador binario cada segundo.

Contenido

El temporizador Timer0 tiene una amplia gama de aplicaciones en la práctica. Sólo unos pocos programas no lo utilizan de alguna forma. Es muy conveniente y fácil de utilizar en programas o subrutinas para generar pulsos de duración arbitraria, en medir tiempo o en contar los pulsos externos (eventos) casi sin limitaciones. El módulo del temporizador Timer0 es un temporizador/contador de 8 bits con las siguientes características: Temporizador/contador de 8 bits; Pre-escalador de 8 bits (lo comparte con el temporizador perro guardián); Fuente de reloj interna o externa programable; Generación de interrupción por desbordamiento; y Selección del flanco de reloj externo programable.