Free Academic Seminars And Projects Reports

Full Version: STROBOSCOPE
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
[attachment=1019]
Chapter I
INTRODUCTION
i.Background
The path of exploring the final year project had many barriers, but it made us imbibe some valuable knowledge of the field. We started searching project from internet and various magazines. We saw a number of projects from EFY and CHIP Magazine. We came across many projects on DC motor control, tachometer and RPM meters; but all these projects seemed to be very common, so using this concept we thought to have the idea of counting the RPM of any motor and we discussed this topic with our H.O.D. Mr. S.E.MENDHE. We started developing ideas on this concept and at the end we got a project on this idea from a website named 8051projects.info. Stroboscope is a very handy instrument which can reach places where tachometers cannot; like a motor placed in a big casing or machine where there is no light, stroboscopes are used here as a means of estimating RPM as it already uses a light source and also the machine need not be stopped because there is no need of contact with the motor whereas tachometers cannot be used in dark environment and also needs a point of contact with the motor.
ii.Project objective
The objective of our project is to measure RPM of the motor or any rotating device using Microcontroller AT89C51 and stroboscopic effect.
ii.Outline of the project report
Herein it is explained as to how this report is divided into chapters and a small script of each chapters is explained. In first chapter, explanation of how we selected this project and what is the objective of it. In second chapter, explanation of basic idea of the project report, block diagram of the circuit, microcontroller chip (AT89C51) and 74LS373 is given. In third chapter, explanation of microcontroller circuit, power supply circuit and D-Type Edge-Triggered Flip-Flop is given. In fourth chapter, PCB Layout of our circuit is pictured. In fifth Chapter, Program (Software) is described. In sixth chapter explanation regarding components used in our project is configured and described. In Seventh chapter the application of my project is explained and that after conclusion and bibliography has been added.
Chapter II
MAIN CONTENTS
1. BASIC CONCEPT
1.1 Principle
The principle on which the project works is measuring RPM of motor using stroboscopic effect where instrument is used to make a cyclically moving object that appears to be slow-moving, or stationary.
1.2 Block Diagram

1.3 Working
A stroboscope, also known as a strobe, is an instrument used to make a cyclically moving object appear to be slow-moving, or stationary. The principle is used for the study of rotating, reciprocating, oscillating or vibrating objects. Machine parts and vibrating strings are common examples.
In its simplest form, a rotating disc with evenly-spaced holes is placed in the line of sight between the observer and the moving object. The rotational speed of the disc is adjusted so that it becomes synchronized with the movement of the observed system, which seems to slow and stop. The illusion is caused by temporal aliasing, commonly known as the stroboscopic effect.
In electronic versions, the perforated disc is replaced by a lamp capable of emitting brief and rapid flashes of light. The frequency of the flash is adjusted so that it is an equal to, or a unit fraction below or above the object's cyclic speed, at which point the object is seen to be either stationary or moving backward or forward, depending on the flash frequency.
An oscillator is made to produce a pulse wave of a known frequency. This is then used to drive a bright LED, which can cope with the fast rate of flashing (note that an incandescent bulb is no use since when it is driven at a high frequency, the filament remains hot when the power goes off, and you end up with a light that is not flashing at all, but is permanently on).
A mark is made on the object that is rotating that you wish to measure, and the object is spun up to speed. The oscillator is set to a low frequency to start with, and the LED is shone at the object where the mark is. At first, the mark will appear at random points around the object

The frequency of the oscillator is then gradually increased until the mark appears to remain stationary.

If the strobe frequency is slightly under the speed of the object, the mark will creep forward:

And if the strobe frequency is slightly faster than the speed of the object, the mark will creep backwards:

When it is stationary, the LED is flashing at the same frequency as the object is rotating. Since the frequency is known, the rotational speed is also known, and can be stated in RPM using the formula:
RPM = 60 x f strobe
The correct speed of rotation is the highest speed that stops the object. The frequency of rotation is then the number of rotations of the stroboscope per second multiplied by the number of slits in the stroboscope. If the flash frequency is such that n stationary images are seen then the speed of rotation being measured will be N = (speed of flashes per minute)/n.


1.4 Microcontroller
The micro controller is true computer on a chip. The design in corporate all the features found in a micro processor CPU: ALU, PC, SP, and registers. It also has added the some other features to make a complete computer. RAM, ROM, parallel and serial I/O, counters and the clock circuitry.
The prime use of micro controller is to control the operation of rover direction using a fixed program is stored in ROM and that does not change until the microcontroller chip is chip writer of controller in order to rewriter, the code remains as it is the chip lifetime.
1.4.1 Selection of Microcontroller Chip
The micro controllers which are available in the market right now are of various families, in different packaging technologies, different number of pin configuration, with various operating voltage ranges & ambient temperature ranges and many other features are provided by the various manufactures of microcontroller like Atmel, Motorola, and many others. But the best controller suitable for our project is from Atmel Company which is AT89C51.

