Ayuda posible fallo en software

Buenos dias a todos,

Estoy tratando de desarrollar una estacion meteorológica basada en PIC16f877 y labview.

El primer paso es muestrear una señal analógica y representarla en labview mediante comunicacion serial.

Creo que voy bastante bien orientado y gracias a algunos amigos del foro he podido desarrollar el software de labview.

La pregunta es la siguiente, estoy tratando de muestrear mi señal, pero labview lee 0, ni siquiera algo raro como cabria esperar. ¿podeis echarme una mano? AUNQUE SEA AL CUELLO!!!!!!!!!

Os dejo mi asm y pantalla de labview.

Un saludo y gracias.



;Programa de conversion de una señal analógica en AN0 que sale por RC6/TX

; __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
list p=16f877
include <p16f877.inc>

ADDR_L equ 0x20
DATA_L equ 0x21
contador equ 0x22


org 0x00
nop
nop

bcf STATUS,RP0 ; ir al banco 0
bcf STATUS,RP1

movlw b'10000001' ; A/D conversion a Fosc/8
movwf ADCON0

bsf STATUS,RP0 ; ir al banco 1
bcf STATUS,RP1

clrf TRISA ;Configuracion de puertos.
clrf TRISB
clrf TRISC
clrf TRISD
clrf TRISE
bsf TRISA,0 ; configuracion de AN0 como entrada
bcf TRISC,6 ; RC6/TX/DT como salida.


movlw b'00001000' ; A/D port AN0/RA0 b'01001110'
movwf ADCON1

movlw d'12' ;2400 baudios para cristal de 4MHz.
movwf SPBRG
bcf TXSTA,BRGH ; BRGH=0 baja velocidad
bcf TXSTA, SYNC ; Modo asincrono.

bcf STATUS,RP0 ; ir al banco 0
bcf STATUS,RP1

bsf RCSTA,SPEN ; habilita el puerto serie.

bsf STATUS,RP0 ; ir al banco 1
bcf STATUS,RP1

bcf TXSTA,TX9 ; TX9=0 9 bit de transferecia no habiliado.
bsf TXSTA,TXEN ; TXEN=1 activacion de la transmision serie.

bcf STATUS,RP0 ; ir al banco 0
bcf STATUS,RP1


_adc
bsf ADCON0,GO ; habilita la conversion.
call demora_20us
_espera
btfsc ADCON0,GO ; ¿ha finalizado la conversion?
goto _espera ; si no ha finalizado vuelve a _adc
movf ADRESH,W ; si ha finalizado guarda el valor de ADRESH en W
movwf TXREG ;cargael registro TXREG con W
; movwf PORTC ;saca el valor de w por el puerto C
; movwf PORTD
_esperatx
btfss PIR1,TXIF ; comprueba si se ha vaciado el registro de transmision TSR. Entonces habrá acabado la transmision.
goto _esperatx ; si no se ha vaciado aun está transmitiendo. Espera.
; goto _adc ; si ha finalizado inicia el ciclo convirtendo otro valor.

_delay
movlw .10000
movwf contador
_zcero
decf contador,F
btfss STATUS,Z
goto _zcero
goto _adc



;**** Demora ****
demora_20us
movlw 0x05 ;
movwf contador ; Iniciamos contador1.-
repeticion
decfsz contador,1 ; Decrementa Contador1.-
goto repeticion ; Si no es cero repetimos ciclo.-
return ; Regresa de la subrutina.-


end







 

Adjuntos

  • Sin título-1.jpg
    Sin título-1.jpg
    189.9 KB · Visitas: 4
Atrás
Arriba