Haz una pregunta
  Foros de Electrónica » Diseño digital » Interfaces y Programación
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

15/07/2012 #1

Avatar de eduardo.eca

Retardo de 1s en MPLAB, mayor tiempo al probar en circuito
Saludos Cordiales colegas:

Desde ayer estoy intentando crear un retardo de tiempo de 1s para un PIC16F877A, bajo lenguaje ensamblador. Según mis calculos y la lógica del programa deberia de tener el retardo de 1s, pero al probarlo en breadboard, el retardo es mucho mayor de 1s, es aproximadamente de 10s ...... adjunto les envio el código del programa..!!

De antemano, infinitas gracias por su ayuda..!!

Código:
;SEGUNDO PROGRAMA
;Este programa permite enviar al puerto C del microcontrolador un conteo ascendente de 8 bits, con intervalos de
;tiempo de cada dato enviado de 1s. 

					LIST 			P=16F877A
					INCLUDE		"P16F877A.INC"
					
CFG1	EQU		_XT_OSC & _DEBUG_OFF & _PWRTE_ON & _WRT_OFF & _CPD_OFF
CFG2	EQU		_LVP_OFF & _BODEN_ON & _WDT_OFF

__CONFIG 			CFG1 & CFG2

				ORG		0x00
				GOTO		INICIO
				ORG		0x04

INICIO			CLRF		PORTC
				CLRF		TMR0
				BSF		STATUS,RP0
				CLRF		TRISC

;Configuracion de OPTION_REG: RBPU=0, INTEDG=0, T0CS=0,T0SE=0, PSA=0, PS2:PS0=111
				MOVLW	b'00000111'
				MOVWF	OPTION_REG
				BSF		INTCON,TMR0IE
				BCF		STATUS,RP0

;La rutina pausa de 50ms se repetira 20 veces, dando como resultado un retardo de tiempo de 1s.
CUENTA_DEC		EQU		0x21
				MOVLW	d'20'
				MOVWF	CUENTA_DEC
						
				CALL 		PAUSA

PRINCIPAL			INCF		PORTC
				CALL		PAUSA
				GOTO		PRINCIPAL

CARGA_TMR0		EQU		d'256' - d'195'

;Retardo = 4*250ns*195*256 = 49.9ms = 50ms
PAUSA			MOVLW	CARGA_TMR0
				MOVWF	TMR0
				BCF		INTCON,TMR0IF
INC_TMR0			BTFSS	INTCON,TMR0IF
				GOTO		INC_TMR0

;El registro CUENTA_DEC se decrementara hasta que su valor llegue a CERO. Esto permitira repetir 20 veces el bucle
;PAUSA, prolongando asi el retardo original de 50ms. Una vez llegue a CERO el registro CUENTA_DEC, el programa
;saltara a principal donde se incrementara PORTC y se volvera a llamara a la rutia PAUSA.

				DECF		CUENTA_DEC	
				BTFSS	STATUS,Z
				GOTO		PAUSA
				RETURN
				END
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Interfaces y Programación

Lenguajes de programación, gestión y manejo de puertos

Cerrar
Foros de Electrónica » Diseño digital » Interfaces y Programación

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.