Você está na página 1de 8

MICROCONTROLADORES, RONDON JUAN PABLO, CRISTOBAL MOSCOSO PEA,

BRAYAN STEVEN BERMUDEZ

INSTITUCIN DE EDUCACION SUPERIOR ITFIP


FACULTAD DE INGENIERIA Y CIENCIAS AGROINDUSTRIALES
LABORATORIO SIMULADO MICROCONTROLADORES
JUAN PABLO RONDON OYUELA
E-mail: jrondon45@itfip.edu.co
CRISTOBAL MOSCOSO PEA
BRAYAN STEVEN BERMUDEZ DIAZ
E-mail: brayanbermudez97@gmail.com

RESUMEN: El presente trabajo fue realizado de


manera grupal. Describe mediante un informe la
realizacin de una prctica de simulada con la cual
se busca Modificar un cdigo suministrado por el
docente en PICC para que muestre de manera
simulada en proteus medicin de un sensor de
temperatura en una pantalla LCD controlada por
un microcontrolador 16F877A.ya que en un
comienzo solo se obtenan mediciones de
resistencia. La prctica simulada se hizo grupal y
se cont con la ayuda del docente de apoyo. Es de
gran importancia esta experiencia para que el
estudiante se comience a familiarizar con el
funcionamiento del microcontrolador y la
programacin que se le debe hacer. Tema que
ser el eje principal de la materia en el presente
semestre.

PALABRAS CLAVE: Microcontrolador, Programacin,


Variable, Leyenda del LCD, cdigo hexadecimal, archivo
Hex, lcd, keypad.
ABSTRACT: This work was done as a group. A report
described by conducting a simulated practice with which
seeks to modify a code supplied by the teacher in PICC to
show how proteus simulated measuring a temperature
sensor controlled by a microcontroller LCD 16F877A.ya
which initially only resistance measurements were
obtained. The simulated practice became group and
enlisted the help of teacher support. It is very important
experience for the student begins to familiarize themselves
with the operation of the microcontroller and the
programming that will be done. Topic will be the main focus
of the subject in this semester.

Analizar y obtener conclusiones sobre el tema

1.1.2 MATERIALES

Software de simulacin de circuitos electrnicos


Proteus ISIS 7
Software de programacin de microcontroladores
Picc Compiler.
1 microcontrolador 16F877A
Pantalla LCD
Keypad 3x4
Sensor Lm35

2 MARCO TEORICO
SENSOR LM35
El LM35 es un sensor de temperatura con una precisin
calibrada de 1 C. Su rango de medicin abarca desde -55
C hasta 150 C. La salida es lineal y cada grado Celsius
equivale a 10 mV, por lo tanto:
150 C = 1500 mV
-55 C = -550 mV1

CARACTERSTICAS
Sus caractersticas ms relevantes son:
- Est calibrado directamente en grados Celsius.
- La tensin de salida es proporcional a la temperatura.
- Tiene una precisin garantizada de 0.5 C a 25 C.
- Baja impedancia de salida.
- Baja corriente de alimentacin (60 A).
- Bajo coste.

KEY WORD: Microcontroller Programming, Variable,


Legend LCD, hexadecimal code, Hex file, keypad, lcd

MICROCONTROLADOR

1 LABORATORIO SENSORICA 1

Un microcontrolador (abreviado C, UC o MCU) es un


circuito integrado programable, capaz de ejecutar las
rdenes grabadas en su memoria. Est compuesto de
varios bloques funcionales, los cuales cumplen una tarea
especfica. Un microcontrolador incluye en su interior las
tres principales unidades funcionales de una computadora:
unidad central de procesamiento, memoria y perifricos de
entrada/salida.

1.1 OBJETIVOS

Realizar la modificacin del cdigo suministrado


por el docente que visualizaba la medicin de
dicho sensor con su respectiva resolucin (lm35sensor de temperatura).
Insertar este cdigo en el microcontrolador
16F877A de proteus y simularlo para ver si el
resultado es correcto

MICROCONTROLADORES, RONDON JUAN PABLO, CRISTOBAL MOSCOSO PEA,


