Electrónica Unicrom
Conceptos Componentes Digitales PIC, PLC, Osciladores, Filtros, Máquinas Diagramas Foros
Circuitos Computadoras Referencia Instrumentos Mediciones Telecom Fuentes UPS
Registro Ayuda
Usuario:
Contraseña:
Programa de conversión A/D con 16f877

 
 Todos los Foros
 PICs
 Programa de conversión A/D con 16f877
 Versión para impresora  
Autor Tópico Anterior Tópico Tópico siguiente  

charles_24
Principiante


30 Comentarios
Nicaragua
Enviado el - 23/02/2007 :  11:14:49 AM  Mostrar Perfil  Responder con Cita Enviar un mensaje privado a charles_24


sander
Miembro regular


128 Comentarios
Bahamas
Incluido el - 23/02/2007 :  2:46:06 PM  Mostrar Perfil  Responder con Cita Enviar un mensaje privado a sander
Bueno , Primero voy a suponer que el codigo que subiste es exactamente el que estas ensamblando con MPLAB.

Primero me voy a atrever a hacerte unas sugerencias

Te falta colocar la palabra de cofiguracion del pic.
Es mejor si utilizas las definiciones de Microchip para los SFR , STATUS, ADRESH,ADRESL ,etc estan definidos en el archivo 16f877.inc

Debes definir el inicio de tu programa poniendo la direccion del vector de reset(ORG 0x00)y si usas interrupciones colocar el inicio del vector de interrupciones (ORG 0X04).

Y cuando escribas el codigo no coloques numeros para los sfr en lugar de poner bcf 0ch,6 deberias poner bcf PIR1,ADIF porque asi queda mas clara.

Saludos

Ir Arriba


sander
Miembro regular


128 Comentarios
Bahamas
Incluido el - 23/02/2007 :  3:04:08 PM  Mostrar Perfil  Responder con Cita Enviar un mensaje privado a sander
Espero que no te haya molestado mi anterior post,

Ahora en lo que respecta a tu programa, el error que viste se debe a la estructura de tu programa , el contador de programa (PC), salta a la linea 5, porque ? porque se produjo una interrupcion y el PC fue al vector de interrupcio (0x04)pero como en esta direccion esta tu ciclo principal ,dificil ver el problema es , te sugiero que utilizes la siguiente plantilla para programar:

list p=16f877A ; definimos el procesador
#include <p16f877A.inc> ; incluimos la definicion de FSR de Microchip
;A continuacion esta es la palabra de configuracion
__CONFIG _CP_OFF & _DEBUG_OFF & _WRT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_ON & _PWRTE_ON & _WDT_OFF & _XT_OSC

;declaracion de variables
w_temp EQU 0x71 ; variables para
status_temp EQU 0x72 ;salvar el
pclath_temp EQU 0x73 ;contexto

;vector de reset
ORG 0x00
goto main


;vector de interrupcion

ORG 0x04
;salvar contexto

movwf w_temp ;salvamos W
movf STATUS,w
movwf status_temp ;salvamos STATUS
movf PCLATH,w
movwf pclath_temp ;salvamos PCLATH

; Aqui va la rutina de interrupcion


;recuperamos contexto

movf pclath_temp,w
movwf PCLATH ;recuperamos PCLATH
movf status_temp,w
movwf STATUS ;recuperamos STATUS
swapf w_temp,f
swapf w_temp,w ;recuperamos W
retfie ;Salimos de la interrupcion
main
;el codigo va a aqui


END ;FIN


Si colocas tu codigo en main y vuelves a simular veras que el PC ira a 0x04 .
saludos

Editado por - sander on 23 Feb 2007 15:10:46

Ir Arriba


charles_24
Principiante


30 Comentarios
Nicaragua
Incluido el - 23/02/2007 :  4:44:11 PM  Mostrar Perfil  Responder con Cita Enviar un mensaje privado a charles_24
Sander, te doy las gracias por tus comentarios y sugerencias.
Tu primer post no me molestó, al contrario me sirvió para adquirir un poco más de conocimiento.
Tomaré en cuenta lo que me dices.

Gracias, brother....

Ir Arriba



Ir a:

Poner Unicrom como página de inicio Poner Unicrom en Favoritos Privacidad   © 2002-12 Unicrom.com All Rights Reserved. MaxWebPortal Snitz Forums Ir arriba