7 SEGMENT INTERFACING WITH 8051

program:
#include<reg52.h>
#define seg_data P2
sbit seg1=P3^0;
sbit seg2=P3^1;
sbit seg3=P3^2;
sbit seg4=P3^3;
int ones=0,tens=0,hundreds=0,thou,l;
void display_digit(int );
void delay(unsigned int );
void main()
{
unsigned int m;
seg4=seg1=seg2=seg3=1;
while(l<=999)
{
ones=l%10;
tens=(l/10)%10;
hundreds=(l/100);
thou=l/1000;
for(m=0;m<150;m++)
{
display_digit(ones);
seg1=1;
delay(20);
seg1=0;
display_digit(tens);
seg2=1;
delay(20);
seg2=0;
display_digit(hundreds);
seg3=1;
delay(20);
seg3=0;
display_digit(hundreds);
seg3=1;
delay(20);
seg3=0;
display_digit(thou);
seg4=1;
delay(20);
seg5=0;
}
l++;
}
}
void delay(unsigned int m)
{
long int k;
for(k=0;k<m;k++);
}
void display_digit(int c)
{
switch(c)
{
case 0:
seg_data=~0x3f;
break;
case 1:
seg_data=~0x06;
break;
case 2:
seg_data=~0x5b;
break;
case 3:
seg_data=~0x4f;
break;
case 4:
seg_data=~0x66;
break;
case 5:
seg_data=~0x6d;
break;
case 6:
seg_data=~0x7d;
break;
case 7:
seg_data=~0x07;
break;
case 8:
seg_data=~0x7f;
break;
case 9:
seg_data=~0x6f;
break;
}
}
Comments
Post a Comment