ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Propeller Clock Manual


Enviado por   •  7 de Junio de 2013  •  1.573 Palabras (7 Páginas)  •  2.370 Visitas

Página 1 de 7

Introducción

El proyecto consiste en un reloj digital de LED’S cuyo objetivo es mostrar la hora con una particularidad que lo distingue, girando los 360° grados.

La finalidad del reloj giratorio es lograr que las personas les llamé la tención por las funciones que tiene y observes la hora de una manera distinta.

Características Técnicas

Este proyecto se basa en un mecanismo giratorio que consta básicamente de un motor al cual va fijada a un protoboard que hace la función de hélice como si de un ventilador.

En el extremo del protoboard va una hilera vertical formada por siete LED’S. A través de la velocidad y de una adecuada programación del microcontrolador PIC16F648 que domina a los LED’S, además de todos sus componentes.

Requisitos de Reloj Digital

Para construir este reloj se necesitan los siguientes componentes:

- 2 capacitores de 33pF de cerámica.

- 4 capacitores 0.1µF de cerámica.

- 1 capacitor de 47µF a 50V

- 1 capacitor de 4700µF a 16V

- 7 LED’S (del color que gusten)

- 8 diodos 1N4001 1A

- 7 resistencias de 120Ω a 1/4W

- 7 resistencias 10kΩ a 1/4W

- 3 push button

- 1 PIC16F84A

- 1 Oscilador de cristal de 4 MHz

- 1 motor

- Cables

Diagrama

Conectamos los componentes de acuerdo al siguiente diagrama:

El PIC16F84A se tiene que configurar de la siguiente manera, a continuación se muestra la programación:

;--------

; mclock8.asm

; "The Propeller" mechanically scanned LED clock

; some changes since last version -

; modified table etc for compatiblility with 8th LED

; watchdog timer used to ensure startup

; Bob Blick February 12, 1997

; Licensed under the terms of the GNU General Public License, www.gnu.org

; No warranties expredded or implied

; Bob Blick February 18, 2002

;--------

list p=16C84

radix hex

include "p16c84.inc"

;--------

; remember to set blast-time options: OSC=regular xtal, WDT=ON

; timings all based on 4 MHz crystal

;--------

; are these equates already in the include file? someday I'll look.

;--------

w equ 0

f equ 1

;--------

; Start of available RAM.

;--------

cblock 0x0C

safe_w ;not really temp, used by interrupt svc

safe_s ;not really temp, used by interrupt svc

period_count ;incremented each interrupt

period_dup ;copy of period_count safe from interrupt

period_calc ;stable period after hysteresis calc.

flags ;b2=int b1=minute b4=edge

dot_index ;which column is being displayed

digit_index ;which digit is being displayed

hours ;in display format, not hex(01-12)

minutes ;00 to 59

bigtick_dbl ;incremented each interrupt

bigtick_hi

bigtick_lo

keys ;key value

scratch ;scratch value

tick ;used by delay

endc

;--------

; Start of ROM

;--------

org 0x00 ;Start of code space

goto Start

;--------

; INTERRUPT SERVICE ROUTINE

;--------

org 0x04 ;interrupt vector

Intsvc movwf safe_w ;save w

swapf STATUS,w ;swap status, w

movwf safe_s ;save status(nibble swap, remember)

;--------

; done saving, now start working

;--------

; clear watchdog timer to ensure startup

clrwdt

;

; increment period count

incf period_count,f

btfsc STATUS,Z ;zero set means overflow

decf period_count,f

; 234375 interrupts every minute. Increment the bigtick each time.

incf bigtick_lo,f

btfsc STATUS,Z

incf bigtick_hi,f

btfsc STATUS,Z

incfsz bigtick_dbl,f

goto Bigtick_out

...

Descargar como (para miembros actualizados)  txt (15.2 Kb)  
Leer 6 páginas más »
Disponible sólo en Clubensayos.com