burn multiple 7segment at a time

Thread Starter

neeer

Joined Feb 15, 2012
3
i want to run multiple 7 segment display at a time but i am getting problem in my code..please have a look on code and help me..

i am using 8051MCU,74HC138,ULN 2803 as decoder n switch...
this code is for common cathode displays..i am selecting 2 displays..

#include<reg51.h>
sbit c = P1^0;
sbit b = P1^1;
sbit a = P1^2;
sfr seven_seg = 0xA0;
sbit en = P3^3;

unsigned char list[11] = {0x00,0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

unsigned int i,j;
unsigned char *seg;

void disp1();
void disp2();
void delay(unsigned int k)

void main()
{
while(1){

disp1();
seven_seg = *seg;
delay(20);
seg++;

disp2();
seven_seg = *seg;
delay(50);
seg++;
}//while
}//main

void disp1()
{
en = 0;
c=0;
b=0;
a=0;
}

void disp2()
{
en = 0;
c=0;
b=0;
a=1;
}

void delay(unsigned int k)
{
for( i = 0; i < k; i ++ )
for(j= 0; j < k; j ++ ) ;
}
plz help me,correct me if m using pointer wrongly n about delay


also my second qn is how we should calculate delay?( in ms,ns )
 

panic mode

Joined Oct 10, 2011
2,761
use CODE tag (icon with "#") when posting code , it preserves formatting and makes it more readable:

Rich (BB code):
#include<reg51.h>
sbit c = P1^0;
sbit b = P1^1;
sbit a = P1^2;
sfr seven_seg = 0xA0;
sbit en = P3^3;

unsigned char list[11] = {0x00,0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

unsigned int i,j;
unsigned char *seg;
 
void disp1();
void disp2();
void delay(unsigned int k)

void main()
{
while(1){

   disp1();
      seven_seg = *seg;
   delay(20); 
      seg++;
   
  disp2();
    seven_seg = *seg;
  delay(50);
    seg++;
 }//while
}//main

void disp1()
{
en = 0;
c=0;
b=0;
a=0;
}

void disp2()
{
en = 0;
c=0;
b=0;
a=1;
}

void delay(unsigned int k)
{
 for( i = 0; i < k; i ++ ) 
  for(j= 0; j < k; j ++ ) ;
}
 
Top