Buenas,
Estoy programando con el BASIC compiler del PIC Simulator IDE, ya que no me entiendo con ensamblador ni otros lenguajes. Lo que quiero es hacer pruevas de transmision de datos entre el PC i el PIC. Lo tengo todo bien conectado y con salidas a led's para ir experimentando.
Este código seria para que depende del número que introduzca, si es más grande de 5 o más pequeño, se encienda un led u otro. Es correcto?
AllDigital
TRISA = %00011111
TRISB = %01000000
Dim i As Byte
i = 1
Hseropen 9600
loop:
Hserin i
If i > 5 Then
PORTA.1 = 1
PORTA.2 = 0
Endif
If i < 5 Then
PORTA.2 = 1
PORTA.1 = 0
Endif
Goto loop
Pero no sé por qué el Hyperterminal no me deja poner números ni letras, no escribe nada, o sólo carácteres estraños, por qué?
Gracias por todo
PD: las estructuras del BASIc estan aquí http://www.oshonsoft.com/picbasiccompiler.html#11
Que tal amigos!
barrabaixa, dejame ver si te puedo ayudar aunque en pic simulator no he trabajado aun

segun veo en el codigo de arriba, si el numero recibido es mayor de 5 enciendo un led y si es menor de 5 enciendo otro. Ahora bien si las velocidades (baud rate, y si el formato de recepcion y transmision es el mismo 8,N,1) puedes hacer lo siguiente; primero como sabes debes utilizar un max232 preferiblemente para comunicarte con la PC eso lo doy por hecho sino en el foro hay informacion al respecto
Luego si estas utilizando el hserin debes tener mucho cuidado al trabajar con este, ya que, como esa instruccion se trabajar con el usart del micro y este tiene un buffer que te permite recibir solo dos caracteres

y si le envias por ejemplo tres o mas se bloquea el usart y tienes que resetearlo para poder trabajar con el

eso es muy importante, lo otro es que al utilizar el hserin debes utilizar los pines tx y rx que estan diseñados para ese fin de lo contrario no te servira. Lee con mucho cuidado el data sheet del micro que estes utilizando, para que puedas entender bien como funciona el usart del pic, muy importante.
Lo otro al utilizar el usart del pic este no puede invertir los niveles logicos (0 y 1) por lo que hace falta el max232 o equivalente.
Si todo esto esta bien entendido y aplicado vamos por buen camino

sino a leer el data sheet y el manual del compilador sobre el hserin

Tu haces una comparacion:
If i > 5 Then
PORTA.1 = 1
PORTA.2 = 0
Endif
If i < 5 Then
PORTA.2 = 1
PORTA.1 = 0
Endif
recuerda que cuando pulsas la tecla 5 en el teclado (keyboard

) lo que vas es a recibir es el caracter ascci correpondiente a esa tecla (5) el cual es el 53 en decimal, por lo que deberias colocar en el codigo asi:
If i > "5" Then
PORTA.1 = 1
PORTA.2 = 0
Endif
If i < "5" Then
PORTA.2 = 1
PORTA.1 = 0
Endif
Para que el compilador sepa que es el caracter ascii "5" y no 5 ya que ese caracter pertenece al ENQ (enquire)

Lo otro es que debes colocar una resistencia digamos de 10k del positivo de la fuente a la entrada rx del pic, el porque de ello es muy sencillo, despues que haz estado programando un pic como un loco 20000000000 veces probando la comunicacion serial

Bueno la idea es que cuando el micro no este conectado al puerto serial o este se encuentre desconectado el pin no reciba ruido y empiese el hserin a volverse loco y comience a captar cualquier ruido subespacial

Bueno sigue estos consejos y veras que funciona, sino pues utiliza el serin que no se lia tanto como el hserin, yo lo uso mucho por eso

Saludos