27,374
社区成员
发帖
与我相关
我的任务
分享
# include<reg51.h>
unsigned char seg_dm[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char bit_line[5]={0x02,0x04,0x08,0x10,0x20};
unsigned char data_display[5];
unsigned int dat_count=0;
delay(unsigned char time)
{
unsigned char i,j;
for(i=0;i<time;i++)
for(j=0;j<120;j++)
;
}
void data_change(void)
{
data_display[0]=dat_count%10000%1000%100%10;
data_display[1]=dat_count%10000%1000%100/10;
data_display[2]=dat_count%10000%1000/100;
data_display[3]=dat_count%10000/1000;
data_display[4]=dat_count/100000;
}
void INT0_init(void)
{
IT0=1;
EA=1;
EX0=1;
}
void INT1_init(void)
{
IT1=1;
EA=1;
EX0=1;
}
void display(unsigned char dat,unsigned char bit_code)
{
P2=0x00;
P1=seg_dm[dat];
P2=bit_code;
delay(5);
}
main()
{
unsigned char i ;
INT0_init();
INT1_init();
while(1)
{
data_change();
for(i=0;i<5;i++)
display(data_display[i],bit_line[i]);
}
}
void Init0() interrupt 0 using 0
{
EX0=0;
dat_count++;
EX0=1;
}
void Init1() interrupt 2 using 1
{
EX1=0;
dat_count--;
EX1=1;
}