Está en la página 1de 48

TERRITORIO DE CALIDAD

Los fabricantes de microcontroladores tienen diferentes


versiones de una arquitectura básica de microcontrolador. En
algunas versiones se tiene más memoria, en otras se añaden
nuevos recursos, etc. Un diseñador tiene que encontrar el
modelo mínimo que satisfaga todos los requerimientos de su
aplicación, como: coste, el hardware y el software.

1
TERRITORIO DE CALIDAD
Microcontrolador = Microcomputadora

Sin un programa (ROM) una microcomputadora no puede realizar una función


específica. Entre las ventajas de un microcontrolador se puede citar: Simplifican el
diseño de circuitos electrónicos, permiten modularidad y flexibilidad. La aplicación
de un microcontrolador esta limitada por la imaginación del usuario.

2
TERRITORIO DE CALIDAD
Robótica Automatismo Entretenimiento

Telecomunicaciones Instrumentación Industria Automotriz


3
TERRITORIO DE CALIDAD
Los datos e instrucciones binarias conforman el lenguaje máquina
de los Microcontroladores. Su programación comúnmente se lleva
a cabo en un lenguaje de alto nivel, es decir, un lenguaje que
utilice frases o palabras semejantes o propias del lenguaje
humano. El Lenguajes como el C o BASIC son comúnmente
utilizados en la programación de microcontroladores. Pero el
lenguaje ensamblador permite una programación más eficiente
de un microcontrolador ya que se tiene un uso eficiente de la
memoria y minimizar el tiempo de ejecución de un programa.

3
TERRITORIO DE CALIDAD
Un software de computadora, llamado compilador, traduce y transforma nuestro
programa en código máquina, que es lo que realmente puede leer e interpretar
el microcontrolador.

TERRITORIO DE CALIDAD
En el diseño de un proyecto con microcontrolador, usted debe tomar en cuenta lo
siguiente:

1. Disponibilidad de los microcontroladores en el mercado local y/o global.

2. Disponibilidad de información y herramientas de desarrollo

3. Precio.

4. Su capacidad de memoria, la cantidad de puertos de entrada y salida, los


periféricos, la velocidad a la cual ejecuta las instrucciones, etc.

TERRITORIO DE CALIDAD
Temporizadores o Timers

TERRITORIO DE CALIDAD
PUERTO A
Los pines 0 a 3 y 5 del PORTA de los PIC’s, en uso como I/O digital, comparte
características similares con los otros puertos del PIC.

TERRITORIO DE CALIDAD
PORTA_4
Este puerto presenta una configuración conocida como Open Drain u Open
Collector (Colector Abierto en Español). Funicona como External Clock Input para
el TIMER0 (T0CKI).

TERRITORIO DE CALIDAD
PUERTO B
Todas las terminales del puerto B tienen una resistencia pull_up interna que se
pueden habilitar a través del bit RBPU del registro OPTION_REG(81h, 181h). Si RBPU
es 1 todas estas resistencias estarán deshabilitadas, si RBPU es 0 estarán habilitadas
solo en el caso de que el puerto en cuestión funcione como entrada.

TERRITORIO DE CALIDAD
1. Puede ser habilitado o deshabilitado por
software. La resistencia pull-up queda
deshabilitada automáticamente si es
programado como salida ese puerto.
2. Son muy usadas con teclados, botones,
etc.. para eliminar resistencias externas.

TERRITORIO DE CALIDAD
A través de la memoria RAM

Una vez definidos los puertos a utilizar, estos se pueden configurar y controlar como
entrada o como salida.

TERRITORIO DE CALIDAD
A través de la memoria RAM
Se puede trabajar bit a bit con los registros o variables definidas previamente:

Se puede declarar un bit de un puerto mediante la directiva Bit, lo que


permite trabajar directamente con el bit:

• Bit nombre=posición.bit
#bit RB4=0x06.4
RB4=0;

