0% found this document useful (0 votes)
405 views

Propeller Led Display

This document describes a propeller LED display. It uses the persistence of vision phenomenon to display images floating in air using LEDs mounted on a rotating circuit board powered by a DC motor. Seven LEDs are synchronized by a microcontroller to simulate a larger display. It can be used for public information displays like at railway stations. The construction involves a rotating circuit board with LEDs, a microcontroller, motor controller, and DC motor powered by a regulated supply. It works by scanning LED patterns at high speed to appear continuous to the human eye.

Uploaded by

Shweta Jain
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
405 views

Propeller Led Display

This document describes a propeller LED display. It uses the persistence of vision phenomenon to display images floating in air using LEDs mounted on a rotating circuit board powered by a DC motor. Seven LEDs are synchronized by a microcontroller to simulate a larger display. It can be used for public information displays like at railway stations. The construction involves a rotating circuit board with LEDs, a microcontroller, motor controller, and DC motor powered by a regulated supply. It works by scanning LED patterns at high speed to appear continuous to the human eye.

Uploaded by

Shweta Jain
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 30

Propeller LED Display

Dept. of Electronics and Communication,KITE,Jaipur Page 1



CHAPTER 1
1 PROPELLER LED DISPLAY OVERVIEW
Propeller is a term associated with a circular rotating object. As this project needs to rotate the
whole circuit assembly, there must be some prime mover attached to it. So, the term Propeller.
This project using bright light emitting diodes for displaying the characters and symbols on its
assembly. Thats why this project is named as PROPELLER LED DISPLAY. This is the
phenomenon which is related to vision capability of human eye by which an afterimage is
thought to persist for approximately 1/25th of a second. So, if someone is observing the images
at a rate of 25 images per second, then they appear to be continuous. The best example of this
property is the red circle we observe when we rotate the firecracker or incense stick in circle.
This project was started with a simple principle which is frequently encountered in our everyday
life, which is Persistence of Vision. This phenomenon makes one feel fast moving/changing
objects to appear continuous. A television is a common example; in which image is re-scanned
every 25 times, thus making it continuous. Further, a glowing objects if rotated in a circle at fast
speed, it shows a continuous circle. By modifying this basic idea, 7 LEDs can be rotated in a
circle, showing 7 concentric circles. But if these LEDs are switched at precise intervals, a steady
display pattern can be shown. Existing systems do employ POV principle, but for displaying
each pixel, individual LED is used. This results in a huge number of LEDs even for small sized
displays. By using a propeller type display, LED count can be kept to a bare minimum. Even 7
LEDs can perform a task of over 525 LEDs. Applications can find their way into cost effective
solutions for large public displays, information systems. It can directly replace Railway station
information displays, bus stands and many more places.
Conventional methods of displaying images to public are using LCD display and dot-matrix
LED board. Propeller LED display is a device that project an image or time as if the images are
floating in the air. The floating image is received because of human eye limitation. Actually the
floating images emerge by synchronizing LED'S blink to form an image at particular time and
rate.
The programming of PIC is using Assembly Language. This project consist two main circuit;
motor controller circuit and LED circuit. 9VDC will be used to supply the power for motor
Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 2

controller circuit. Then the motor controller circuit will provides power to LED circuit and DC
motor. When DC motor is rotating, the floating image will appear. The synchronization of DC
motor speed and LED blink cause the image visible to human eyes. So the desired image such as
clock, date or symbol can be programmed and displayed.


















Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 3



CHAPTER 2




2.1 Working principle
If you move a bright light fast by the eyes, it will leave a line behind because the human brain
and eyes are slow to interpret fast changes in light intensity, leaving an after glow. If a row of
LEDs is moved sideways while the LEDs intensity is changed, an image will shortly visualize
in the air where the LEDs are moved. If this is done several times, for example if the LEDs are
mounted on the end of a bar mounted on a motor as in the figure on the right, the same area in
the air could be scanned several times showing the same image each time. Done at high speed it
would generate a quite good virtual display hanging in air thanks to the persistence of vision
2 WORKING PRINCIPLE
Microcontrolled LEDs
DC Motor
Power Supply
Fig 1: Schematic Diagram
Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 4

