Bueno, he avanzado bastante pero tengo un problemilla, os explico, he cogido varios circuitos de VsZener, de los tutoriales del 16f648A y por ahora todo ha sido copiar y pegar, para no jartarme de escribir, solo me he dedicado a modificar y hacer pruebas, me he bajado el virtual serial port, el CCSC y el proteus y estoy aprendiendo a marchas forzadas, pero he conseguido k todo funcione, k el proteus me compile directamente y solo tengo el codigo en C y el proteus abiertos, y del tiron funciona perfecto, pero... suponiendo k la cadena k deseo enviar es FF 40 20 30 y escribiendo esto:
////////////////////////////////////////////////////////////////////////////////////
// Teclado Control DOMO Ver 0.0
//
//(Experimentado y aprendiendo, basado completamente en circuitos y codigos de VsZeNeR, al que agradezco su esfuerzo)
//
//
// 09/09/2009
//
// Foshland@hotmail.com
//
// Programa: Generando señales en 232
// Version: 0.0
//
// Dispositivo: PIC 16F648A Compilador: CCS No se que version, no tengo ganas de mirarlo
// Entorno IDE: Ni idea Simulador: Proteus 7.4 Pro sp3
//
// Notas: En pantalla LCD por ahora simplemente el nombre del programa
// Por la salida serial se muestra una frase, por ahora
// Tener en cuenta que hay que poner la directiva
// NOLVP para que el pin B4 sea de salida.
//
// Conexiones: B0 -> E
// B1 -> RS
// B2 -> RW
// B4 -> D4
// B5 -> D5
// B6 -> D6
// B7 -> D7
// A0 -> T1IN MAX232
// A1 -> R1OUT MAX232
//////////////////////////////////////////////////////////////////////////////////
#include <16f648a.h> //pic a utilizar
#fuses XT,NOWDT,NOPROTECT,PUT,NOLVP,NOBROWNOUT //ordenes para el programador
#use delay (clock=4000000) //Fosc=4Mhz
#use rs232(baud=9600, xmit=PIN_A0, rcv=PIN_A1) //manejo del RS232
#define use_portb_lcd TRUE //definir portb lcd
#include<lcd.c> //libreria manejo lcd
///PROGRAMA
void main(void)
{
lcd_init(); //inicializa lcd
printf(lcd_putc,"FOSHHHH
\nFosh_232 V00"); //mensaje por lcd
printf("FF 40 20 30 50"); //mensaje por PC
// printf ("%X %X %X", 64, 32, 48);
}
El programa que uso me lee los caracteres uno a uno e incluso me indica los espacios en blanco, usease, en el modulo de 232 me sale bien la cadena, pero claro, lo que sale son caracteres en ASCII, pero el programa me los traduce asi.... FF 40 20 30 ====> 46 46 20 34 30 20 32 30 20 33 30 20 35 30 Como se puede ver me "traduce" hasta los espacios, como hago para enviar la cadena FF 40 20 30 y que el programa los reciba bien????? Supongo que enviando directamente caracteres en HEX, tengo las tablas de conversion, pero no se la sentencia, seguro k es algo facil
Doy las gracias a todos los que me estan ayudando ya que son preguntas de muy novato, pero es k se me mezclan los conceptos, jejejejje
Mil saludos