weno amigos: ante todo mil disculpas alos entendidos en la materia por el codigo que les presento , como veran son un novato en esto
estuve investigando y desarrolle el siguiente codigo
#include<16f877A.h>
// fuses y ajuste del clock
#fuses XT,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT
#use delay(clock=4M)
// canal de comunicacion : USART
#define TTL_TX PIN_C6
#define TTL_RX PIN_C7
#use RS232(baud=9600, xmit=TTL_TX, rcv=TTL_RX)
void main()
{
char rec;
printf("TyP_Serio_TTL\r\n");
do
{
if(kbhit())
{
rec=getc();
putc(rec);
#asm
ADDR_L equ 0x20
DATA_L equ 0x21
org 0x00
nop
nop
bcf STATUS,RP0 ;Ir banco 0
bcf STATUS,RP1
movlw b'01000001' ;A/D conversion Fosc/8
movwf ADCON0
bsf STATUS,RP0 ;Ir banco 1
bcf STATUS,RP1
clrf TRISA ;PORTA salida
clrf TRISB ;PORTB salida
clrf TRISC ;PORTC salida
clrf TRISD ;PORTD salida
clrf TRISE
movlw b'00001110' ;A/D Port AN0/RA0
movwf ADCON1
bsf TRISA,0 ;Canal AN0 como entrada
bcf TRISC,6 ;RC6/TX salida, pin de transmisión
movlw d'12' ;2400 baud rate Xtal=4Mhz
movwf SPBRG
bcf TXSTA,BRGH ;Selección de baja velocidad
bcf TXSTA,SYNC ;Modo asíncrono
bcf STATUS,RP0 ;Ir banco 0
bcf STATUS,RP1
bsf RCSTA,SPEN ;habilita el puerto serie
bsf STATUS,RP0 ;Ir banco 1
bcf STATUS,RP1
bcf TXSTA,TX9 ;8 bits de datos a transmitir
bsf TXSTA,TXEN ;Activa la transmisión serial, TXIF = 1
bcf STATUS,RP0 ;Ir banco 0
bcf STATUS,RP1
_adc
bsf ADCON0,GO ;Start A/D conversion
_espera
btfsc ADCON0,GO ;ADCON0 es 0? (la conversion esta completa?)
goto _espera ;No, ir _espera
movf ADRESH,W ;Si, W=ADRESH
movwf TXREG ;TXREG = W
movwf PORTC ;PORTC = W
_esperatx
btfss PIR1,TXIF ;Espera hasta que transmisión culminó
goto _esperatx
goto _adc ;Ir adc
#endasm
}
}
while(TRUE);
}
lo que intento en mi proyecto es recibir datos por el pin 2 (datos analogicos de un tarjeta que desarrolle), y enviarlos mediante rs232 .
tengo un prog en visual c# y otro en matlab que recibe datos por el puerto serial, pero he ahi el problema , necesito una algo como un codigo , es decir envio desde la pc un "a" el pic lo lee y empieza a enviar datos masivamente hasta que la pc envie un "b" y se detenga el envio de datos, y cuando envie otr vez "a" envie y asi sucesivamente.
este no es ni el 10% de mi proyecto , pero a paso lento y seguro jajajaa, asi que les agradecere un monton vuestra ayuda en mejorar este codigo, tratare de mejorar mi codigo