effect of the brain. People has started to refer to this kind of display as POV-displays
(Persistence of vision displays) as if it was the only type of displays depending on the persistence
of vision effect but that is kind of ignorant as many display types use the same effect, like for
example CRTs and multiplexed LED displays, thus "mechanically scanned display" is a more
accurate name.
2.2 How this clock works:
The basic principle used is the persistence of vision. As the LEDs rotate at a high speed they can
be controlled with the help of a micro-controller so as to glow them in such a combination that a
floating display is formed .A motor spins the "propeller", and a small microprocessor keeps track
of time and changes the pattern on seven LEDs with exact timing to simulate an array of LEDs.
It is an illusion, but it works nicely.


Fig 2: Working of Propeller LED Display





Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 5

2.3 Display Formation
As we have already learned that POV is the basic phenomena involved, now to use this we need
to get into some details. We first divide our numbers into matrix of 5*5.



This how a no. would appear. On the basis of the ABOVE diagram , coding is done and then the
display is formed.









Fig 3: Display Formation
Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 6

CHAPTER 3
3 CONSTRUCTION AND COMPONENTS USED
Basically, Propeller LED display has 2 units:
1. Rotating circuit board
2. DC motor with power supply unit
Rotating board and DC motor with power supply unit:






Fig 4: Rotating Circuit Board
Fig 5: DC Motor with Power Supply
Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 7

Components used are 1 Microcontroller 8051,8 LEDs, Interrupter module, Capacitors, resistors,
IC 7805,Crystal Oscillator, High speed DC Motor, rotor.
Interrupter Module (OPTO COUPLER) :-Interrupter module is our hardware sensor module,
consisting of the IR interrupt sensor MOC7811, from Motorola Inc. This sensor was selected
from a variety of other alternatives, because of its small size, precise interrupt sensing, and
sturdy casing. One great advantage of using this module is interfacing it with the microcontroller
is just a matter of two resistors and a general purpose transistor and is provides isolation between
2 circuits.
Microcontroller AT89C2051:-This project is based on the microcontroller AT89C2051, which is
a derivative of 8051 family, from Atmel Inc. This is a 20 pin IC packaged in DIP package. This
mall sized IC is used, mainly because of its reduced weight. This improves the performance of
the display.
LED Module:- LED module consisting of 8 bright LED is fixed in another side of the arm of our
project. These LEDs are connected with each of the port pin of microcontroller, with a series
current limiting resistor of 470 ohm.
DC Motor: Repeated scanning of the display is must for continuous vision. This task is achieved
using circular rotation of the whole circuit assembly. So, we used a DC motor with 1200 rpm
needed as the prime mover.
DC Power Supply: For microcontroller, as well as the DC motor, a regulated DC power supply is
required. We have to provide +6V to the microcontroller, while +9V to the motor.



Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 8




From the Fig 6, the 9V DC is supplied to Motor Controller Circuit. Motor Controller circuit is
controlling the DC motor speed and the speed is adjustable. In order to rotate the circuit, DC
motor is used. Microcontroller purposed is to execute the program and transmit the signal to
LED. As output, a line of LED is used to transmit the desired signal. In order to display the
images, DC motor will rotate the circuit board. If the displayed image is not clear, the DC motor
speed is adjusted until the displayed image is visible.





Fig 6: Block Diagram of Propeller LED Display
Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 9

3.1 MOTOR
Motors come in many sizes and types, but their basic function is the same. Motors of all types
serve to convert electrical energy into mechanical energy. They can be found in VCR's,
elevators, CD players, toys, robots, watches, automobiles, subway trains, fans, space ships, air
conditioners, refrigerators, and many other places. The performance of the motor is very
important in circuit design. This is because the electrics motors directly affect its speed and
pushing capability. Motor performance information is needed to select the required speed. The
current requirements from the motor will dictate what type and size batteries will need and they
are also a factor in determining the minimum current requirements for motor speed controllers.
3.1.1 DC Motor
DC motors seem quite simple. Apply a voltage to both terminals, and it will spin. DC motors are
non-polarized which means that it can reverse voltage so the motor will rotate in two directions,
forward and backward. Typical DC motors are rated from about 6V-12V. The larger ones are
often 24V or more but for the purpose of this project, it is necessary to use 6V-12V range motor.
Voltage is directly related to motor torque. The more voltage supplied, the higher the torque will
be produce. Specifications of most DC motors show high revolutions per minute (rpm) and low
torque.
The DC motor is popular in a number of drive applications due to its simple operation and
control. By referring Fig 7, it has 2 main parts which is rotor and stator. Stator is the part where
the permanent magnet situated and used to generate the magnetic field and it is static. Rotor is
the rotary part in the motor and contains block of core and wire loops. It also called the armature.


Fig 7: DC Motor
Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 10

The rotor is placed inside the magnetic field caused by two permanent magnets. By referring to
the situation that shown in Fig 8, both sides of the wire loop will have a force on them. trying to
make the wire loop rotate. The current is applied to the loop through the commutator, which is
shown as two pieces of metal formed into a ring in the figure. Current is applied to the
commutator by stationary graphite blocks, called brushes, which rub against the commutator
ring. The loop will continue to rotate anticlockwise until it is vertical. At this point, the stationary
brushes won't be applying current around the loop anymore because they will be contacting the
gap between the commutator segments, but the inertia of the loop keeps it going a little more,
until the DC supply reconnects to the commutator segments, and the current then goes around the
loop in the opposite direction. The force though is still in the same direction. and the loop
continues to rotate.







Fig 8: Operation of DC Motor
Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 11

3.1.1.1 DC Motor Voltage
DC motors are non-polarized - meaning that one can reverse voltage without any bad things
happening. Typical DC motors are rated from about 6V-12V. The larger ones are often 24V or
more. But for the purposes of this project, do stay in the 6V-12V range. It is stated that voltage is
directly related to motor torque. High voltage produces higher torque. A DC motor is rated at the
voltage it is most efficient at running. If very few volts are applied, it just won't work. If too
much is applied, it will overheat and the coils will melt. So the general rule is to apply as close to
the rated voltage of the motor. But do not surpass 12V motors unless the torque is required
badly.
3.1.1.2 DC Motor Current
As with all circuitry, one must pay attention to current. Too little, and it just won't work. Too
much, the motor will meltdown. When buying a motor, there are two current ratings one should
pay attention to. The first is operating current. This is the average amount of current the motor is
expected to draw under a typical torque. Multiply this number by the rated voltage and the
average power draw required to run the motor is obtained. The other current rating which one
needs to pay attention to is the stall current. This is when the motor is power up, and enough
torque is put to force it to stop rotating. This is the maximum amount of current the motor will
ever draw, and hence the maximum amount of power too. So, one must design all control
circuitry capable of handling this stall current. Also, if the motor is constantly run, or run it
higher than the rated voltage, it is wise to heat sink to keep the motor's coils from melting.
3.1.1.3 DC Motor Power Rating
Basically, all motors are rated at certain wattage. Wattage is energy. Inefficiency of energy
conversion directly relates to heat output. Too much heat, the motor coils melt. So the
manufacturers of motors know how much wattage will cause motor failure, and post this on the
motor specification sheets.
The equation is:
Power (watts) = Voltage * Current
Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 12

Increase voltage and measure current until the power is about -90% below the given power
rating.
3.1.1.4 DC Motor Torque
Torque is defined as that force which tends to produce and maintain rotation. The function of
torque in a DC motor is to provide the mechanical output or drive the piece of equipment that the
DC motor is attached to. There are two torque value ratings which must been pay attention to.
The first is the operating torque. This is the torque the motor was designed to give. Usually it is
the listed torque value. The other rated value is stall torque. This is the torque required to stop the
motor from rotating. he torque which is developed by the motor can be determined using
Equation:
T = KI
where
T = torque
K = a constant depending on physical size of motor
= field flux, number of lines of force per pole
I, = armature current
When buying a DC motor, there are two torque value ratings which must be Pay attention to. The
first is operating torque. This is the torque the motor was designed to give. Usually it is the listed
torque value. The other rated value is stall torque. This is the torque required to stop the motor
from rotating. If one need a little more speed, going 20% above the rated motor voltage value is
fairly safe. But, that this is less efficient, and the motor should be heat-sinked.
3.1.1.5 Velocity
Velocity is very complex when it comes to DC motors. The general rule is motors run the most
efficient when run at the highest possible speeds. Obviously however this is not possible. There
are times to run the motor slowly. Just like car, it won't to keep the car constantly at high speed.
The voltage and applied torque resistance obviously also affects speed.
Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 13


