►Seven-Segment Display Example

The segments in a 7-segment display are arranged to form a single digit from 0 to F. We can display a multi-digit number by connecting additional displays. Even though LCD displays are more comfortable to work with, 7-segment displays are still standard in the industry. This is due to their temperature robustness, visibility and wide viewing angle. Segments are marked with non-capital letters: a, b, c, d, e, f, g and dp, where dp is the decimal point. The 8 LEDs inside each display can be arranged with a common cathode or common anode. With a common cathode display, the common cathode must be connected to the 0V rail and the LEDs are turned on with a logic one. Common anode displays must have the common anode connected to the +5V rail. The segments are turned on with a logic zero. The size of a display is measured in millimeters, the height of the digit itself (not the housing, but the digit!). Displays are available with a digit height of 7,10, 13.5, 20, or 25 millimeters. They come in different colors, including: red, orange, and green.

The simplest way to drive a display is via a display driver. These are available for up to 4 displays. Alternatively displays can be driven by a microcontroller and if more than one display is required, the method of driving them is called "multiplexing."

The main difference between the two methods is the number of "drive lines." A special driver may need only a single "clock" line and the driver chip will access all the segments and increment the display. If a single display is to be driven from a microcontroller, 7 lines will be needed plus one for the decimal point. For each additional display, only one extra line is needed. To produce a 4, 5 or 6 digit display, all the 7-segment displays are connected in parallel. The common line (the common-cathode line) is taken out separately and this line is taken low for a short period of time to turn on the display. Each display is turned on at a rate above 100 times per second, and it will appear that all the displays are turned on at the same time. As each display is turned on, the appropriate information must be delivered to it so that it will give the correct reading. Up to 6 displays can be accessed like this without the brightness of each display being affected. Each display is turned on very hard for one-sixth the time and the POV (persistence of vision) of our eye thinks the display is turned on the whole time. Therefore, the program has to ensure the proper timing, else the unpleasant blinking of display will occur.

Connecting a microcontroller to 7- segment displays in multiplex mode

Program "7seg.asm" displays decimal value of a number stored in variable D.
```Example:
movlw .21
movlw D 	; number 21 will be printed on 7seg display```

Displaying digits is carried out in multiplex mode which means that the microcontroller alternately prints ones digit and tens digit. TMR0 interrupt serves for generating a time period, so that the program enters the interrupt routine every 5ms and performs multiplexing. In the interrupt routine, first step is deciding which segment should be turned on. In case that the tens digit was previously on, it should be turned off, set the mask for printing the ones digit on 7seg display which lasts 5ms, i.e. until the next interrupt.

For extracting the ones digit and the tens digit, macro digbyte is used. It stores the hundreds digit, the tens digit, and the ones digit into variables Dig1, Dig2, and Dig3. In our case, upon macro execution, Dig1 will equal 0, Dig2 will equal 2, and Dig3 will equal 1.

The following example shows the use of the macro in a program. Program prints a specified 2-digit number on a 7seg display in multiplex mode.

◄ Previous Page  |  Next Page ►

Back To Index

#### Conversation

