Reloj de display de 7 segmento caseros (3 / 5 paso)

Paso 3: Una mirada interior sobre las tareas de PIC16F727

voy a describir lo usé desde el PIC, para que este proyecto suceda.  La única cosa principal que necesita para este tipo de tareas es un temporizador. Un temporizador de cuenta los ciclos de instrucción, que tienen relación estricta con el cristal u oscilador que utiliza al reloj de su procesador. Usé el oscilador interno para mantener la placa simple. Una foto necesita para que relojes ejecutar una sola instrucción:

FOSC = 16000000 Hz
FINST = 4000000 Hz
Tinst = 1 / Finst = 250 ns

Una instrucción toma 250 nanosegundos, este es el mismo ritmo el temporizador cuenta con. Si necesitamos un tiempo de 1 milisegundos, deje el temporizador para 4000 instrucciones, entonces la señal, que 1 ms ha transcurrido.

Para hacer esto muy precisa, vamos a utilizar interrupciones. Una interrupción a un microcontrolador es como un golpecito en el hombro para ti. Sólo está ocupándose su propio negocio, entonces alguien viene, golpeando su hombro para decir algo. Dejar de hacer su negocio y prestar atención a la interrupción que se produjo. Después de que termines escuchando, reaccionan de cierta manera, a continuación, volver a las cosas que has estado haciendo antes de que alguien le interrumpiera. Diciendo esto la manera PIC, sólo mantenimiento una interrupción.

El PIC no hace lo que quiere, lo hace, qué dice. Esto es una cosa muy importante memorizar: un error de silicio rara vez es la razón por qué su proyecto no arranca. Es 99.9% de las veces fallas de programación.
Lo que tenemos que decir el PIC para conseguir lo que queremos:

Configuración del oscilador:
Necesitamos configurar el oscilador interno para ser la fuente de reloj principal para este proyecto, para ello, poner 0 x 30 en el registro OSCCON.

Habilitación de interrupciones:
En primer lugar, tenemos que activar el sistema de interrupción. Esto se hace mediante la manipulación de los bits en el registro INTCON.
Necesitamos activar interrupciones globales y la interrupción de Timer0. Mirando la hoja de datos, vemos bit 7 que la interrupción global activar bit, bit 5 que la interrupción de Timer0 activar bit. El resto de los bits son ceros, no es necesario cambiarlos. Esto da un valor binario de b10100000, que en hexadecimal es 0xA0. Ponemos en el registro INTCON.

Prescalers:
Un prescaler es un contador de sí mismo, que incrementos en cada instrucción del ciclo. Estos - por defecto - se fijan a 1:1 para que no interfieran con la operación normal de temporizador. La salida del divisor es conectada a la entrada del contador de tiempo, como podemos ver en el diagrama. Si establecemos un prescaler de 1:2, su salida pondrá a '1' sólo después de han completado 2 ciclos de instrucción. Esto significa que el temporizador no incrementa en cada ciclo de instrucción, pero en cada 2ª. Similar a ésta, estableciendo el prescaler para dividir por 4, el TMR0 es que se incrementa cada ciclo de instrucción 4-th, y así sucesivamente.

Configuración del Timer0 a interrumpir cada milisegundo:
Timer0 cuenta las instrucciones incrementando el valor en el registro TMR0. que valor es amplia, lo que significa, 8 bits no podemos contar más de 255. Si el contador es de 255, y se produce un incremento, el registro se desbordará y empezar a contar otra vez desde 0.
Este es el punto, cuando un temporizador puede señalar una interrupción. Pero si esto ocurre cada ciclo 256-th, ¿cómo podemos nosotros para contar a 4000? A través de la ayuda de las prescalers.

4000 / 256 = 15.625

Así que necesitamos una división por 16 (el más cercano y más grande valor divisor) para que esto suceda.

4000 / 16 = 250;

Puesto que el temporizador da interrupción en rollover de 255 -> 0, solo pondremos un desplazamiento de 256-250 = 6 en el registro TMR0. Este valor debe actualizarse cada vez que la interrupción es atendida. También tenemos claro la bandera, que fue fijada en 1, cuando se produjo el vuelco de Timer0.
Habiendo dicho que, ahora tenemos una interrupción exacta, eso ocurre cada milisegundo. Suele llevar a la práctica un contador en la rutina de servicio de interrupción, cuento 1000 interrupciones, construcción de una segunda señal. Contando los segundos debe ser hecho en el bucle principal, hay simples contadores que contar 60 segundos, luego desbordan para incrementar la variable "minutos". Entonces, del mismo modo, las "horas", "días", "meses" variable se incrementa.

Los dígitos
Si el proyecto es bastante simple y tiene algunos displays de 7 segmentos en el esquema, no cuido para localizar los pines del controlador de segmento uno al lado del otro. Este proyecto no fue una excepción, el fuzzy define le puede ver al principio del programa en lugar de simplificar las formas de visualizar los dígitos. Si usted toma el tiempo suficiente para tratar de entenderlos, verás qué fácil esta parte muestra realmente es.

Artículos Relacionados

Reloj de display de 7 segmentos!

Reloj de display de 7 segmentos!