3.2 LED
A light-emitting diode (LED) is a semiconductor light source. LEDs are used as indicator lamps
in many devices, and are increasingly used for lighting. Introduced as a practical electronic
component in 1962, early LEDs emitted low-intensity red light, but modern versions are
available across the visible, ultraviolet and infrared wavelengths, with very high brightness. The
LED is based on the semiconductor diode. When a diode is forward biased (switched
on),electrons are able to recombine with holes within the device, releasing energy in the form of
photons. This effect is called electro luminescence and the color of the light (corresponding to
the energy of the photon) is determined by the energy gap of the semiconductor. An LED is
usually small in area (less than 1 mm 2), and integrated optical components are used to shape its
diation pattern and assist in reflection.
LEDs present many advantages over incandescent light sources including lower energy
consumption, longer lifetime, improved robustness, smaller size, faster switching, and greater
durability and reliability. However, they are relatively expensive and require more precise
current and heat management than traditional light sources. Current LED products for general
lighting are more expensive to buy than fluorescent lamp sources of comparable output. They
also enjoy use in applications as diverse as replacements for traditional light sources in aviation
lighting, automotive lighting (particularly indicators) and in traffic signals. The compact size of
LEDs has allowed new text and video displays and sensors to be developed, while their high
switching rates are useful in advanced communications technology. IR LEDs are also used in
many commercial products such as a TV remote.





Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 14


CHAPTER 4
4 WORKING OPERATION AND RELATED CODES
4.1 SOFTWARE DESCRIPTION
Kiel compiler
The KIEL 8051 Development Kits are a complete solution for creating software for the 8051
family of microcontroller. The development Kits comprise many different tools that allow
projects ranging from simple to highly complex to be developed with relative ease. You will
find that with the KIEL development kits you can rely on tools that have been tested by real
users over a long period of time.KIEL provides a familiarity to the tools that will provide a basis
for using more complex features. It is assumed that the user is familiar with Windows has at
least some familiarity with the 2051 microcontroller family and the C programming language.
Algorithm
i. Main routine
1. Load proper value in IE register, so that the interrupts INT0 and T0 are enabled. (IE =83H)
2. Offer higher priority to the INT0 (External) interrupt.(IP = 01H)
3. Configure timer 1 as 16-bit timer, and timer0 as 8-bit auto reload mode timer. ( TMOD= 12H)
4. INT0 should be configured as edge interrupt. (IT0=1)
5. Configure port 3 as input port. (P3 = 0FFH)
6. Move input string to the video RAM area.(callramc function)
7. Start the timers.
8. Initiate an infinite loop.

Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 15

ii. Interrupt Routines
a. External Interrupt
1. Stop the timers.
2. Move th1 and tl1 into convenient registers.
3. Divide this 16 bit value by our total number Of segments.
4. Subtract the answer from 256, and load the Result in th0.
5. Now, reset the video RAM pointer and character segment pointers to their initial respective
6. start the timer.
7. Return from interrupt
b. Timer 0 Interrupt
1. Call the display routine.
2. Clear timer overflows flag.
3. Return from interrupt
4.2 Sources codes & Schematics
-Schematic in PDF format
//**************************************
// Clock 16 MHz
// Version 1.0 Janvier 2002
// Sylvain Bissonnette
//**************************************
//**************************************
// I N C L U D E
//**************************************
#include <io2313v.h>
Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 16

#include <macros.h>
//**************************************
// D E F I N E
//**************************************
#define TRUE 0x01
#define FALSE 0x00
#define ANALOG 0x01
#define DIGITAL 0x02
//**************************************
// I N T E R R U P T H A N D L E R
//**************************************
#pragma interrupt_handler Crossing_interrupt:2
#pragma interrupt_handler IR_interrupt:4
#pragma interrupt_handler Degre_interrupt:5
#pragma interrupt_handler Ticker_interrupt:7
//**************************************
// P R O T O T Y P E
//**************************************
void Crossing_interrupt(void);
void Degre_interrupt(void);
void Time(unsigned char);
void IR_interrupt(void);
void Ticker_interrupt(void);
void Display(void);
void CopyData(int Value);
void CopyDot(void);
//**************************************
Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 17

