Saturday, 6 December 2014

4Mux Segment LED

#include<reg51.h>
//#include"delay.h"
//#include"seg.h"

void delay_ms(unsigned int dly)
{
unsigned int i;
for(;dly>0;dly--)
{
for(i=122;i>0;i--);
}
}

#define segs_4_mux P0
sbit sel1=P2^0;
sbit sel2=P2^1;
sbit sel3=P2^2;
sbit sel4=P2^3;
unsigned char dp1=0x80,dp2=0x80,dp3=0x80,dp4=0x80;
code unsigned char seg_lut[]=
{
	0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10
};

void disp_4_mux_segs(unsigned int n)
{
segs_4_mux=seg_lut[n/1000]|dp1;
sel1=0;
//;delay_ms(10);
sel1=1;

segs_4_mux=seg_lut[(n/100)%10]|dp2;
sel2=0;
//;delay_ms(10);
sel2=1;

segs_4_mux=seg_lut[(n%100)/10]|dp3;
sel3=0;
//;delay_ms(10);
sel3=1;

segs_4_mux=seg_lut[n%10]|dp4;
sel4=0;
//;delay_ms(10);
sel4=1;
}
//#endif
void main(void)
{
while(1)
disp_4_mux_segs(1234);
}