找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机八路抢答器可显示组号 倒计时与分数 带仿真与源码

[复制链接]
跳转到指定楼层
楼主
我是个初学者这,个是自己编写的,带仿真

单片机控制数码管显示显示组号 倒计时与分数


单片机源程序如下:
  1. #include<reg51.h>
  2. #define uchar  unsigned char
  3. uchar duanma [10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  4. uchar weima  [6]  = {0x01,0x02,0x04,0x08,0x10,0x20};
  5. uchar xianshi[6]  = {0,0,0,0,0,0};
  6. uchar cj     [9]=   {0,0,0,0,0,0,0,0,0};
  7. uchar jishu1,jishu2,zuhao,daojishi,miao,jifen,chengji;
  8. bit qiangda=1;
  9. sbit k1=P0^0;
  10. sbit k2=P0^1;
  11. sbit k3=P0^2;
  12. sbit k4=P0^3;
  13. sbit k5=P0^4;
  14. sbit k6=P0^5;
  15. sbit k7=P0^6;
  16. sbit k8=P0^7;
  17. sbit chafen=P3^4;  
  18. sbit jianfen=P3^5;               
  19. sbit jiafen=P3^6;                          
  20. sbit fuwei=P3^7;
  21. sbit  fengming=P3^2;                                         


  22. void yanshi10ms()
  23. {
  24. unsigned  char   i,j;
  25. for(i=20;i>0;i--)
  26. for(j=250;j>0;j--);
  27. }

  28. void chushihua()
  29. {
  30. TMOD=0x11;
  31. TH0=(65536-10000)/256;
  32. TL0=(65536-10000)%256;
  33. TH1=(65536-1000)/256;
  34. TL1=(65536-1000)%256;
  35. EA=1;
  36. ET0=1;
  37. TR0=1;
  38. ET1=1;
  39. }

  40. void main(void)

  41. {
  42. chushihua();
  43. while(1)
  44.   
  45.    {                                                   //蜂鸣器控制
  46.       if(daojishi==20)
  47.       {
  48.           TR1=1;
  49.       }
  50.           if (daojishi==19)
  51.           {
  52.           TR1=0;
  53.           }
  54.            if(daojishi==1)
  55.        {
  56.          TR1=1;
  57.        }
  58.           if (daojishi==0)
  59.           {
  60.           TR1=0;
  61.           }

  62.   

  63.   
  64. if(fuwei==0)                                                        //按钮 复位
  65. {  
  66.    yanshi10ms();
  67.    if(fuwei==0)
  68.    {
  69.    qiangda=0;
  70.    zuhao=0;
  71.    daojishi=0;
  72.    chengji=0;
  73.    }
  74.    while(fuwei==0);
  75. }




  76. if(jiafen==0)                                //加减分
  77.   {
  78.    yanshi10ms();
  79.   if(jiafen==0)
  80.   {
  81.    cj[zuhao]=cj[zuhao]+10;
  82.    if(cj[zuhao]>=100)
  83.    {
  84.    cj[zuhao]=90;
  85.    }
  86.    chengji=cj[zuhao];
  87.    while(jiafen==0)        ;
  88.   }
  89.   }


  90.   if(jianfen==0)                                //加减分
  91.   {
  92.    yanshi10ms();
  93.   if(jianfen==0)
  94.   {
  95.    cj[zuhao]=cj[zuhao]-10;
  96.    if(cj[zuhao]==-10)
  97.    {
  98.    cj[zuhao]=0;
  99.    }
  100.    chengji=cj[zuhao];
  101.    while(jianfen==0)        ;
  102.   }
  103.   }





  104. if(chafen==0)                                   //查分
  105.     {
  106.          zuhao++;
  107.          if(zuhao==9)zuhao=1;
  108.          chengji=cj[zuhao];
  109.          while(chafen==0);
  110.     }





  111. if(qiangda==0)
  112. {            


  113. if(k1==0)
  114. {
  115.    yanshi10ms();
  116.    if(k1==0)
  117.    {
  118.    zuhao=1;
  119.    daojishi=20;
  120.    qiangda=1;
  121.    }
  122.   while(k1==0) ;
  123.   }

  124.   if(k2==0)
  125. {
  126.    yanshi10ms();
  127.    if(k2==0)
  128.    {
  129.    zuhao=2;
  130.    daojishi=20;
  131.    qiangda=1;
  132.    }
  133.   while(k2==0);
  134. }

  135.   if(k3==0)
  136. {
  137.    yanshi10ms();
  138.    if(k3==0)
  139.    {
  140.    zuhao=3;
  141.    daojishi=20;
  142.    qiangda=1;
  143.    }
  144.   while(k3==0);
  145.   }

  146.   if(k4==0)
  147. {
  148.    yanshi10ms();
  149.    if(k4==0)
  150.    {
  151.    zuhao=4;
  152.    daojishi=20;
  153.    qiangda=1;
  154.    }
  155.   while(k4==0);

  156. }


  157.   if(k5==0)
  158. {
  159.    yanshi10ms();
  160.    if(k5==0)
  161.    {
  162.    zuhao=5;
  163.    daojishi=20;
  164.    qiangda=1;
  165.    }
  166.   while(k5==0);

  167. }




  168.   if(k6==0)
  169. {
  170.    yanshi10ms();
  171.    if(k6==0)
  172.    {
  173.    zuhao=6;
  174.    daojishi=20;
  175.    qiangda=1;
  176.    }
  177.   while(k6==0);

  178. }




  179.   if(k7==0)
  180. {
  181.    yanshi10ms();
  182.    if(k7==0)
  183.    {
  184.    zuhao=7;
  185.    daojishi=20;
  186.    qiangda=1;
  187.    }
  188.   while(k7==0);

  189. }

  190. ……………………

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

所有资料51hei提供下载:
八路抢答器.zip (70.34 KB, 下载次数: 64)


评分

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

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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