Como puedo comunicar un pic18f4550 por rs232 hacia la PC. Hice el sig. programa en ccs compiler y lo simule en proteus y si se logra la adquisición de datos por la hiperterminal pero al montarlo físicamente la información que se envía al PC es solo basura.
#include <18f4550.h>
#device adc=10
#FUSES INTHS,MCLR,PUT,BROWNOUT
#use delay(INTERNAL=4MHZ)
#use rs232 (BAUD=9600 , XMIT=PIN_C6 , RCV=PIN_C7)
#include <LCD.C>
void main() {
int16 q;
float p;
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
lcd_init();
for (;; ) {
set_adc_channel(0);
delay_us(10);
q = read_adc();
p = 5.0 * q / 1024.0;
printf(lcd_putc, "\\fADC = %4ld", q);
printf(lcd_putc, "\\nVoltage = %01.2fV", p);
printf("ADC = %4ld ", q);
printf("Voltage = %01.2fV\\r", p); // El \\r permite cambiar de línea.
delay_ms(100);
}
pero cuando hago la coneccion fisica por medio de un max232 solo llega pura basura a la hyperterminal de la PC y ya verifique que se reciba la info con codigo ascii espero alguien me pueda decir donde esta el error gracias
#include <18f4550.h>
#device adc=10
#FUSES INTHS,MCLR,PUT,BROWNOUT
#use delay(INTERNAL=4MHZ)
#use rs232 (BAUD=9600 , XMIT=PIN_C6 , RCV=PIN_C7)
#include <LCD.C>
void main() {
int16 q;
float p;
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
lcd_init();
for (;; ) {
set_adc_channel(0);
delay_us(10);
q = read_adc();
p = 5.0 * q / 1024.0;
printf(lcd_putc, "\\fADC = %4ld", q);
printf(lcd_putc, "\\nVoltage = %01.2fV", p);
printf("ADC = %4ld ", q);
printf("Voltage = %01.2fV\\r", p); // El \\r permite cambiar de línea.
delay_ms(100);
}
pero cuando hago la coneccion fisica por medio de un max232 solo llega pura basura a la hyperterminal de la PC y ya verifique que se reciba la info con codigo ascii espero alguien me pueda decir donde esta el error gracias
Adjuntos
Última edición: