找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6002|回复: 3
收起左侧

基于51单片机的篮球计时计分器,源代码+仿真原理图

[复制链接]
ID:261201 发表于 2017-12-14 09:18 | 显示全部楼层 |阅读模式
(分享设计)这是一个简单的51单片机的篮球比分牌,两位数计时,附件里面含有源代码和仿真原理图。
本人是新手,做得比较简单。
计时是24秒的倒计时,加分是+1分的设置。

篮球比分牌仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
a单片机.jpg
0.jpg 0.jpg

程序代码:
单片机源程序如下:
  1. #include <reg51.h>
  2. #include<intrins.h>
  3. sbit led=P1^7;
  4. sbit sy=P1^6;
  5. bit second=0,trun=1;
  6. unsigned char key,t1,t2=24;
  7. unsigned char SMG_CA[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
  8. unsigned char score[8]={0,0,0,0,0,0,0,0};
  9. void delayms(unsigned int x)
  10. {
  11.   unsigned char t;
  12.   while(x--)
  13.   for (t=0;t<120;t++);
  14. }
  15. void service_int0 (void) interrupt 0
  16. {
  17.   key=P1& 0x0f;
  18. }
  19. void timer0(void) interrupt 1
  20. {
  21.   t1++;
  22.   if (t1==20)
  23.   {
  24.     t1=0; second=1;
  25.   }
  26.   TH0=0X3C;TL0=0Xb0;
  27. }

  28. void Alarm(unsigned char m)
  29. {
  30.         unsigned char n,k;
  31.         for(n=0;n<200;n++)
  32.         {
  33.                 sy=~sy;
  34.                 for(k=0;k<m;k++);        //由参数t行成不同的频率
  35.         }
  36. }



  37. main ()
  38. {
  39. unsigned char i,wei=0x80,a=0,a1=0,a2=0,a3=0,b=0,b1=0,b2=0,b3=0;
  40. TMOD=0X01;
  41. TH0=0X3C;
  42. TL0=0Xb0;
  43. TR0=1;
  44. ET0=1;
  45. IT0=1;
  46. EX0=1;
  47. EA=1;
  48. sy=0;
  49.   while(1)
  50.   {
  51.     if(key==0x0e)
  52.         {
  53.          a=a+1;
  54.          a3=a/100;
  55.          a2=(a-a3*100)/10;
  56.          a1=a-a3*100-a2*10;
  57.          score[0]=a3;score[1]=a2;score[2]=a1;
  58.         }
  59.         if(key==0x0d)
  60.         {
  61.         b=b+1;
  62.         b3=b/100;
  63.         b2=(b-b3*100)/10;
  64.         b1=b-b3*100-b2*10;
  65.         score[5]=b3;score[6]=b2;score[7]=b1;
  66.         }

  67.         score[3]=t2/10;
  68.         score[4]=t2%10;
  69.         if (key==0x0c)
  70.         {  
  71.            trun=~trun;
  72.           if (trun==0) {TR0=0;led=0;}
  73.           else  {TR0=1;led=1;}                 
  74.         }
  75.         if(key==0x0b) {t2=24;}
  76.         key=0;

  77.         if(second==1)
  78.         {
  79.           second=0;
  80.           t2--;
  81.           if(t2<=0||t2>24)
  82.           {
  83.             t2=0;
  84.                 Alarm(90);
  85.           }        
  86.         
  87. ……………………

  88. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
篮球比分牌.zip (74.35 KB, 下载次数: 101)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:260117 发表于 2018-4-9 21:21 | 显示全部楼层
正好需要  谢了
回复

使用道具 举报

ID:386553 发表于 2018-10-7 18:19 | 显示全部楼层
想问一下为何打不开DSN文件呢
回复

使用道具 举报

ID:352449 发表于 2019-5-11 15:22 | 显示全部楼层

想问一下为何打不开DSN文件呢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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