1.4.2 Features
8K Bytes of In-System Programmable (ISP) Flash Memory
Endurance: 1000 Write/Erase Cycles
4.0V to 5.5V Operating Range
Fully Static Operation: 0 Hz to 33 MHz
Three-level Program Memory Lock
256 x 8-bit Internal RAM
32 Programmable I/O Lines
Three 16-bit Timer/Counters
Eight Interrupt Sources
Full Duplex UART Serial Channel
Low-power Idle and Power-down Modes
Interrupt Recovery from Power-down Model
Watchdog Timer
Dual Data Pointer
Power-off Flag
Fast Programming Time
Flexible ISP Programming (Byte and Page Mode)
1.4.3 Description
The AT89C51 is a low-power, high-performance CMOS 8-bit microcontroller with 8K bytes of in-system programmable Flash memory. The device is manufactured using Atmel s high-density nonvolatile memory technology and is compatible with the industry- standard 80C51 instruction set and pin out. The on-chip Flash allows the program memory to be reprogrammed in-system or by a conventional nonvolatile memory programmer. By combining a versatile 8-bit CPU with in-system programmable Flash on a monolithic chip, the Atmel AT89C51 is a powerful microcontroller which provides a highly-flexible and cost-effective solution to many embedded control applications.
The AT89C51 provides the following standard features: 8K bytes of Flash, 256 bytes of RAM, 32 I/O lines, Watchdog timer, two data pointers, three 16-bit timer/counters, a six-vector two-level interrupt architecture, a full duplex serial port, on-chip oscillator, and clock circuitry. In addition, the AT89C51 is designed with static logic for operation down to zero frequency and supports two software selectable power saving modes. The Idle Mode stops the CPU while allowing the RAM, timer/counters, serial port, and interrupt system to continue functioning. The Power-down mode saves the RAM contents but freezes the oscillator, disabling all other chip functions until the next interrupt or hardware reset.
1.4.4 Pin Diagram

1.4.5 PIN OUTLINE:
Total pin:40
Address pin:16
Data pins:8
Interrupts pins:2
I/O pins:32
I/O ports:4
VCC: Supply voltage
GND: Ground
Port 0
Port 0 is an 8-bit open drain bidirectional I/O port. As an output port, each pin can sink eight TTL inputs. When 1s are written to port 0 pins, the pins can be used as high impedance inputs. Port 0 can also be configured to be the multiplexed low-order address/data bus during accesses to external program and data memory. In this mode, P0 has internal pull-ups. Port 0 also receives the code bytes during Flash programming and outputs the code bytes during program verification. External pull-ups are required during program verification.
Port 1
Port 1 is an 8-bit bidirectional I/O port with internal pull-ups. The Port 1 output buffers can sink/source four TTL inputs. When 1s are written to Port 1 pins, they are pulled high by the internal pull-ups and can be used as inputs. As inputs, Port 1 pins that are externally being pulled low will source current (IIL) because of the internal pull-ups. In addition, P1.0 and P1.1 can be configured to be the timer/counter 2 external count input (P1.0/T2) and the timer/counter 2 trigger input (P1.1/T2EX), respectively, as shown in the following table. Port 1 also receives the low-order address bytes during Flash programming and verification.
Port Pin Alternate Functions
Port Pin Alternate Functions
P1.0 T2 (external count input to Timer/Counter 2), clock-out
P1.1 T2EX (Timer/Counter 2 capture/reload trigger and direction control)
P1.5 MOSI (used for In-System Programming)
P1.6 MISO (used for In-System Programming)
P1.7 SCK (used for In-System Programming)
Port 2
Port 2 is an 8-bit bidirectional I/O port with internal pull-ups. The Port 2 output buffers can sink/source four TTL inputs. When 1s are written to Port 2 pins, they are pulled high by the internal pull-ups and can be used as inputs. As inputs, Port 2 pins that are externally being pulled low will source current (IIL) because of the internal pull-ups. Port 2 emits the high-order address byte during fetches from external program memory and during accesses to external data memories that use 16-bit addresses (MOVX @ DPTR). In this application, Port 2 uses strong internal pull-ups when emitting 1s. During accesses to external data memory that use 8-bit addresses (MOVX @ RI), Port 2 emits the contents of the P2 Special Function Register. Port 2 also receives the high-order address bits and some control signals during Flash programming and verification.
Port 3
Port 3 is an 8-bit bidirectional I/O port with internal pull-ups. The Port 3 output buffers can sink/source four TTL inputs. When 1s are written to Port 3 pins, they are pulled high by the internal pull-ups and can be used as inputs. As inputs, Port 3 pins that are externally being pulled low will source current (IIL) because of the pull-ups. Show in following table.