BRAYAN STEVEN BERMUDEZ
Algunos microcontroladores pueden utilizar
palabras de cuatro bits y funcionan a velocidad de reloj con
frecuencias tan bajas como 4 kHz, con un consumo de baja
potencia (mW o microvatios). Por lo general, tendr la
capacidad de mantenerse a la espera de un evento como
pulsar un botn o de otra interrupcin; as, el consumo de
energa durante el estado de reposo (reloj de la CPU y los
perifricos de la mayora) puede ser slo de nanovatios, lo que
hace que muchos de ellos sean muy adecuados para
aplicaciones con batera de larga duracin. Otros
microcontroladores pueden servir para roles de rendimiento
crtico, donde sea necesario actuar ms como un procesador
digital de seal (DSP), con velocidades de reloj y consumo de
energa ms altos.
Cuando es fabricado el microcontrolador, no contiene
datos en la memoria ROM. Para que pueda controlar algn
proceso es necesario generar o crear y luego grabar en la
EEPROM o equivalente del microcontrolador algn programa,
el cual puede ser escrito en lenguaje ensamblador u otro
lenguaje para microcontroladores; sin embargo, para que el
programa pueda ser grabado en la memoria del
microcontrolador, debe ser codificado en sistema numrico
hexadecimal que es finalmente el sistema que hace trabajar al
microcontrolador cuando ste es alimentado con el voltaje
adecuado y asociado a dispositivos analgicos y discretos
para su funcionamiento.

2.1 CARACTERISTICAS
Los microcontroladores estn diseados para reducir
el costo econmico y el consumo de energa de un sistema en
particular. Por eso el tamao de la unidad central de
procesamiento, la cantidad de memoria y los perifricos
incluidos dependern de la aplicacin. El control de un
electrodomstico sencillo como una batidora utilizar un
procesador muy pequeo (4 u 8 bits) porque sustituir a un
autmata finito. En cambio, un reproductor de msica y/o vdeo
digital (MP3 o MP4) requerir de un procesador de 32 bits o de
64 bits y de uno o ms cdecs de seal digital (audio y/o
vdeo). El control de un sistema de frenos ABS (Antilock Brake
System) se basa normalmente en un microcontrolador de 16
bits, al igual que el sistema de control electrnico del motor en
un automvil.
Los microcontroladores representan la inmensa
mayora de los chips de computadoras vendidos, sobre un
50% son controladores "simples" y el restante corresponde a
DSP ms especializados. Mientras se pueden tener uno o dos
microprocesadores de propsito general en casa (Ud. est
usando uno para esto), usted tiene distribuidos seguramente
entre los electrodomsticos de su hogar una o dos docenas de
microcontroladores. Pueden encontrarse en casi cualquier
dispositivo electrnico como automviles, lavadoras, hornos
microondas, telfonos, etc.

Un microcontrolador difiere de una unidad central de


procesamiento normal, debido a que es ms fcil convertirla en
una computadora en funcionamiento, con un mnimo de
circuitos integrados externos de apoyo. La idea es que el
circuito integrado se coloque en el dispositivo, enganchado a la
fuente de energa y de informacin que necesite, y eso es
todo. Un microprocesador tradicional no le permitir hacer
esto, ya que espera que todas estas tareas sean manejadas
por otros chips. Hay que agregarle los mdulos de entrada y
salida (puertos) y la memoria para almacenamiento de
informacin.
Un microcontrolador tpico tendr un generador de
reloj integrado y una pequea cantidad de memoria de acceso
aleatorio y/o ROM/EPROM/EEPROM/flash, con lo que para
hacerlo funcionar todo lo que se necesita son unos pocos
programas de control y un cristal de sincronizacin. Los
microcontroladores disponen generalmente tambin de una
gran variedad de dispositivos de entrada/salida, como
convertidor analgico digital, temporizadores, UARTs y buses
de interfaz serie especializados, como I2C y CAN.
Frecuentemente, estos dispositivos integrados pueden ser
controlados por instrucciones de procesadores especializados.
Los modernos microcontroladores frecuentemente incluyen un
lenguaje de programacin integrado, como el lenguaje de
programacin BASIC que se utiliza bastante con este
propsito.
Los microcontroladores negocian la velocidad y la
flexibilidad para facilitar su uso. Debido a que se utiliza
bastante sitio en el chip para incluir funcionalidad, como los
dispositivos de entrada/salida o la memoria que incluye el
microcontrolador, se ha de prescindir de cualquier otra
circuitera.
2.1.2 LENGUAJE DE PROGRAMACIN 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. Todas estas
caractersticas hicieron al C uno de los lenguajes de
programacin ms populares.

