Documente Academic
Documente Profesional
Documente Cultură
COMPILADOR C CCS
SISTEMAS EMBEBIDOS
DIGITALES III:
1
LIBRERIA DE
COMUNICACIONES
PIC18F4550
DIGITALES III:
2
GAMA ALTA DE
MICROCONTROLADORES
RS232
La librera RS232 permite la comunicacin del
microcontrolador con cualquier dispositivo que
maneje este protocolo.
Recuerde el formato de datos del protocolo trabajado
en otras oportunidades el cual se conforma por:
Bit de Start
7 u 8 bits de datos
Bit de paridad(opcional)
Bits de parada
Con este tipo se puede utilizar una comunicacin Fullduplex en la cual se tiene una lnea para transmisin y
otra para recepcin y las dos trabajando al tiempo.
El compilador CCS cuenta con una librera que cuenta
con funciones que permiten leer desde el puerto
RS232 y escribir en el cadenas o caracteres. Antes de
3
continuar recuerde los formatos de RS232:
GAMA ALTA DE
MICROCONTROLADORES
MAX232
MAX3232
Existe un circuito integrado que permite la conversin
de voltajes de RS232 a TTL/CMOS , para este caso
especial se utiliza el MAX3232, el cual cuenta con
caractersticas
Cumple con loscomo:
requerimientos de TIA/EIA232-F and ITU v.28
Opera con una fuente Vcc de 3-V a 5.5-V
Opera hasta 250 kbit/s
Dos Drivers y 2 canales de entrada.
Bajo consumo de corriente, tipico en 300
A
Capacitores externos de 0.1 F
Accepta 5-V Logicos de entrada con 3.3-V
de alimentacin.
Diseado para ser intercambiado con el
MAX232
Aplicaciones: sistemas con poder de
bateras,
PDAs,
Notebooks,
Laptops,
DIGITALES III: 7
Librera RS232
Se la agrega al programa en la parte inicial por medio
de las instrucciones:
#use
rs232
(BAUD=9600,PARITY=N,
XMIT=PIN_C2,
RCV=PIN_C4,
BITS=8,stream=HOSTPC,STOP=1)
De esta se observa que:
BAUD: Hace referencia a los bits por segundo para
RS232
Existen
diferentes
velocidades,
como:
1200,2400,4800,9600,19200, entre otras
PARITY: Hace referencia a la paridad, este puede
tener tres valores:
N: sin paridad
DIGITALES III:
O: paridad Impar(odd)
#use
rs232
(BAUD=9600,
PARITY=N,
XMIT=PIN_C2,
RCV=PIN_C4,
BITS=8,stream=HOSTPC,STOP=1)
XMIT: Hace referencia al pin utilizado para transmitir
informacin.
RCV: Hace referencia
recepcin de datos.
al
pin
utilizado
para
la
#use
rs232
(BAUD=9600,PARITY=N,
XMIT=PIN_C2,
RCV=PIN_C4,
BITS=8,stream=HOSTPC,STOP=1)
STOP: Hace referencia a los bits de parada, este puede
ser 1 2.
A diferencia de las subrutinas conocidas en la
asignatura de domtica o en digitales 2, se encuentran
otros modificadores como:
TIMEOUT:
Permite
establecer
el
tiempo
en
milisegundos que tiene que esperar un carcter la
funcin GETC(), si no se recibe un caracter el
RS232_ERRORS se pone en 0.
ERRORS
Si se utiliza el compilador envia los errores generados a
DIGITALES
III: 10
la variable RS232_ERRORS y resetea los errores
cuando
Funciones de la librera:
Para manejar eventos como la recepcin y el envi
de datos por RS232 se cuenta con las siguientes
funciones:
2) Escribir un dato por
1) Leer un dato por rs232
RS232:
getc( )
putc( )
getch( )
putchar( )
getchar( )
fputc( )
fgetc( )
gets(
fgets( )
puts( )
fputs( )
DIGITALES III: 11
12
Parametros:
stream es un identificador de un puerto RS232 . Si el
parametro streamno esta incluido, la funcin usa la
primary stream empleada por getc.
Retorna:
0 (o FALSO) si getc() necesitara esperar por un
caracter de entrada, 1 (o VERDAD) si un caracter esta
listo para utilizar getc()
DIGITALES III: 13
Parmetros:
string es un apuntador a un array de caracteres.
Stream es un identificador corriente (una constante de
tipo byte)
Retorna: Indefinido
Funcin:
Lee caracteres de entrada tipo cadena, emplea GETC()
este proceso se ejecuta hasta que ingrese el valor 13.
La cadena la termina con cero.
Si fgets() es empleado entonces se debe especificar el
DIGITALES
III: 15
stream, en caso contrario gets() emplea el ltimo
valor
Ejemplo de gets:
char cadena[30];
printf("Password: ");
gets(cadena);
if(strcmp(cadena, password))
printf("OK");
else
printf(Clave incorrecta");
La anterior funcin compara una cadena leida con
otra que se llama password.
DIGITALES III: 16
Parmetros:
stream es un identificador de
una, Cdata
es una variable de 8 bits.
Funcin:
Esta funcin enva un dato por la lnea de
transmisin de RS232. Si emplea fputc() entonces
debe especificar un stream,
si no asigna un
parmetro de configuracin por defecto utiliza como
el empleado por putc() la ltima ocasin.
DIGITALES III: 17
Parmetros:
string es un apuntador a un array de caracteres.
Stream es un identificador corriente (una constante de
tipo byte)
Retorna: Indefinido
Funcin:
Escribe caracteres tipo cadena, emplea PUTC(), este
proceso se ejecuta hasta que encuentra el valor 0 y
despus envia el valor 13.
Si fputs() es empleado entonces se debe especificar el
III: 18
stream, en caso contrario fputs() emplea el DIGITALES
ltimo valor
Ejemplos de leer:
dato_leido=0;
contador=0;
puts("Ingrese una cadena de 10 caracteres:");
do
{
dato_leido=getc();
putc(dato_leido);
cadena[contador]=dato_leido;
if (dato_leido==13)
break;
contador++;
} while(dato_leido!=13 || contador<=10);
cadena[contador]=0;
DIGITALES III: 19
20
T el tipo de variable:
c: Caracter
s: Cadena de caracteres
u: Entero sin signo
d: Entero con signo
Lu:
Ld:
T el tipo de variable:
f: Flotante con truncado
g: Flotante con redondo
e: Flotante con formato exponencial
w:
Entero sin signo con decimales insertados, la
primer
cifra indica el total y la segunda los
decimales
Recordemos las sintaxis de printf:
printf (string) o
printf (cstring, values...) o
printf (fname, cstring, values...)
fprintf (stream, cstring, values...)
SPRINTF tambin tiene la misma funcin.
DIGITALES III: 22
SPRINTF:
Sintaxis:
sprintf(string, cstring, values...);
bytes=sprintf(string, cstring, values...)
Parametros:
string es un arreglo de caracteres. cstring es una
constante cadena o un cadena de caracteres
terminado con un valor nulo.
Values es una lista de variables separadas por
comas.
Ejemplo SPRINTF:
contador=strlen(cadena);
// strlen funcion para conocer la longitud de una
cadena
if (contador>0)
contador--;
sprintf(mycadena,"%u caracteres",contador);
puts("la cadena tiene una longitud de: ");
puts(mycadena);
DIGITALES III: 24
4800 baud
8 data bits
No parity
1 stop bit
No flow control
DIGITALES III: 25
DIGITALES III: 26
PROTEUS
En Proteus puede utilizar el
Virtual terminal y tambin
COMPIM, este ltimo para
conectar el microcontrolador
con un puerto RS232 del PC,
en caso de conectar con otro
puerto no existente puede
utilizar el virtual port.
El COMPIN se debe conectar
de forma directa a las lneas
de transmisin y recepcin
designadas
en
el
microcontrolador.
DIGITALES III: 27
COMPIM
COMPIM
requiere
una
configuracin
para establecer
los parmetros
como: velocidad,
paridad, tamao
de la palabra,
bits de parada,
paridad y control
de flujo.
Virtual
serial
Port le permite
simular
la
DIGITALES III: 28
DIGITALES III: 29
Cables USB-RS232:
Debido a la falta de puertos RS232 en los equipos
portatiles se puede adquirir en el mercado los
cables que permiten conectar mdulos con puertos
RS232 a puertos USB.
Los cables cuentan con in circuito integrado
denominado FT232BM el cual se encarga de las
conversiones respectivas. El fabricante es FTDI y en
su pgina web se encuentran los drivers y el diseo
Este cuenta con drivers para:
del circuito.
- Windows 98 and Windows 98
SE - Windows 2000 / ME / XP
- Windows CE **
-MAC OS-8 and OS-9
- MAC OS-X **
- Linux 2.40 and greater
DIGITALES III: 30
Impresos:
Fuente. http://www.voti.nl/usb-1/index_1.html
En sigmalectronica una empresa dedicada al
comercio de componentes electrnicos cuentan con
la tarjeta para su facil adquisicin.
Fuente.http://www.sigm
aelectronica.net/tarjeta
-ft232-pi-1110.html
DIGITALES III: 32
DIGITALES III: 33
EJERCICIO:
Construya una aplicacin que lea desde un
modulo celular como el Enfora 1208 un mensaje
de texto SMS y lo visualice en la pantalla LCD
de 4 filas. El mensaje que se visualiza es el
numero 1.
DIGITALES III: 34
35