HOLA ESTOY UTILIZANDO UN SENSOR ULTRASONICO DE DISTANCIA SRF02 QUE SE PUEDE
COMUNICAR VIA SERIE A 9600 BAUDIOS, PERO LO MALO ES QUE SUS COMANDOS SON OPERADOS
CON NUMEROS DECIMALES O HEXADECIMALES, PERO NO SE COMO ENVIARLOS LO QUE HE UTILIZADO PARA
COMUNICARME CON LA COMPU, ES LOS SIGUIENTE, QUE YA MODIFICADO ME QUEDO PARA EL SENSOR DE DISTANCIA,
LO MALO ES QUE NO SE COMO RECIBIR LA RESPUESTA DEL SENSOR.
'****************************************************************
'* Name : MOTOR DE PASOS *
'* Author : OSCAR SUCHIL PEREZ
'* Notice : Copyright (c) 2007 [set under view...options] *
'* : All Rights Reserved *
'* Date : 23/11/2007 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
INCLUDE "modedefs.bas"
DEFINE OSC 4 'se define el oscilador en MHz
DEFINE HSER_RCSTA 90h
DEFINE HSER_TXSTA 24h ' ya no mover esta bien
DEFINE HSER_BAUD 9600
DEFINE HSER_SPBRG 25
TRISB = %00000000 'A B C D _ _ _ _
TRISC = %00000000 ' RX TX _ _ _ _ _ _PUERTO SERIAL
datoin var byte' palabra recibida
datoout var byte' palabra enviada
cu var WORD
decide var WORD
' SALIDAS
A VAR PORTB.7
B VAR PORTB.6
C VAR PORTB.5
D VAR PORTB.4
ali VAR PORTB.3
RX VAR PORTC.7
TX VAR PORTC.6
e1 VAR bit
e2 VAR bit
e3 VAR bit
e4 VAR bit
e1 = 0
e2 = 0
e3 = 0
e4 = 0
decide = 0
high ali
low A
low B
low C
low D
datoin=0
ciclo:
HSEROUT [HEX 0]
HSEROUT [HEX 96]
HSEROUT [HEX 84]
SERIN RX,2,1000,ciclo,[datoin ]
if datoin <= 15 then
decide = 1
call imprime
endif
if datoin > 15 then
decide = 2
call imprime
endif
GOTO ciclo
imprime:
if decide = 1 then
high A
endif
if decide = 2 then
high C
endif
RETURN