Pin Function
Port Alternate Functions
P3.0 RXD (serial input port)
P3.1 TXD (serial output port)
P3.2 INT0 (external interrupt 0)
P3.3 INT1 (external interrupt 1)
P3.4 T0 (timer 0 external input)
P3.5 T1 (timer 1 external input)
P3.6 WR (external data memory write strobe)
P3.7 RD (external data memory read strobe)
RST
Reset input. A high on this pin for two machine cycles while the oscillator is running resets the device. This pin drives high for 98 oscillator periods after the Watchdog times out. The DISRTO bit in SFR AUXR (address 8EH) can be used to disable this feature. In the default state of bit DISRTO, the RESET HIGH out feature is enabled.
ALE/PROG
Address Latch Enable (ALE) is an output pulse for latching the low byte of the address during accesses to external memory. This pin is also the program pulse input (PROG) during Flash programming. In normal operation, ALE is emitted at a constant rate of 1/6 the oscillator frequency and may be used for external timing or clocking purposes. Note, however, that one ALE pulse is skipped during each access to external data memory. If desired, ALE operation can be disabled by setting bit 0 of SFR location 8EH. With the bit set, ALE is active only during a MOVX or MOVC instruction. Otherwise, the pin is weakly pulled high. Setting the ALE-disable bit has no effect if the microcontroller is in external execution mode.
PSEN
Program Store Enable (PSEN) is the read strobe to external program memory. When the AT89S52 is executing code from external program memory, PSEN is activated twice each machine cycle, except that two PSEN activations are skipped during each access to external data memory.
EA/VPP
External Access Enable. EA must be strapped to GND in order to enable the device to fetch code from external program memory locations starting at 0000H up to FFH. Note, however, that if lock bit 1 is programmed, EA will be internally latched on reset. EA should be strapped to VCC for internal program execution. This pin also receives the 12-volt programming enable voltage (VPP) .during Flash programming.
XTAL1
Input to the inverting oscillator amplifier and input to the
internal clock operating circuit.

XTAL2
Output from the inverting oscillator amplifier.

Special Function Registers
A map of the on-chip memory area called the Special Function Register (SFR) space is shown in Table 1. Note that not all of the addresses are occupied, and unoccupied addresses may not be implemented on the chip. Read accesses to these addresses will in general return random data, and write accesses will have an indeterminate effect. User software should not write 1s to these unlisted locations, since they may be used in future products to invoke new features. In that case, the reset or inactive values of the new bits will always be 0.
Timer 2 Registers
Control and status bits are contained in registers T2CON (shown in Table 2) and T2MOD (shown in Table 6) for Timer 2. The register pair (RCAP2H, RCAP2L) are the Capture/Reload registers for Timer 2 in 16-bit capture mode or 16-bit
Auto-reload mode.
Interrupt Registers
The individual interrupt enable bits are in the IE register. Two prioritiescan be set for each of the six interrupt sources in the IP register.
1.5 D-Type Edge-Triggered Flip-Flops
1.5.1 General Description

These 8-bit registers feature totem-pole 3-STATE outputs designed specifically for driving highly-capacitive or relatively low-impedance loads. The high-impedance state and increased high-logic level drive provide these registers with the capability of being connected directly to and driving the bus lines in a bus-organized system without need for interface or pull-up components. They are particularly attractive for implementing buffer registers, I/O ports, bidirectional bus drivers, and working registers. The eight latches of the DM54/74LS373 are transparent D-type latches meaning that while the enable (G) is high the Q outputs will follow the data (D) inputs. When the enable is taken low the output will be latched at the level of the data that was set up. The eight flip-flops of the DM54/74LS374 are edge-triggered D-type flip flops. On the positive transition of the clock, the Q outputs will be set to the logic states that were set up at the D inputs. A buffered output control input can be used to place the eight outputs in either a normal logic state (high or low logic levels) or a high-impedance state. In the high-impedance state the outputs neither load nor drive the bus lines significantly. The output control does not affect the internal operation of the latches or flip-flops. That is, the old data can be retained or new data can be entered even while the outputs are off.
1.5.2 Features
Choice of 8 latches or 8 D-type flip-flops in a single package
3-STATE bus-driving outputs
Full parallel-access for loading
Buffered control inputs
P-N-P inputs reduce D-C loading on data lines

