CURSOS.

Páginas

  • HERRAMIENTAS INFORMATICAS PARA INGENIEROS
  • Material Estudio HEIN
  • Funciones de Busqueda
  • Redes de Datos I
  • MICROCONTROLADORES
  • Arquitectura de HW.
  • Circuitos&Electronica
  • IoT
  • Lógica Digital
  • Sistemas dinámicos
  • Taller de Robotica
  • Tendencias Disruptivas
  • Investigacion
  • Pensamiento Sistemico
  • Telemedicina
  • Simulacion Computacional
  • Herramientas TIC
  • Electroneumatica
  • POO Phyton

Buscador

MICROCONTROLADORES

Estimados Alumnos Bienvenidos al curso de Microcontroladores,


BIBLIOGRAFIA:

Programación de
SISTEMAS EMBEBIDOS EN C
Galeano Gustavo
Ed. Alfaomega.




OBJETIVO GENERAL DE LA ASIGNATURA

El alumno aprenderá el funcionamiento de los sistemas electrónicos diseñados con base en microcontroladores (embedded systems), orientados a la solución de aplicaciones de automatización industrial, comunicaciones, instrumentación, robótica, redes de telemetría, control supervisorio, RFID, y otras. Conocerá las diferentes opciones existentes de componentes en el mercado de microcontroladores. Obtendrá los conocimientos para programar los microcontroladores en lenguaje ensamblador, y en lenguaje de alto nivel ANSI C y podrá desarrollar aplicaciones para la solución de problemas específicos.


DESCARGUE AQUI EL CONTENIDO DEL CURSO.


DESCARGUE AQUI EL CONTENIDO DEL CURSO.

PASOS PARA INSTALAR MIKROC
1. IR AL SIGUIENTE ENLACE
2. INSTALAR EL COMPLEMETO PARA MIKROC


DESCARGUE AQUI EL COMPLEMENTO PARA MIKROC.

DESCARGUE AQUI EL MODULO MICROCONTROLADORES. 

DESCARGUE AQUI EJERCICIO LCD MICROCONTROLADORES. 







Temporizador con Timer0 – TMR0

El tiempo deseado en una temporización se  debe calcular a partir de un ciclo de instrucción, este puede variar dependiendo del Cristal con el que está trabajando nuestro Micro, ya sea de 4Mhz el TX, el tiempo de ejecución de cada instrucción es de 1 microsegundo para instrucciones sin salto.
Es necesario elegir también el valor del Divisor de Frecuencia o mejor llamado Prescaler (con los Bit’s PS2, PS1 y PS0). La ecuación que nos da la hoja de datos de los micros es la siguiente…

Temporización = (4 * (255-TMR0) * PreScaler)/Fosc 

Temporización: es el tiempo que deseamos configurar nuestro Timer. Hay que tener en cuenta las limitantes de nuestro micro. Ya que muchas veces hemos deseado hacer un timer de 1 Segundo y esto no es posible.
TMR0: es el valor con el cual empezara a contar nuestro TIMER, por ejemplo si lo iniciamos a  200 solamente se ejecutará 56 veces ya que al llegar al 256  se sobrecarga y se reinicializa a 0.
255: es el complemento, como se explicó en el punto anterior, el valor del TIMER depende de la resta con 255, porque solamente tomará valores de 0 a 255, porque nuestro ancho del TMR0 es de 8bits. Este punto es muy importante, este número de 255 no es para todos los micros, si el TMR de nuestro Micro es de 16 bits como en el caso del PIC18F4550 entonces puede sobrepasar el valor de 255 nuestro complemento es de 65535.