En este instructable, enseñará que haw para hacer un reloj de pantalla de dígitos de 7 segmentos!Se necesita:Un juego de sunfounder que incluye un protoboard, cables de puente, botones, LEDs, un display de 7 segmentos y resistentes a laUn arduinoCint
Reloj Digital de Arduino (con Charlieplexing LEDs, Displays de 7 segmentos)

Reloj Digital de Arduino (con Charlieplexing LEDs, Displays de 7 segmentos)

este es mi segundo instructable. Acabo de tener un estado de ánimo de hacer un reloj digital. Pero quería hacer un proceso de aprendizaje. Ya tuve un sanguino podría haber fácilmente utilizado eso Atmega644 chip. hubiera sido más que suficiente.  Per
Display de siete segmentos

Display de siete segmentos

La pantalla de uso general con los siete LED adentro, generalmente se utiliza para indicar los enteros por ejemplo en ascensores para indicar el no. del piso, mulitimeters, etc. se conoce como display de siete segmentos.Paso 1: partesUsted necesita l
Displays de 7 segmentos de charlieplexing

Displays de 7 segmentos de charlieplexing

he estado experimentando con el Arduino para manejar un display de siete segmentos (SSD). Cuando brazolada varios juntos para formar una pantalla de varios dígito, un diseño común es una matriz de alambre y utilizar multiplexación para reducir el núm
Multiplexación de cuatro displays de 7 segmentos usando Shift registra Arduino

Multiplexación de cuatro displays de 7 segmentos usando Shift registra Arduino

Hola cada unoHe diseñado una manera sencilla de multiplexar cuatro displays de 7 segmentos, utilizando registros de desplazamiento y un ArduinoNos multiplexar el display de 7 segmentosPaso 1: Paso 1: vamos a diseñar Tomar cuatro displays de 7 segment
Humedad en el Display de 7 segmentos y Arduino temperatura

Humedad en el Display de 7 segmentos y Arduino temperatura

Se trata de un dispositivo de trabajo hice que muestra la temperatura o la humedad respectivamente pulsando un interruptor de botón.Si el interruptor está pulsado muestra humedad de lo contrario muestra la temperatura.Paso 1: introducciónEste disposi
Interfaz MSP430 Launchpad con display de 7 segmentos

Interfaz MSP430 Launchpad con display de 7 segmentos

Hola amigos,Bienvenido a mi MSP430 Launchpad entretela tutorial, en este instructable yo se ser entretela un MSP430 Launchpad con un display 7 segmentos de cátodo común.Tenga en cuenta que yo estoy reformateando mi artículo original publicado en www.
Frambuesa Pi: Lectura de Displays de 7 segmentos

Frambuesa Pi: Lectura de Displays de 7 segmentos

Leer siete exhibiciones de segmentoIntroducciónMuchos sensores no tienen una manera simple de enchufe directamente en ellos, y aun cuando existe una forma de hackearlo, implica a menudo habilidades soldaduras mad-montaje en superficie. Simplemente le
Guarda tus pins en proyecto de display de 7 segmentos

Guarda tus pins en proyecto de display de 7 segmentos

Una pantalla de siete segmentos es bastante útil pero algo malo sobre ella es que utiliza un montón de pines del microcontrolador. Puede utilizar sólo dos o tres displays de siete segmentos con microcontroladores arduino uno, arduino nano, linkit uno
Contador decimal de Arduino con display de 7 segmentos

Contador decimal de Arduino con display de 7 segmentos

Utilizando un arduino uno y una pantalla de siete segmentos que vamos a hacer un circuito muy simple y básico que cuenta desde 0 hasta 9 y se repite hasta que lo apague.Paso 1: Cosas que necesitaremos Arduino UNOResistor de 220 Ωdisplay de 7 segmento
DHT11 + Display de 7 segmentos

DHT11 + Display de 7 segmentos

Este instructable le gusta otros usando DHT11 y módulo de exhibición de segmento 7 para mostrar la temperatura y la humedad, pero no se mostrará la construcción, algo será importante en la técnica para mostrar los datos en el display de 7 segmentos.
TOD: Intro ROM de matriz de diodos (display de 7 segmentos)

TOD: Intro ROM de matriz de diodos (display de 7 segmentos)

toneladasDeDiodosUna nueva serie de instructables que utilizará toneladas y toneladas de diodos. No IC en voz alta, es los conductores semi solo son diodos y transistores. Los componentes pasivos sólo en voz alta son condensadores, resistencias, inte
DISPLAY de 7 segmentos

DISPLAY de 7 segmentos

Este instructable muestra cómo mostrar 0-9 dígitos de 7 segmentos Mostrar utilizando Arduino.y este tipo de instructables están solamente para la beginner.if de arduino encontrará dificultades en siguiendo mi tutorial por favor deje un comentario aba
Reutilizar componentes electrónicos - Display de 7 segmentos basado en PT6964

Reutilizar componentes electrónicos - Display de 7 segmentos basado en PT6964

Hola, este es mi primer poco instructivo.Soy un gran fan de desarmar cosas electrónicas y mirar dentro. He aprendido mucho cosas sobre diseños, fichas y también rescatar piezas de electrónica antigua es una forma barata y fácil para obtener repuestos