久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 單片機搶答器程序 [打印本頁]

作者: 晨小小小    時間: 2016-6-25 11:53
標題: 單片機搶答器程序
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint  unsigned int

  4. sbit key9=P2^0;    //主持人清除鍵
  5. sbit key10=P2^1;   //主持人非定時搶答開啟鍵
  6. sbit key11=P2^2;   //主持人定時搶答開啟鍵
  7. sbit wei1=P2^4;    //數碼管位選段
  8. sbit wei2=P2^5;
  9. sbit wei3=P2^6;
  10. sbit wei4=P2^7;
  11. sbit contr=P2^3;
  12. uchar code seg7[]={
  13.                       0x3f,0x06,0x5b,0x4f,
  14.                       0x66,0x6d,0x7d,0x07,
  15.                       0x7f,0x6f,0x77,0x7c,
  16.                       0x39,0x5e,0x79,0x71
  17.                     };   //共陰極數碼管顯示編碼

  18. //定義搶答時間,中斷次數,選手編號三個全局變量
  19. uchar  time=30,count,playernum;
  20. //存儲8個選手按鍵狀態,若對應選手按鍵被按下,則
  21. //相應存儲位置存儲選手編號,否則對應存儲位置存儲數字0
  22. uchar  num[8];  

  23. void delayms(uint xms)
  24. {
  25.      uint i,j;
  26.      for(i=xms;i>0;i--)
  27.          for(j=110;j>0;j--);
  28. }


  29. void display(uchar time,uchar num)  //數碼管顯示函數
  30. {
  31.    uchar shi,ge;

  32.    shi=time/10;   //顯示搶答時間
  33.    ge=time%10;
  34.    P0=seg7[shi];  //段選數據  
  35.    wei1=0;        //位選數據
  36.    delayms(10);
  37.    wei1=1;

  38.    P0=seg7[ge];  
  39.    wei2=0;
  40.    delayms(10);
  41.    wei2=1;


  42.    shi=num/10;   //顯示選手編號
  43.    ge=num%10;     
  44.    P0=seg7[shi];  
  45.    wei3=0;
  46.    delayms(10);
  47.    wei3=1;

  48.    P0=seg7[ge];  
  49.    wei4=0;
  50.    delayms(10);
  51.    wei4=1;
  52. }

  53. void keyscan()
  54. {
  55.    if(key9==0)      //主持人清除鍵
  56.    {
  57.       delayms(2);
  58.       if(key9==0)
  59.       {
  60.          while(!key9) ;
  61.          P3=0xff;      //關閉和被按下搶答鍵對應的發光二極管
  62.          time=0;       //清除搶答時間
  63.          contr=1;      //開發搶答按鈕輸入
  64.          playernum=0;  //清除選手編號
  65.          TR0=0;        //關閉定時器
  66.       }
  67.    }
  68.    if(key10==0)       //非定時搶答開始鍵
  69.    {
  70.       delayms(2);      
  71.       if(key10==0)
  72.       {
  73.          while(!key10);      
  74.          contr=0;      //只允許首先按下搶答鍵者的狀態輸入
  75.          time=0;       //清除時間
  76.          TR0=0;        //關閉定時器

  77.       }
  78.    }
  79.    if(key11==0)      //定時搶答開啟鍵
  80.    {
  81.       delayms(2);
  82.       if(key11==0)
  83.       {
  84.          while(!key11);     
  85.          contr=0;    //只允許首先按下搶答鍵者的狀態輸入
  86.          time=30;    //初始化搶答時間
  87.          TR0=1;      //開啟定時器

  88.       }
  89.    }   
  90. }

  91. void getplayernum()  //獲取搶答鍵被按下編號
  92. {
  93.    uchar i,temp;
  94.    temp=P1;
  95.    P3=P1;          //將被按下的搶答鍵對應二極管點亮
  96.    for(i=0;i<8;i++)
  97.    {
  98.      temp=temp>>1;
  99.      if(CY==0)   //該選手按下搶答鍵
  100.         {
  101.          num[i]=(i+1);

  102.          }
  103.       else
  104.          num[i]=0;

  105.    }
  106. }



  107. void main()
  108. {
  109.     uchar  i;
  110.     P2=0xFF;
  111.     TMOD=0x01;   //定時器0工作在方式1
  112.     TH0=(65536-50000)/256;  //定時時間50ms
  113.     TL0=(65536-50000)%256;
  114.     EA=1;
  115.     ET0=1;
  116.    while(1)
  117.    {

  118.          keyscan();
  119.          getplayernum();
  120.          for(i=0;i<8;i++)      
  121.          {
  122.             if(num[i]!=0)
  123.               {
  124.                playernum=num[i];
  125.                }
  126.           display(time,playernum);  //顯示搶答鍵被按下編號和時間
  127.          }

  128.    }



  129. }

  130. void timer0_int() interrupt 1
  131. {
  132.    TH0=(65536-50000)/256;
  133.    TL0=(65536-50000)%256;
  134.    count++;
  135.    if(count==20)
  136.    {
  137.       time--;
  138.       if(time==0)
  139.       time=30;
  140.       count=0;
  141.    }
  142.    TR0=1;
  143. }
復制代碼

作者: MX安心    時間: 2016-6-26 19:19
ww位學習了最好弄個圖
作者: wangpanbest    時間: 2017-9-19 10:21
求大神哥哥給個圖啊  




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美成人免费 | 免费一区二区三区在线视频 | 色综合色综合 | 色综合天天天天做夜夜夜夜做 | 蜜桃视频在线观看免费视频网站www | 国产无人区一区二区三区 | 99精品国产一区二区三区 | 九九九久久国产免费 | 国产网站久久 | 亚洲精品粉嫩美女一区 | 在线伊人 | 黄色网址大全在线观看 | 999www视频免费观看 | 欧美精品1区2区 | 成年人视频在线免费观看 | 国产.com| 亚洲午夜视频在线观看 | 一级毛片成人免费看a | 国产不卡在线观看 | 国产在线观看一区二区三区 | 国产乱码久久久久久一区二区 | 国内自拍偷拍视频 | 久久综合婷婷 | 91精品综合久久久久久五月天 | 亚洲精品电影在线观看 | 暴草美女 | 粉嫩国产精品一区二区在线观看 | 亚洲国产精品美女 | 精品亚洲二区 | 四虎影视一区二区 | 麻豆亚洲| 成人毛片网 | 日韩欧美在线视频 | 日韩欧美一区在线 | 天堂网中文 | 日本黄色免费视频 | 亚洲国产精品久久久久久 | 国产一区二区三区在线 | 天天看天天爽 | 精品成人免费一区二区在线播放 | 亚洲精品一区二区三区中文字幕 |