Sie sind auf Seite 1von 10

Digital Logic Circuits (Spring 2011-12) EE/CS-220

Project Report Persistence of Vision


Group Members: 1. 2. 3. 4. Zia ul Azam (2014-10-0106) (Major: EE) Salman Nazir (2014-10-0110) (Major: EE) Muhammad Qasim (2014-10-0111) (Major: EE) Usama Mehmood (2014-10-0099) (Major: EE)

Project Objective & Introduction:


The Project was based on the concept of persistence of vision (POV) which is phenomenon of the eye by which an after image is thought to persist for approximately one-twentyfifth of a second on the retina. The main objective was to obtain a viable alphabetic and a numeric display using a high-speed rotating LED array.

Project Specifications:

#
1 2 3 4 5 6 7 8 9 10

IC NAME
LM555 (to generate clock pulse) 74LS32 (2 input OR gate) 74LS27 (3 input NOR gate) 74LS04 (NOT gate) 74LS590 (8 bit counter) 74LS688 (8 bit comparator) M27C128A (16 KB EPROM) M27C32A (4 KB EPROM) 74LS541 (8 bit tri-state buffer) Resistors

Quantity
1 2 6 3 5 4 3 1 4 35

11 12 13 14 15

Capacitor Infrared Sensor Battery Motor Ultra bright square LEDs

2 1 1 1 33

Project Deliverables:
After all the research, we found that this project is only done using microcontroller. Then it was obvious that we had to design complete logic ourselves and we were successful. The sequence to be burned in the ROMS was explicitly written by us. A rotation was divided into 256 frames and each frame was carefully burned in the ROM to produce the desired image. As our project was analogue propeller clock, therefore everything was synchronized with actual time. I mean second hand would move after each second and minute hand after each minute. The numbers and lines to be displayed were written on a 4 KB Rom and this sequence was repeated every rotation. One position for needle consisted of 256 frames, say one block of code so 60 such blocks were written to display 60 different positions of a needle. Exact data stored for static display = 256 bytes Exact data stored for dynamic display = 15.36 kilobytes

Dynamic display was written on 3 ROMS for each needle. A single counter was driving the least significant address bits of each ROM. Rest of the required address bits of 16 KB ROMs were controlled by different 8 bit counters. Lets say motor was rotating at 1800 rpm that means 30 rotations per second. We needed the second needle to stay at one position for 30 revolutions. It was achieved using counters and comparators. At different rpm different repetitions of a block of code were required, so it was an extra feature that our project was adjustable with the rpm. We used an 8 bit dip switch pulled down using resistors to adjust the number of repetitions. Hence above procedure ensures that needle moves after each second. The minute hand would only move after 60 seconds and reset the counter driving the ROM controlling second hand of clock. Same goes for hour hand, it would only move after 60 minutes. An infrared sensor was also used to keep the display at some reference position by resetting the counter driving the least significant 8 address bits of every ROM at that position. We designed two PCBs, one to test our logic and other was the complete version. Both the PCBs were working and we were very much successful in our logic proved by the test case PCB. Unfortunately our mechanical setup for big and heavy PCB didnt work well; still we were able to show numbers and needles separately. There are some pictures attached at the end of the document.

Digital Logic Circuits (Spring 2011-12) EE/CS-220

Project Modules and Design Overview:


Module 1: Mechanical Rotation Setup 1. DC motor was assembled on a solid surface. 2. The setup ensured high speed rotation of LED array. Module 2: Generating a Clock Pulse 1. This was done using a 555 timer in astable multivibrator mode. 2. The resistor and capacitor values were set as such that the generated pulse had frequency of 10 kHz that was enough to generate persistent changing frames.

Module 3: Driving of 8 Bit Counter and frame count setup 1. The clock output of 555 timer ensured enabling up key of 4-bit counter. 2. The output of counters was used to access the respective memory block in ROM. 3. Another series of counters and comparators were employed in order to add to user friendly features of the project. 4. This arrangement enabled user to enter the speed of the motor he is using to the circuit using DIP switches so that circuit can calculate its frame display calculations using it. Module 4: Storage of Images in ROMs 1. The output from counters accessed the memory blocks in ROMs to gather the image sequences at particular point in rotation. 2. These image sequences were fed to rotating LED arrays through octal buffers. Module 5: Lighting up LEDs 1. The Data sequence stored in ROMs were passed on to the LED arrays to light them up in such a way that an observable pattern was seen.

Block Diagram(s):
DC Motor Mechanical Setup to rotate PCB

Clock Pulse Generation IR sensor to keep track of PCB position Using 555 Timer

8 Bit Up/ Down Counters and counting frames setup

ROMs with Stored Image Sequences followed by buffers

LED Arrays Assembly

Technical Issues Faced and How you resolved them:


The main challenge in this project was to ensure a stable mechanical setup for the smooth rotation of PCB at the desired frequency in order to synchronize the clock based computations of circuit with the DC motor used. Secondly, non-availability of dual layered PCB machine in the lab caused a massive scale requirement of jumpers and buses to complete the PCB. Lastly to ensure minimum wobbling in the PCB motion, additional workload was introduced in the form of machining of required shaft for motor and dual level bearing housings to keep shaft straight.

(Proteus setup of Applied Logic )

( Static Clock Display )

( Needle Display of Second hand of Clock)

Das könnte Ihnen auch gefallen