1.5.3 Circuit Diagram

1.6 Voltage Regulator IC (LM 7805)
1.6.1 Description
The LM7805 monolithic 3-terminal positive voltage regulators employ internal current-limiting, thermal shutdown and safe-area compensation, making them essentially indestructible. If adequate heat sinking is provided, they can deliver over 1.0A output current. They are intended as fixed voltage regulators in a wide range of applications including local (on-card) regulation for elimination of noise and distribution problems associated with single-point regulation. In addition to use as fixed voltage regulators, these devices can be used with external components to obtain adjustable output voltages and currents. Considerable effort was expended to make the entire series of regulators easy to use and minimize the number of external components. It is not necessary to bypass the output, although this does improve transient response. Input bypassing is needed only if the regulator is located far from the filter capacitor of the power supply.
1.6.2 Features
Complete specifications at 1A load
Output voltage tolerances of 2% at Tj = 25
Line regulation of 0.01% of VOUT/V of VIN at 1A load
Load regulation of 0.3% of VOUT/A
Internal thermal overload protection
Internal short-circuit current limit
Output transistor safe area protection
1.6.3 Internal Block Diagram

1.6.4 Electrical Characteristics (MC7805/LM7805)
Parameter Symbol Conditions MC7805/LM7805 Unit
Min. Typ. Max.
Output Voltage VO TJ =+25 oC 4.8 5.0 5.2 V
5.0mA = Io = 1.0A, PO = 15W VI = 7V to 20V 4.75 5.0 5.25
Line Regulation (Note1) Regline TJ=+25 oC VO = 7V to 25V - 4.0 100 mV
VI = 8V to 12V - 1.6 50
Load Regulation (Note1) Regload TJ=+25 oC IO = 5.0mA to1.5A - 9 100 mV
IO =250mA to 750mA - 4 50
Quiescent Current IQ TJ =+25 oC - 5.0 8.0 mA
Quiescent Current Change IQ IO = 5mA to 1 .0A - 0.03 0.5 mA
VI= 7V to 25V - 0.3 1.3
Output Voltage Drift VO/T IO= 5mA - -0.8 - mV/ oC
Output Noise Voltage VN f = 10Hz to 100KHz, TA=+25 oC - 42 - V/Vo
Ripple Rejection RR f = 120Hz
VO = 8V to 1 8V 62 73 - dB
Dropout Voltage VDrop IO = 1A, TJ =+25 oC - 2 - V
Output Resistance rO f = 1 KHz - 15 - m
Short Circuit Current ISC VI = 35V, TA =+25 oC - 230 - mA
Peak Current IPK TJ =+25 oC - 2.2 - A
1.6.5 Typical Application


D.C parameter

Load regulation

Ripple rejection

Fixed output regulator
1.6.6 Features
Complete specifications at 1A load
Output voltage tolerances of 2% at Tj = 25
Line regulation of 0.01% of VOUT/V of VIN at 1A load
Load regulation of 0.3% of VOUT/A
Internal thermal overload protection
Internal short-circuit current limit
Output transistor safe area protection
1.7 16x2 LCD DISPLAY


1.7.1 Description


Above is the quite simple schematic. The LCD panel's Enable and Register Select is connected to the Control Port. The Control Port is an open collector / open drain output. While most Parallel Ports have internal pull-up resistors, there are few which don't. Therefore by incorporating the two 10K external pull up resistors, the circuit is more portable for a wider range of computers, some of which may have no internal pull up resistors.
We make no effort to place the Data bus into reverse direction. Therefore we hard wire the R/W line of the LCD panel, into write mode. This will cause no bus conflicts on the data lines. As a result we cannot read back the LCD's internal Busy Flag which tells us if the LCD has accepted and finished processing the last instruction. This problem is overcome by inserting known delays into our program.
The 10k Potentiometer controls the contrast of the LCD panel. Nothing fancy here. As with all the examples, I've left the power supply out. You can use a bench power supply set to 5v or use a onboard +5 regulator. Remember a few de-coupling capacitors, especially if you have trouble with the circuit working properly.
1.7.2 Features
5 x 8 dots with cursor
Built-in controller (KS 0066 or Equivalent)
+ 5V power supply (Also available for + 3V)
1/16 duty cycle
B/L to be driven by pin 1, pin 2 or pin 15, pin 16 or A.K (LED)
N.V. optional for + 3V power supply
1.8 Software Section
The mechanics of Programming
Atmel s 89C51 is equipped with flash ROM code memory in which the program code is stored permanently.
Computer languages
A computer communicates using voltages & currents. An ideal way to convert the thoughts to voltages and current would be issue instructions to the computer. A less desirable but most used today is to type instructions computer on a keyboard. According to complexity of language there ae two type of language: High-level language &Assembly language.
High level languages are said to be machine independent because the internal circuit of the microcontroller isn t a part of the high level language. Example of high level languages includes BASIC, PASCAL, C and FORTRAN.

