要是同时显示就会缺134,求大神指教
程序如下:
#include <reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
sbit seg_sel = P1^4;
sbit bit_sel = P1^5;
#define DATA P0
u8 code seg_tab[] =
{
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e,
};
u8 code bit_tab[] =
{
0x80,0x40,0x20,0x10,
0x08,0x04,0x02,0x01
};
////////////延时函数//////////////////
void delay(u16 num)
{
u16 x,y;
for(x=num; x>0; x--)
for(y=110; y>0; y--)
{
;//延时1ms
}
}
///////////////////数码管显示子函数/////////////////
void display_led(u8 which_bit, u8 which_number)
{
bit_sel = 1; //Q[7..0]=D[7..0]
DATA = bit_tab[(which_bit-1)];
bit_sel = 0; //BIT[7..0]=0x80
seg_sel = 1; //Q[7..0]=D[7..0]
DATA = seg_tab[which_number];
seg_sel = 0;
delay(2);
}
///////////////////主函数///////////////////////
void main (void)
{
display_led(1,1);
display_led(2,2);
display_led(3,3);
display_led(4,4);
display_led(5,5);
display_led(6,6);
display_led(7,7);
display_led(8,8);
}
程序如下:
#include <reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
sbit seg_sel = P1^4;
sbit bit_sel = P1^5;
#define DATA P0
u8 code seg_tab[] =
{
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e,
};
u8 code bit_tab[] =
{
0x80,0x40,0x20,0x10,
0x08,0x04,0x02,0x01
};
////////////延时函数//////////////////
void delay(u16 num)
{
u16 x,y;
for(x=num; x>0; x--)
for(y=110; y>0; y--)
{
;//延时1ms
}
}
///////////////////数码管显示子函数/////////////////
void display_led(u8 which_bit, u8 which_number)
{
bit_sel = 1; //Q[7..0]=D[7..0]
DATA = bit_tab[(which_bit-1)];
bit_sel = 0; //BIT[7..0]=0x80
seg_sel = 1; //Q[7..0]=D[7..0]
DATA = seg_tab[which_number];
seg_sel = 0;
delay(2);
}
///////////////////主函数///////////////////////
void main (void)
{
display_led(1,1);
display_led(2,2);
display_led(3,3);
display_led(4,4);
display_led(5,5);
display_led(6,6);
display_led(7,7);
display_led(8,8);
}