Informe microcontroladores

FACULTAD DE MECÁNICA INGENIERÍA AUTOMOTRIZ INTEGRANTES: TEMA: MICROCONTROLADORES OBJETIVOS:  Dar a conocer sobre l

Views 47 Downloads 0 File size 605KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

FACULTAD DE MECÁNICA

INGENIERÍA AUTOMOTRIZ

INTEGRANTES:

TEMA: MICROCONTROLADORES

OBJETIVOS:

 Dar a conocer sobre las características principales y los conceptos fundamentales en la programación y aplicación de los microcontroladores.  Al finalizar la clase el estudiante estará en capacidad de plantear soluciones aplicando microcontroladores.

INTRODUCCIÓN:

Los microcontroladores están presentes en nuestro trabajo, en nuestra casa y en nuestra vida, los cuales se pueden encontrar controlando el funcionamiento de los ratones, teclados de las computadoras, teléfonos, televisores o automóviles. MARCO TEÓRICO: Los Microcontroladores (μC, UC o MCU)

Los microcontroladores son circuitos integrados que son capaces de ejecutar órdenes que fueron grabadas en su memoria. Están compuestos de varios bloques funcionales, los cuales cumplen una tarea específica. Son dispositivos que operan uno o más procesos, por lo general los microcontroladores están basados en la arquitectura de Harvard, la cual consiste en dispositivos de almacenamiento separados como memoria de programa y memoria de datos. El termino microcontrolador está dado por dos palabras que son “Micro””Controlador” las cuales tienen por significado “pequeño (en tamaño)” y “maniobrar o controlar (función principal)” procesos los cuales son definidos mediante la programación. Un micro controlador está constituido en su interior por las tres principales

unidades funcionales de una computadora, las cuales son: unidad central de procesamiento, memoria y periféricos de entrada y salida. Arquitectura de los microcontroladores  Arquitectura Von Neumann La arquitectura tradicional:

La arquitectura tradicional de computadoras y microcontroladores se basa en el esquema propuesto por John Von Neumann, en el cual la unidad central de proceso, o CPU, está conectada a una memoria única que contiene las instrucciones del programa y los datos. El tamaño de la unidad de datos o instrucciones está fijado por el ancho del bus de la memoria. Las dos principales limitaciones de esta arquitectura tradicional son: a. Que la longitud de las instrucciones está limitada por la unidad de longitud de los datos, por lo tanto el microprocesador debe hacer varios accesos a memoria para buscar instrucciones complejas. b. La velocidad de operación está limitada por el efecto de cuello de botella que significa un bus único para datos e instrucciones que impide superponer ambos tiempos de acceso. La arquitectura von Neumann permite el diseño de programas con código automodificable, práctica bastante usada en las antiguas computadoras que solo tenían acumulador y pocos modos de direccionamiento, pero innecesaria, en las computadoras modernas.

 La arquitectura Harvard:

La arquitectura conocida como Harvard, consiste simplemente en un esquema en el que el CPU está conectado a dos memorias por intermedio de dos buses separados. Una de las memorias contiene solamente las instrucciones del programa, y es llamada Memoria de Programa. La otra memoria solo almacena los datos y es llamada Memoria de Datos. Ambos buses son totalmente independientes y pueden ser de distintos anchos. Además, como los buses son independientes, el CPU puede estar accediendo a los datos para completar la ejecución de una instrucción, y al mismo tiempo estar leyendo la próxima instrucción a ejecutar. Una pequeña desventaja de los procesadores con arquitectura Harvard, es que deben poseer instrucciones especiales para acceder a tablas de valores constantes que pueda ser necesario incluir en los programas, ya que estas tablas se encontraran físicamente en la memoria de programa (por ejemplo en la EPROM de un microprocesador).

 Arquitectura interna de un microcontrolador.

CPU (unidad central de proceso): Podemos decir que la CPU, es el núcleo del microcontrolador. Se encarga de ejecutar las instrucciones almacenadas en la memoria. En esta línea cabe aclarar que el microprocesador es una parte de un microcontrolador y sin él no sería útil; un microcontrolador, en cambio, es un sistema completo que puede llevar a cabo de forma autónoma una labor. Memoria: Entendemos por memoria los diferentes componentes del microcontrolador que se emplean para almacenar información durante un periodo determinado de tiempo. La información que necesitaremos durante la ejecución del programa será, por un lado, el propio código, y por otro, los diferentes datos que usemos durante la ejecución del mismo. Hablaremos por tanto de memoria de programa y de memoria de datos. Unidades de entrada/salida: Las unidades de entrada/salida son los sistemas que emplea el microcontrolador para comunicarse con el exterior. Así, los dispositivos de entrada nos permitirán introducir información en el microcontrolador y los de salida nos servirán para que éste la saque al exterior.