// G L O B A L V A R I A B L E
//**************************************
int WeelPosition;
unsigned char Pos;
unsigned int Adder;
unsigned char LatchedIrData;
unsigned char Sec;
unsigned char Min;
unsigned char Hrs;
int SecComp;
int MinComp;
int HrsComp;
unsigned char ClockStyle;
unsigned char TimeString[50];
unsigned char *TimeStringPtr;
unsigned char i;
//**************************************
// C O N S T A N T
//**************************************
const unsigned char table[12][6] = {{ 0x3e, 0x41, 0x41, 0x41,
0x3e, 0x00 }, // 0
{ 0x00, 0x21, 0x7f, 0x01, 0x00,
0x00 }, // 1
{ 0x21, 0x43, 0x45, 0x49, 0x31,
0x00 }, // 2
{ 0x42, 0x41, 0x51, 0x69, 0x46,
0x00 }, // 3
Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 18

{ 0x0c, 0x14, 0x24, 0x5f, 0x04,
0x00 }, // 4
{ 0x72, 0x51, 0x51, 0x51, 0x4e,
0x00 }, // 5
{ 0x1e, 0x29, 0x49, 0x49, 0x06,
0x00 }, // 6
{ 0x40, 0x47, 0x48, 0x50, 0x60,
0x00 }, // 7
{ 0x36, 0x49, 0x49, 0x49, 0x36,
0x00 }, // 8
{ 0x30, 0x49, 0x49, 0x4a, 0x3c,
0x00 }, // 9
{ 0x00, 0x36, 0x36, 0x00, 0x00,
0x00 }, // :
{ 0x00, 0x00, 0x00, 0x00, 0x00,
0x00 }};// space
//**************************************
// M A I N
//**************************************
void main()
{
WDTCR = 0x0e; // Enable WatchDog at 0.97 sec
PORTD = 0x0d; // Pull up on PD2&PD3 & Led White ON
DDRD = 0x03; // PD0-O PD1-O PD2-I PD3-I PD4-I
PD5-I PD6-I PD7-I
//INT 0
MCUCR = 0x02; // Int0 generate int on falling eadge
Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 19

GIMSK = 0x40; // Int0 enable
//Timer0
TCCR0 = 0x05; // Timer0 / 1024
//Timer1
TCCR1B = 0x42; // Timer1 / 8 & Input Capture on Rising
eadge
TIMSK = 0x4a; // int enable on Timer1 Compare Match
// int enable on Timer 1 Input Capture
// int enable on Timer0 Overflow
PORTB = 0x00;
DDRB = 0xff; // PB0-7 as output
Hrs = 0;
Min = 0;
Sec = 0;
ClockStyle = ANALOG;
SEI();
while(1)
{
asm("WDR");
for (i=0;i<200;i++);
f if ((LatchedIrData == 0xbb) || (LatchedIrData == 0x92))
Time(TRUE);
f if ((LatchedIrData == 0xb3) || (LatchedIrData == 0xb0))
ClockStyle = DIGITAL;
f if ((LatchedIrData == 0xb4) || (LatchedIrData == 0xb1))
ClockStyle = ANALOG;
LatchedIrData = 0;
Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 20

}
}
/
**************************************************
********
Name: void Time(void)
Description:
Input: none
Output: none
Misc:
**************************************************
********/
void Time(unsigned char Fast)
{
f if (Fast == FALSE) Sec++;
else Sec += 60;
f if (Sec > 59)
{
Sec = 0;
Min++;
f if (Min > 59)
{
Min = 0;
Hrs++;
f if (Hrs > 11)
{
Hrs = 0;
Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 21

}
}
}
f if (ClockStyle == ANALOG)
{
SecComp = Sec*6;
MinComp = Min*6;
HrsComp = (Hrs*30)+(Min/2);
}
else
{
TimeStringPtr = &TimeString[0];
CopyData(Hrs);
CopyDot();
CopyData(Min);
CopyDot();
CopyData(Sec);
}
}
/
**************************************************
********
Name: void CopyData(int Value)
Description:
Input: none
Output: none
Misc:
Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 22