Why use Assembly language
There are at least five reasons to write computer instructions in assembly language:
To speed computer operation, Programs written in assembly language can be stored compactly in code memory, and less time is spent fetching the code by utility programs named compiler .Because of the general nature of high level languages, the compilers often produce excess or overhead code.
To reduce the size of the program, Assembly language requires no extra overhead code because the assembly programmer is aware of the exact needs of the program for any given situations.
High level languages are often called transportable, that is the same high level language program may be used on many makes of computers, all of which have different processors.

Assembly languages
Assembly languages programming, unlike high level language, is tied very closely to the physical make up of CPU. Assembly language uses the internal circuit (resister) of the computer as part of the assembly code language. Assembly language isn t transportabable. In general its quicker to program in high level language because detailed knowledge of hardware isn t needed for high level language. But it requires higher memory space to store the program due large no. of redundant code.
To write program for special situations, Often particularly when dealing with machine control no standard programs (named drivers) exits. Robot arm and anti clock brakes, for instance haven t standard drivers. It is generally more efficient to write non-standard driver programs in assembly code. Also when speed of response is critical, assembly coded programs execute rapidly because of the exact fit of program code to task requirements.
To save money, Small computer systems, such as those that are embedded inside other machines, are often produced in large numbers. Reducing code size also reduces the cost of associated ROM chips.
To better understand how computers operate. In order to fully understand what is going on under the hood of the CPU, you should learn to program the CPU in assembly language.
In short speed, size and uniqueness are advantages that assembly language programs offer over high level languages.
The assembly language programming process
The steps to create an executable assembly language program are outlined as follows:
First we use an editor to type in a program. Many excellent editors or word processors are available that can be used to create and/or edit the program. A widely used editor is MS-DOS EDIT program (or NOTEPAD in windows), which comes with all Microsoft operating systems. Notice that editor must be able to produce an ASCII file. For many assemblers, the file names follow the usual DOS conventions, but the source file has the extension .asm or .src, depending on which assembler for the convention. An assembler in the next step uses the .asm extension for the source file.
The .asm source file containing the program code created in step 1 is fed to an 89s52 assembler. The assembler converts the instructions into machine code. The assembler will produce an object file and a list file. The extension for the object file is .obj while the extension for the list file is .lst. Assembler requires a third step called linking. The page link program takes one or more object files and produces an absolute object file with the extension. abs this abs file is used by 89C51 trainers that have a monitor program.
Next the .abs file is fed in a program called OH(object to hex converter) which creates a file with extension .hex that is ready to burn into ROM. This program will come with all 89C51 assemblers. Recent windows-based assembler combine steps 2 through 4 into to step
.asm file
The .asm file is also called the source file and for this reasons some assemblers require that this file have the .src extension. For the 89s52 we required .asm 51 assembler to page link the program. This file is created with an editor such as DOS EDIT or window s NOTEPAD.
.obj file
89C51 assembler converts the asm file s into assembly language instruction into machine language and provide the .obj file. In addition to creating the object file, the assembler also produces the.lst file. .lstfile. The .lst file, which is optional. is very useful to the programmer because it lists all the op-codes and address as well as errors that the assembler detected. This file can be accessed by an editor such as DOS EDIT and displayed on the monitor or sent to the printer to get a hard copy. The programmer uses the list file to find syntax errors.


2. CIRCUIT DIAGRAM

3. PROGRAMMING SECTION
3.1 Algorithm

