基于51单片机的篮球记分牌设计 下载本文

智能仪表综合课程设计

} }

void display(int i,int j,int x,int y) // 数码管动态刷新显示程序 {

if(jie==1&&bujin!=2) //中间变量jie==1时,为上半场,对P1赋值 P1=0xbf; //P1=0xbf, 灯

P2=0xfe;

// P0=seg[i0/10]; // delay(1); // P2=0xff; P0=0;

P2=0xfd; // P0=seg[i]; delay(1); P2|=0xff; P0=0;

P2=0xfb; // P0=seg[j0/10]; delay(1); P0=0; P2=0xff;

P2=0xf7; // P0=seg[j]; delay(1);

即P1=1011 1111B,点亮对应上半场指示

数码管动态刷新显示程序 P2=1111 1110,i为分钟

刷新显示时间显示分钟十位,调用延时程序, 延时数码管的点亮 同理,动态刷新时分钟个位并延时点亮 同理,动态刷新时秒钟十位并延时点亮 同理,动态刷新时秒钟个位并延时点亮 25

智能仪表综合课程设计

P0=0; P2=0xff;

P2=0xef; //同理,动态刷新甲队分数十位并延时点亮

P0=seg[x0/10]; delay(1); P2=0xff; P0=0;

P2=0xdf; // P0=seg[x]; delay(1); P2=0xff; P0=0;

P2=0xbf; / /

{ //即,当

delay(1); //明按键

if(RXD==0) // { while(RXD==0); x++;

}

}

if(TXD==0) // { delay(1);

同理,动态刷新甲队分数个位并延时点亮 同理,动态刷新乙队分数十位并延时点亮

调用延时子程序 实现消除按键抖动功能,检测到按键按下时候,延时,按键仍按下,说确实按下,非抖动,甲队对应加分 同理,检测乙队加分按键时候按下,并加分 26

智能仪表综合课程设计

if(TXD==0) {

while(TXD==0); y++;

}

} }

void keyjianfen1()

与加{

if(WR==0) // { delay(1); if(WR==0) { while(WR==0); x--;

}

} if(RD==0) { delay(1); if(RD==0) {

while(RD==0); y--;

}

} }

void key2()

{

//减分按键检测子程序,其基本算法及功能

相同

//显示时间调整程序,即回表和快表

27

智能仪表综合课程设计

if(INT0==0)

{ //在比赛中有时经常需要回表,故写此程序

delay(10);

if(INT0==0) //回表子程序,检测到INT0按下时,使时间

回倒 {

chuzanting==0; // 表按键 zanting=1; // n++;

if(n==60)

{ m++; n=1;

}

} }

if(INT1==0) //快,

{ // // delay(10); // chuzanting==0; zanting=1; if(INT1==0) {

chuz

} } jie--; }

if(jie==1&&bujin==2) //

chuzanting==0; zanting=1;为附加变量,当回

松开时,表暂停,这两个变量用来调用暂停 快表子程序,检测到INT1按下时,使倒计加通常情况下与回表子程序配合使用,即当回表 回过的时候,按此键调整时间

作用同上 如果jie==1&&bujin==2,说明比赛结束了,令

28