电子技术论坛

 找回密码
 快速注册

QQ登录

只需一步,快速开始

搜索
下载方法|用单线程|避免多扣帖子规范|求助必读|发帖建议积分策略|勋章介绍|新人必读获取金币|推广论坛|出售帖子基本礼节|致会员信|版规总则
禁涉政治|反对低俗|举报专帖征集相片|留下足迹|推荐精华上传附件|制作分卷|使用网盘禁发qq群|恶意灌水|纯表情帖加入团队|监督机制|安全上网
查看: 2309|回复: 1

篮球记分器的设计

[复制链接]
发表于 2011-5-23 18:01:37 | 显示全部楼层 |阅读模式

注册家电维修技术论坛,与同行畅聊维修技术,享更多技术论坛功能。

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
篮球记分器的设计

#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit k1=P3^0;     //A队加分
sbit k2=P3^1;   //B队加分
sbit k3=P3^2;   //倒计时开始
sbit k4=P3^3;   //换场
sbit k5=P3^5;   //倒计时暂停
sbit we1=P3^4;   //显示时间数码管的位选
uchar second,count,temp,temp1,temp2,zhu,ke,zs,zg,ks,kg,ge,shi;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
};
void delay(uint z)
{
int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void init()
{
   TMOD=0x01;
   TH0=(65536-50000)/256;
   TL0=(65536-50000)%256;
second=60;
count=0;
temp1=0;
temp2=0;
zhu=0;
ke=0;
}
void timer0() interrupt 1
{
   TH0=(65536-50000)/256;
   TL0=(65536-50000)%256;
   count++;
}
void smg()
{
if(count==20)
{
  count=0;
  second--;
  if(second==0)
  TR0=0;
}
}
void display_fen()
{
zs=zhu/10;
zg=zhu%10;
ks=ke/10;
kg=ke%10;

P2=0;
P1=0X00;
delay(3);
P2=1;
P1=table[zs];
delay(3);
P2=2;
P1=table[zg];
delay(3);
P2=3;
P1=0X00;
delay(3);
P2=4;
P1=0X00;
delay(3);
P2=5;
P1=table[ks];
delay(3);
P2=6;
P1=table[kg];
delay(3);
P2=7;
P1=0X00;
delay(3);
}
void display_time()
{
shi=second/10;
ge=second%10;
we1=0;
P0=table[shi];
delay(5);
we1=1;
P0=table[ge];
delay(5);  
}
void main()
{
    init();
while(1)
{
  if(k1==0)
  {
   delay(2);
   if(k1==0)
   {
    while(!k1)
    {
     display_fen();   //为在按下键时,数码管不抖动
      display_time();   //下面的也一样
    }
    zhu++;
   }
  }
  if(k2==0)
  {
   delay(2);
   if(k2==0)
   {
    while(!k2)
    {
     display_fen();
     display_time();
    }
    ke++;
      }
  }
  if(k3==0)
  {
   delay(2);
   if(k3==0)
   {
    while(!k3)
    {
        display_fen();
     display_time();
    }
    TR0=1;
    ET0=1;
      EA=1;
   }
  }
  if(k4==0)
  {
      delay(2);
   if(k4==0)
   {
       while(!k4)
    {
     display_fen();
     display_time();
    }
    temp=zhu;
    zhu=ke;
    ke=temp;
   }   
  }
  if(k5==0)
  {
   delay(2);
   if(k5==0)
   {
    while(!k5)
    {
     display_fen();
     display_time();     
    }
    TR0=0;
   }
  }
  smg();
  display_time();
  display_fen();
}
}
篮球记分器的设计.jpg
发表于 2011-6-2 08:06:16 | 显示全部楼层
很不错
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|家电维修技术论坛 ( 鄂ICP备09003585号-2 )

GMT+8, 2024-12-4 02:42 , Processed in 0.047946 second(s), 5 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

CopyRight © 电子技术论坛
电子邮箱:8794149@qq.com | 联系 QQ:3081868839 | 官方网址:www.dzdu.com

Qiji. All Rights Reserved


服务条款 | 站长声明

Wuhan Qiji Technology Co., Ltd.武汉奇迹科技有限公司版权所有


鄂ICP备09003585号-2鄂公网安备42010602000420号

快速回复 返回顶部 返回列表