**************************************************
********/
void CopyData(int Value)
{
f if (Value < 10)
{
for (i=0;i<6;i++) *TimeStringPtr++ = table[0][i];
for (i=0;i<6;i++) *TimeStringPtr++ = table[Value][i];
}
else
{
for (i=0;i<6;i++) *TimeStringPtr++ = table[Value/10][i];
for (i=0;i<6;i++) *TimeStringPtr++ = table[Value-
((Value/10)*10)][i];
}
}
/
**************************************************
********
Name: void CopySpace(void)
Description:
Input: none
Output: none
Misc:
**************************************************
********/
void CopyDot(void)
Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 23

{
for (i=0;i<6;i++) *TimeStringPtr++ = table[10][i];
}
/
**************************************************
********
Name: void Crossing_interrupt(void
Description:
Input: none
Output: none
Misc:
**************************************************
********/
void Crossing_interrupt(void)
{
static unsigned int LastCount;
static unsigned int TotalCount;
static int Latch;
static unsigned char Lap;
Latch = TCNT1;
TotalCount = Latch - LastCount;
LastCount = Latch;
Lap++;
f if (Lap > 250)
{
Adder = TotalCount / 378;
Lap = 0;
Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 24

}
WeelPosition = 0;
OCR1 = Latch + Adder;
TIFR |= 0x80;
Display();
}
/
**************************************************
********
Name: void Degre_interrupt(void)
Description:
Input: none
Output: none
Misc:
**************************************************
********/
void Degre_interrupt(void)
{
OCR1 = TCNT1 + Adder;
Display();
}
/
**************************************************
********
Name: void Display(void)
Description:
Input: none
Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 25

Output: none
Misc:
**************************************************
********/
void Display(void)
{
PORTB = 0x00;
f if (ClockStyle == ANALOG)
{
f if (WeelPosition == HrsComp) PORTB = 0x80;
f if (WeelPosition == MinComp) PORTB = 0xff;
f if (WeelPosition == SecComp) PORTB |= 0x03;
f if ((WeelPosition == 0) ||
(WeelPosition == 30) ||
(WeelPosition == 60) ||
(WeelPosition == 90) ||
(WeelPosition == 120) ||
(WeelPosition == 150) ||
(WeelPosition == 180) ||
(WeelPosition == 210) ||
(WeelPosition == 240) ||
(WeelPosition == 270) ||
(WeelPosition == 300) ||
(WeelPosition == 330)) PORTB |= 0x01;
Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 26

}
else
{
Pos = ((WeelPosition-100) / 3);
f if (Pos < 49)
{
PORTB = TimeString[48-Pos];
}
}
WeelPosition++;
}
/
**************************************************
********
Name: void IR_interrupt(void)
Description: This routine is called whenever a rising edge
(beginning
of valid IR signal) is received.
- The data codes are sent using pulse coding.
- Each packet has 12 bits and a header.
- The basic time period T = 550us.
- The header length = 4T (2.2ms)
- 0 = pulse with length T followed by space of
length T.
- 1 = pulse with length 2T followed by space of
length T.
- The last 5 bits represent the Addess.
Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 27

- The first 7 bits represent the command.
- A packet is transmitted every 25ms while a
button is down.
Input: none
Output: Global variable LatchedIrData
Misc: Sony VCR protocol
**************************************************
********/
void IR_interrupt(void)
{
static unsigned int LastCapture;
unsigned int PulseWidth;
static unsigned int IrPulseCount;
static unsigned int IrData;
PulseWidth = ICR1 - LastCapture;
LastCapture = ICR1;
f if (PulseWidth > 4000)
{
IrPulseCount = 0;
IrData = 0;
}
else
{
IrData = IrData >> 1;
f if (PulseWidth > 2800) IrData = IrData | 0x8000;
IrPulseCount++;
f if (IrPulseCount == 12) LatchedIrData = ((IrData >> 4) &
Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 28

0x00ff);
}
}
/
**************************************************
********
Name: void Ticker_interrupt(void)
Description:
Input: none
Output: none
Misc:
**************************************************
********/
void Ticker_interrupt(void)
{
static unsigned char Tick;
Tick++;
f if (Tick > 62)
{
Time(FALSE);
Tick = 0;
}
TCNT0 = 0x04; // reload counter




Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 29

CHAPTER 5
5 CONCLUSION



















Propeller LED Display


Dept. of Electronics and Communication,KITE,Jaipur Page 30


REFERENCES
www.google.com
www.wikipedia.com
www.electropedia.com

You might also like