Você está na página 1de 142

MICROPROCESADORES Y MICROCONTROLADORES I

UNEFM-ING. BIOMEDICA

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD I: MICROCONTROLADOR
Es un circuito integrado programable que contiene todos los
componentes de un computador. Se emplea para controlar el funcionamiento
de una tarea determinada y, debido a su reducido tamao, suele ir incorporado
en el propio dispositivo al que gobierna. Esta ltima caracterstica es la que le
confiere la denominacin de controlador incrustado (embedded controller).
(Jose Maria Angulo)
Un MICROPROCESADOR es un sistema abierto con el que puede
construirse un computador con las caractersticas que se desee,
acoplndole los mdulos necesarios.
Un MICROCONTROLADOR es un sistema cerrado que contiene un
computador completo y de prestaciones limitadas que no se pueden
modificar.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD I MICROCONTROLADOR Y MICROPROCESADOR

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD I : MICROCONTROLADOR Y MICROPROCESADOR

Microcontroladores PIC, se debe


a la conjuncin de tres tcnicas:
- Arquitectura Harvard
- Computador tipo RISC
- Segmentacin (Pipe line)

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD I :MICROCONTROLADORES PIC

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD I : ARQUITECTURA DE LOS MICROCONTROLADOR PIC

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD I : MEMORIAS DE PROGRAMA
El microcontrolador est diseado para que en su memoria de
programa se almacenen todas las instrucciones del programa de control.
No hay posibilidad de utilizar memorias externas de ampliacin. Como
el programa a ejecutar siempre es el mismo, debe estar grabado de forma
permanente.
Los tipos de memoria adecuados para soportar esta funcin admiten
cinco versiones
diferentes:
1. ROM con mascara (MROM)
2. EPROM
3. OTP ROM (One Time Programmable ROM) - ROM programable una sola vez
4. EEPROM
5. FLASH

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD I : MEMORIAS DE DATOS
Los datos que manejan los programas varan continuamente, y esto exige que
la memoria que les contiene debe ser de lectura y escritura, por lo que la
memoria RAM esttica (SRAM) (random access memory) - Memoria de
acceso aleatorio, es la ms adecuada, aunque sea voltil.
Hay Microcontroladores que tambin disponen como memoria de datos una de
lectura y escritura no voltil, del tipo EEPROM (Electrically erasable
programmable rom) - ROM programable y borrable Elctricamente. De esta
forma, un corte en el suministro de la alimentacin no ocasiona la prdida de la
informacin, que est disponible al reiniciarse el programa.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD I : UNIDAD CENTRAL DE PROCESAMIENTO
(CENTRAL PROCESSOR UNIT - CPU)

Decodificador de instrucciones es la parte que descodifica las instrucciones


del programa y acciona otros circuitos basndose en esto. El conjunto de
instrucciones que es diferente para cada familia de microcontrolador expresa
las capacidades de este circuito;
Unidad lgica aritmtica (Arithmetical Logical Unit - ALU) realiza todas las
operaciones matemticas y lgicas
sobre datos;
Acumulador o registro de trabajo Es un registro SFR estrechamente
relacionado con el funcionamiento de la ALU.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD I : LINEAS DE ENTRADA SALIDA
A excepcin de los dos pines destinadas a recibir la alimentacin, otros dos
para el cristal de cuarzo, que regula la frecuencia de trabajo, y otro ms para
provocar el Reset, las restantes pines de un microcontrolador sirven para
soportar su comunicacin con los perifricos externos que controla.
Las lneas de E/S que se adaptan con los perifricos manejan informacin en
paralelo y se agrupan en conjuntos de ocho, que reciben el nombre de Puertas
(Puertos). Hay modelos con lneas que soportan la comunicacin en serie;
otros disponen de conjuntos de lneas que implementan puertos de
comunicacin para diversos protocolos, como el I2C,SPI, el USB, etc.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD I : RECURSOS AUXILIARES
Segn las aplicaciones a las que orienta el fabricante cada modelo de
microcontrolador, incorpora una diversidad de complementos que refuerzan la
potencia y la flexibilidad del dispositivo.
Entre los recursos ms comunes se citan a los siguientes:
a) Circuito de reloj, encargado de generar los impulsos que sincronizan el
funcionamiento
de todo el sistema.
b) Temporizadores, orientados a controlar tiempos.
c) Perro Guardin (watchdog), destinado a provocar una reinicializacin
cuando el programa queda bloqueado.
d) Conversores AD y DA, para poder recibir y enviar seales analgicas.
e) Comparadores analgicos, para verificar el valor de una seal analgica.
f) Sistema de proteccin ante fallos de la alimentacin.
g) Estado de Reposo, en el que el sistema queda congelado y el consumo
de energa se reduce al mnimo.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD I : PROGRAMACION DE LOS MICROCONTROLADORES
La utilizacin de los lenguajes ms cercanos a la mquina (de bajo nivel)
representan un considerable ahorro de cdigo en la confeccin de los
programas, lo que es muy importante dada la estricta limitacin de la capacidad
de la memoria de instrucciones. Los programas bien realizados en lenguaje
Ensamblador optimizan el tamao de la memoria que ocupan y su ejecucin es
muy rpida.
Los lenguajes de alto nivel ms empleados con microcontroladores
son el C y el BASIC, de los que existen varias empresas que comercializan
versiones de compiladores e intrpretes para diversas familias de
microcontroladores. En el caso de los PIC es muy competitivo e interesante el
compilador de C PCM de la empresa CCS , el intrprete PBASIC de
PARALLAX y los compiladores de mikroC PRO, mikroBasic y mikroPascal
conteniendo una cantidad de libreras que reducen el proceso de configuracin
y utilizacin de perifricos avanzados que incorporan estos PIC.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD I : FAMILIA DE LOS MICROCONTROLADORES PIC
PIC12CXXX : 8-pin 12-bit/14-bit program word
PICmicro RISC architecture en 8-pin DIP y SOIC hasta 4Mhz. 12-bit o 14-bit deinstruccin, 1024
palabras de programa. Bajo voltaje de operacin: 2.5V. Manejo de interrupciones y pila por hardware.
33 Instrucciones. 128 bytes EEPROM y 64 bytes RAM.
PIC16C5X Family: 12-bit program word
PICmicro RISC architecture en 14-, 18-, 20- y 28-pin SOIC y SSOP. 12- bit de
instruccin hasta 20Mhz y hasta 2k programa Bajo voltaje de operacin: 2.0V para los OTP Hasta 128
bytes de RAM.
PIC16CXXX Family: 14-bit program word
PICmicro RISC architecture con encapsulados de 18- y 68-pin. 14- bit de instruccin hasta 20Mhz,
hasta 8k programa. Manejo de interrupciones y 8-niveles de pila. 35 Instrucciones. Conversor:
Analgico -a-Digital a 12-bits. Hasta 368 bytes de RAM y 256 bytes de EEPROM.
PIC17CXXX Family: 16-bit program word
PICmicro MCUs RISC con arquitectura extendida. 16-bit instruction word hasta 33Mhz y 16384
palabras de programa. Conjunto de instrucciones ampliado a 58 instrucciones. Pila de 16 niveles.
Interrupciones vectorizadas. Hasta 902 bytes de RAM y 256 bytes de EEPROM.
PIC18CXXX Family: 16-bit program word
Arquitectura RISC avanzada Harvard: 16-bit con 8-bit de datos. 77 instrucciones y hasta 64K bytes de
programa y 40Mhz, hasta 2 Mbytes en ROM less. Pila de 32 niveles. Mltiples fuentes de interrupcin
Hasta 1536 bytes de RAM y 1024 bytes de EEPROM

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD I:
MICROCONTROLADOR PIC16F887