TERRITORIO DE CALIDAD
Como escribir la instrucción para que por un puerto determinado se pueda presentar una
información determinada.

PORTC=0X0A;

¿Cómo leer la información que entra en un puerto?

Valor = PORTA;

TERRITORIO DE CALIDAD
A través de las siguientes directivas:

#USE FAST_IO()
#USE FIXED_IO
#USE STANDARD_IO

Con estas directivas se usan las siguientes funciones predefinidas:

Output_b(0xff) //por el puerto B saca el valor 11111111


Valor=Input_B() //Lee el valor del puerto B
Set_tris_B(0x0f) //configura el puerto C: C0-C3 entradas, c4-c7 salidas

TERRITORIO DE CALIDAD
Como en el caso anterior también existe una función asociada a los pines, llamada
Pin-Xn, donde X es el puerto y n es el número de pin.

Ejemplo:

#Define LED1 PIN_A0


#Define BOTON PIN_B0
Que una vez declaradas se pueden usar con las siguientes funciones:

Output_low (LED1); //Apaga el PORTA,0


Output_high (LED1); //Enciende el PORTA,0
Output_bit(LED1, 1); //Enciende el bit al valor especificado
Output_toggle (LED1); //Complementa el valor del PORTA,0
Input(BOTON); //Lee el valor que esta en el PORTB,0

TERRITORIO DE CALIDAD
Ejemplo al usar la directiva #USE FAST_IO(B)

#include <16f877A.h>
#fuses XT,NOWDT
#use fast_io(B); Nota: con esta directiva no que
declarar el puerto a usar del pic.
void main() { Pero debe tenerse cuidado que
port_b_pullups (true); los registros TRIS del puerto usado
set_tris_ b(0x01); este completamente definidos.
output_low(PIN_B1);
while(true)
{
if (input(PIN_B0)==1)
output_low(PIN_B1);
else
output_high(PIN_B1);
}}

TERRITORIO DE CALIDAD
Ejemplo al usar la directiva #USE STANDARD_IO(B)

#include <16f877A.h>
#fuses XT,NOWDT Nota: Con esta directiva de igual
#use standard_io(B); forma no es necesario declarar los
pines del PIC a usar. Pero tiene la
void main() { ventaja que no es necesario
port_b_pullups (true); declarar el comando TRIS para
output_low(PIN_B1); declarar un pin de entrada o de
while(true) salida como el caso anterior.
{
if (input(PIN_B0)==1)
output_low(PIN_B1);
else
output_high(PIN_B1);
}}

TERRITORIO DE CALIDAD
Ejemplo al usar la directiva #USE FIXED_IO(B_outputs=pin_b1)

#include <16f877A.h>
#fuses XT,NOWDT Nota: Con esta directiva de igual
#use fixed_io(b_outputs=pin_b1); forma no es necesario declarar los
pines del PIC a usar. Solo se
void main() { declara el pin del PORTB a usar
port_b_pullups (true); como salida. Sin tener declarar el
output_low(PIN_B1); PORTB a usar como entrada.
while(true)
{
if (input(PIN_B0)==1)
output_low(PIN_B1);
else
output_high(PIN_B1);
}}

TERRITORIO DE CALIDAD
TERRITORIO DE CALIDAD
La directiva

#use RS232(BAUD=9600, BITS =8, PARITY=N, XMIT= PIN_D0, RCV=PIN_D1)

Tiene la función de enviar datos por el pin D0 y recibirlos por el pin D1 del PIC. Para
poner en práctica esta directiva se hará uso de las funciones getc(), getch() y
getchar().

La forma de hacer la llamada a la función printf es la siguiente:

Printf (Nombre Función, Cadena de caracteres , valores);

La función printf admite parámetros que podremos utilizar para formatear el


texto de salida.

