MPLAB IDE
PROGRAMACIÓN DE MICROCONTROLADORES
Laboratorio N°7
Programación y simulación del APLICATIVO 1
INFORME
Integrantes:
Apellidos y Nombres Sección Grupo
Delgado Muñoz, Sofía C
Misari Silvestre, Reybin C
Docente: Ing. Carlos E. Mendiola Mogollón
Fecha de realización: 19/03/21
Fecha de entrega: 23/04/21
TECSUP 2021
Lima – Perú
Instructor: Ing. Carlos E. Mendiola Mogollón 1
MPLAB IDE
I. Índice
II. Introducción: ......................................................................................................................... 3
III. Objetivos: .......................................................................................................................... 3
IV. Materiales y equipos: ........................................................................................................ 3
V. Marco Teórico: ...................................................................................................................... 3
VI. Procedimiento: .................................................................................................................. 4
VII. Aplicación: ......................................................................................................................... 9
VIII. Observaciones: ................................................................................................................ 12
IX. Conclusiones: .................................................................................................................. 13
X. Bibliografía: ......................................................................................................................... 13
Instructor: Ing. Carlos E. Mendiola Mogollón 2
MPLAB IDE
II. Introducción:
En el presente laboratorio se comentará, analizará y aplicará el funcionamiento de un
ADC, en ejercicios simples y cortos con la ayuda de rutinas para simplificar la
programación para logar comprender el objetivo del uso e importancia de un ADC.
III. Objetivos:
Uso de ADC de 8 bits y 10 bits en un microcontrolador PIC16F877A.
Uso de rutinas y macros para la simplificación de la programación
IV. Materiales y equipos:
Pc + internet
Software MPLAB IDE
Software Proteus V8.1
V. Marco Teórico:
El Microcontrolador PIC16F877A tiene un conversor análogo a digital con 10bits de
resolución, quiere decir que cada valor que representemos será visualizado a través de
10bits. Los bits menos significativos es el mínimo valor que nosotros podamos encontrar
en el conversor análogo a digital. El mínimo valor o conversión que vamos a tener es 0 el
cual va a estar representado por en binario por 0000000000. El PIC16F877A tiene una
distribución de entradas analógicas a través de los Puertos A y Puerto E del
microcontrolador. El pin RA4 no se encuentra incluido dentro del conversor análogo a
digital, esto se debe a que este es utilizado por el timer 0 para el contador de eventos o el
temporizador. Los pines RA2 Y RA3 son los que corresponden a las tensiones de
referencia en caso se tengan dichas tensiones de referencias externas, también se puede
usar como tensiones de referencia las tensiones de alimentación en este caso sería 5v y
0v.
Instructor: Ing. Carlos E. Mendiola Mogollón 3
MPLAB IDE
VI. Procedimiento:
Ejercicio 1:
Fig. Nº01. Conversión ADC de 8 bits
Fig. Nº1.1 Ensamble del Ejercicio 1
Instructor: Ing. Carlos E. Mendiola Mogollón 4
MPLAB IDE
Como se muestra en la figura 1, es la conversión de una señal analógica (tensión) a una
digital de 8 bits, en este caso se aplicado de 0 a 5V y obtendremos un número binario
dependiendo de la tensión, en este caso se usó un potenciómetro para variar la tensión.
Fig. Nº1.2 Simulación en Proteus de 8 bits.
Como se observa en la figura 1.1 que en este caso estamos usando el canal 0 para la
entrada de tensión y con la ayuda de un potenciómetro para variar. En este caso se usó
una tensión de 3.35 V y logramos observar que el número binario obtenido es 171.
Para verificar el valor obtenido podemos usar la siguiente fórmula, pero es necesario la
resolución.
𝑉𝑚𝑎𝑥 − 𝑉𝑚𝑖𝑛
𝑅=
2𝑥 − 1
8 bits = 19.6mV
3.35
Vbin =19.6 = 𝟏𝟕𝟏
Posteriormente responderemos las siguientes preguntas de la guía:
Preguntas:
1. ¿Qué sucede en el ADC?
En el ADC tiene una programación para la conversión analógico a digital por
uan tensión de 0 – 5V.
Instructor: Ing. Carlos E. Mendiola Mogollón 5
MPLAB IDE
2. ¿En qué consiste el primer programa?
Es la conversión de 0 a 5V mediante una regulación de tensión mediante un
potenciómetro, además es una conversión de 8 bits. Por lo cual en la salida en
este caso va ser un numero binario máximo de 256 números y como mínimo
0.
3. ¿Cuál es la fórmula que nos indica la resolución del ADC de 8bits?
5𝑉−0𝑉
R= =19.6 mV
28 −1
4. ¿Para un voltaje 2,8V; de cuánto es la conversión binaria?
2.8/19.6 = 142.85 = 143
5. ¿Por qué utilizamos el puerto B?
En si, se puede usar incluso el puerto C pero en este caso se usó el puerto B
para la salida en número binario dependiendo de la tensión
6. Explicar brevemente la función de la librería [Link]
En la librería ADC, contiene ya configurado los canales analógicos que el
usuario quiera usar, la programación para la conversión “Inicio_ADC” y
rutinas para la conversión ADC de 8 y 10 bits.
7. ¿En qué canal del PIC está ingresando el voltaje?
En este caso el Canal 0.
Instructor: Ing. Carlos E. Mendiola Mogollón 6
MPLAB IDE
Ejercicio 2:
Fig. Nº02. Conversión ADC de 10 bits.
Fig. Nº2.1 Ensamble del ejercicio 2
Instructor: Ing. Carlos E. Mendiola Mogollón 7
MPLAB IDE
Fig. Nº2.2 Simulación en Proteus de 10 bits
En la figura 2 se puede lograr observar que se colocó una tensión de 4.55 y como logramos
observar que los leds nos dan un valor binario que es un 931, pero si queremos verificarlo
es necesario el uso de dos fórmulas:
5−0
𝑅= = 4.89𝑚𝑉
210 − 1
4.55
Vbin = 9.78 = 931
1. ¿En qué consiste el segundo programa?
Este segundo programa es muy parecido al primero solo que habilitamos 2
puestos debido a que son 10 bits y recordemos que cada puerto contiene 8 bits
como máximo por ello es necesario el uso de un puerto más.
De la misma manera que el primero es una conversión solo que este contiene
10 bits y en la salida obtendremos un numero binario de una tensión de 0 a
5V.
Instructor: Ing. Carlos E. Mendiola Mogollón 8
MPLAB IDE
2. ¿Hasta cuánto puede ser el valor cargado de W antes de llamar a Inicio_ADC?
Como máximo valor de 10 bits es 1023.
3. ¿Por qué se usan dos puertos de salida para este programa?
Debido a que es una conversión de 10 bits es necesario el uso de un segundo
puerto porque cada puerto contiene como máximo 8 bits.
4. ¿Cuáles es la ecuación para la resolución en el segundo programa?
5−0
𝑅 = 210 −1 = 4.89 𝑚𝑉
5. ¿En qué canal del PIC se está ingresando las variaciones de voltaje dc?
En el Canal 5.
VII. Aplicación:
Instructor: Ing. Carlos E. Mendiola Mogollón 9
MPLAB IDE
Fig. Nº0. Programación con un sensor LM35.
Para la programación se tomó en cuenta que la señal de referencia es de 0v a 5v siendo
0v el menor y 5v el mayor. Estos valores serán divididos en 255, esto quiere decir la
resolución (8bits).
Entonces podemos asumir que el primer valor es 0 quiere decir que para 0v el valor será
00000000 el siguiente valor seria 5/255 (0.0196078..) o 19.6 milivoltios y así
sucesivamente hasta llegar a 5v el cual en binario seria 11111111.
Entonces podemos decir que Vin (Voltaje de entrada) va a ser igual a R (Resolución) por
Vbin (Valor en binario) un ejemplo podría ser el siguiente:
Vbin = 51
R = 19.6 milivoltios
Entonces Vin = 0.9996V o 1V
Instructor: Ing. Carlos E. Mendiola Mogollón 10
MPLAB IDE
Instructor: Ing. Carlos E. Mendiola Mogollón 11
MPLAB IDE
Para la aplicación del OPAMP TL082 tomamos en cuenta la siguiente formula:
𝑅𝑎 + 𝑅𝑏
𝑉𝑠 = 𝑥 (𝑉1)
𝑅𝑎
Donde:
Vs = Voltaje de salida.
Ra = R3 (10k OHM)
Rb = R1 (23.3 OHM)
V1 = Voltaje de entrada (Voltaje entregado por el sensor)
VIII. Observaciones:
Tener en cuenta que dependiendo el número de bits que se utilice cambia la
resolución.
Al tener mayor número de bits para observarlo en los leds es necesario configurar
más puertos de salida.
El uso de voltímetro es para observar la tensión que trascurría en el sensor y en
los potenciómetros.
Instructor: Ing. Carlos E. Mendiola Mogollón 12
MPLAB IDE
IX. Conclusiones:
El PIC16F887A usa las tensiones de referencia de su alimentación que para
este caso al ser simuladas en Proteus se usa la señal de 5v para su valor
máximo y de 0v para su valor mínimo.
A mayores bits mejor la resolución, la cual quiere decir que mientras haya más
bits habrá más valores que se podrán tener al realizar la conversión de análogo
a digital.
El uso del conversor de una señal analógica a una señal digital facilita en el
aprendido y apagado de un sensor o sistema como ejemplo un sistema de
temperatura.
X. Bibliografía:
Tavernier. (2015). Manual de Microcontroladores PIC. Recuperado de:
[Link]
Instructor: Ing. Carlos E. Mendiola Mogollón 13