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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1617|回復: 1
收起左側

本人第一次發(fā)帖,基于單片機的八路搶答器程序設計

[復制鏈接]
ID:781860 發(fā)表于 2020-6-17 13:07 | 顯示全部樓層 |閱讀模式
本次設計采用了LM016L 的顯示器,用來顯示10s倒計時和搶答選手號碼,用來顯示搶答中的選手號碼。位選端分別與P2口的第七位,第六位以及第零位相接。通過上拉電阻接power,實現(xiàn)數(shù)碼管的點亮。 8個選手按鍵接P2口,主持人按鍵接在P1.0~P1.4上
單片機程序如下
  1. #include<reg51.h>
  2. #include<lcd1602.h>
  3. sbit sjjia=P1^0;         //定義時間加按鈕      
  4. sbit sjjian=P1^1;             //定義時間減按鈕
  5. sbit kaishi=P1^2;             //定義開始按鈕
  6. sbit fuwei=P1^3;             //定義復位按鈕
  7. sbit soud=P1^4;                     //報警按鈕
  8. sbit led_r=P1^5;              //定義搶答成功指示
  9. sbit led_y=P1^6;              //定義闡述時間到指示

  10. unsigned charnum[]={'0','1','2','3','4','5','6','7','8','9'},num2;
  11. unsigned char model,time,temp;

  12. void init()       //初始化函數(shù)
  13. {
  14.        TMOD=0x01;
  15.        TH0=(65536-50000)/256;
  16.        TL0=(65536-50000)%256;
  17.        ET0=1;
  18.        TR0=0;
  19.        EA=1;
  20.        P1=0x0f;
  21.        model=0;
  22.        time=30;
  23. }
  24. void delay(unsigned char i)   //延時函數(shù)
  25. {
  26.        unsignedchar j,k;
  27.        while(i--)
  28.               for(j=100;j>0;j--)
  29.                      for(k=100;k>0;k--);
  30. }
  31. void star() //啟動
  32. {
  33.        lcd_xml(0x80);lcd_xsj("     welcome   ");
  34.        delay(100);
  35.        lcd_xml(0xc0);lcd_xsj("8 Way Responder");
  36.        delay(80);
  37. }
  38. void led_num() //刷新倒計時
  39. {
  40.        lcd_xml(0x80);lcd_xsj("Countdown :    ");
  41.        lcd_xml(0x8d);lcd_xsj2(num[time/10]);
  42.        lcd_xml(0x8e);lcd_xsj2(num[time%10]);
  43. }
  44. void reset()     //復位
  45. {
  46.        TR0=0;
  47.        P1=0x0f;
  48.        led_r=0;
  49.        led_y=0;
  50.        P2=0xff;
  51.        model=0;
  52.        time=10;
  53.        led_num();
  54.        lcd_xml(0xc0);lcd_xsj("   Not started ");
  55. }
  56. void Not_started()
  57. {
  58.        if(sjjia==0)
  59.        {
  60.               delay(10);
  61.               if(sjjia==0)
  62.               {
  63.                      time++;
  64.                      if(time==100)time=0;
  65.                      led_num();
  66.               }
  67.        }
  68.        if(sjjian==0)
  69.        {
  70.               delay(10);
  71.               if(sjjian==0)
  72.               {
  73.                      time--;
  74.                      if(time==0)time=99;
  75.                      led_num();
  76.               }
  77.        }
  78.        if(kaishi==0)
  79.        {
  80.               delay(10);
  81.               if(kaishi==0)
  82.               {
  83.                      model=1;
  84.                      TR0=1;
  85.                      lcd_xml(0xc0);lcd_xsj("Start Responder");
  86.                      soud=1;delay(10);soud=0;
  87.               }
  88.        }
  89. }

  90. void anjian()
  91. {
  92.        if(P2!= 0xff)
  93.        {
  94.               delay(5);
  95.               if(P2!= 0xff)
  96.               {
  97.                      temp=~P2;
  98.                      model=3;
  99.                      led_r=1;
  100.                      soud=1;delay(10);soud=0;     
  101.                      switch(temp)
  102.                      {
  103.                             case0x01:num2=1;break;
  104.                             case0x02:num2=2;break;
  105.                             case0x04:num2=3;break;
  106.                             case0x08:num2=4;break;
  107.                             case0x10:num2=5;break;
  108.                             case0x20:num2=6;break;
  109.                             case 0x40:num2=7;break;
  110.                             case0x80:num2=8;break;                    
  111.                      }
  112.                      lcd_xml(0xc0);lcd_xsj("Competitor:   ");
  113.                      lcd_xml(0xce);lcd_xsj2(num[num2]);

  114.                      time=60;
  115.                      P2=temp;
  116.               }     
  117.        }
  118. }

  119. void finish()
  120. {
  121.        if(!time)
  122.        {
  123.               led_y=1;
  124.               lcd_xml(0xc0);lcd_xsj("      End      ");   
  125.        }
  126. }
  127. void main()
  128. {
  129.        init();
  130.        lcd_init();
  131.        star();
  132.        reset();
  133.        while(1)
  134.        {
  135.               if(fuwei==0)   //復位鍵檢測
  136.               {
  137.                      delay(1);
  138.                      if(fuwei==0)
  139.                             reset();
  140.               }
  141.               switch(model)
  142.               {
  143.                      case0:Not_started();break;
  144.                      case1:anjian();break;
  145.                      case2:finish();break;
  146.                      case3:break;
  147.                      default: model=0;break;      
  148.               }
  149.        }
  150. }
  151. void timee() interrupt 1  //1s函數(shù)中斷
  152. {
  153.        unsignedchar a;
  154.        TH0=(65536-50000)/256;
  155.        TL0=(65536-50000)%256;
  156.        a++; //是否滿1s
  157.        if(a==24)
  158.        {
  159.               a=0;
  160.               if(model==1|| model==3)
  161.               {
  162.                      time--;
  163.                      led_num();
  164.                      if(time==0)
  165.                      {
  166.                             model=2;
  167.                             soud=1;delay(20);soud=0;
  168.                      }
  169.               }
  170.        }
  171. }
復制代碼


回復

使用道具 舉報

ID:787306 發(fā)表于 2020-6-23 08:43 | 顯示全部樓層
有proteus仿真圖嗎
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜小影院 | 久久久国产亚洲精品 | 国产亚洲精品美女久久久久久久久久 | 在线免费黄色小视频 | 亚洲精品9999| 久久99一区二区 | 日韩在线免费 | 日韩一区在线观看视频 | 久久亚洲一区二区 | 中文字幕日韩欧美一区二区三区 | 久久精品中文字幕 | av在线成人| 中文字幕 在线观看 | 欧美精品1区 | 欧美日韩中| 日韩国产精品一区二区三区 | 免费一区二区 | 欧美日韩淫片 | 一级做a爰片性色毛片16 | 精品香蕉一区二区三区 | 欧美精品中文字幕久久二区 | 亚洲一区二区中文字幕 | 请别相信他免费喜剧电影在线观看 | 在线观看中文字幕 | 久久久综合久久 | 国产精品99久久久久久大便 | 成人欧美一区二区三区黑人孕妇 | 黄色一级大片在线免费看产 | 中文在线a在线 | 91精品久久久久久久久中文字幕 | 日韩欧美中文 | 日韩一区二区三区在线视频 | 精品久久久久久久 | 国产午夜精品一区二区三区四区 | 美女在线视频一区二区三区 | 丝袜美腿一区二区三区动态图 | 欧美久久久久久久久 | 丁香五月网久久综合 | 亚洲视频在线看 | 午夜羞羞 | 国产精品久久 |