MICROCONTROLADORES, RONDON JUAN PABLO, CRISTOBAL MOSCOSO PEA,


BRAYAN STEVEN BERMUDEZ

.
Fig.1Proceso de programacin con Lenguaje C

MICROCONTROLADORES, RONDON JUAN PABLO, CRISTOBAL MOSCOSO PEA,


BRAYAN STEVEN BERMUDEZ

3. PROCEDIMIENTO DE ELABORACION
PRCTICA DE LABORATORIO No 1 SENSORICA

Para iniciar con el montaje y la elaboracin de la prctica


de laboratorio simulada se debe tener a disposicin el
circuito suministrado por el docente y el cdigo
#include <16f877a.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay (clock=4000000)
#include <lcdpuertob.c>
#include <kbdpuertob.c>
int i,x; // Declaracin de variables para conversin de caracter a entero
float conversion, voltajeadc, resistencia; // Declaracin de variable
// para almacenamiento de lectura ADC, este formato permite cubrir
//el rango operacional
char k; // Declaracin de variable para captura desde teclado matricial
// Informacion almacenada en la ROM por medio de arreglos unidimensionales
// teniendo en cuenta que el LCD es de tipo 2x16(dos filas y 16 columnas)
const char Institucion[] = {"INSTITUCION:\nITFIP
"};
const char Asignatura[] = {"ASIGNATURA:\nMICROS
"};
const char Nombre1[] = {"NOMBRE1\nAPELLIDO1
"};
const char Nombre2[] = {"NOMBRE2\nAPELLIDO2
"};
const char Fecha[]
= {"FECHA:\ndd/mm/aaaa
"};
void menu(void){ // Funcin creada para despliegue de menu principal
lcd_gotoxy(1,1); // Ubica el cursor en la primera columna y primera fila
printf(lcd_putc,"1-LECTURA SENSOR"); // Imprime leyenda en el LCD
lcd_gotoxy(1,2); // Ubica el cursor en la primera columna y segunda fila
printf(lcd_putc,"2-INFORMACION"); // Imprime leyenda en el LCD
}// fin funcin menu()
void opcion(x){ // Funcin creada para desarrollo de las opciones del menu
// por lo que posee un parmetro de entrada definido por la variable x
if(x==1){
// Si el usuario pulsa el nmero 1
printf(lcd_putc,"\f RESISTENCIA "); // Imprime leyenda en el LCD
while(true){ // Ciclo para lectura continua del valor del ADC
lcd_gotoxy(1,2); // Ubica el cursor en la primera columna y segunda fila
read_adc(ADC_START_ONLY); // Inicia conversin
conversion = read_adc(); // Almacena valor de lectura ADC
delay_us(20);// tiempo de retardo de conversin
voltajeadc = (conversion/65472)* 5;// Se obtiene lectura en voltaje
resistencia = voltajeadc*(100/0.05);// Lectura sensor
// cuya resolucin es de 50mv/100 ohmios
printf(lcd_putc,"%f ohmios",resistencia);// Imprime valor ADC en el LCD
} // fin del ciclo while
} // fin de if (x==1)
else if(x==2){ // Si se escoge la opcion 2
read_adc(ADC_OFF);
printf(lcd_putc,"\f2-INFORMACION",);// Imprime leyenda en el LCD
delay_ms(1000);
while(true){ // Ciclo para despliegue constante de informacin
delay_ms(1000);
printf(lcd_putc,"\f%s",Institucion);// Imprime leyenda en el LCD
delay_ms(1000);
printf(lcd_putc,"\f%s",Asignatura);// Imprime leyenda en el LCD
delay_ms(1000);
printf(lcd_putc,"\f%s",Nombre1);// Imprime leyenda en el LCD
delay_ms(1000);

MICROCONTROLADORES, RONDON JUAN PABLO, CRISTOBAL MOSCOSO PEA,


BRAYAN STEVEN BERMUDEZ
printf(lcd_putc,"\f%s",Nombre2);// Imprime leyenda en el LCD
delay_ms(1000);
printf(lcd_putc,"\f%s",Fecha);// Imprime leyenda en el LCD
}
}
}
void main() // Funcin principal
{
setup_adc_ports(AN0_VREF_VREF); // Define los pines para el ADC
setup_adc(ADC_CLOCK_INTERNAL); // Define reloj interno para el ADC
set_adc_channel(0);// Selecciona el canal 0
lcd_init(); // Inicializa el LCD
kbd_init(); // Inicializa el teclado matricial
port_b_pullups(true); // Habilita configuracin pullups para teclado
menu(); // Invocacin de funcin menu()
while(true){ // Ciclo continuo para trabajo constante del microcontrolador
k= kbd_getc(); // Captura caracter desde el teclado matricial
i=k-48; // Conversin de caracter a entero
if(k!=0){ // Si se pulsa un botn del teclado
opcion(i); // Invocacin funcin opcion() cuyo parmetro de entrada
// es el dgito ingresado por el usuario desde el teclado
// matricial
} // fin de if(k!=0)
} // fin ciclo while
} // fin funcin principal
Cdigo suministrado por el docente
Se crear nuevas variables medicin y temper , se remplaza los datos impreso en el lcd por termmetro,
temperatura, actual y c. el "0.48875" sale de dividir 5 1023 y el resultado de eso multiplicarlo por 100, el 5 sale de los 5
voltios aplicado a el voltage de referencia, los 1023 salen de los 10 bit de resolucion del conversor analogico digital que
seleccionamos. Si utlizaramos la resolucion de 8 bist del conversor analogico digital, la formula fuera (5 255)*100 ya que
con 8 bits el numero maximo posible es de 0-255

MICROCONTROLADORES, RONDON JUAN PABLO, CRISTOBAL MOSCOSO PEA,


BRAYAN STEVEN BERMUDEZ

Figura 4. Cdigo suministrado por el docente modificado para el sensor media la temperatura
Este cdigo se compila y se carga al microcontrolador de la simulacin.

MICROCONTROLADORES, RONDON JUAN PABLO, CRISTOBAL MOSCOSO PEA,


BRAYAN STEVEN BERMUDEZ
Figura 5. Simulacin al realizar la modificacin al cdigo

4 ANALISIS DE RESULTADOS
De la prctica simulada se puede decir que los
resultados fueron los esperados gracias a la orientacin del
docente y a la intuicin de los estudiantes se logr realizar
la modificacin al cdigo y a la simulacin que el docente
solicito. Solo se modificaron el cdigo dos lneas de cdigo,
se crearon nuevas variables y se obtuvieron los resultados
esperados, el ambiente de trabajo fue el adecuado y se
contaron con todas las herramientas necesarios.

5 CONCLUCIONES

Se remplaz el potencimetro por un lm35.


medicion=read_adc () hace la conversin AD
temper=medicion*(0.48875); se hace la conversin de
binario a c donde el "0.48875" sale de dividir 5 1023 y
el resultado de eso multiplicarlo por 100 el 5 sale de
los 5 voltios aplicado a el voltaje de referencia, los
1023 salen de los 10 bit de resolucin del conversor
analgico digital que seleccionamos.

Si utilizramos la resolucin de 8 bits del conversor


analgico digital, la formula fuera (5 255)*100 ya que
con 8 bits el nmero mximo posible es de 0-255
Cada vez que se declara un vector se usa [ ]
El While (true) es una opcin que crea un ciclo infinito
y hace que el microcontrolador permanezca en
funcionamiento y no se apague
Set_timer0 (0) Es la instruccin que permite inicializar
el timer.
Solo se requiri la modificacin de dos lneas de
cdigo para lograr los resultados esperados.

6 WEBGRAFIA

http://learn.mikroe.com/ebooks/microcontroladorespicc/
chapter/lenguajes-de-programacion/
http://4.bp.blogspot.com/nXGLfYZbRlQ/Ub0aNZTDV8I/AAAAAAAAANo/UWAH
wvOwCz4/s1600/7-segmentospinout_www_tecnoface_com.gif