controlar por software

arquitectura RISC
-El microcontrolador cuenta con solo 35
instrucciones diferentes
-Todas las instrucciones son uni-ciclo
excepto por las de ramificacin
Frecuencia de operacin 0-20 MHz
Oscilador interno de alta precisin
-Calibrado de fbrica
-Rango de frecuencia de 8MHz a 31KHz
seleccionado por
software
Voltaje de la fuente de alimentacin de
2.0V a5.5V
-Consumo: 220uA (2.0V, 4MHz), 11uA (2.0
V, 32 KHz) 50nA (en modo de espera)
Ahorro de energa en el Modo de
suspensin
Brown-out Reset (BOR) con opcin para

35 pines de entrada/salida
-alta corriente de fuente y de drenador para
manejo de LED
-resistencias pull-up programables
individualmente por software
-interrupcin al cambiar el estado del pin
memoria ROM de 8K con tecnologa
FLASH
-El chip se puede re-programar hasta
100.000 veces
Opcin de programacin serial en el
circuito
-El chip se puede programar incluso
incorporado en el dispositivo destino.
256 bytes de memoria EEPROM
Los datos se pueden grabar ms de
1.000.000 veces
368 bytes de memoria RAM

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD I:
MICROCONTROLADOR PIC16F887

Convertidor A/D:
-14 canales
-resolucin de 10 bits
3 temporizadores/contadores
independientes
Temporizador perro guardin
Mdulo comparador analgico con
-Dos comparadores analgicos
-Referencia de voltaje fija (0.6V)
-Referencia de voltaje programable en
el chip

Mdulo PWM incorporado


Mdulo USART mejorado
-Soporta las comunicaciones seriales
RS-485, RS-232 y
-LIN2.0
-Auto deteccin de baudios
Puerto Serie Sncrono Maestro
(MSSP)
-Soporta los modos SPI e I2C

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD I :MICROCONTROLADOR PIC16F887

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD I : MICROCONTROLADOR PIC16F887

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD I: DESCRIPCION DE PINES
La mayora de los pines del microcontrolador PIC16F887 son multipropsito
como se muestra en la figura anterior. Por ejemplo, la asignacin
RA3/AN3/Vref+/C1IN+ para el quinto pin del microcontrolador indica que ste
dispone de las siguientes funciones:
RA3 Tercera entrada/salida digital del puerto A
AN3 Tercera entrada analgica
Vref+ Referencia positiva de voltaje
C1IN+ Entrada positiva del comparador C1

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD I: CPU PIC16F887
-La CPU cuenta con slo 35
instrucciones simples. Cabe decir que
para poder programar otros
microcontroladores en lenguaje
ensamblador es necesario saber ms
de 200 instrucciones
-El tiempo de ejecucin es igual para
casi todas las instrucciones y tarda 4
ciclos de reloj. La frecuencia del
oscilador se estabiliza por un cristal
de cuarzo. Las instrucciones de salto
y de ramificacin tardan ocho ciclos
de reloj en
ejecutarse. Esto significa que si la
velocidad de operacin del
microcontrolador es 20 MHz, el
tiempo de ejecucin de cada
instruccin ser 200nS, o sea, el
programa ejecutar 5millones de
instrucciones por segundo!

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD I: MEMORIA FLASH DE PROGRAMA
La memoria ROM se utiliza para guardar permanente el programa que se est ejecutando.
Es la razn por la que es frecuentemente llamada memoria de programa. El PIC16F887
tiene 8Kb de memoria ROM (en total 8192 localidades). Como la memoria ROM est
fabricada con tecnologa FLASH, su contenido se puede cambiar al proporcionarle un voltaje
de programacin especial (13V).

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD I: MEMORIA RAM
Es la tercera y la ms compleja parte de la memoria del microcontrolador. En este caso
consiste en dos partes: en registros de propsito general y en los registros de funciones
especiales (SFR).

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD I:
MEMORIA RAM

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I

UNIDAD I: REGISTRO STATUS


bit 7 IRP: Registro de seleccin de Banco.(usado para direccionamiento
indirecto)
1 = Bank 2, 3 (100h - 1FFh)
0 = Bank 0, 1 (00h - FFh)
bit 6-5 RP1:RP0: Registro de seleccin de banco (usado para direccionamiento
directo)
00 = Bank 0 (00h - 7Fh)
01 = Bank 1 (80h - FFh)
10 = Bank 2 (100h - 17Fh)
11 = Bank 3 (180h - 1FFh)
bit 4 TO: bit de Timeout
1 = Despus de encender, una instruccin CLRWDT , o una instruccin SLEEP
0 = ocurri un timeout de WDT

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I

UNIDAD I: REGISTRO STATUS


bit 3 PD: bit de Apagado
1 = Despus de encendido o por una instruccin CLRWDT
0 = Por una ejecucin de la instruccin SLEEP
bit 2 Z: Zero bit
1 = El resultado de una operacin aritmtica fue 0.
0 = El resultado de una operacin aritmtica no fue 0.
bit 1 DC: Digito de acarreo (para instrucciones ADDWF,
ADDLW,SUBLW,SUBWF
instructions)
1 = Hubo acarreo del cuarto bit de orden bajo en el resultado.
0 = No hubo acarreo del cuarto bit de orden bajo en el resultado.
bit 0 C: bit de acarreo o prstamo (instrucciones ADDWF,
ADDLW,SUBLW,SUBWF)
1 = Ocurri acarreo en el bit ms significativo del resultado.
0 = No ocurri acarreo en el bit ms significativo del resultado.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I

Investigar funciones de los registro:

-TRISA, TRISB,TRISC,TRISD,TRISE
-PORTA,PORTB,PORTC,PORTD,PORTE
-OPTION
-INTCON ,PIE1, PIE2, PIR1, PIR2
-TMR0,TMR1,T1CON,TMR2,T2CON
-ADCON0
-ADCON1
-ADRESH
-ADRESL

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD I: INTERRUPCIONES

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD II: PROGRAMACION EN LENGUAJE EMSAMBLADOR
LIST P=16F877 ; Modelo del pic al compilador
INCLUDE<P16F887.INC> ; esto incluye una librera donde se definen los
; esto es un comentario
; definicin de variables
OPCION_TMR0 EQU 0X01
VAR1 EQU 0X20 ; variable VAR1 en direccin 0x20, de la memoria de
datos
VAR2 EQU 0X21 ; variable VAR1 en direccin 0x21, de la memoria de
datos
ORG 0
GOTO INICIO ; saltar el vector de interrupcion
ORG 4
GOTO INTERRUPCIONES
FUNCION1
; desarrollo de la funcin
RETURN
INICIO ; programa principal
;programa..
END
Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD II: PROGRAMACION EN LENGUAJE C, CON
MIKROC PRO

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD II: PROGRAMACION EN LENGUAJE C, CON MIKROC PRO

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD II: PROGRAMACION EN LENGUAJE C, CON MIKROC PRO

Ventajas de lenguajes de programacin de alto nivel

A pesar de todos los lados buenos, el lenguaje ensamblador tiene algunas


desventajas:
-Incluso una sola operacin en el programa escrito en ensamblador consiste
en muchas instrucciones, hacindolo muy largo y difcil de manejar.
-Cada tipo de microcontrolador tiene su propio conjunto de instrucciones que
un programador tiene que conocer para escribir un programa

-Un programador tiene que conocer el hardware del microcontrolador para


escribir un programa

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD II: PROGRAMACION EN LENGUAJE C, CON MIKROC PRO

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD II: PROGRAMACION EN LENGUAJE C, CON MIKROC PRO

