View
20
Download
0
Category
Preview:
Citation preview
5/14/2018 11 Puerto Serial PIC [Modo de ad - slidepdf.com
http://slidepdf.com/reader/full/11-puerto-serial-pic-modo-de-ad 1/5
08/08/2011
1
Programación en lenguaje C para
Microcontroladores PIC
Puerto Serial Asincrono
Ing. Germán Jesús Pereira MuñozIng. Germán Jesús Pereira Muñoz
20/08/10 1Ing. Germán Jesús Pereira Muñoz20/08/10 1
Puertos Del Computador
Puerto Paralelo
Puerto Serial
Puerto USB
20/08/10 2Ing. Germán Jesús Pereira Muñoz
Puerto Serial
El puerto serie RS-232, es la forma mas co mún usada para realizartransmisiones de datos entre:
• Ordenadores.
• PLC’s
• Celulares
• Calculadoras
• GPS
• Dispositivos de Radio Frecuencia
• Datalogers, etc.
Utiliza el Circuito integrado UART (Transmisor-Receptor-AsíncronoUniversal).
Lossiguientesmodelosde estechip:• 8250(bastante antiguo, solo llega a9600 baudios),
• 16450(versióncorregida del 8250, llegahasta 115.200baudios)
• 16550A(conbuffers deE/S)a partirde lagama Pentium.
• Los portátilessuelen llevarotros chips:
– 82510 (conbufferespecial,emulaal 16450)o el825
20/08/10 3Ing. Germán Jesús Pereira Muñoz
Direcciones del Puerto Serial del
computador
El Puerto Serial Tiene las Direcciones.
Direcciones Base +0:
– COM 1 3F8h = 1016d
– COM 2 2F8h = 760d
– COM 3 3E8h = 1000h – COM 4 2E8h = 744d
20/08/10 4Ing. Germán Jesús Pereira Muñoz
Tabla de Registro del Puerto Serial
20/08/10 5Ing. Germán Jesús Pereira Muñoz
Conexión
EntreComputadores
Modem Nulo
Modem Completo
Realimentación
20/08/10 6Ing. Germán Jesús Pereira Muñoz
5/14/2018 11 Puerto Serial PIC [Modo de ad - slidepdf.com
http://slidepdf.com/reader/full/11-puerto-serial-pic-modo-de-ad 2/5
08/08/2011
2
Configuración Del Tren De Bits Del
Puerto Serial
• Mas común 8N1
– 8bitsdedatos configurablea 7, 6, 5 bits de datos
– 1bit de inicio
– 1bit de parada configurablea 2, 1 y ½ bits deparada
20/08/10 7Ing. Germán Jesús Pereira Muñoz
Niveles de voltaje Del Puerto Serial
• Comunicación RS-232 son:
– +3a +25 voltios significa un ‘0’lógico
– -3 a –25 voltiossignifica un ‘1’ lógico
– Cualquier voltaje entre estas regiones +3 a –3 voltios es indefinido
20/08/10 8Ing. Germán Jesús Pereira Muñoz
Conversores de nivel de voltaje RS-232
20/08/10 9Ing. Germán Jesús Pereira Muñoz
Usart (funciones)
Usart_Init
Usart_Data_Ready
Usart_Read
Usart_Write
20/08/10 10Ing. Germán Jesús Pereira Muñoz20/08/10 10
Uart_InitDescripción: Initializa el modulo hardware USART con un
determinado Baud rate. Referirse al data sheet de cada
dispositivo para un especifico Fosc. Si se reporta un baud
rate no soportado el compilador da un error.
void Usart_Init(const unsigned long baud_rate);
Ejemplo:Usart_Init(9600,);
20/08/10 11Ing. Germán Jesús Pereira Muñoz20/08/10 11
Usart_Data_ReadyDescripción: Use la funcion para testear si un dato ha
sido recivido en el buffer y esta listo para la lectura.
unsigned short Usart_Data_Ready(void);
Ejemplo:
Si el dato esta listo:
int receive;
...
if (Usart_Data_Ready()) receive = Usart_Read;
20/08/10 12Ing. Germán Jesús Pereira Muñoz20/08/10 12
5/14/2018 11 Puerto Serial PIC [Modo de ad - slidepdf.com
http://slidepdf.com/reader/full/11-puerto-serial-pic-modo-de-ad 3/5
08/08/2011
3
Usart_ReadDescripción: La funcion recive un byte via USART. Use la
funcion Usart_Data_Ready para verificar si un dato esta
listo en el buffer, antes de usar la funcion Usart_Read.
unsigned short Usart_Read(void);
Ejemplo:
Si el dato esta listo:
int receive;
...
if (Usart_Data_Ready())
{ receive = Usart_Read(); }
20/08/10 13Ing. Germán Jesús Pereira Muñoz20/08/10 13
Usart_WriteDescripción: Funcion transmite un byte (data) via USART.
void Usart_Write(unsigned short data);
Ejemplo:
int chunk = 0x1E;
….
Usart_Write(chunk); /* envia chunk via USART */
20/08/10 14Ing. Germán Jesús Pereira Muñoz20/08/10 14
Usart(esquemático con COMPIN)
20/08/10 15Ing. Germán Jesús Pereira Muñoz20/08/10 15
Usart (programa I)
20/08/10 16Ing. Germán Jesús Pereira Muñoz20/08/10 16
Soft Uart (funciones)
Soft_Uart_Init
Soft_Uart_ReadSoft_Uart_Write
20/08/10 17Ing. Germán Jesús Pereira Muñoz20/08/10 17
Soft_Uart_InitDescripción: Inicializa el softUART. Los parametros del puerto
especifica en que pines del puerto estan el TX y RX debenestar en elrango de 0-7 (no se puede colocar en el mismo pin Rx y TX);
El baud_rate es la velocidad de transmicion, el maximo vaor dependedel reloj del PIC.El parametro inverted, si toma un valor distinto de cero, indica logica
invertida en la salida:
void Soft_Uart_Init( unsigned short port,
unsigned short rx, unsigned short tx,
unsigned short baud_rate,
unsigned short inverted);
Ejemplo:
Soft_Uart_Init(PORTB, 1, 2, 9600, 0);
20/08/10 18Ing. Germán Jesús Pereira Muñoz20/08/10 18
5/14/2018 11 Puerto Serial PIC [Modo de ad - slidepdf.com
http://slidepdf.com/reader/full/11-puerto-serial-pic-modo-de-ad 4/5
08/08/2011
4
Soft_Uart_ReadDescripción: La funcion recibe un byte via el soft uart. El
parametro received es cero si la transmicion a sido
existosa.
unsigned short Soft_Uart_Read(unsigned short *received);
Ejemplo:
data = Soft_Uart_Read(rec);
20/08/10 19Ing. Germán Jesús Pereira Muñoz20/08/10 19
Soft_Uart_WriteDescripción: La funcion trnasmite un byte via Soft UART.
void Soft_Uart_Write(unsigned short data);
Ejemplo:
unsigned short some_byte = 0x0A; ...
Soft_Uart_Write(some_byte);
20/08/10 20Ing. Germán Jesús Pereira Muñoz20/08/10 20
Soft_Uart (problema)
• Se desea un programa para recibir un byte de uncomputador y retransmitirlo incrmentado en unaunidad.
20/08/10 21Ing. Germán Jesús Pereira Muñoz20/08/10 21
Soft_Uart (algoritmo)
• 1 Configuración de puertos
• 2 Configuracion del soft_uart
• 3 Lectura de soft_uart
• 4 Envío a los leds
• 5 Regresar a 3
20/08/10 22Ing. Germán Jesús Pereira Muñoz20/08/10 22
Soft_Uart(esquemático con virtual Terminal)
20/08/10 23Ing. Germán Jesús Pereira Muñoz20/08/10 23
Soft_Uart
(programa I)
20/08/10 24Ing. Germán Jesús Pereira Muñoz20/08/10 24
5/14/2018 11 Puerto Serial PIC [Modo de ad - slidepdf.com
http://slidepdf.com/reader/full/11-puerto-serial-pic-modo-de-ad 5/5
08/08/2011
5
Soft_Uart
(programa II)
20/08/10 25Ing. Germán Jesús Pereira Muñoz20/08/10 25
Soft_Uart(Salida)
20/08/10 26Ing. Germán Jesús Pereira Muñoz20/08/10 26
Ejercicio propuesto 1• Repetir el ejercicio anterior, pero utilizando el
virtualizador del puerto serial y el componenteCOMPIM del Proteus, y el Hyperterminal del PC
20/08/10 27Ing. Germán Jesús Pereira Muñoz20/08/10 27
Ejercicio propuesto 2
• Realizar un programa controlar con el teclado delcomputador del computador dos motores DC
a) a) Utilizando el Virtual Terminal del Proteus
b) b) Utilizando el Virtualizador del puerto serial y el COMPIM del Proteus
20/08/10 28Ing. Germán Jesús Pereira Muñoz20/08/10 28
Ejercicio propuesto 3• Realizar un programa que en el computador se
desliegue la informacion de 4 ADC delmicrocontrolador.
a) a) Utilizando el Virtual Terminal del Proteus
b) b) Utilizando el Virtualizador del puerto serial y el COMPIM del Proteus
20/08/10 29Ing. Germán Jesús Pereira Muñoz20/08/10 29
Ejercicio propuesto 4• Realizar un programa para que mediante el
computador se mande un mensaje al microcontrolador y est emensaje ser muestre en un LCD de texto.
a) a) Utilizando el Virtual Terminal del Proteus
b) b) Utilizando el Virtualizador del puerto serial y elCOMPIM del Proteus
20/08/10 30Ing. Germán Jesús Pereira Muñoz20/08/10 30
Recommended