当前位置:首页 > 篮球计时计分器系统设计报告
(2)定时中断函数
产生一个Is的计时单元
Void ininterruptO interrupt 1 {
TH0=(65536-50000y256; TLO=(65536-50000)%6; count++;
if(count==20) {
Count=0;
If(second==0&&minute==0; {
Et0=0; }
else if(second==0 && minute!=0)
{
second=59; minute--; }
else if(second!=0 ) {
second--; } }
12
(3)延时函数
void delay ()函数用于显示延时,voiddelayl ()函数用于延时消抖。 void delay()
//显不延时函数
uint x,y;
for(x=10;x>0;x-)
for(y=10;y>0;y-); void delay 1() {
uint x,y;
foi
}
for(y=360;y>0;y-);
(4)显示函数
功能是将数码管的码值进行处理送到端口,数。
//显示函数
Void dinplayQ
uchar ij; uchartemp;
disbuffer[3]=second% 10; disbuffer[2]=second/l 0;
disbuffer[ 1 ]=minute% 10; disbufifer[0]=minute/10; disbuflfer[5]=Ascore% 10; disbuffer[4]=Ascore/10; disbufFer[7]=Bscore% 10; disbuffer[6]=Bscore/l 0; temp=Oxfe; P2=temp;
for(i=0;i<8;i++) {
j=disbuffer[i];
//延时消抖函数16ms
使得数码管显示时间和分
13
P0=tableD]; delayO;
temp=_crol_(temp, 1); P2=temp; } }
(5)蜂鸣器启动函数
功能是等比赛结束后,启动蜂鸣器提示比赛结束
void bizzerQ \蜂鸣器函数
while(minute=0 && sec(md=0) 判断时间结
(6)外部中断0函数
void exinterrupt() interrupt 0
//中断
{
delay1();
if(!timeadd) //按键设置比赛时间 {
while(!timeadd); minute++; } }
14
(7)按键函数
功能有实现A队加1分、加2分,A队减1分,B队加1分、加2分,B队减1分,下半场切换比分,暂停继续等
void button() //按键 函数 {
if(!turn) {
delay1(); //延时消抖 以下用delay1的都是延时消抖 if(!turn) {
while(!turn);
flage+=1; //标志位 } }
if(flage%2==0) {
if(!add1) {
delay1(); if(!add1) {
while(!add1); //按键时 松手检测 Ascore+=1; // A加 1 分 } }
if(!add2) {
delay1(); if(!add2) {
while(!add2); Ascore+=2; } }
if(!minus1)
15
共分享92篇相关文档