TERRITORIO DE CALIDAD
El primero es opcional y es el nombre de una función, si no se pone los datos se
transmitirán vía RS232 a través de los pines que se hayan configurado en la
directiva #use RS232.
El segundo parámetro es una cadena de caracteres encerrada entre comillas
dobles.
El tercer parámetro son datos o nombres de variables cuyos valores se quieren
mostrar.

TERRITORIO DE CALIDAD
#include <16F877.h>
#use delay(clock=4000000)
#include <LCD.C>
#use RS232(BAUD=9600, BITS=8, PARITY=N, XMIT=PIN_B1, RCV=PIN_B2)

void main()
{
int i1=9;
lcd_init(); //función de inicialización del LCD
//Mostramos una cadena en la terminal
printf("Esto es una cadena\r");

//Mostramos una cadena de texto junto con el valor //de una variable
//en la terminal.
printf("El valor de la variable i1 es: %d",i1);

//Mostramos el valor de la variable por el LCD


printf(lcd_putc,"El valor de i1 es: %d",i1);

TERRITORIO DE CALIDAD
Diferentes formatos en que se puede presentar una variable

TERRITORIO DE CALIDAD
TERRITORIO DE CALIDAD
1. Abrir Visual Studio
2. Crear un Proyecto Nuevo
3. Seleccione Aplicación de Windows Forms

Fig. 2
Fig. 1

TERRITORIO DE CALIDAD
4. Te saldrá la siguiente ventana en donde
pondrá el nombre del proyecto y el directorio en
donde lo guardara.
5. Para ello genere una carpeta nueva en donde
deberá guardar el proyecto.
6. Presione la pestaña crear localizada en la
parte inferior derecha. Cuando haya creado la
carpeta nueva y el nombre del proyecto.

Fig. 3

TERRITORIO DE CALIDAD
7. Aparecerá la siguiente ventana

Fig. 4

TERRITORIO DE CALIDAD
8. Abren el cuadro de herramientas

Fig. 5

TERRITORIO DE CALIDAD
9. A la derecha emergerá una ventana de donde seleccionará
controles comunes.

10. De esta ventana seleccionaremos:


botones, checkBox, progressbar y los
arrastraremos a la ventana Form1.

Fig. 6

TERRITORIO DE CALIDAD
11. Enseguida escriben char en el cuadro de herramientas y saldrá una ventana
como la siguiente.

12. Arrastran el icono char hacia la ventana llamada


Form1.

Fig. 7

TERRITORIO DE CALIDAD
Configurando los elementos colocados en la ventana Form1

1. Dar click derecho a los botones y


elegir del menú propiedades.
2. Emergerá una ventana y
cambiara Text y Name por el
nombre que desea llleve el
botón.
3. Realice lo mismo para el botón 2
y para los checkbox.
4. Del cuadro de herramientas
seleccione tres etiquetas y
colóquelas sobre la progressbar.
Como se muestra en la figura 9.
Fig. 8

TERRITORIO DE CALIDAD
Configurando los elementos colocados en la ventana Form1

Fig. 9

TERRITORIO DE CALIDAD
Configurando los elementos colocados en la ventana Form1

5. Nos vamos a tipo de gráfico y seleccionamos Spline como muestra la figura 10.

Fig. 10

TERRITORIO DE CALIDAD
Configurando los elementos colocados en la ventana Form1

6. En name escribimos Temperatura

Fig. 11

TERRITORIO DE CALIDAD
Configurando los elementos colocados en la ventana Form1

7. Enseguida seleccionamos gráficos y Chart Áreas. En Este menú seleccionamos Ejes.

8. En este punto seleccionamos los puntos máximos y mínimos de los ejes X y Y. Así
mismo el incremento entre las variables del eje X y Y. Quedara la ventana como la
figura 12.

Fig. 12

TERRITORIO DE CALIDAD
Configurando los elementos colocados en la ventana Form1

9. Hasta este punto se habrá terminado la ventana que funcionara como


nuestra interfaz gráfica.

10. En este momento pasaremos al código. Para ello debe dar doble click al
primer botón.

TERRITORIO DE CALIDAD
Son declaraciones que controlan el proceso de ejecución del programa, ya que
permiten tomar decisiones:

1. If-Else
1.1 If-Else-If Con esta declaración se pueden tomar decisiones múltiples.
Dentro de estas declaraciones los operadores más utilizados son:

Lógicos De bits
&&= AND & = AND
|| = OR | = OR

TERRITORIO DE CALIDAD
1. While
2. Do_While
3. For
4. Switch-Case
5. Return
6. Break, Continue y Goto

TERRITORIO DE CALIDAD
Los punteros son variables utilizadas para almacenar la dirección de memoria de otra
variable.

¿Qué uso tienen los punteros?

1. Para conocer la dirección de memoria de una variable.


2. Proporcionan una forma rápida de acceder o referenciar a tipos de datos compuestos
como arrays, estructuras y enumeraciones.
3. Sirven para pasar variables por referencia a las funciones.
4. Pueden optimizar el código y ahorra recursos de memoria.

TERRITORIO DE CALIDAD
Ejemplo 1:

m=&contador; // significa que m recibe la dirección de la memoria del registro del


contador

Coloca en m la dirección de memoria de la variable contador, o sea la dirección del registro


del PIC donde se ha guardado la variable contador.

El segundo operador que funciona como punteros es *, que es el complementario de &.


Usado para devolver el valor de la variable ubicada en la dirección que se especifica. Por
ejemplo, si m contiene la dirección de memoria de la variable contador, entonces:

q=*m; //devolverá el valor que tiene guardada la variable contador en


su dirección de memoria.

TERRITORIO DE CALIDAD
¿Cómo se declara una variable de tipo puntero?

Se declaran colocando un * delante del nombre de la variable.

Ejemplo 1:

Char *c;

Aquí, c no es un carácter, sino un puntero a un carácter.

TERRITORIO DE CALIDAD
Explicación de los componentes usados
VISA Configure Serial Port

Permite configurar el puerto serie como:


velocidad, protocolo, paridad , etc.

Visa resource name: selecciona el


puerto a usar.

TERRITORIO DE CALIDAD
TERRITORIO DE CALIDAD
Uso del PLL

Es un circuito que permite multiplicar la frecuencia de operación de un


microcontrolador. La velocidad de operación de un microcontrolador se encuentra
determinada por dos aspectos:

a) La frecuencia del oscilador interno o externo


