感觉需求方面也没啥可说的,主要就是加分,程序里都可以看出来,最近比较忙嘛呵呵 /* P2为数码管位选端,高电平有效。数码管为共阴极,低电平亮。 P3.4为加一分 P3.5为加两分 P3.6为加三分 P3.3为切换加分,同时P3.3为外部中断1,优先级小于外部中断0(P3.2) P3.2为外部中断,24秒计时。再按一下停止计时。 使用P1.0~1.3为四个LED灯 */ #include<reg51.h> #define uchar unsigned char #define uint unsigned int sbit key1=P3^6; sbit key2=P3^5; sbit key3=P3^4; sbit key4=P3^3; sbit key5=P3^2; sbit leda1=P1^0; //A计时时亮 sbit leda2=P1^1; //A满百时亮 sbit ledb1=P1^2; //B计时时亮 sbit ledb2=P1^3; //B满百时亮 //数码管 /*数码管*******************************/ uchar code dis[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92, 0x82,0xf8,0x80,0x90}; uchar flag_ab,flag_dis; //flag_ab为控制显示分数,后者为控制显示罚时。 uchar score_a,score_b; uchar num; char time; void time_init() { TMOD=0x10; TH1=(65536-50000)/256; TL1=(65536-50000