Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Universidad de Guanajuato
FIMEE
Barrón Zambrano José Hugo
Dr. Gustavo Cerda Villafaña
Índice general
Índice de figuras IV
1. Introducción 1
1.1. Controlador y microcontrolador . . . . . . . . . . . . . . . . . 1
1.2. Diferencia entre microprocesador y microcontrolador . . . . . 2
1.3. Aplicaciones de los microcontroladores . . . . . . . . . . . . . 4
1.4. El mercado de los microcontroladores . . . . . . . . . . . . . . 4
1.5. ¿Qué microcontrolador emplear? . . . . . . . . . . . . . . . . . 5
1.6. Recursos comunes a todos los microcontroladores . . . . . . . 8
1.6.1. Arquitectura básica . . . . . . . . . . . . . . . . . . . . 8
1.6.2. El procesador o CPU . . . . . . . . . . . . . . . . . . . 9
1.6.3. Memoria . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6.4. Puertas de Entrada y Salida . . . . . . . . . . . . . . . 12
1.6.5. Reloj principal . . . . . . . . . . . . . . . . . . . . . . 12
1.7. Recursos especiales . . . . . . . . . . . . . . . . . . . . . . . . 13
1.7.1. Temporizadores o Timers . . . . . . . . . . . . . . . . . 13
1.7.2. Perro guardián o Watchdog . . . . . . . . . . . . . . . 14
1.7.3. Protección ante fallo de alimentación o Brownout . . . 14
1.7.4. Estado de reposo ó de bajo consumo . . . . . . . . . . 14
1.7.5. Conversor A/D (CAD) . . . . . . . . . . . . . . . . . . 14
1.7.6. Conversor D/A (CDA) . . . . . . . . . . . . . . . . . . 15
1.7.7. Comparador analógico . . . . . . . . . . . . . . . . . . 15
1.7.8. Modulador de anchura de pulso o PWM . . . . . . . . 15
1.7.9. Puertos de E/S digitales . . . . . . . . . . . . . . . . . 15
1.7.10. Puertos de comunicación . . . . . . . . . . . . . . . . . 16
1.8. Herramientas para el desarrollo de aplicaciones . . . . . . . . . 16
I
ÍNDICE GENERAL II
2. Introducción al PIC16F873 19
2.1. Descripción del PIC16F873 . . . . . . . . . . . . . . . . . . . . 19
2.2. Encapsulado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3. Organización de memoria . . . . . . . . . . . . . . . . . . . . . 21
2.3.1. Memoria de Datos (RAM) . . . . . . . . . . . . . . . . 21
2.4. Puertos de Entrada/Salida . . . . . . . . . . . . . . . . . . . . 23
2.4.1. PUERTO A y el Registro TRISA . . . . . . . . . . . . 23
2.4.2. PUERTO B y el Registro TRISB . . . . . . . . . . . . 23
2.4.3. PUERTO C y el Registro TRISC . . . . . . . . . . . . 23
2.5. Ejemplo de configuración para E/S . . . . . . . . . . . . . . . 24
3. Algoritmos implementados 26
3.1. Control de velocidad . . . . . . . . . . . . . . . . . . . . . . . 26
3.1.1. Driver L293D . . . . . . . . . . . . . . . . . . . . . . . 27
3.1.2. Programa para control de velocidad . . . . . . . . . . . 30
3.1.3. Diagrama de implementación . . . . . . . . . . . . . . 32
3.2. Medidor de distancia con un sensor infrarrojo . . . . . . . . . 33
3.2.1. Convertidor Analógico-Digital . . . . . . . . . . . . . . 33
3.2.2. Sensor infrarrojo GP2D12. . . . . . . . . . . . . . . . . 37
3.2.3. Programa para la medición de distancia . . . . . . . . 39
3.3. Implementación . . . . . . . . . . . . . . . . . . . . . . . . . . 41
III
Índice de figuras
IV
Capı́tulo 1
Introducción
1
1.2. Diferencia entre microprocesador y microcontrolador 2
UCP está formada por la Unidad de Control, que interpreta las instrucciones,
y el Camino de Datos, que las ejecuta. Las patitas de un microprocesador
sacan al exterior las lı́neas de sus buses de direcciones, datos y control, para
permitir conectarle con la Memoria y los Módulos de E/S y configurar una
computadora implementada por varios circuitos integrados. Se dice que un
microprocesador es un sistema abierto porque su configuración es variable de
acuerdo con la aplicación a la que se destine. (Figura 1.1)
cientos de microcontroladores por cada uno de aquéllos. Existe una gran di-
versidad de microcontroladores. Quizá la clasificación más importante sea
entre microcontroladores de 4, 8, 16 ó 32 bits. Aunque las prestaciones de
los microcontroladores de 16 y 32 bits son superiores a los de 4 y 8 bits, la
realidad es que los microcontroladores de 8 bits dominan el mercado y los
de 4 bits se resisten a desaparecer. La razón de esta tendencia es que los
microcontroladores de 4 y 8 bits son apropiados para la gran mayorı́a de
las aplicaciones, lo que hace absurdo emplear micros más potentes y conse-
cuentemente más caros.
Uno de los sectores que más tira del mercado del microcontrolador es el
mercado automovilı́stico. De hecho, algunas de las familias de microcontro-
ladores actuales se desarrollaron pensando en este sector, siendo modificadas
posteriormente para adaptarse a sistemas más genéricos. El mercado del au-
tomóvil es además uno de los más exigentes: los componentes electrónicos
deben operar bajo condiciones extremas de vibraciones, choques, ruido, etc.
y seguir siendo fiables. El fallo de cualquier componente en un automóvil
puede ser el origen de un accidente.
1.6.3. Memoria
En los microcontroladores la memoria de instrucciones y datos está in-
tegrada en el propio chip. Una parte debe ser no volátil, tipo ROM, y se
destina a contener el programa de instrucciones que gobierna la aplicación.
Otra parte de memoria será tipo RAM, volátil, y se destina a guardar las
variables y los datos.
ROM: con máscara Es una memoria no volátil de sólo lectura cuyo con-
tenido se graba durante la fabricación del chip. El elevado costo del
diseño de la máscara sólo hace aconsejable el empleo de los micro-
controladores con este tipo de memoria cuando se precisan cantidades
superiores a varios miles de unidades.
Las memorias EEPROM y FLASH son muy útiles al permitir que los mi-
crocontroladores que las incorporan puedan ser reprogramados en circuito,
es decir, sin tener que sacar el circuito integrado de la tarjeta. Ası́, un dis-
positivo con este tipo de memoria incorporado al control del motor de un
automóvil permite que pueda modificarse el programa durante la rutina de
mantenimiento periódico, compensando los desgastes y otros factores tales
como la compresión, la instalación de nuevas piezas, etc. La reprogramación
del microcontrolador puede convertirse en una labor rutinaria dentro de la
puesta a punto.
Temporizadores o ”Timers”.
Comparador analógico.
Puertos de comunicación.
USB: (Universal Serial Bus), que es un moderno bus serie para las PC.
Bus I2C: que es un interfaz serie de dos hilos desarrollado por Philips.
Introducción al PIC16F873
Por lo que el PIC es muy útil para para el desarrollo de diferentes apli-
19
2.2. Encapsulado 20
2.2. Encapsulado
El PIC16F873 se presenta en un encapsulado de 28 pines como se ve en
la Figura 2.1 y la descripción de cada pin se muestran en el cuadro 2.2.
P1:RP0 Banco
00 0
01 1
10 2
11 3
Cada banco se extiende hasta la dirección 7Fh (128 bytes). La parte baja
de cada banco es reservada para los Registros de Funciones Especiales. Los
Registro de Propósito General pueden ser accesados cada uno directamente,
o indirectamente.
Además, algunos pines E/S de los puertos son multiplexados a una fun-
ciona alternativa de caracterı́sticas periféricas. En general, cuando una fun-
ción de estas es habilitada, ese pin tal vez no pueda ser usado como un pin
de propósito de E/S.
ORG 0
goto inicio ;Salto al vector de interrupción
ORG 5
;Inicio de programa
clrf PUERToB ;Todo a pagado
CICLO movf PUERTOA,w ;Lleva lo del puerto A a W
movwf PUERTOB ;Lleva W al puerto B
goto CICLO
END ;Fin del programa
Algoritmos implementados
Ası́, mientras el pulso sea más ancho, la velocidad del motor será más
rápida y en cambio se el ancho del pulso es más pequeño la velocidad dis-
minuira.
26
3.1. Control de velocidad 27
EL L293D esta limitado a 600 mA, pero se recomienda para motores con
menor demanda de corriente, sino no se quiere tener problema con el calen-
tamiento del driver. Además, como se ve en la Figura cuenta con unos diodos
para minimizar picos inducidos de voltaje. Este dispositivo se recomienda
para aplicaciones donde la velocidad de switcheo no es mayor a 5 KHz.
Los ocho bits de entrada del puerto B, indican el tiempo que durara el
ciclo de trabajo o el ancho de pulso, por ejemplo, si se quiere que el ciclo de
trabajo o el ancho de pulso sea del 50 % se coloca en el puerto B la palabra
80h (10000000b ) y por lo tanto el motor girará de manera constante a una
velocidad dada. En cambio si se quire que el motor ofrezca su máxima ve-
locidad se coloca la palabra FFh.
PUERTOA EQU 05
PUERTOB EQU 06
ESTADO EQU 03
;********Variables auxiliares para el retardo*************
AUX1 EQU 0F
AUX2 EQU 0E
AUX3 EQU 0C
ORG 0
goto inicio
ORG 5
;***************Configuración de Entradas/Salidas**************
;**************Programa principal*******************************
clrf PUERTOA ;Todo apagado en el puerto A
ciclo movf PUERTOB,w ;Mueve lo del puerto de entrada a W
movwf AUX2 ;Mueve w a la dirección de memoria que
;apunta AUX2 (0Eh)
;********Cálculo de tiempo que durará en bajo la se~
nal******
sublw 0x0FF ;Resta el valor de entrada a FFh y se
;guarda en w
movwf AUX3 ;se mueve el resultado de la resta a la
;dirección que apunta AUX3 (0Ch)
;***********************************************************
movf AUX2,w
addlw 0X01
movwf AUX2
decfsz AUX2,f
goto uno
goto cero
;**********************************************************
uno movlw 0x01 ;Lleva el valor 01h a W
movwf PUERTOA ;Lleva W al puerto A
call retardo ;Llamado de el divisor de frecuencia
decfsz AUX2,f ;Se decrementa AUX2 y se deposita en
;ella misma y si llega a cero cambia
;la salida a 00h
goto uno ;si no es cero se repite
cero movlw 0x00 ;Lleva el valor 00h a W
movwf PUERTOA ;Lleva W al puerto A
call retardo ;Llamado de el divisor de frecuencia
decfsz AUX3,f ;Se decrementa AUX3 y se deposita en
;ella misma y si llega a cero
;salta a la ultima instrucción
;***************Rutina de retardo*****************************
retardo
movlw 0x90
movwf AUX1 ;se lleva este valor también a AUX2
one decfsz AUX1,f ;Se decrementa AUX1 y se deposita en
;ella misma
goto one ;si llega a cero sale e la rutina
return ;Una vez completados los ciclos se regresa
;al programa principal
END ;Fin del programa
registros son:
3. Iniciar conversion
2TOSC
8TOSC
32TOSC
Internal RC oscillator
control ADFM.
ORG 0
goto inicio ;Salto al vector de interrupción
ORG 5
END
3.3. Implementación
El diagrama de la implementación para este diseño se muestra e la Figura
3.11.