3.2 Assembly Language Program
;--
; Global & static initializations
;--
Mov sp, #__start__stack 1
Mov a, dpl
Mov r1,#l_XINIT
Mov a, r1
Orl a, # (#l_XINIT>>8)
Mov r2, #(( l_XINIT+255)>>8)
Mov dptr, #s_XINIT
Mov r0, #s_XISEG
Mov p2, #(s_XISEG>>8)
Clr a
Movc a,@a+dptr
Movx @r0, a
Inc dptr
Inc r0
Inc p2
Mov p2,#0xFF
Mov r0, #l_XSEG
Mov a, r0
Orl a, #( #l_XISEG>>8)
Mov r1, #(( l_XISEG+255)>>8)
Mov dptr, #s_XISEG
Clr a
Movx @dptr,a
Inc dptr
Mov @r0,a
Message= {STROBOSCOPE};
Mov _message1,#0x20
Mov (_message1 + 0x0001),#0x20
Mov (_message1 + 0x0002),#0x53
Mov (_message1 + 0x0003),#0x54
Mov (_message1 + 0x0004),#0x52
Mov (_message1 + 0x0005),#0x4F
Mov (_message1 + 0x0006),#0x42
Mov (_message1 + 0x0007),#0x4F
Mov (_message1 + 0x0008),#0x53
Mov (_message1 + 0x0009),#0x43
Mov (_message1 + 0x000a),#0x4F
Mov (_message1 + 0x000b),#0x50
Mov (_message1 + 0x000c),#0x45
Mov (_message1 + 0x000d),#0x20
Mov (_message1 + 0x000e),#0x20
Mov (_message1 + 0x1388),#0x00
Message3= {CURRENT};
Mov _message3, #0x20
Mov (_message3 + 0x0001),#0x20
Mov (_message3 + 0x0002),#0x20
Mov (_message3 + 0x0003),#0x20
Mov (_message3 + 0x0004),#0x43
Mov (_message3 + 0x0005),#0x55
Mov (_message3 + 0x0006),#0x52
Mov (_message3 + 0x0007),#0x52
Mov (_message3 + 0x0008),#0x45
Mov (_message3 + 0x0009),#0x4E
Mov (_message3 + 0x000a),#0x54
Mov (_message3 + 0x000b),#0x20
Mov (_message3 + 0x000c),#0x20
Mov (_message1 + 0x000d),#0x20
Mov (_message1 + 0x000e),#0x20
Mov (_message1 + 0x1388),#0x00
Message3= {RPM : 1919};
Mov _message2,#0x20
Mov (_message2 + 0x0001),#0x20
Mov (_message2 + 0x0002),#0x20
Mov (_message2 + 0x0003),#0x52
Mov (_message2 + 0x0004),#0x50
Mov (_message2 + 0x0005),#0x4D
Mov (_message2 + 0x0006),#0x20
Mov (_message2 + 0x0007),#0x3A
Mov (_message2 + 0x0008),#0x20
Mov (_message2 + 0x0009),#0x31
Mov (_message2 + 0x000a),#0x39
Mov (_message2 + 0x000b),#0x31
Mov (_message2 + 0x000c),#0x39
Mov (_message2 + 0x000d),#0x20
Mov (_message2 + 0x000e),#0x20
Mov (_message2 + 0x1388),#0x00
Lcall _main
Sjmp
Ar2 = 0x0a
Ar3 = 0x0b
Ar4 = 0x0c
Ar5 = 0x0d
Ar6 = 0x0e
Ar7 = 0x0f
Ar0 = 0x08
Ar1 = 0x09
Push acc
Push b
Push dpl
Push dph
Push psw
Mov psw,#0x08
Mov a,_THO
Mov _THO,#0xFF
Orl _THO,#0xD2
Inc _time1
Clr a
Inc (_time1 + 1)
Clr c
Mov a, _time1
Subb a, _settime
Mov a, ( _time1 + 1)
Subb a, ( _settime1 + 1)
Clr a
Mov (_time1 + 1),a
Mov _time1, a
Mov _settime, settime1
Mov (settime +1),(settime1 + 1)
Setb _p2_3
Clr a
Mov (_settime1 + 1),a
Mov _settime,#0x02
Pop psw
Pop dph
Pop dpl
Pop b
Pop acc
Reti
_main:
Ar2 = 0x02
Ar3 = 0x03
Ar4 = 0x04
Ar5 = 0x05
Ar6 = 0x06
Ar7 = 0x07
Ar0 = 0x00
Ar1 = 0x01
Mov (_settime1), #0xC0
Mov (_settime + 1), #0x01
Setb _EA
Setb _ET0
Orl _TMOD,#0x01
Clr a
Mov (_delay + 1),a
Mov _delay, #0x0A
Clr _LCD_RS
Clr _LCD_RW
Clr a
Mov (_displaydata_PARM_2+1),a
Mov _displaydata_PARM_2,#0x01
Mov dptr, #0x9088
Lcall _display_data
Clr a
Mov (_mulint_PARM_2+1),a
Mov _mulint_PARM_2, #0x64
Mov dpl, _delay
Mov dph, (_delay + 1)
Lcall _mulint
Mov r2, dpl
Mov r3, dph
Clr a
Mov (_displaydata_PARM_2+1),a
Mov _displaydata_PARM_2,#0x0C
Mov dpl, r2
Mov dph, r3
Clr a
Lcall _display_data
Clr a
Mov (_displaydata_PARM_2+1),a
Mov _displaydata_PARM_2,#0x64
Mov dpl,_delay
Mov dph,(_delay + 1)
Lcall _mulint
Mov r2,dpl
Mov r3,dph
Clr a
Mov (_displaydata_PARM_2+1),a
Mov _displaydata_PARM_2,#0x18
Mov dpl,r2
Mov dph,r3
Lcall _display_data
Clr _LCD_RS
Mov (_displaydata_PARM_2+1),a
Mov _displaydata_PARM_2,#0x64
Mov dpl,_delay
Mov dph,(_delay + 1)
Lcall _mulint
Mov r2,dpl
Mov r3,dph
Clr a
Mov (_displaydata_PARM_2+1),a
Mov _displaydata_PARM_2,#0x06
Mov dpl,r2
Mov dph,r3
Lcall _display_data
Clr a
Mov (_mulint_PARM_2+1),a
Mov _mulint_PARM_2,#0x64
Mov dpl,_delay
Mov dph,(_delay + 1)
Lcall _mulint
Mov r2,dpl
Mov r3,dph
Clr a
Mov (_displaydata_PARM_2+1),a
Mov _displaydata_PARM_2,#0x18
Mov dpl,r2
Mov dph,r3
Lcall _display_data
Clr _LCD_RS
Mov _mulint_PARM_2,#0x74
Mov (_mulint_PARM_2+1),#0x0E
Mov dpl,_delay
Mov dph,(_delay + 1)
Lcall _mulint
Mov dpl, r2
Mov dph, r3
Lcall _display_data
Mov dptr,#0x0000
Lcall _set_ddram_address
Clr a
Mov (_mulint_PARM_2+1),a
Mov _mulint_PARM_2,#0x0A
Mov dpl,_delay
Mov dph,(_delay + 1)
Lcall _mulint
Mov r2,dpl
Mov r3,dph
Mov dph,r3
Lcall _delay_func
Mov_message_PARM_2,#message1
Mov (_messagePARM_2+1),#0x00
Mov (_messagePARM_2+2),#0x0
Mov dptr,#0x1388
Lcall _message_print
Mov dptr,#0x0040
Lcall _set_ddram_address
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x1388
Lcall _delay func
Mov dptr,#0x0000
Lcall _set_ddram_address
Clr a
Mov dpl,_delay
Mov dph,(_delay + 1)
Lcall _mulint
Mov r2,dpl
Mov r3,dph
Mov dph,r3
Lcall _delay func
Mov (_messagePARM_2+1),#0x00
Mov (_messagePARM_2+2),#0x0
Mov dptr,#0x000F
Lcall _message_print
Mov dptr,#0x0040
Lcall _set_ddram_address
Clr a
Mov (_messagePARM_2+1),a
Mov _message_PARM_2,#0x0A
Mov dpl,_delay
Mov dph,(_delay + 1)
Lcall _mulint
Mov r2,dpl
Mov r3,dph
Mov dph,r3
Lcall _delay func
Mov (_messagePARM_2+1),#0x00
Mov (_messagePARM_2+2),#0x0
Lcall _message_print
Clr a
Mov (_mulint_PARM_2+1),a
Mov _mulint_PARM_2,#0x0A
Mov dpl,_delay
Mov dph,(_delay + 1)
Lcall _mulint
Mov r2,dpl
Mov r3,dph
Mov dph,r3
Lcall _delay_func
Setb _TR0
Clr a
Inc (_settime1+1)
Lcall calc
Mov r2,a
Clr a
Addc a,b
Mov r3,a
Mov (message2 + 0x000C),r2
Mov dptr,#0x0040
Lcall set ddram address
Clr a
Mov (_mulint_PARM_2+1),a
Mov _mulint_PARM_2,#0x0A
Mov dpl,_delay
Mov dph,(_delay + 1)
Lcall _mulint
Mov r2,dpl
Mov r3,dph
Mov dph,r3
Lcall _delay_func
Mov_message_PARM_2,#message1
Mov (_messagePARM_2+1),#0x00
Mov (_messagePARM_2+2),#0x0
Mov dptr,#0x000F
Lcall _message_print
ret
Mov
_lcd_data,_display_data_parm_2
Ret
_delay func
Mov r2, dpl
Mov r3, dph
Setb LCD EN
Clr a
Mov ( j + 1),a
Mov _j,a
Clr a
Mov a,_j
Subb a,r2
Mov a,( _ j + 1)
Subb a,r3
Inc _j
Inc ( j + 1)
Clr LCD EN
Ret
Set ddram address
Mov r2,dpl
Mov r3,dph
Clr _LCD_RS
Mov _lcd data,r2
Setb _p0_7
ret
message print:
Mov r2,dpl
Mov r3,dph
Setb _LCD_RS
Clr a
Mov ( i+ 1),a
Mov _i,a
Clr a
Mov a,_i
Subb a,r2
Mov a,( _ i + 1)
Subb a,r3
Mov a,i
Add a,message print PARM 2
Mov r4,a
Mov a,( _ i + 1)
Addc a,(message_PARM_2+1)
Mov r5,a
Mov r6,(message_PARM_2+2)
Mov dpl,r4
Mov dph,r5
Mov b,r6
Mov r4,a
Mov(_display_data_PARM_2+1),r4
Rlc a
Subb a,acc
Mov (_display_data_PARM_2+1),a
Mov dpl,_delay
Mov dph,(_delay + 1)
Push ar3
Push ar2
Lcall display_data
Pop ar3
Pop ar2
Inc i
Clr a
Inc (i+1)
ret
;--
;END OF PROGRAM
;--
4. COMPONENT DETAIL
RESISTORS
R1- 330 OHM
R2- 8.2 K OHM
R3- 1K OHM
R4- 22 OHM
P1- 50 K OHM PRESET
CAPACITORS
C1- 1000 uF
C2- 0.1 uF
C3- 100 uF
C4- 10 uF
C5, C6- 33 pF
SEMICONDUCTORS
D1- 1N4007 DIODE
L1- RED LED
X1- 1.0592 CRYSTAL
IC1- L7805 REG. IC
IC2- AT89C51
IC3- 74LS373
Q1- IRFZ44N MOSFET
LCD- 16X2 LCD DISPLAY
SW1- SW8- PUSH SWITCH
IC SOCKET- 40 PIN-1, 20 PIN-1
LCD CONNECTOR- 16 PIN MALE/FEMALE
CN1- 9V BATTERY SNAP
CN2- WHITE LED MODULE
5. APPLICATIONS
Stroboscopes play an important role in the study of stresses on machinery in motion, and in many other forms of research.
They are also used as measuring instruments for determining cyclic speed. As timing light they are used to set the ignition timing of internal combustion engines.
In medicine, stroboscopes are used to view the vocal cords for diagnosis of conditions that have produced dysphonia (hoarseness). The patient hums or speaks into a microphone which in turn activates the stroboscope at either the same or a slightly different frequency. The light source and a camera are positioned by endoscopy.
Another application of the stroboscope can be seenon many gramophone turntables. The edge of the platter has marks at specific intervals so that when viewed under fluorescent lighting powered at mains frequency, provided the platter is rotating at the correct speed, the marks appear to be stationary. This will not work under incandescent lighting, as incandescent bulbs don't strobe. For this reason, some turntables have a neon bulb next to the platter.
Flashing lamp strobes are also adapted for pop use, as a lighting effect for discotheques where they give the impression of dancing in slow motion. A strobe light is also used in some alarm systems to give a visual warning for people who may be hard of hearing and cannot hear the alarm bell.
CHAPTER II
OUTPUT and FUTURE SCOPE
The table below shows the outputs for different frequencies:
Frequency of LED RPM of the Device
40 40*60=2400
50 50*60=3000
60 60*60=3600
The stroboscope can be further modified to calculate RPM of the devices which are placed in a large casing where tachometers cannot reach and point of contact to the device is not possible. It can be used to find the speed of a moving object by moving the stroboscope at same velocity.
CHAPTER IV
CONCLUSION
By this project, we can measure the RPM of rotating object. Using microcontroller AT89C51 and 74LS373, we are able to generate a particular frequency which when matches the rotation of the moving object, it appears to be stationary. From this frequency we can calculate the RPM of the object by
RPM = 60 x f strobe.
CHAPTER V
REFERENCES
Books:
The 8051 Microcontroller- Architecture, Programming & Application
By-Kenneth J. Ayala
The 8051 Microcontroller and Embedded Systems
By-Mazidi & Mazidi
Magazines:
Electronics For You
Electronics Maker
CHIP
DIGIT
Web Sites Referred:
google.com
atmel.com
hobbyproject.com
8051projects.com
edaboard.com
wikipedia.com
alldatasheet.com
efymagazine.com