level 2
earth异种
楼主
C语言如下
#include <reg51.h>
typedef unsigned char u8;
typedef unsigned int u16;
sbit start = P3^0;
sbit eoc = P3^1;
sbit oe = P3^2;
sbit clk = P3^3;
sbit ale = P3^4;
sbit adda = P3^5;
sbit addb = P3^6;
sbit addc = P3^7;
u8 getdata,table[4];
u16 t;
sbit seg_sel = P1^0;
sbit bit_sel = P1^1;
#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[]={
0x01,0x02,0x04,0x08
};
void delay(u16 num)
{
u16 x,y;
for(x=num; x>0; x--)
for(y=110; y>0; y--)
{
;
}
}
void init_interrupt()
{
TMOD = 0x02;
TH0 = 0xfb;
TL0 = 0xfb;
EA = 1;
ET0 = 1;
TR0 = 1;
}
void timer_T0(void) interrupt 1
{
clk = ~clk;
}
void display_led(u8 which_bit, u8 which_number)
{
bit_sel = 1;
DATA = bit_tab[which_bit];
bit_sel = 0;
seg_sel = 1;
DATA = seg_tab[which_number];
seg_sel = 0;
delay(100);
}
void display(void)
{
t = getdata*(5000.0/256);
table[3] = t/1000;
table[2] = t%1000/100;
table[1] = t%1000/100/10;
table[0] = t%10;
display_led(1,table[3]);
display_led(2,table[2]);
display_led(3,table[1]);
display_led(4,table[0]);
}
void main (void)
{
init_interrupt();
adda = addb = addc =0;
while(1)
{
oe = 0;
start = 0;
start = 1;
start = 0;
while (eoc == 0);
oe = 1;
getdata = P2;
oe = 0;
display();
}
}
2017年02月26日 09点02分
1
#include <reg51.h>
typedef unsigned char u8;
typedef unsigned int u16;
sbit start = P3^0;
sbit eoc = P3^1;
sbit oe = P3^2;
sbit clk = P3^3;
sbit ale = P3^4;
sbit adda = P3^5;
sbit addb = P3^6;
sbit addc = P3^7;
u8 getdata,table[4];
u16 t;
sbit seg_sel = P1^0;
sbit bit_sel = P1^1;
#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[]={
0x01,0x02,0x04,0x08
};
void delay(u16 num)
{
u16 x,y;
for(x=num; x>0; x--)
for(y=110; y>0; y--)
{
;
}
}
void init_interrupt()
{
TMOD = 0x02;
TH0 = 0xfb;
TL0 = 0xfb;
EA = 1;
ET0 = 1;
TR0 = 1;
}
void timer_T0(void) interrupt 1
{
clk = ~clk;
}
void display_led(u8 which_bit, u8 which_number)
{
bit_sel = 1;
DATA = bit_tab[which_bit];
bit_sel = 0;
seg_sel = 1;
DATA = seg_tab[which_number];
seg_sel = 0;
delay(100);
}
void display(void)
{
t = getdata*(5000.0/256);
table[3] = t/1000;
table[2] = t%1000/100;
table[1] = t%1000/100/10;
table[0] = t%10;
display_led(1,table[3]);
display_led(2,table[2]);
display_led(3,table[1]);
display_led(4,table[0]);
}
void main (void)
{
init_interrupt();
adda = addb = addc =0;
while(1)
{
oe = 0;
start = 0;
start = 1;
start = 0;
while (eoc == 0);
oe = 1;
getdata = P2;
oe = 0;
display();
}
}