找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1786|回复: 5
打印 上一主题 下一主题
收起左侧

有没有大神知道为什么这个单片机篮球计分板的电路是乱码 并且按钮无效

[复制链接]
跳转到指定楼层
楼主
  1. #include<reg51.h>

  2. unsigned char codeseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x00,0x90 };

  3. inti=11,j=59,a=0,b=0,m=0,n=0,temp,s=0,r=24,k;

  4. sbit aa=P0^0;

  5. sbit bb=P0^1;

  6. sbit one=P0^2;

  7. sbit two=P0^3;

  8. sbit three=P0^4;

  9. sbit exchange=P0^5;

  10. sbit stop=P0^6;

  11. sbit led=P3^6;

  12. sbit tt=P3^7;  


  13. void delay(int x)

  14. {

  15.        intw,q;

  16.        for(w=0;w<x;w++)

  17.               for(q=0;q<120;q++);

  18. }


  19. void display(int i,int j,int a,int b)

  20. {

  21.        P2= 0x01;

  22.        P1= seg[i/10];

  23.        delay(1);

  24.        P2= 0x00;


  25.        P2= 0x02;

  26.        P1= seg[i%10];

  27.        delay(1);

  28.        P2= 0x00;

  29.       

  30.        P2= 0x04;

  31.        P1= seg[j/10];

  32.        delay(1);

  33.        P2= 0x00;

  34.       


  35.        P2= 0x08;

  36.        P1= seg[j%10];

  37.        delay(1);

  38.    P2 = 0x00;

  39.       


  40.        P2=0x10;

  41.        P1= seg[a/10];

  42.        delay(1);

  43.        P2=0x00;

  44.       

  45.        P2=0x20;

  46.      P1 = seg[a%10];

  47.        delay(1);

  48.        P2= 0x00;

  49.       


  50.      P2 = 0x40;

  51.        P1= seg[b/10];

  52.        delay(1);

  53.        P2= 0x00;

  54.       


  55.        P2=0x80;

  56.      P1 = seg[b%10];

  57.        delay(1);

  58.        P2= 0x00;

  59.       

  60. }


  61. void time0() interrupt 1

  62. {     

  63.    TH0 = 0xb1;

  64.        TL0= 0xe0;

  65.        m++;

  66.        if(m==50)

  67.        {

  68.      m=0;

  69.               j--;

  70.               if(j==-1)

  71.                      j= 59;

  72.               n++;

  73.               if(n==60)

  74.               {

  75.                      n=0;

  76.                      i--;

  77.                      if(i==0&&j==0){

  78.                             ET0=1;

  79.                             TR0= 1;

  80.                      }

  81.               }

  82.        }

  83.        display(i,j,a,b);

  84. }



  85. void main()

  86. {

  87.        P0= 0x00;

  88.        display(12,0,0,0);

  89.        TMOD= 0x01;

  90.        TH0= 0xb1;

  91.        TL0= 0xe0;

  92.        IE= 0x82;

  93.        TR0= 1;

  94.        while(1)

  95.        {

  96.               if(aa==1&&one==1)

  97.                      {a++;display(i, j, a, b);while(one==1);}

  98.                      elseif(aa==1&&two==1)

  99.                             {a=a+2;display( i, j, a, b);while(two==1);}

  100.                             elseif(aa==1&&three==1)

  101.                                    {a=a+3;display(i, j, a, b);while(three==1);}

  102.                                    elseif(bb==1&&one==1)

  103.                                           {b++;display(i, j, a, b);while(one==1);}

  104.                                           elseif(bb==1&&two==1)

  105.                                                  {b=b+2;display( i, j, a, b);while(two==1);}

  106.                                                  elseif(bb==1&&three==1)

  107.                                                         {b=b+3;display( i, j, a, b);while(three==1);}

  108.                                                     else if(exchange==1)

  109.                                                         {temp= a;a = b;b = temp;delay(500);}

  110.                                                                elseif(stop==1)                                         {ET0=0;TR0=0;while(stop==1);while(stop==0);while(stop==1){ET0=1;TR0=1;}}

  111.        }

  112. }
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:295874 发表于 2018-10-24 09:37 | 只看该作者
整体有点小问题,需要修改一下。显示与按键处理电路及逻辑需要修改。
回复

使用道具 举报

板凳
ID:413820 发表于 2018-10-24 11:16 | 只看该作者
liyongan_1985 发表于 2018-10-24 09:37
整体有点小问题,需要修改一下。显示与按键处理电路及逻辑需要修改。

能具体说一下计分板显示如何修改吗
回复

使用道具 举报

地板
ID:414543 发表于 2018-10-24 11:49 | 只看该作者
led乱码检查一下数码管对应的值,还有建议写代码要注释,不然别人看的很累
回复

使用道具 举报

5#
ID:94031 发表于 2018-10-24 15:30 | 只看该作者
1 P0口要上拉
2 初始化时应该P0= 0xff;


回复

使用道具 举报

6#
ID:413820 发表于 2018-11-6 11:12 | 只看该作者
xuyaqi 发表于 2018-10-24 15:30
1 P0口要上拉
2 初始化时应该P0= 0xff;

厉害
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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