Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Estoy intentando transmitir desde mi PIC16F877A a mi PC por el puerto serial pero no consigo que en el hyperterminal se vea nada. El programa del PIC sigue los siguientes pasos:
#USE DELAY (clock = 20000000)
#USE rs232 (BAUD=4800,XMIT=PIN_C6,RCV=PIN_C7,BITS=8 )
Luego defino RC7 como entrada y RC6 como salida.
y por último
while(true)
{
putc(0x34);
delay_ms(1000);
}
Tengo un led conectado en RC6 y cuando no tengo el puerto serie conectado parpadea pero al conectarlo y poner en el hyperterminal que conecte este deja de parpadear. El puerto funciona correctamente porque el PIC lo programo utilizando el bootloader a través del mismo puerto.
mirate el ejemplo de la PWM en ese ejemplo el serie funciona perfectamente y lo hace con printf
printf("rnFrequency:rn");
Ahora lo mirare pero he probado con un ejemplo que hay para la comunicación y tengo el mismo problema. El archivo es el EX_SQW.C.
Su código és este:
/////////////////////////////////////////////////////////////////////////
//// EX_SQW.C ////
//// ////
//// This program displays a message over the RS-232 and waits for ////
//// any keypress to continue. The program will then begin a 1khz ////
//// square wave over I/O pin B0. ////
//// ////
//// Comment out the printf's and getc to eliminate the RS232 and ////
//// just output a square wave. ////
//// ////
//// Change both delay_us to delay_ms to make the frequency 1 hz. ////
//// This will be more visable on a LED. ////
//// ////
//// Configure the CCS prototype card as follows: ////
//// Insert jumpers from a LED to pin B0. ////
//// ////
//// Jumpers: ////
//// PCB pin A2 to RS232 RX, pin A3 to RS232 TX ////
//// PCM,PCH pin C7 to RS232 RX, pin C6 to RS232 TX ////
//// ////
//// This example will work with the PCB, PCM and PCH compilers. ////
//// The following conditional compilation lines are used to ////
//// include a valid device for each compiler. Change the device, ////
//// clock and RS232 pins for your hardware if needed. ////
/////////////////////////////////////////////////////////////////////////
//// (C) Copyright 1996,2003 Custom Computer Services ////
//// This source code may only be used by licensed users of the CCS ////
//// C compiler. This source code may only be distributed to other ////
//// licensed users of the CCS C compiler. No other use, ////
//// reproduction or distribution is permitted without written ////
//// permission. Derivative programs created using this software ////
//// in object code form are not restricted in any way. ////
/////////////////////////////////////////////////////////////////////////
#if defined(__PCM__)
#include <16F877>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#elif defined(__PCB__)
#include <16C56>
#fuses HS,NOWDT,NOPROTECT
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_A3, rcv=PIN_A2)
#elif defined(__PCH__)
#include <18F452>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#endif
void main() {
printf("Press any key to beginnr");
getc();
printf("1 khz signal activatednr");
while (TRUE) {
output_high(PIN_B0);
delay_us(500);
output_low(PIN_B0);
delay_us(500);
}
}
Pues tampoco me funciona. Esque el problema que tengo es que si no conecto el cable al ordena la transmisón parece realizarse correctamente pero al conectar el cable no funciona.
yo tuve probemas con mi serie y era culpa del max232 revisalo o mejor monta otro