Lenguaje C
El lenguaje C dispone de todas las ventajas de un lenguaje de programacin
de alto nivel (anteriormente descritas) y le permite realizar algunas
operaciones tanto sobre los bytes como sobre los bits (operaciones lgicas,
desplazamiento etc.). Las caractersticas de C pueden ser muy tiles al
programar los microcontroladores. Adems, C est estandarizado (el
estndar ANSI), es muy portable, as que el mismo cdigo se puede utilizar
muchas veces en diferentes proyectos. Lo que lo hace accesible para
cualquiera que conozca este lenguaje sin reparar en el propsito de uso del
microcontrolador. C es un lenguaje compilado, lo que significa que los
archivos fuentes que contienen el cdigo C se traducen a lenguaje mquina
por el compilador

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD II: PROGRAMACION EN LENGUAJE C, CON MIKROC PRO

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD II: PROGRAMACION EN LENGUAJE C, CON MIKROC PRO
Este lenguaje es muy similar al C estndar, no obstante en determinados
aspectos difiere del ANSI estndar en algunas caractersticas. Algunas de
estas diferencias se refieren a las mejoras, destinadas a facilitar la
programacin de los microcontroladores PIC, mientras que las dems son la
consecuencia de la limitacin de la arquitectura del hardware de los PIC. Aqu
vamos a presentar caractersticas especficas del lenguaje mikroC en la
programacin de los microcontroladores PIC. El trmino C se utilizar para
referirse a las caractersticas comunes de los lenguajes C y mikroC.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD II: REGISTRO DE CONFIGURACION PUERTO DIGITALES Y
ANALOGICOS

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD II: ACCESO INDIVIDUAL A CADA BIT
EL mikroC PRO permite acceso individual a cada bit en variables de 8 bits
(char and unsigned short). Simplemente usando el selector (.) seguido de uno
de los identificadores F0, F1, , F7. Siendo F7 el bit mas significativo.
Ejemplo:
PORTA.F0 = 1;
i=PORTD.F3 ;
PORTB.F5 = PORTA.F4;
`
ANSEL.F0=1; ANSEL.ANS0=1;
Si se est familiarizado con el chip, tambin puede acceder a los bits por
nombre:
//Borrar TMR0F:
INTCON.TMR0F = 0;
TRISA.F2=0; // pin 2 puerto A como salida

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD II: TIPOS DE DATOS

Tipo

Tamao en
Byte

Rango

(Sin signo) char

0 .. 255

signed char

- 128 .. 127

(Con signo) short (Entero)

- 128 .. 127

unsigned short (Entero)

0 .. 255

(Con signo) int

-32768 .. 32767

unsigned (Entero)

0 .. 65535

(Con signo) long (Entero)

-2147483648 .. 2147483647

unsigned long (Entero)

0 .. 4294967295

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD II: TIPOS DE DATOS

Tipo
float
double
long double

Tamao en
Byte

Rango

1.17549435082 * 10-38 ..
6.80564774407 * 1038

1.17549435082 * 10-38 ..
6.80564774407 * 1038

1.17549435082 * 10-38 ..
6.80564774407 * 1038

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD II: DECLARACION DE LAS VARIABLES
Decimal
int i ;
int j = -10;
int p = 0;
Hexadecimal
short x ;
short y = 0x7F;
int z = 0x125;
Octal
int m = 023;
short n = 016;

/* decimal -10 */
/* decimal 0 */

/* decimal 127 */
/* decimal 293 */
/* 19 */
/* 14 */

Binario
char dato = 0b00001111; ANSEL=0B00001111: /ANSEL=77;
short dat = 0b10101010;
unsigned char sig = 0b11001100;
ASCII
char dat = a;
char m = 5;

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD II: COMENTARIOS
declaraciones globales
funcion1( )
{
variables locales bloque
}
void main(void)
{
variables locales bloque
}
COMENTARIOS
/* Este es un ejemplo de comentario */
/* Un comentario tambin puede
estar escrito en varias lneas */
El smbolo /* se coloca al principio del comentario
y el smbolo */ al final.
//Comentario que abarca solo la lnea completa
// comentarios

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD II: OPERADORES
OPERADORES ARITMTICOS
Existen dos tipos de operadores
aritmticos:
Los binarios:
+ Suma
- Resta
* Multiplicacin
/ Divisin
% Mdulo (resto)
y los unarios:
++ Incremento (suma 1)
- - Decremento (resta 1)
- Cambio de signo
OPERADORES RELACIONALES
>Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
== Igual que
!= Distinto que

OPERADORES LGICOS:
&& AND
|| OR
! NOT (El valor contrario)
OPERADORES LGICOS BIT A BIT:
& AND
| OR
^ XOR
~ COMPLEMENTO
>> mueve los bits a la izquierda
<< mueve los bits a la derecha

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD II: OPERADORES RELACIONALES

OPERADOR

DESCRIPCIN

EJEMPLO

CONDICIN DE
VERACIDAD

>

mayor que

b>a

si b es mayor que a

>=

mayor o igual que

a >= 5

si a es mayor o igual
que 5

>=

menor que

a<b

si a es menor que b

<=

menor o igual que

a <= b

si a es menor o igual
que b

==

igual que

a == 6

si a es igual que 6

!=

desigual que

a != b

si a es desigual que b

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD II: MANEJO DE BITS
OPERADOR

DESCRIPCIN

EJEMPLO

RESULTADO

Complemento a uno

a = ~b

b=5

a = -5

<<

Desplazamiento a la
izquierda

a = b << 2

b = 11110011

a = 11001100

>>

Desplazamiento a la
derecha

a = b >> 2

b = 11110011

a = 00011110

&

Y lgico para manejo


de bits

c=a&b

a = 11100011
b = 11001100

c = 11000000

O lgico para manejo


de bits

c=a|b

a = 11100011
b = 11001100

c = 11101111

EXOR lgico para


manejo de bits

c=a^b

a = 11100011
b = 11001100

c = 00101111

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD II: SENTENCIAS CONDICIONALES

Este tipo de sentencias permiten variar el flujo del programa en base a unas
determinadas condiciones. Existen varias estructuras diferentes:
Estructura if...else
Sintaxis:
if (condicin)
{ sentencia
}
/*La sentencia solo se ejecuta si se cumple la condicin. En caso contrario el
programa sigue su curso sin ejecutar la sentencia.*/
Otro formato:
if (condicin){
//Si se cumple la condicin ejecutar la sentencia1
Sentencia1
//sino ejecutar la sentencia2.
}
else {
Sentencia2
}

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD II: SENTENCIAS CONDICIONALES

Otro formato:
if (condicin)
{
sentencia1;
}
else if (condicin)
{
sentencia2;
}
else if (condicin)
{
sentencia3;
}
else
{
sentencia4;
}

Con este formato el flujo del programa


nicamente entra en una de las condiciones.
Si una de ellas se cumple, se ejecuta la
sentencia correspondiente y salta hasta el
final de la estructura para continuar con el
programa

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD II: SENTENCIAS CONDICIONALES
Estructura SWITCH
Esta estructura se suele utilizar en los mens, de manera que segn la opcin
seleccionada se ejecuten una serie de sentencias.
Su sintaxis es:
switch (variable)
{ case contenido_variable1:
sentencias;
break;
case contenido_variable2:
sentencias;
break;
default: sentencias;
}
Cada case puede incluir una o ms sentencias sin necesidad de ir entre llaves,
ya que se ejecutan todas hasta que se encuentra la sentencia BREAK. La
variable evaluada slo puede ser de tipo entero o caracter. default ejecutar las
sentencias que incluya, en caso de que la opcin escogida no exista.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD II: BUCLES (SENTENCIAS REPETITIVAS)

Los bucles son estructuras que permiten ejecutar partes del cdigo de forma
repetida mientras se cumpla una condicin.
Esta condicin puede ser simple o compuesta de otras condiciones unidas
por operadores lgicos.
Sentencia WHILE
Su sintaxis es:
while (condicin)
{ sentencia;
}
Con esta sentencia se controla la condicin antes de entrar en el bucle. Si sta
no se cumple, el programa no entrar en el bucle.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD II: BUCLES (SENTENCIAS REPETITIVAS)

Sentencia DO...WHILE
Su sintaxis es:
do
{ sentencia1;
sentencia2;
}while (condicin);
Con esta sentencia se controla la condicin al final del bucle. Si sta se
cumple, el programa vuelve a ejecutar las sentencias del bucle.
La nica diferencia entre las sentencias while y do...while es que con la
segunda el cuerpo del bucle se ejecutar por lo menos una vez.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD II: BUCLES (SENTENCIAS REPETITIVAS)
Sentencia FOR
Su sintaxis es:
for (inicializacin;condicin;incremento)
{ sentencia1; sentencia2;}
La inicializacin indica una variable (variable de control) que condiciona la
repeticin del bucle. Si hay ms, van separadas por comas:
for (a=1;a<10;a++)
{
}

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD II: ARREGLOS
Un array es un identificador que referencia un conjunto de datos del mismo tipo.
Imagina un tipo de dato int; podremos crear un conjunto de datos de ese tipo y
utilizar uno u otro con slo cambiar el ndice que lo referencia. El ndice ser un
valor entero y positivo. En C los arrays comienzan por la posicin 0.
Vectores
Un vector es un array unidimensional, es decir, slo utiliza un ndice para
referenciar a cada uno de los elementos. Su declaracin ser:
tipo nombre [tamao];
int muestras[127];
Matrices
Una matriz es un array multidimensional. Se definen igual que los vectores
excepto que se requiere un ndice por cada dimensin.
Su sintaxis es la siguiente: tipo nombre [tamao 1][tamao 2];
Una
matriz bidimensional se podra representar grficamente como una tabla con
filas y columnas.
char muestras[127][127];
Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD II: Interrupciones

Una interrupcin detiene la ejecucin normal de un programa para ejecutar las


operaciones especficas. Una lista de sentencias a ejecutar debe estar escrita
dentro de una funcin particular denominada interrupt(). La sintaxis de una
interrupcin en mikroC se parece a lo siguiente:
void interrupt() {
cnt++ ; // Al producirse una interrupcin la cnt se incrementa en 1
PIR1.TMR1IF = 0; // Poner a 0 el bit TMR1IF
}
OJO: Investigar fuentes de interrupciones.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I

TECLADO MATRICIAL 4X4


Los sistemas con microcontroladores tienen
como finalidad el proceso de datos.
Estos se obtienen de formas muy variadas,
puede ser de manera automtica por medio de
sensores que midan parmetros fsicos o de
manera manual, en cuyo caso tienen que ser
suministrados por los usuarios.
Para este ultimo caso se pueden usar
pulsadores cuando la informacin es muy
simple, o mediante teclados de mayor o menor
complejidad.
Los teclados matriciales, que sin duda son los
mas utilizados en la realizacin de proyectos
con microcontroladores.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I

UNIDAD 2

TECLADO MATRICIAL 4X4

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I

TECLADO MATRICIAL 4X4

Comando Usados para el manejo de Teclados Matriciales 4x4:


char keypadPort at PORTXXX;
keypadPort: Es la variable usada por la librera donde se asigna el puerto
donde estar conectado el teclado, para la librera usada las columnas en la
parte baja del puerto, y las filas en la parte alta del puerto.
Keypad_Init: Inicializa el puerto para trabajar con el teclado 4x4
Keypad_Key_Press: Lee el valor del teclado cuando la tecla es presionada
Kepad_Key_Click: Lee el valor del teclado cuando la tecla es presionada y
soltada, es decir cuando se le hace un click a la tecla.

Los valores que devuelven en la lectura van del 1 al 16, y cuando el valor es
cero , es porque no se ha presionado ninguna tecla.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD III: PANTALLAS LCD

Las pantallas de cristal lquido LCD o display LCD para mensajes (Liquid Cristal Display)
tienen la capacidad de mostrar cualquier carcter alfanumrico, permitiendo
representar la informacin que genera cualquier equipo electrnico de una forma fcil y
econmica.
La pantalla consta de una matriz de caracteres (normalmente de 5x7 o 5x8 puntos)
distribuidos en una, dos, tres o cuatro lneas de 16 hasta 40 caracteres cada lnea.
El proceso de visualizacin es gobernado por un microcontrolador incorporado a la
pantalla, siendo el Hitachi 44780 el modelo de controlador ms utilizado.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD III: PANTALLAS LCD

Las caractersticas generales de un mdulo LCD 16x2 son las siguientes:


Consumo muy reducido, del orden de 7.5mW
Pantalla de caracteres ASCII, adems de los caracteres japoneses
Kanji, caracteres griegos y smbolos matemticos.
Desplazamiento de los caracteres hacia la izquierda o a la derecha
Memoria de 40 caracteres por lnea de pantalla, visualizndose 16
caracteres por lnea
Movimiento del cursor y cambio de su aspecto
Permite que el usuario pueda programar 8 caracteres
Pueden ser gobernados de 2 formas principales:
Conexin con bus de 4 bits
Conexin con bus de 8 bits

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD III: PANTALLAS LCD

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD III: PANTALLAS LCD

El visualizador LCD dispone de tres bloques de memoria:


DDRAM Display Data RAM (RAM de datos de visualizacin)
CGRAM Character Generator RAM (generador de caracteres RAM)

CGROM Character Generator ROM (generador de caracteres ROM)

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD III: PANTALLAS LCD
Memoria DDRAM
La memoria DDRAM se utiliza para almacenar los caracteres a visualizar. Tiene una
capacidad de almacenar 80 caracteres. Algunas
localidades de memoria estn directamente conectadas a los caracteres en el
visualizador.
Todo funciona muy simple: basta con configurar el visualizador para incrementar
direcciones automticamente (desplazamiento a la derecha)
y establecer la direccin inicial para el mensaje que se va a visualizar (por ejemplo 00
hex).
Luego, todos los caracteres enviados por las lneas D0-D7 se van a visualizar en el
formato de mensaje al que nos hemos acostumbrado - de
la izquierda a la derecha. En este caso, la visualizacin empieza por el primer campo de
la primera lnea ya que la direccin inicial es 00hex.
Si se enva ms de 16 caracteres, todos se memorizarn, pero slo los primeros 16 sern
visibles. Para visualizar los dems, se debe utilizar
el comando shift. Virtualmente, parece como si el visualizador LCD fuera una ventana,
desplazndose de la izquierda a la derecha sobre las
localidades de memoria con diferentes caracteres. En realidad, as es cmo se cre el
efecto de desplazar los mensajes sobre la pantalla.
Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD III: PANTALLAS LCD
Memoria DDRAM

Si se habilita ver el cursor, aparecer en la localidad actualmente direccionada. En otras


palabras, si un carcter aparece en la posicin del
cursor, se va a mover automticamente a la siguiente localidad direccionada.
Esto es un tipo de memoria RAM as que los datos se pueden escribir en ella y leer de
ella, pero su contenido se pierde irrecuperablemente al
apagar la fuente de alimentacin.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD III: PANTALLAS LCD

Memoria CGROM
La memoria CGROM contiene un mapa
estndar de todos los caracteres que se
pueden visualizar en la pantalla. A cada
carcter se le asigna
una localidad de memoria:

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD III: PANTALLAS LCD

Memoria CGRAM
Adems de los caracteres estndar, el visualizador LCD puede visualizar smbolos
definidos por el usuario. Esto puede ser cualquier smbolo
de 5x8 pxeles. La memoria RAM denominada CGRAM de 64 bytes lo habilita.
Los registros de memoria son de 8 bits de anchura, pero slo se utilizan 5 bits ms
bajos. Un uno lgico (1) en cada registro representa un
punto oscurecido, mientras que 8 localidades agrupados representan un carcter. Esto
se muestra en la siguiente figura:

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD III: PANTALLAS LCD

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD III: PANTALLAS LCD

Modos de funcionamiento
El LCD tiene 3 modos de funcionamiento principales:
Modo Comando
Modo Carcter o Dato
Modo de lectura del Busy Flag o LCD Ocupada

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD III: PANTALLAS LCD
Conectar al visualizador LCD
-Dependiendo de cuntas lneas se utilizan para conectar un LCD al microcontrolador, hay
dos modos de LCD, el de 8 bits y el de 4 bits. El modo apropiado se selecciona en el inicio
del funcionamiento en el proceso denominado inicializacin.
-El modo de LCD de 8 bits utiliza los pines D0-D7 para transmitir los datos.
-El propsito principal del modo de LCD de 4 bits es de ahorrar los valiosos pines de E/S
del microcontrolador.
-Slo los 4 bits ms altos (D4-D7) se utilizan para la comunicacin, mientras que los
dems pueden quedarse desconectados.
-Cada dato se enva al LCD en dos pasos - primero se envan 4 bits ms altos
(normalmente por las lneas D4- D7), y luego los 4 bits ms bajos. La inicializacin habilita
que el LCD conecte e interprete los bits recibidos correctamente.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD III: PANTALLAS LCD

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD III: PANTALLAS LCD
Comandos en MikroPro
// Conexiones del mdulo LCD
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// Final de las conexiones del mdulo LCD
char *text; //definimos una variable llamada text en forma de puntero

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD III: PANTALLAS LCD
Comandos en MikroPro
void main() {
INTCON = 0; // Todas las interrupciones deshabilitadas
ANSEL = 0x00; //todos los pines como digitales
ANSELH=0x00;
text = "mikroElektronika"; //definir el primer mensaje
Lcd_Init();
Lcd_Cmd(_LCD_CLEAR); //Comando LCD (borrar el LCD)
Lcd_Out(1,1,text); // Escribir el primer mensaje en la primera lnea
text = "LCD ejemplo"; // Definir el segundo mensaje
Lcd_Out(2,1,text); //Escribir el primer mensaje en la segunda lnea
}

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD III: LISTA DE COMANDOS
Comando

Funcin

_LCD_FIRST_ROW

Mueve el cursor a la 1a. fila.

_LCD_SECOND_ROW

Mueve el cursor a la 2a. fila.

_LCD_THIRD_ROW

Mueve el cursor a la 3a. fila.

_LCD_FOURTH_ROW

Mueve el cursor a la 4a. fila.

_LCD_CLEAR

Limpia el display.

_LCD_RETURN_HOME

Regresa el cursor a la posicin 1,1. Los datos de la RAM no son


afectados.

_LCD_CURSOR_OFF

Apaga el cursor.

_LCD_UNDERLINE_ON

Coloca el caracter subrayado.

_LCD_BLINK_CURSOR_ON

Parpadeo del cursor.

_LCD_MOVE_CURSOR_LEFT

Mueve el cursor hacia la izquierda sin cambiar la RAM

_LCD_MOVE_CURSOR_RIGHT

Mueve el cursor hacia la derecha sin cambiar el contenido de la


RAM

_LCD_TURN_ON

Enciende el display

_LCD_TURN_OFF

Apaga el display

_LCD_SHIFT_LEFT

Mueve el display hacia la izquierda sin cambiar el contenido de la


RAM

_LCD_SHIFT_RIGHT

Mueve el display hacia la derecha sin cambiar el contenido de la


RAM

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD III: PANTALLAS LCD
Ejercicio
1) Disear el programa que inicialice un LCD, usando un bus de datos de 4 bits, y
a continuacin envi un mensaje de bienvenida. El mensaje debe desplazarse
hacia la izquierda en forma continua.
2) Programa que forme la palabra HOLA en un LCD, configurado para utilizar un
bus de 4 bits. Las letras deben desplazarse de derecha a izquierda. Primero debe
aparecer la H, movindose desde la derecha a la primer columna a la izquierda.
Enseguida debe aparecer la O, tambin saliendo de la derecha y terminando a la
derecha de la letra H. Lo mismo debe suceder para las letras L y A. El programa
debe ser cclico.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD III: PANTALLAS LCD

H O

HO

.
.
.

H O LA

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD III: PANTALLAS LCD

ByteToStr
Descripcion: Crea una cadena de salida de un pequeo numero sin signo (valor
numrico menos a 0x100). La cadena esta ajustada a un ancho de 3 caracteres;
Las posiciones a la izquierda que no se usan en la conversin se rellenan con
espacios.
void ByteToStr(unsigned short number, char *output);
Ejemplo:

unsigned short t = 24;


char txt[4];
//se inicializa un apuntador a 4 espacios
ByteToStr(t, txt); // txt es " 24" (un espacio en blanco)

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD III: PANTALLAS LCD

ShortToStr
Descripcin: Crea una cadena de salida de un numero pequeo con signo (valor
numrico menor a 0x100). La cadena esta ajustada a un ancho de 4 caracteres;
Las posiciones a la izquierda que no se usan en la conversin se rellenan con
espacios.
void ShortToStr(short number, char *output);
Ejemplo:
short t = -4;
char txt[5];

// Se inicializa un apuntador de 5

espacios
ShortToStr(t, txt); // txt es " -4" (dos espacio en blanco)

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD III: PANTALLAS LCD

WordToStr
Descripcin: Crea una cadena de salida de un numero sin signo (Valor numrico
de una variable unsigned). La cadena esta ajustada a un ancho de 5 caracteres;
Las posiciones a la izquierda que no se usan en la conversin se rellenan con
espacios.
void WordToStr(unsigned number, char *output);
Ejemplo:

unsigned t = 437;
char txt[6];
// Inicializa un apuntador con 6 espacios
WordToStr(t, txt); // txt es 437" (dos espacios vacios)

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD III: PANTALLAS LCD

IntToStr
Descripcin: Crea una cadena de salida de un numero con signo (Valor
numrico de una variable int). La cadena esta ajustada a un ancho de 6
caracteres; Las posiciones a la izquierda que no se usan en la conversin se
rellenan con espacios.
void IntToStr(int number, char *output);
Ejemplo:
int j = -4220;
char txt[7];

// Inicializa un apuntador con 6 espacios

IntToStr(j, txt); // txt es " -4220" (un espacio en blanco)

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD III: PANTALLAS LCD

LongToStr
Descripcin: Crea una cadena de salida de un numero con signo (Valor
numrico de una variable long). La cadena esta ajustada a un ancho de 11
caracteres; Las posiciones a la izquierda que no se usan en la conversin se
rellenan con espacios.
void LongToStr(Long number, char *output);
Ejemplo:
int j = -4220;
char *txt=
IntToStr(j, txt);

; // Inicializa un apuntador con 6 espacios


// txt es " -4220" (un espacio en

blanco)

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD III: PANTALLAS LCD

FloatToStr
Descripcin: Crea una cadena de salida de un numero de punto flotante. La
cadena contiene un formato normalizado de un numero (mantisa entre 0 y 1) con
signo en la primera posicin. La mantisa esta ajustada a un formato de 6 dgitos,
0.ddddd; Hay siempre 5 dgitos a continuacin del punto decimal.
void FloatToStr(float number, char *output);
Ejemplo:
float ff = -374.2;
char tx[15];
// Inicializa un apuntador con 14 espacios
FloatToStr(ff, txt); // txt es "-0.37420e3"

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL
Seal: Las seales pueden describir una amplia variedad de fenmenos fsicos, y
aunque puede representarse de muchas formas, en todos los casos la informacin en
una seal esta contenida en un patrn de variaciones que representa alguna forma
determinada.(Oppenheim).
Seal en tiempo continuo: Es aquella que se define sobre un intervalo continuo de
tiempo, la amplitud puede tener un intervalo continuo de valores , o solo un numero
finito de valores distintos (Ogata).
Seal Analgica: Caso especial de una seal en tiempo continuo. Magnitud elctrica,
cuya magnitud varia de forma continua con el tiempo(Ogata).
Seales Unipolares: Son seales que se miden de una terminal a otra, con tierra
flotante o puesta a tierra
Seales Bipolares: Son seales que aparecen entre dos terminales independientes de la
terminal de referencia, que a su vez puede o no estar conectada a tierra.
Seal Discreta: Seal definida solo en valores discretos de tiempo es decir cuando la
variable tiempo esta cuantificada. (Ogata).
Seal muestreada: Seal discreta con valores de amplitud continuos.
Seal Digital: Seal discreta con valores de amplitud cuantificados (valor binarios).

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL

Tipos de Seales segn sus terminales: a) Unipolar puesta a tierra. b)Unipolar flotante.
c)Unipolar con tensin en modo comn. d)Diferencial puesta a tierra. e)Diferencial
flotante. f) Diferencial con tensin en modo comn. g) Diferencial con tensin en modo
comn.

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL
1

0.5

0.5

-0.5

-0.5

-1
0

0.2

0.4

0.6

0.8

-1
0

0.2

0.4

0.6

0.8
x 10

x 10

1
0.5
0
-0.5
-1
0

0.2

0.4

1
-3

-3

0.6

0.8

1
-3

x 10

Seal analgica en tiempo contino, Seal cuantificada en tiempo continuo,


Seal en tiempo discreto o muestreada

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL

10
8
6
4
2
0
-2
-4
-6
-8
-10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1
x 10

Seal cuantificada en tiempo discreto o muestreada (seal digital)

-3

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL
Sistema de control por computador
El anlisis de estos sistemas se realiza mediante la transformada Z, mediante ecuaciones
de diferencias.

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL
Sistema de control por computador

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL
Sistema de adquisicin de datos

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL
Proceso de muestreo: El muestreo de seales en tiempo continuo reemplaza la seal en
tiempo continuo por una secuencia de valores en puntos discretos de tiempo. Se emplea
siempre que un sistema involucre un computador digital, puesto que son necesarias una
operacin de muestreo y una de cuantificacin y codificacin para ingresar datos al
sistema digital.

Una seal continua con espectro en frecuencia nulo fuera del intervalo [ es reconstruirle
totalmente si se la muestrea con una frecuencia (Teorema de Nyquist).
fm=2.BW
fm=frecuencia de muestreo
BW=Ancho de banda de la seal
tm=1/fm
tm=T/2
tm=tiempo de muestreo
T=periodo mas pequeo de la seal
Si fm<2.BW se produce lo que se conoce como aliasing ( se solapan de espectros)

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL
Espectro de una seal muestreada con fm>2.BW, y con fm<2.BW (aliasing).
Trasformada de Fourier

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL
Espectro de una seal muestreada con fm>2.BW, con fm=2.BW y con fm<2.BW
(aliasing). Trasformada de Fourier .

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL
El proceso de cuantificacin : consiste en reemplazar la amplitud analgica muestreada
por un valor digital (valor discreto). Este se realiza con un convertidor analgico digital
(ADC).
Si el convertidor es de n bits, existe 2^n valores o estados posibles, por
ejemplo un convertidor de 4 bits tendr a la salida 2^4, o 16 valores posibles, si por
ejemplo es de 8bits tiene 256 valores, y si es de 12 bits tendr 4096 combinaciones, por
tanto la cantidad en bits de salida del convertidor define la resolucin del mismo.
Existen varios tipos de cuantificacin:
-Cuantificacin uniforme
-Cuantificacin logartmica
-Cuantificacin no uniforme
-Cuantificacin vectorial

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL
El proceso de cuantificacin
Esta funcin cuantificadora tiene algunas caractersticas importantes:
- Su resolucin, que es el nmero de estados de salida expresados en bits (en este caso,
3bits).
- Los niveles de decisin analgica o niveles de umbral; en el caso de la figura , los
valores de 0.625, 1.875, 3.125, 4.375, 5.625 y 8.125. Hay 2n -1 puntos de decisin
analgica.
- Los niveles de decisin estn colocados a medio camino entre el centro de los puntos
de las palabras del cdigo y que en el caso de la figura corresponden a los valores de
tensin 1.25, 2.50, 3.75, 5.00, 6.25, 7.50 y 8.75 V.
Intervalo de cuantificaciones es :

FSR=Intervalo a escala completa.(Margen de entrada)


n= numero de bits
Error de cuantificacin es Q va desde Q/2 a Q/2.
Ruido de cuantificacin (tipo de ruido blanco): es la incertidumbre presente en proceso
de cuantificacin (error de redondeo)

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL
Relacin seal a ruido de cuantificacin (SQNR).

Potencia del error de cuantificacin:

Potencia de una seal sinusoidal:

Relacin seal a ruido de cuantificacin (SQNR)


= , . + ,
Donde n= numero de bits

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL
Ejemplo: Para medir una temperatura que esta entre 0 y 100 C, se dispone de un sensor
con una sensibilidad de 10mV/ C,\. Si se desea una resolucin de 0,1 C y una salida
digital, determinar el margen de entrada y el numero de bits de ADC.
El intervalo a escala completa de la temperatura seria:
100 C*10mV/ C=1V
Por tanto el intervalo a escala completa (margen de entrada) seria : 0 a 1V.
Una variacin de 0,1 C en el sensor implica una variacin en la entrada de 1mV, siendo
este el valor del intervalo de cuantificacin Q= 1mV

=
=
=

Como el valor de n es un entero se tiene lo siguiente


Si n=9 se obtiene 512
Si n=10 se obtiene 1024
Por tanto n debe ser igual a 10bits.
Manteniendo el mismo valor de Q=1mV, el margen de entrada debera ser
= . = . , = ,

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL
Convertidores Digital-Analgico (DAC): tambin denominado decodificador, Es un
dispositivo que convierte una seal digital en una seal analgica.
Parmetros bsicos a considerar:
-Numero de canales
-Cdigo de entrada
-Niveles de tensin a la entrada
-Formato de la entrada (Serie o paralelo)
-Margen de tensiones o corrientes de salida
-Resolucin(numero de bits)
-Exactitud
-Velocidad: tiempo de establecimiento
Tipos o mtodos de un convertidor Digital-Analgico (DAC):
-Resistores ponderados
-Red escalera de resistencias
-Logartmicos

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL
Convertidor Digital-Analgico (DAC): Resistores ponderados y red R-2R (DAC0830)

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL

Convertidores Analgicos-Digital (ADC):


Es un dispositivo que convierte una seal analgica en una seal digital, usualmente
codificada numricamente. Con frecuencia un circuito muestreo y retencin es una parte
integral de un ADC disponible comercialmente.

Muestreador- retenedor (Sample and hold): Es el termino que se utiliza para un


amplificador de muestreo y retencin, circuito que recibe como entrada una seal
analgica y mantiene dicha seal en un valor constante durante un tiempo especifico

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL
Caractersticas de los Convertidores Analgicos-Digital (ADC).
-Numero de canales
-Tipo de canales (unipolares o diferenciales)
-Margen de tensin de entrada
-resolucin (En numero de bits)
-Exactitud
-Tensin de referencia necesaria
-Velocidad: frecuencia de conversin
-Formato de la seal de salida (Binario, complemento a dos,,,)
-Control de la conversin (interrupciones , verificacin de estados)
-Funciones adicionales a la entrada (muestreo, multiplexado, ganancia programable,
entradas de bajo nivel)
-Funciones adicionales a la salida(cerrojos)
-Condiciones ambientales

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL
Clasificacin de los Convertidores Analgicos-Digital (ADC).
Convertidores A/D directos
-Sin realimentacin (Paralelos flash)
-Con realimentacin (bit a bit: aproximaciones sucesivas, no bit a bit: tipo servo tracking)
Convertidores A/D indirectos
-Sin realimentacin : por intervalo de tiempo( rampa simple, doble rampa, triple rampa),
por frecuencia(Convertidos V/F VCO)
-Con realimentacin

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL
Paralelos flash

Tipo contador

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL
Aproximaciones sucesivas

Doble rampa

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL
Circuitos de muestreo y retencin
(Sample & hold)

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL

De los recursos contenidos en el PIC16F88X, quiz el convertidor Analgico-Digital sea


del que ms aplicaciones estamos acostumbrados a ver en nuestra vida diaria. Sensores
de temperatura, luz, humedad, humo..., son valores que nos interesa monitorizar pero
que necesitan ser traducidos para ser entendidos por el sistema de control, labor que
realizan los convertidores Analgico-Digital. La tarea de conversin es siempre igual, sea
cual sea el sensor utilizado.
Los PIC16F887 poseen un mdulo ADC interno que les permite manejar 14 entradas

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL

CARACTERSTICAS
- 14 canales canales multiplexado.
- Procesa seales analgicas y trabaja con la tcnica de aproximaciones sucesivas
- 10 bit de resolucin con
=

(+) ()

= / .

= (+) ()

= ;

-El voltaje diferencial mnimo es de 2 V


Para su funcionamiento requiere la manipulacin de 6 registros
1. ADRESH. Parte alta del resultado de la conversin.
2. ADRESL. Parte baja del resultado de la conversin.
3. ADCON0. Registro de Control 0.
4. ADCON1. Registro de Control 1.
5. ANSEL Configuracin de canales 0-7
Prof. Ing. Felix Sirit
6. ANSELH Configuracin de canales 8-13

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL
Para llevar a cabo una conversin A/D sin problemas as como para evitar los resultados
inesperados, es necesario considerar lo siguiente:
El convertidor A/D no hace diferencia entre seales digitales y analgicas. Para evitar
errores en medicin o daar el chip, los pines se deben configurar como entradas
analgicas antes de que empiece el proceso de conversin. Los bits utiliza dos para
este propsito se almacenan en los registros TRIS y ANSEL (ANSELH);
Al leer el estado de puerto con las entradas analgicas, el estado de los bits
correspondientes se leer como cero lgico (0), sin reparar en el valor del voltaje real
en el pin;
Hablando en trminos generales, la medicin de voltaje en el convertidor est basado
en comparar voltaje de entrada con una escala interna que tiene 1023 grados (2^10 1 =1023). El grado ms bajo de esta escala representa el voltaje Vref-, mientras que el
grado ms alto se refiere al voltaje Vref+. La siguiente figura muestra los voltajes de
referencia seleccionables as como sus valores mximos y mnimos.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL

unsigned int temp_res;


void main() {
ANSEL = 0x04; // Configurar AN2 como pin analgico
TRISA = 0xFF; // PORTA se configura como entrada
ANSELH = 0; // Configurar los dems pines AN como E/S digitales
TRISC = 0x3F; // Pines RC7 y RC6 se configuran como salidas
TRISB = 0; // PORTB se configura como salida
do {
temp_res = ADC_Read(2); // Obtener el resultado de 10 bits de la conversin AD
Delay_ms(1);
PORTB = temp_res; // Enviar los 8 bits ms bajos al PORTB
PORTC = temp_res >> 2; // Enviar los 2 bits ms significativos a los RC7, RC6
} while(1); // Quedarse en el bucle
}

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL

ADFM - A/D Result Format Select bit (bit de seleccin del formato del resultado de la
conversin A/D)
1 - Resultado de conversin est justificado a la derecha. No se utilizan los seis bits ms
significativos del registro ADRESH.
0 - Resultado de conversin est justificado a la izquierda. No se utilizan los seis bits
menos significativos del registro ADRESL.
VCFG1 - Voltage Reference bit (bit de configuracin de voltaje de referencia) selecciona
la fuente de voltaje de referencia bajo que se necesita para el funcionamiento del
convertidor A/D.
1 - Voltaje de referencia bajo se aplica al pin Vref0 - Voltaje de alimentacin Vss se utiliza como una fuente de voltaje de referencia bajo.
VCFG0 - Voltage Reference bit (bit de configuracin de voltaje de referencia) selecciona
la fuente de voltaje de referencia alto que se necesita para el funcionamiento del
convertidor A/D.
1 - Voltaje de referencia alto se aplica al pin Vref+.
0 - Voltaje de alimentacin Vdd se utiliza como una fuente de voltaje
de referencia
Prof. Ing.
Felix Sirit alto.

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL
Para medir el voltaje en un pin de entrada por medio del convertidor A/D, se debe
realizar lo siguiente:
Paso 1 - Configuracin del puerto:
Escribir un uno lgico (1) a un bit del registro TRIS, lo que resulta en configurar el pin
apropiado como una entrada.
Escribir un uno lgico (1) a un bit del registro ANSEL, lo que resulta en configurar el pin
apropiado como una entrada
analgica.
Paso 2 - Configuracin del mdulo de la conversin A/D:
Configurar voltaje de referencia en el registro ADCON1.
Seleccionar una seal de reloj de la conversin A/D en el registro ADCON0.
Seleccionar uno de los canales de entrada CH0-CH13 del registro ADCON0.
Seleccionar el formato de dato por medio de ADFM del registro ADCON1.
Habilitar el convertidor A/D al poner a uno el bit ADON del registro ADCON0.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL

Paso 3 - Configuracin de la interrupcin (opcionalmente):


Poner a cero el bit ADIF.
Poner a uno los bits ADIE, PEIE y GIE.
Paso 4 - Tiempo de espera para que transcurra el tiempo de adquisicin
(aproximadamente 20uS).
Paso 5 - Inicio de la conversin poniendo a uno el bit GO/DONE del registro ADCON0.
Paso 6 - Esperar a que la conversin A/D finalice.
Es necesario comprobar en el bucle de programa si el bit GO/DONE est a cero o esperar
que se produzca una interrupcin (deber estar anteriormente habilitada).
Paso 7 - Lectura del resultado de la conversin A/D:
Leer los registros ADRESH y ADRESL.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL

REQUERIMIENTOS DE ADQUISICIN A/D

Para que el convertidor A/D alcance su exactitud especificada, es necesario proporcionar


un cierto tiempo muerto entre seleccionar una entrada analgica especfica y la
medicin misma. Este tiempo se le denomina tiempo de adquisicin y generalmente
depende de la impedancia de la fuente. Se utiliza una ecuacin para hacer clculo de
tiempo de adquisicin con precisin, cuyo valor mnimo es de 20uS
aproximadamente. Por consiguiente, para realizar una conversin con precisin, no se
olvide este detalle.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL

Reloj para la conversin:


-Existe un periodo de conversin por bit TAD. Para completar una conversin deben
pasar 12 TAD.
-Hay 4 posibles formas de definir el valor del conversor TAD (ADCS1:ADCS0):
2Tosc; 8Tosc; 32Tosc; RC interno.
-TAD debe elegirse para que tenga un valor entre: 1.6us y 6us.

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL

Tiempo para la conversin:

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL

Tiempo para la conversin:

= + +

= ,

= ( )/(, / )
= ,

= . + + . (/)

= , =
Ejemplo si RS=10k Ohm y t=50Grados C
= . + + . , = ,
= + , + , = ,

Tiempo total sera:


= +
Si tomamos el ejemplo con TAD=1,6uS nos dara tiempo de muestreo Tm=23,87uS
Lo cual nos dara una frecuencia de muestreo mxima de fm=41,89Khz

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL

Tiempo para la conversin:

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL

Ejemplo: Desarrollar un Voltmetro Digital con un PIC16F887, con un rango de 0 a 5V,


con una resolucin de 0,1V.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD IV: CONVERSION ANALOGICA A DIGITAL

Ejemplo: Desarrollar un termmetro Digital, empleando un sensor LM35 con una


rango de 0 a 100 C no menor a 100 C, una resolucin de 0,1 C

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL

Algunos de los sistemas microcontrolados almacenan datos que en ciertas


ocasiones son tomados por otros sistemas para el estudio y anlisis de dichos datos.
El puerto serial de las computadoras es conocido como puerto RS-232, la
ventaja de este puerto es que todas las computadoras traen al menos un puerto serial,
este permite la comunicaciones entre otros dispositivos tales como otra computadora,
el mouse, impresora y para nuestro caso con los microcontroladores.
Existen dos formas de intercambiar informacin binaria: En paralelo y en serial.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL

Comunicacin en Paralelo

Comunicacin Serial

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL

La comunicacin paralela transmite todos los bits de un dato de manera simultnea,


por lo tanto la velocidad de transferencia es rpida, sin embargo tiene la desventaja
de utilizar una gran cantidad de lneas, por lo tanto se vuelve mas costoso y tiene las
desventaja de atenuarse a grandes distancias, por la capacitancia entre conductores.
En Comunicacin Serial se utilizan un solo hilo para llevar la informacin , pero se
realiza en forma secuencial enviando bit a bit de cada palabra de informacin
binaria.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL

Tipos de Comunicaciones Seriales:


Existen dos tipos de comunicaciones seriales: la sncrona y asncrona
En la comunicacin serial sincrona adems de una lnea sobre la cual se
transmitirn los datos se necesita de una lnea la cual contendr los pulsos de reloj
que indicaran cuando un datos es valido.
Ejemplos de comunicacin serial sincrona :
I2C
ONE WIRE
SPI

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL

En la comunicacin serial asncrona, no son necesarios los pulsos


de reloj.
La duracin de cada bit esta determinada por la velocidad con la cual
se realiza la transferencia de datos (Baudios; bits por segundos).
La siguiente figura muestra la estructura de una carcter que setrasmite en forma
serial asncrona.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL

Normalmente cuando no se realiza ninguna transferencia de datos, la


lnea del transmisor se encuentra en esto de (idle) este quiere
decir en estado alto.
Para iniciar la transmisin de datos , el transmisor coloca esta lnea en
bajo durante determinado tiempo, lo cual se le conoce como bit
de arranque (start bit) y a continuacin empieza a transmitir con un intervalo de
tiempo los bits correspondientes al dato, empezando siempre por el BIT menos
significativo (LSB), y terminando con el BIT mas significativo.
Si el receptor no esta sincronizado con el transmisor, este desconoce
cuando se van a recibir los datos.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL

El USART es uno de los primeros sistemas de comunicacin serie. Las


versiones nuevas de este sistema estn actualizadas y se les
denomina un poco diferente - EUSART.
EUSART
El mdulo Transmisor/Receptor Universal Sncrono/Asncrono mejorado
(Enhanced Universal Synchronous Asynchronous Receiver Transmitter -EUSART)
es un perifrico de comunicacin serie de entrada/salida. Asimismo es conocido
como Interfaz de comunicacin serie (Serial Communications Interface - SCI).

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL

Este perifrico incorporado en los PIC16F887 contiene todos los


generadores de seales de reloj, registros de desplazamiento y bfers de datos
necesarios para realizar transmisin de datos serie de entrada/salida,
independientemente de la ejecucin de programa del dispositivo. Como indica su
nombre, aparte de utilizar el reloj para la sincronizacin, este mdulo puede
establecer la conexin asncrona, lo que lo hace nico para algunas aplicaciones.
Por ejemplo, en caso de que sea difcil o imposible proporcionar canales
especiales para transmisin y recepcin de datos y seales de reloj (por ejemplo,
mando a distancia de radio o infrarrojas), el mdulo EUSART es definitivamente
la mejor opcin posible.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL

El EUSART integrado en el PIC16F887 posee las siguientes


caractersticas:
Transmisin y recepcin asncrona en modo Full-duplex;
Caracteres de anchura de 8 9 bits programables;
Deteccin de direccin en modo de 9 bits;
Deteccin de errores por saturacin del bfer de entrada; y
Comunicacin Half Duplex en modo sncrono.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL

EUSART EN MODO ASNCRONO


El EUSART transmite y recibe los datos utilizando la codificacin de no
retorno a cero - NRZ (non-return-to-zero). Como se muestra en la
siguiente figura, no se utiliza una seal de reloj y los datos se transmiten de
forma muy simple:
Cada dato se transmite de la siguiente forma:
En estado inactivo la lnea de datos permanece en estado alto (1);
Cada transmisin de datos comienza con un bit de arranque (START), el cual,
siempre es cero (0);
Cada dato tiene un ancho de 8 o 9 bits (primero se transmite el bit menos
significativo - LSB); y
Cada transmisin de datos termina con un bit de parada (STOP), el cual,
siempre es uno (1) La siguiente figura muestra cmo conectar de manera
habitual un microcontrolador PIC que utiliza el mdulo EUSART. El circuito
RS-232 se utiliza como un convertidor de nivel de voltaje.

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL
Niveles lgicos RS232 y TTL

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL
EUSART EN MODO DE TRANSMISOR ASNCRONO

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL
EUSART EN MODO DE RECEPTOR ASNCRONO

Prof. Ing. Felix Sirit

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL
/* En este ejemplo, el mdulo EUSART interno se inicializa y se ajusta para enviar
elmensaje inmediatamente despus de recibirlo. La velocidad de transmisin en
baudios se ajusta a 9600 bps. El programa utiliza las siguientes rutinas de librera
UART:UART1_init(), UART1_Write_Text(), UART1_Data_Ready(), UART1_Write() y
UART1_Read().*/
char dato;
void main() {
ANSEL = ANSELH = 0; // Todos los pines se configuran como digitales
C1ON_bit = C2ON_bit = 0; // Deshabilitar los comparadores
UART1_Init(9600); // Inicializar el mdulo UART a 9600 bps
Delay_ms(100); // Esperar a que seal de reloj del mdulo UART se ponga
estable
UART1_Write_Text("Start");
while (1) { // Bucle infinito
if (UART1_Data_Ready()) { // Si el dato se ha recibido,
dato = UART1_Read(); // lea el dato recibido
UART1_Write(uart_rd); // y envelo atrs por el UART
}
}
Prof. Ing. Felix Sirit
}

MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL

En la comunicacin serial asncrona, no son necesarios los pulsos


de reloj.
La duracin de cada bit esta determinada por la velocidad con la cual
se realiza la transferencia de datos (Baudios; bits por segundos).
La siguiente figura muestra la estructura de una carcter que setrasmite en forma
serial asncrona.

Prof. Ing. Felix Sirit

Você também pode gostar