标题: 基于51单片机的篮球计时计分器,源代码+仿真原理图 [打印本页]

作者: 邓邓子    时间: 2017-12-14 09:18
标题: 基于51单片机的篮球计时计分器,源代码+仿真原理图
(分享设计)这是一个简单的51单片机的篮球比分牌,两位数计时,附件里面含有源代码和仿真原理图。
本人是新手,做得比较简单。
计时是24秒的倒计时,加分是+1分的设置。

篮球比分牌仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)



程序代码:
单片机源程序如下:
  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, 下载次数: 109)



作者: 金李    时间: 2018-4-9 21:21
正好需要  谢了
作者: 小小烂尾楼    时间: 2018-10-7 18:19
想问一下为何打不开DSN文件呢

作者: 763900682    时间: 2019-5-11 15:22

想问一下为何打不开DSN文件呢
作者: 3232090712202    时间: 2024-9-20 16:32
正好需要,谢谢了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1