Diagrama de pines del PICF628A

En el diagrama de pines podemos ver que los pines 1, 2, 3, 4, 15, 16, 17 y 18 tienen el nombre de RAx. Esos pines conforman el puerto A, “PORTA”, los pines 6 al 13 pertenecen al puerto B “PORTB”. El pin 5 corresponde al negativo (-) o tierra y el pin 14 va conectado a la fuente de alimentación de 5V.

Características: CPU De alto rendimiento RISC: • Velocidades de operación de DC - 20 MHz • Capacidad de interrupción • Pila de 8 niveles • Modos de direccionamiento directos, indirectos y relativos • 35 simples instrucciones de palabra: • Todas las instrucciones de ciclo único, excepto las de salto Oscilador de cristal.- Un oscilador de cristal es aquel oscilador que incluye en su realimentación un resonador piezoeléctrico. El oscilador de cristal se caracteriza por su estabilidad de frecuencia y pureza de fase, dada por el resonador. Simulación:

Programación sensor de temperatura: '* MICROCODE STUDIO TIPS

*

'*

*

'* (1) : To get context sensitive help, move your cursor to a PICBasic '*

: command and then press F1.

*

*

'* (2) : Program assumes the PIC is running at 4MHz. To change the default * '*

: setting (for example, to 20MHz) simply add DEFINE OSC 20 at the *

'*

: top of your program.

*

'*

*

'* This sample program is supplied courtesy of microEngineering Labs Inc * '************************************************************** ***************

' One-wire temperatura con DS18B20 CMCON=7

' Apagamos los comparadores

temperatura Var Word fin_conv Var Byte

' Almacenamiento de temperatura ' Nos notifica si termino la conversión

temp_ent var word

' Parte entera de la temperatura

temp_dec var word

' Parte decimal de la temperatura

DEFINE OSC 4

' Definimos el valor de cristal a 4MHZ

DQ

Var

PORTA.0

'Pin de datos protocolo One-wire

SYMBOL Ventilador = PORTA.1

'Pulso activación ventilador

SYMBOL Calefactor = PORTA.2

'Pulso activación calefactor

Pause 200 low Ventilador

'Apagamos el ventilador

LOW Calefactor

'Apagamos el calefactor

'--------Configuro el puerto para el LCD: DEFINE LCD_DREG PORTB DATOS DEFINE LCD_DBIT 4

'UTILIZAR 4 BITS DEL PUERTO B PARA TX DE

'DESDE EL BIT B.4 AL BIT B.7

DEFINE LCD_RSREG PORTB DEFINE LCD_RSBIT 1

'SELECCIÓN DEL PUERTO DEL REGISTRO 'EN EL BIT B.1

DEFINE LCD_EREG PORTB DEFINE LCD_EBIT 2

'UTILIZAR EL ENABLE EN EL PUERTO B 'EN EL BIT B.2

Lcdout $fe, 1, "INICIANDO" PAUSE 1000 main: OWOut DQ, 1, [$CC, $44]

' Empezamos la conversión de temperatura

espera: OWIn DQ, 4, [fin_conv] ' Verificamos si esta ocupado convirtiendo If fin_conv = 0 Then espera

OWOut DQ, 1, [$CC, $BE]

' Leemos la temperatura

OWIn DQ, 0, [temperatura.LOWBYTE, temperatura.HIGHBYTE]

temp_ent = temperatura >> 4 'Recorremos cuatro bits a la derecha para eliminar la parte decimal de la temperatura temp_dec = Temperatura & $F 'Separamos la parte de decimal de la temperatura temp_dec = temp_dec * 625 de .625

'Resolución de 12 bits del sensor son pasos

Lcdout $fe, 1, DEC temp_ent, ".", DEC4 temp_dec, " C" 'Imprimimos el valor actual en grados centígrados

if temp_ent > 30 THEN

' Comprobamos si la temperatura es alta

HIGH Ventilador LOW Calefactor LOw PORTA.3 Lcdout $fe, $c0, "Temp. Alta" 'Pause 500

' Muestra medio segundo

ENDIF

if temp_ent < 20 then LOW Ventilador

' Comprobamos si la temperatura es baja

HIGH Calefactor Low PORTA.3 Lcdout $fe, $c0, "Temp. Baja" 'Pause 500

' Muestra medio segundo

ENDIF

if (temp_ent >= 20 and temp_ent