Wed Apr 15 2015, 05:07 PM
@Bibek.. and everyone. Create threads if you need help. The chat box is just for chat
Wed Apr 15 2015, 05:06 PM
@mohd atif ..login..create a post/thread,then I can post a copy of the missing file
Mon Apr 13 2015, 07:03 PM
mohd atif
@experimenteruk I didn't get you
Sun Apr 12 2015, 04:18 AM
Bibek
hello, i have made a digital clock using rtc DS12887 and AT89S52 with date n callender. Now i want to add alarm features to it.....can any body help me with the code in assembly language
Sun Apr 12 2015, 03:22 AM
SANJU123
Hello, I am planning to do simulaton of the ' 4-way traffic controller'. As a first stage of the project, I tried to compile the code given in this website in keil microvision which controls 4-way traffic . I am using AT89C51. But when I am trying to compile the code it shows an error " Device is not supported by Toolchain". Can u please help me...
Sat Apr 11 2015, 02:06 AM
Suryamoy Mondal
There is a little bit confusion to connect the rs232 connector to max232 ..By continuty test i cant able to find , which wire from the other side of the RS232 connector , i connect to max232..is there any colour coding?
Fri Apr 10 2015, 06:19 PM
@Suryamoy, The PC control software is provided within the package. Follow the steps to install and test it.
Fri Apr 10 2015, 05:24 PM
Suryamoy Mondal
my final year btech project is pc remote control..i have made the hardware and microcontroller prograaming from yours project..bt i cant able to implement in PC..so wht kind of software need for pc to access this..please sir reply me ..i need your help
Wed Apr 08 2015, 04:46 PM
@mohd atif If you create a thread, I may be able help
Tue Apr 07 2015, 03:59 PM
mohd atif
i am working on a project evm. i download the evm project from this site named Electronic Voting machine with Managed Control Unit . i face problem in this when i am trying to simulate this on proteus . there is an error " could not open MODDATA initializer file mem.bin" please help me to get out this problem

### Recent

lumines
Sat Apr 18 2015, 11:30 PM
[email protected]
Sat Apr 18 2015, 05:02 PM
arvindarunoday
Sat Apr 18 2015, 04:26 PM
samarhbk
Sat Apr 18 2015, 12:57 PM
chitty789
Tue Apr 14 2015, 06:14 PM
yaseenshaikh
Tue Apr 14 2015, 03:41 PM
sanju123
Mon Apr 13 2015, 03:51 PM
Wed Apr 08 2015, 07:02 PM

#### Online

Guests: 30, Members: 0 ...

most ever online: 182184
(Members: , Guests: 182184) on 06 Aug 2010: 05:37 AM

Members: 37626

#### Trending Topics

Forum Activity
##### Posted By ajay_bhargav
Sun Apr 19 2015, 06:50 PM
Please zip and attach the code in future. You forg...
##### Posted By ajay_bhargav
Sun Apr 19 2015, 06:48 PM
It is really hard to say which course and/or insti...
##### Posted By sanju123
Sun Apr 19 2015, 04:56 AM
Thanks rickey...I have reinstalled version.. Pro...
##### Posted By lumines
Sun Apr 19 2015, 12:19 AM
Dear everyone,We are currently looking for an embe...
##### Posted By [email protected] /* <![CDATA[ */!function(){try{var t="currentScript"in document?document.currentScript:function(){for(var t=document.getElementsByTagName("script"),e=t.length;e--;)if(t[e].getAttribute("cf-hash"))return t[e]}();if(t&&t.previousSibling){var e,r,n,i,c=t.previousSibling,a=c.getAttribute("data-cfemail");if(a){for(e="",r=parseInt(a.substr(0,2),16),n=2;a.length-n;n+=2)i=parseInt(a.substr(n,2),16)^r,e+=String.fromCharCode(i);e=document.createTextNode(e),c.parentNode.replaceChild(e,c)}}}catch(u){}}();/* ]]> */
Sat Apr 18 2015, 05:07 PM
I want this code to be programmed in arduino uno b...
##### Posted By gaurav7577
Fri Apr 17 2015, 03:26 PM
thanks ajay for ur concern .....passed out B.E.......
##### Posted By ajay_bhargav
Fri Apr 17 2015, 12:49 PM
can you post screenshot or a picture of CRO output...
##### Posted By ajay_bhargav
Fri Apr 17 2015, 12:45 PM
are you in a college or working?
##### Posted By ajay_bhargav
Fri Apr 17 2015, 12:44 PM
GSM modem needs a power supply with minimum 2A pea...
##### Posted By ajay_bhargav
Fri Apr 17 2015, 12:41 PM
check it on CRO with 10x probes, you will see a si...