Palabras Claves por RS232 y Pic16f877a

hola soy no tan bueno con lo de los pic, pero Quisiera que me ayuden con un tema que me dejaron como tarea:
Me piden que por el USART me encienda un led con una palabra clave "PRENDE" y me apague con otra palabra CLAVE "APAGAR"; yo estuve intentando con gets()-que me leen la señal de la pc y kbhit(); que me dan un “1” si llego un dato y un “0” si no.
Yo también hice la prueba con puts() que transmiten datos y gets() que me lo leen esos datos pero nada.
No se si me pueden ayudar por favor y gracias. Aquí les dejo los dos programas con que estoy trabajando.

1º prog
#INCLUDE "C:\Archivos de programa\PICC\Devices\16f628a.h"
#fuses NOWDT,NOLVP,INTRC_IO,MCLR
#USE DELAY(CLOCK=4M)
#USE RS232(BAUD=9600,XMIT=PIN_B2,RCV=PIN_B1)
void main (void)
{
int x;
puts("esto es una prueba");

bucle:
if(kbhit()==1)
{
x=getc();
if(x=='P')
output_high(pin_a0);
if(x=='A')
output_low(pin_a0);
}
goto bucle;
}


2º prog
#include <16f877a.h>
#use delay(clock=4m)
#use rs232(baud=9600, bits=8, parity=n, xmit=pin_d4, rcv=pin_d5)

void main(){
CHAR nombre[6]={'P','R','E','N','D','E'}; //var char de 9 conjunt
INT X,PRENDE,APAGAR;
bucle:
puts("introduce palabra clave (maximo.9 caract) y poulsa nter: ");
//los puts() son transmisores
//gets(nombre); //los gets() son receptores al asi
X=gets(NOMBRE);
printf("palabra es: %s\r",nombre); //%s es cadena o caracter
//sacamos por la terminal el caracter del nombre
//con el array (conj de var del mismo tipo de datos)+
//delay_ms(500);
//if(nombre=='E'){
if(X==PRENDE){
output_high(pin_b0);}
else if(X==APAGAR){
output_low(pin_b0);
}
goto bucle;
}
 
En el segundo ejemplo es posible que no te funcione debido a que con la línea X=gets(NOMBRE);, estás intentando asignar una cadena String a una variable int de 1 Byte...
Te recomiendo que le des un vistazo al código que subí en éste post. Te ayudará con el manejo de cadenas de texto con pic.

Un abrazo
 
gracias y no se si esta bien este programa pero tambien me funsiona. la verdad el nivel que tienees es amplio y hay cosas que no reconosco la verdad quisiera saber como programar corectamentre.
gracias.
 

Adjuntos

  • cal_clave_rs232.rar
    1,001 bytes · Visitas: 13
Atrás
Arriba