原程序
#include
/*-----------------------------------------------------------
共阳极0-9的数码管段码
------------------------------------------------------------*/ unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90,0xc0};
/*----------------------------------------------------------- 变量定义
------------------------------------------------------------*/ sbit start=P3^6; sbit reset=P3^7; sbit key1=P1^0; sbit key2=P1^1; sbit key3=P1^2; sbit key4=P1^3; sbit key5=P1^4; sbit key6=P1^5; sbit key7=P1^6; sbit key8=P1^7; sbit jia=P3^4; sbit jian=P3^5;
bit action = 0;
uchar second=10,a[7]={0}; uchar timer0_count = 0;
uchar number=0;
8
3.2uchar number_display = 0; uchar k;
/*----------------------------------------------------------- 延时函数
------------------------------------------------------------*/ void delay(uint z) { uint x,y; for(x=z;x>0;x--)
for(y=120;y>0;y--);
}
/*----------------------------------------------------------- 显示函数
------------------------------------------------------------*/ void display(uchar number,uchar second) {
P2 = 0x01;
P0 = table[second]; delay(1);
P2 = 0x02; P0 = table[number]; delay(1);
P2 = 0x04; P0 = table[a[0]]; delay(1);
P2 = 0x08;
P0 = table[a[1]];
9
delay(1);
P2 = 0x10;
P0 = table[a[2]]; delay(1);
P2 = 0x20; P0 = table[a[3]]; delay(1);
P2 = 0x40; P0 = table[a[4]]; delay(1);
P2 = 0x80; P0 = table[a[5]]; delay(1);
}
/*----------------------------------------------------------- 抢答开始按键检测函数
------------------------------------------------------------*/ void start_keyscan() {
void fengling(); while(start == 0) {
key7=0; display(number_display,second); if(start == 1)
{
10
key7=1; action = 1; TR0 = 1;
} }
}
/*----------------------------------------------------------- 抢答者按键检测函数
------------------------------------------------------------*/ uchar key_scan8() { if(key1 == 0) { delay(8); if(key1 == 0) { number = 1;
number_display = number;
}
}
if(key2 == 0) { delay(8); if(key2 == 0) { number = 2;
number_display = number;
}
11
}
if(key3 == 0) { delay(8); if(key3 == 0) { number = 3;
number_display = number;
}
}
if(key4 == 0) { delay(8); if(key4 == 0) { number = 4;
number_display = number;
}
}
if(key5 == 0) { delay(8); if(key5 == 0) { number = 5;
number_display = number;
}
12