Difference between revisions of "Keil Setup For 8051"
Line 18: | Line 18: | ||
Since these are basically LEDs arranged as a group they can either have anode in common or cathode. | Since these are basically LEDs arranged as a group they can either have anode in common or cathode. | ||
*'''Common Cathode''': This type of 7 segments, requires a positive voltage(5v) to given to the segments '''a''' to '''g''' in order to glow. This is shown in figure(3). Providing a positive voltage with respect to common cathode makes the LED forward biased. | *'''Common Cathode''': This type of 7 segments, requires a positive voltage(5v) to given to the segments '''a''' to '''g''' in order to glow. This is shown in figure(3). Providing a positive voltage with respect to common cathode makes the LED forward biased. | ||
− | *'''Common Anode''': This type of 7 segments, requires a negativevoltage(GND) to given to the segments '''a''' to '''g''' in order to glow. This is shown in figure(4). A ground connection to cathode with respect to common anode again forward biases the LED which glows. | + | *'''Common Anode''': This type of 7 segments, requires a negativevoltage(GND) to given to the segments '''a''' to '''g''' in order to glow. This is shown in figure(4). A ground connection to cathode with respect to common anode again forward biases the LED which glows.<br /> |
}} | }} | ||
+ | =Interfacing 7 segment display to 8051 = | ||
+ | ==Driving the Seven Segment== | ||
+ | ==Schematic Diagram== | ||
+ | [[File:8051 7SEGMENT INTERFACE.PNG|600x600px]] | ||
+ | ==Code== | ||
+ | <syntaxhighlight> | ||
+ | /* Reg51.h contains the defnition of all ports and SFRs */ | ||
+ | #include <reg51.h> | ||
+ | #include "delay.h" //User defined delay library which conatins the delay routines | ||
+ | #define SegmentValue P0 | ||
+ | #define SegmentSelection P1 | ||
+ | #define SegOne 0x01 | ||
+ | #define SegTwo 0x02 | ||
+ | #define SegThree 0x04 | ||
+ | #define SegFour 0x08 | ||
+ | /* start the main program */ | ||
+ | void main() | ||
+ | { | ||
+ | unsigned char seg_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; | ||
+ | unsigned char cnt=0; | ||
+ | while(1) | ||
+ | { | ||
+ | |||
+ | for(cnt=0x00;cnt<=0x0f;cnt++) // loop to display 0-F | ||
+ | { | ||
+ | SegmentSelection = SegOne; // Select the segment | ||
+ | SegmentValue= seg_code[cnt]; // Send the segment_code of number to be displayed | ||
+ | delay_sec(1); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> |
Revision as of 11:30, 17 December 2013
Contents
Seven Segment Display
Well, the name 7 segments implies there are 7 LED segments arranged as shown in figure 1. After LEDs they are the easiest interfaces to a microcontroller. There is also a decimal point or dp. It is used when decimal digits like 5.1 etc are displayed.
Applications
Seven segment are widely used in applications where digits[0-9] are required to be displayed.Although they also display letters A to F as shown in figure(2) simulation. This is a very simple and convenient way to display numbers in a bright fashion.
Form Factor
- Sizes:They come in various sizes; 0.28”, 0.3”, 0.32”, 0.36”, 0.39”, 0.4”, 0.5”, 0.56”, 0.6”, 0.8”, 1.0”, 1.2”, 1.5”, 1.8”, 2.0”, 2.3”, 3.0”, 4.0”, 5.0”, 7.0”)
- Colors: and varied colors too; Red, Green, Yellow, Orange, Blue, and White.
Working
Since these are basically LEDs arranged as a group they can either have anode in common or cathode.
- Common Cathode: This type of 7 segments, requires a positive voltage(5v) to given to the segments a to g in order to glow. This is shown in figure(3). Providing a positive voltage with respect to common cathode makes the LED forward biased.
- Common Anode: This type of 7 segments, requires a negativevoltage(GND) to given to the segments a to g in order to glow. This is shown in figure(4). A ground connection to cathode with respect to common anode again forward biases the LED which glows.
Interfacing 7 segment display to 8051
Driving the Seven Segment
Schematic Diagram
Code
/* Reg51.h contains the defnition of all ports and SFRs */ #include <reg51.h> #include "delay.h" //User defined delay library which conatins the delay routines #define SegmentValue P0 #define SegmentSelection P1 #define SegOne 0x01 #define SegTwo 0x02 #define SegThree 0x04 #define SegFour 0x08 /* start the main program */ void main() { unsigned char seg_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; unsigned char cnt=0; while(1) { for(cnt=0x00;cnt<=0x0f;cnt++) // loop to display 0-F { SegmentSelection = SegOne; // Select the segment SegmentValue= seg_code[cnt]; // Send the segment_code of number to be displayed delay_sec(1); } } }