4/Fosc: Este nos dice que cada ciclo de instrucción se ejecuta cada 4 veces el tiempo de Oscilación. Tosc es el inverso de Fosc, entonces Tosc=1/Fosc Por eso muchos de nuestro publicadores solo ponen “Ciclo de instrucción”, nos olvidamos de donde obtenemos las ecuaciones y cuando la queremos implementar entro Micro no funcionan.
timer0
Si omitimos este parámetro, e implementamos otro Cristal “XT” por ejemplo 20Mhz, las fórmulas que ponen en muchas páginas ya no sirven.
Temporización = Ciclo de instrucción * (255-TMR0) * Divisor de Frecuencia
Nota: quede claro que esta es una sustitución de 4/Fosc por lo tanto
4/4Mhz = 1us.
Si omitimos estos parámetros ya no funciona nuestra ecuación.
PreScaler o PS: el prescaler es el divisor de frecuencia a la cual queremos que cada ciclo de instrucción sea ejecutado. Ejemplo:     si una instrucción la ejecutamos con un cristal de 4Mhz en 1us y configuramos el Prescaler a 8, entonces el tiempo será de 8us  o ciclos de instrucción.
Vemos un ejemplo…???
Supón que deseas una temporización de 50 ms (50 milisegundos), que estás trabajando con un XT de 4 Mhz, y que además seleccionaste como Divisor de frecuencia 256 (es decir PS2,PS1,PS0 = 1,1,1).
Pregunta… (como en el secundario…)
Cuál es el valor que se debe cargar en TMR0…???
Desglosemos la Ecuación principal:

Temporización = (4 * (255-TMR0) * PreScaler)/Fosc

Sacamos el 4  para facilitar la ecuación entonces quedaría:

Temporización = ( (255-TMR0) * PreScaler)* 4  /4Mhz

Aquí es cuando podemos decir que el ciclo de instrucción es de 1us

Temporización =  (255-TMR0) * PreScaler*1us

Entonces

Temporización / ( PreScaler * 1us) = 255-TMR0

Tengamos cuidado con los signos.

TMR0=255 – (Temporización / ( PreScaler * 1us))

Sustituyendo los valores deseados

TMR0 = 255 – (50ms / (256 * 1us))

TMR0= 255 – (50ms / 256us)

TMR0 = 255-195.31

TMR0 = 59.687

Aproximándonos a un valor cerrado…

TMR0 ~ 60


Empecemos la configuración

Configuramos el OPTION_REG


BANKSEL  OPTION_REG

MOVLW B'00000000'


ANALICEMOS



BIT 7 Pull up PORTB Disable

BTI 6 interrupcion por flaco de subida en el INT Pin
BIT 5 fuente del clock para el TMR0, internal 1 ciclo ed intruccion (1/Fosc)
BIT 4 Flanco de bajada para el incremento del TMR0
BIT 3  Prescaler asignado al TMR0
BIT 2-0 Division del prescaler 






Configuramos el INTCON



Registro donde activamos las interrupciones globales y la del TMR0



MOVLW B'10100000'

                MOVWF OPTION_REG




BIT 7 Activamos las interrupciones Globales

BIT 6 interrupciones de otros perifericos desactivadas
BIT 5 Habilitamos la interrupcion por desborde en el TMR0
BIT 4 desabilitamos interrupcion externa INT
BIT 3  desabilitamos interrupcion por cambio en el PORTB
BIT 2 bandera interrupcion en TMR0
BIT 1 bandera interrupcion en INT
BIT 0 bandera interrupcion por cambio en PORTB





Descarga Aqui libro digital Mikroc


Modulo 2

programación con Arduino.

Características del Arduino.

Veamos las características y arquitectura del Atmega 328 micro controlador de la placa Arduino Uno.

Descarga Aquí el datasheet del microcontrolador Atmega 328.

Descarga Aquí las características de la placa Arduino

Descarga Aquí el libro básico de programación en Arduino.








Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest

3 comentarios:

  1. Nats_239917 de agosto de 2015, 16:36

    Buenas tardes profesor,
    Por favor puedes publicar la página que estabamos mirando la clase pasada donde está toda la teoría por favor.
    Gracias

    ResponderEliminar
    Respuestas
    1. Nats_239917 de agosto de 2015, 16:42

      P.D. No me sirvió el crack

      Eliminar
      Respuestas
        Responder
    2. Juan Amaya17 de agosto de 2015, 21:21

      Hola nataly, probe en un PC y el crack si me sirvio en version de 32 bits, mañana miramos haber que es lo que pasa.

      Saludos.

      Eliminar
      Respuestas
        Responder
    3. Responder
Añadir comentario
Cargar más...

Inicio
Suscribirse a: Entradas (Atom)

Datos personales

Juan Amaya
Ver todo mi perfil

Archivo del blog

Tema Picture Window. Con la tecnología de Blogger.