b) La configuración del PLL

En este práctica el módulo USB del microcontrolador será configurado para


trabajar a 48 MHz y dicha configuración será a través del PLL.

TERRITORIO DE CALIDAD
Uso del PLL

El PIC 18f4550 posee comunicación por USB , pero este modulo hay que
configurarlo para que funcione correctamente. El cristal de cuarzo que va
conectado entre OSC1 y OSC2 se ocupa para poner en operación el módulo
USB como para hacer funcionar el programa a la velocidad requerida por el
usuario. Para el desarrollo de esta práctica usaremos:

#fuses HSPLL,NOWDT,NOLVP,USBDIV,PLL5,CPUDIV1,VREGEN

HSPLL: Cristal/Resonador de alta velocidad (High-Speed) con PLL activado.

TERRITORIO DE CALIDAD
Uso del PLL

USBDIV: //Clock del módulo USB se tomará del PLL/2 (48MHz)

PLL5 //La frecuencia se dividirá por 5 en el PLL

CPUDIV1 //El clock para el procesador serán los 96 MHz del PLL divididos para 2
(48MHz)

VREGEN //Habilita regulador 3,3 voltios para el módulo USB

Con esto se logra que el módulo USB opere a 48 MHz, para ello se deberá
usar un cristal de cuarzo de 20 MHz que será dividida por 5 internamente.
Esto se consigue con la directiva PLL5, pero internamente los 20 MHz se

TERRITORIO DE CALIDAD

También podría gustarte