基于单片机的篮球计时计分器设计(C语言编程、含proteus仿真图)(7)

2019-06-11 00:20

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); 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; //同理,动态刷新时秒钟十位并延时点亮 //同理,动态刷新时秒钟个位并延时点亮 //同理,动态刷新甲队分数十位并延时点亮//同理,动态刷新甲队分数个位并延时点亮 / /同理,动态刷新乙队分数十位并延时点亮

30

P0=seg[y0/10];

delay(1); P0=0; P2=0xff;

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

P0=seg[y]; delay(1); P0=0; P2=0xff; }

void t0(void) interrupt 1

{ TH0=0xb1; TL0=0x10; if(n==0)

{ n=60;m--; } i++; if(i==50)

{ n--; i=0; }

display(m,n-1,x,y); }

void keyjiafen1()

{ if(RXD==0)

//调用定时器T0 基本计时单位秒

//利用定时器T0,送入计数初值TH0=0xb1; TL0=0x10; //定时器定时单位为20毫秒 //分钟与秒时间调整 当秒减到0以后分钟减1 //利用中间变量i 令i值为50 50*20毫秒=1秒 //以实现一秒计时 //调用动态刷新显示程序 //加分按键子程序,在主程序中不断调用该子程序 //当检测到甲队加分按键按下时,对应加分 31

{ //调用延时子程序 实现消除按键抖动功能,即,当 delay(1); //检测到按键按下时候,延时,按键仍按下,说明按键 if(RXD==0) //确实按下,非抖动,甲队对应加分 { while(RXD==0); x++;

}

}

if(TXD==0) { delay(1); 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);

//同理,检测乙队加分按键时候按下,并加分 //减分按键检测子程序,其基本算法及功能与加{

//相同 32

if(RD==0) {

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

}

} }

void key2()

{

if(INT0==0)

{ delay(10);

if(INT0==0) { chuzanting==0; zanting=1; n++;

if(n==60)

{ m++; n=1;

}

} } if(INT1==0) { delay(10); if(INT1==0) {

chuzanting==0;

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

//在比赛中有时经常需要回表,故写此程序 //回表子程序,检测到INT0按下时,使时间回倒// chuzanting==0; zanting=1;为附加变量,当回表按键 //松开时,表暂停,这两个变量用来调用暂停 //快表子程序,检测到INT1按下时,使倒计加快, //通常情况下与回表子程序配合使用,即当回表 //回过的时候,按此键调整时间 // chuzanting==0; zanting=1;作用同上 33

zanting=1; n--; }

} }

void shijian() / /该程序使回表和快表按键松开时候能自动暂停 {

if(zanting==1&&INT0==1&&INT1==1&&chuzanting==0 ) {

EA=0; // zanting==1&&INT0==1&&INT1==1&&chuzanting==0作用为

zanting=0; //当按键松开的时候,调用暂停程序条件

chuzanting=0; //zanting=0;chuzanting=0,初始化,以便下次回表和快表

while(1) //按键松开时候仍能调用暂停程序

{

display(m,n,x,y);

if(P1_0==0) //检测暂停键按下,开中断,跳出暂停 {

delay(1); if(P1_0==0) {

while(P1_0==0); EA=1; break; } } } } }

void key3()

//半场交换场地时自动交换双方比赛分数子程序{

int temp; //定义中间变量temp,检测到有按键按下时候 if(zidong==1&&jie==1) //交换甲队,乙队比赛分数

34


基于单片机的篮球计时计分器设计(C语言编程、含proteus仿真图)(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:钦州市养鸡专业合作社名录140家

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: