Programar Sfr02

#1
Hola, estoy programando en ensamblador, concretamente el micro 8051 y necesito comunicarme con el sensor sfr02, con este sensor me comunico via serie estandar con niveles TTL a 9600 baudios, 1 bit de inicio, 2 de stop y sin paridad...

La conexion con 9600 baudios ya la he conseguido creando una frecuencia de reloj de 11,059 MHz, lo que me esta dando problemas es crear el bit de incio, los 2 de stop y sin paridad, alguin podria ayudarme con alguna subrutina q tenga implementada o alguien que ya haya usado este sensor??

muchas gracias
1 saludo
 
#2
Los microcontroladores 8051 tienen un periférico interno
llamado UART que hace todo el trabajo de serializar un byte,
precediéndolo de un bit de start y siguiéndolo de todos los bit
de stop que hagan falta.
Saludos
 
#3
ok perromuerto, tonces no hace falta configurar ningun registro???? solo mandando las palabras de control al sensor vale?? muchas gracias
 
#4
Debes leer en el manual el procedimiento de configuracion,
e implementar el código. Simplemente hay que seguir los
pasos. Una vez que el UART está configurado, le escribes
datos al registro de transmisión y el UART hace todo el resto.
Debes verificar en todo momento las banderas de recepción
y de transmisión.

Saludos
 
#5
gracias perromuerto, tngo otra duda haber si me la puedes responder...para hacer lo que tengo que hacer con el sensor sfr02 tngo que mandarle primero el dato 00h y luego el 54h para que inicie la medida y me la devuelva en centimetros....entonces tengo que transmitir estos dos numeros hexadecimales por la patilla tx del puerto 3, concretamente la patilla 3.1, he movido estos datos al puerto pero el compilador no me deja hacerlo, solo me deja moverlo al puerto entero, es decir, mov p3, 00h....esto es correcto o lo hago mal o ahi alguna otra forma d acerlo??

muchas gracias
 
#6
No puedes mover los datos al puerto, no se hace así. El 8051 SI tiene UART interna, tienes que programar los temporizadores adecuadamente y activar la UART. Puedes usarla con interrupción o sin ella, según programes los registros. Luego solo tienes que leer o escribir los datos en el registro adecuado de la UART y ella se encarga de mandarlos y recibirlos vía série por las patillas TXy RX adecuada.
Yo programo en C, a ver si me acuerdo como es en ensamblador:
El registro de datos de la UART se llama SBUF, tienes que poner TMOD para programar el temporizador y el modo, SCON controla el funcionamiento de la UART, TH1 es el temporizador que determina los baudios, etc...
Ahora tengo prisa, espero que estas pistas te guíen un poco...
 
#7
ok, el timer 1 lo tngo programado para q genere una frecuencia de 11.059 mhz a 9600 baudios para poder comunicarme con el sensor srf02, entonces a lo q te refieres es que los numeros 00h y 54h en mi caso, tngo que moverlos al registro de la uart, no?

saludos y perdona mi inexperiencia
 
#8
Efectivamente, de eso se trata. Así el trabajo duro lo hace la UART, tu solo tienes que escribir en SBUF lo aque quieres que transmita. Luego puedes leer lo que ha recibido también en SBUF. Existen unos flags de estado que son RI, que indica que se ha recibido un dato y está disponible en SBUF para que lo leas, y TI que indica que ya se ha transmitido el que pusiste en SBUF. También pueden generar una interrupción, pero eso es más complejo.
 
#9
oks, muchas gracias heli, y como leo los datos d esos registros RI y TI??? e estado leyendo y lo q tngo q configurar es el registro SCON y modo 1
 
#10
Keown dijo:
oks, muchas gracias heli, y como leo los datos d esos registros RI y TI??? e estado leyendo y lo q tngo q configurar es el registro SCON y modo 1
segun e estado viendo los registros RI y TI deben ser deseactivados por software, esto a que se refiere que cuando yo recupere el dato que mande el sensor por RI tengo que mover un 0 al registro RI del SCON??????
 
#11
Hola , tambien estoy progrmando el 8051 , tengo una tarjeta de desarrollo de Keil , especificamente es la c8051f340-tb ,tengo dudas de como programar el UART de este , esta tarjeta trae un editor para assembler y para C, y otro programa que se llama config wizard , ahi uno configura las i/O que quiere, timers y el UART tb, pero no se como configurarlo , si alguien sabe como hacerlo estaria agradecido.

saludos
 

Temas similares