日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

實(shí)用性強(qiáng)的8路單片機(jī)搶答器制作 帶程序電路圖pcb圖

 快樂(lè)讀書(shū)法 2015-11-20
        這款實(shí)用性強(qiáng)的8路單片機(jī)搶答器,使用的是AT89S52單片機(jī),四位數(shù)碼管作為搶答、回答時(shí)間的倒計(jì)時(shí)以及計(jì)分顯示用。該制作從實(shí)用性出發(fā),8個(gè)按鍵都是分開(kāi)來(lái)做的,做出來(lái)的東西是能夠使用的而不是模型。
       這款實(shí)用性強(qiáng)的8路單片機(jī)搶答器主要的功能:可以顯示搶答、回答時(shí)間的倒計(jì)時(shí),可以調(diào)節(jié)搶答、回答時(shí)間,能夠提示犯規(guī)搶答,可以計(jì)分,可以實(shí)現(xiàn)軟復(fù)位。
       全部資料打包下載地址 實(shí)用性強(qiáng)的8路單片機(jī)搶答器.rar (169.95 KB, 下載次數(shù): 37)








源程序如下:
  1. /*八路搶答器-----能夠顯示搶答、回答時(shí)間倒計(jì)時(shí),能夠調(diào)節(jié)搶答、回答時(shí)間,能夠報(bào)警犯規(guī)搶答,可以計(jì)分,可以實(shí)現(xiàn)軟復(fù)位*/
  2. #include<reg52.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit fmq=P3^6;
  6. sbit Key_Start=P3^4;//開(kāi)始鍵,時(shí)間設(shè)置時(shí)+
  7. sbit Key_Stop=P3^5;//停止鍵,時(shí)間設(shè)置時(shí)-
  8. sbit Key_Restart=P3^0;//復(fù)位鍵
  9. sbit Key_set_Q=P3^2;//搶答時(shí)間設(shè)置鍵
  10. sbit Key_set_H=P3^3;//回答時(shí)間設(shè)置鍵
  11. sbit led=P3^7;//搶答LED提示
  12. uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff,0xc6,0xf0,0xb6};//段碼表
  13. uchar code table_char[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc7,0xc0,0x92,0x86,0xbf,0xb7,0xff,0xb9,0x8f};//0-9 L O S E -
  14. uchar  table_score[9]={0,50,50,50,50,50,50,50,50};//記分?jǐn)?shù)組,初設(shè)值50分
  15. void delay(uint z);//延時(shí)函數(shù)聲明
  16. void init();//初始化函數(shù)聲明
  17. void display(uchar XuanShou,uchar time);//顯示數(shù)字函數(shù)聲明
  18. void display_char(uchar char_1,uchar char_2,uchar char_3,uchar char_4 );//顯示字符函數(shù)聲明
  19. void display_set(uchar char_1,uchar time,uchar char_2);//時(shí)間設(shè)置閃動(dòng)顯示函數(shù)聲明
  20. void display_score(uchar xs_num);//分?jǐn)?shù)查詢(xún)顯示函數(shù)
  21. void beep();//蜂鳴器函數(shù)
  22. void beep_last();//蜂鳴器特殊報(bào)警
  23. void LED();//提示燈函數(shù)
  24. uchar QiangDa_time,HuiDa_time,QiangDa_time_temp=20,HuiDa_time_temp=30;//搶答時(shí)間、回答時(shí)間變量
  25. uchar count_0,count_1;//定時(shí)中計(jì)數(shù)用的
  26. uint shan_count=0;//閃動(dòng)顯示計(jì)數(shù)用
  27. void main()
  28. {
  29.         uchar AnJian,ShuJu,XuanShou_num;
  30. Top:init();//初始化
  31.         XuanShou_num=1;//為分?jǐn)?shù)查詢(xún)做好準(zhǔn)備
  32.         while(1)
  33.         {
  34.                 display(10,0);//顯示一杠
  35.                 ShuJu=P1;
  36.                 if(ShuJu!=0xff)//犯規(guī)搶答??!
  37.                 {
  38. //                        delay(10);
  39. //                        if(ShuJu!=0xff)
  40. //                        {
  41.                                 AnJian=ShuJu;
  42.                                 switch(AnJian)//取出選手編號(hào)
  43.                                 {
  44.                                         case 0xfe :        XuanShou_num=1;break;//1111 1110
  45.                                         case 0xfd :        XuanShou_num=2;break;//1111 1101
  46.                                         case 0xfb :        XuanShou_num=3;break;//1111 1011
  47.                                         case 0xf7 :        XuanShou_num=4;break;//1111 0111
  48.                                         case 0xef :        XuanShou_num=5;break;//1110 1111
  49.                                         case 0xdf :        XuanShou_num=6;break;//1101 1111
  50.                                         case 0xbf :        XuanShou_num=7;break;//1011 1111
  51.                                         case 0x7f :        XuanShou_num=8;break;//0111 1111
  52.                                         default : goto LOSE;//無(wú)法顯示了,有兩個(gè)以上的鍵同時(shí)按下了?。〔贿^(guò)這種概率相當(dāng)小
  53.                                 }
  54.                                 while(1)
  55.                                 {
  56.                                         display_char(13,14,14,XuanShou_num);//閃動(dòng)顯示犯規(guī)選手并且報(bào)警
  57.                                         if(shan_count==50)
  58.                                         {
  59.                                                 beep();
  60.                                         }
  61.                                         if(Key_Stop==0)
  62.                                         {
  63.                                                 delay(10);
  64.                                                 if(Key_Stop==0)
  65.                                                 {
  66.                                                         beep();
  67.                                                         table_score[XuanShou_num]--;//扣分
  68.                                                 }
  69.                                         }
  70.                                         while(!Key_Stop)
  71.                                         {
  72.                                                 display_char(14,14,1,16);//按鍵不放開(kāi)的情況下顯示-1
  73.                                                 shan_count=1;//調(diào)用的是閃動(dòng)顯示函數(shù),但是不讓其閃動(dòng)
  74.                                         }
  75.                                         if(Key_Restart==0)
  76.                                         {
  77.                                                 delay(10);
  78.                                                 if(Key_Restart==0)
  79.                                                 {
  80.                                                         beep();
  81.                                                         goto Top;//熱復(fù)位
  82.                                                 }
  83.                                         }
  84.                                 }
  85. //                        }
  86.                 }
  87.                 if(Key_Start==0)
  88.                 {
  89.                         delay(10);
  90.                         if(Key_Start==0)//主持人按下?lián)尨疰I,搶答正式開(kāi)始!
  91.                         {
  92.                                 QiangDa_time=QiangDa_time_temp;
  93.                                 HuiDa_time=HuiDa_time_temp;
  94.                                 beep();
  95.                                 TR1=1;//搶答時(shí)間開(kāi)始倒計(jì)時(shí)
  96.                                 break;//跳出犯規(guī)搶答查詢(xún)循環(huán)
  97.                         }
  98.                 }
  99. //一下為查分程序測(cè)試
  100.                  if(Key_Stop==0)
  101.                  {
  102.                          delay(10);
  103.                         if(Key_Stop==0)//進(jìn)入分?jǐn)?shù)查詢(xún)顯示
  104.                         {
  105.                                 beep();
  106.                                 while(!Key_Stop);
  107.                                 while(1)
  108.                                 {
  109.                                         display_score(XuanShou_num);
  110.                                         if(Key_Start==0)
  111.                                         {
  112.                                                 delay(10);
  113.                                                 if(Key_Start==0)
  114.                                                 {
  115.                                                         XuanShou_num++;
  116.                                                         if(XuanShou_num==9) XuanShou_num=1;
  117.                                                 }
  118.                                         }
  119.                                         while(!Key_Start);//等待按鍵釋放
  120.                                         if(Key_Stop==0)
  121.                                         {
  122.                                                 delay(10);
  123.                                                 if(Key_Stop==0)
  124.                                                 {
  125.                                                         XuanShou_num--;
  126.                                                         if(XuanShou_num==0) XuanShou_num=8;
  127.                                                 }
  128.                                         }
  129.                                         while(!Key_Stop);//等待按鍵釋放
  130.                                    if(Key_Restart==0)
  131.                                         {
  132.                                                 delay(10);
  133.                                                 if(Key_Restart==0)
  134.                                                 {
  135.                                                         beep();
  136.                                                         goto Top;//熱復(fù)位
  137.                                                 }
  138.                                         }
  139.                                 }
  140.                         }
  141.                  }
  142.         }
  143.         while(1) //查詢(xún)是否有按鍵按下,進(jìn)入搶答循環(huán)
  144.         {
  145.                 display(10,QiangDa_time);//顯示搶答倒計(jì)時(shí)
  146.                 if(QiangDa_time==0)
  147.                 {
  148. //                        beep();
  149.                         TR1=0;//關(guān)閉定時(shí)器1
  150. LOSE:                while(1)
  151.                         {
  152.                                 display_char(10,11,12,13); //顯示lose 字符
  153.                                 if(Key_Restart==0)
  154.                                 {
  155.                                         delay(10);
  156.                                         if(Key_Restart==0)//熱復(fù)位鍵,從頭開(kāi)始下一輪
  157.                                         {
  158.                                                 beep();
  159.                                                 goto Top;
  160.                                         }
  161.                                 }
  162.                         }
  163.                 }
  164.                 ShuJu=P1;//把P1口的數(shù)據(jù)送給變量
  165.                 if(ShuJu!=0xff)//有按鍵按下
  166.                 {
  167. //                        delay(10);
  168. //                        if(ShuJu!=0xff)//確定有按鍵按下
  169. //                        {
  170.                                  AnJian=ShuJu;//傳遞數(shù)據(jù)掃描值
  171. //                                 TR0=1;//啟動(dòng)定時(shí)器0
  172.                                  TR1=0;//關(guān)閉定時(shí)器1
  173.                                  break;//不再進(jìn)行查詢(xún)是否有按鍵按下了
  174. //                        }
  175.                 }
  176.         }
  177.         switch(AnJian)//取出選手編號(hào)
  178.         {
  179.                 case 0xfe :        XuanShou_num=1;beep();LED();break;//1111 1110
  180.                 case 0xfd :        XuanShou_num=2;beep();LED();break;//1111 1101
  181.                 case 0xfb :        XuanShou_num=3;beep();LED();break;//1111 1011
  182.                 case 0xf7 :        XuanShou_num=4;beep();LED();break;//1111 0111
  183.                 case 0xef :        XuanShou_num=5;beep();LED();break;//1110 1111
  184.                 case 0xdf :        XuanShou_num=6;beep();LED();break;//1101 1111
  185.                 case 0xbf :        XuanShou_num=7;beep();LED();break;//1011 1111
  186.                 case 0x7f :        XuanShou_num=8;beep();LED();break;//0111 1111
  187.                 default : goto LOSE;//無(wú)法顯示了,有兩個(gè)以上的鍵同時(shí)按下了??!不過(guò)這種概率相當(dāng)小
  188.         }
  189.         TR0=1;//啟動(dòng)定時(shí)器0(在這里啟動(dòng)比在前面好)
  190.         while(1)
  191.         {
  192.                 display(XuanShou_num,HuiDa_time);//顯示選手編號(hào)和回答倒計(jì)時(shí)
  193.                 if(HuiDa_time==0)
  194.                 {
  195.                         TR0=0;//關(guān)閉定時(shí)器0
  196.                         goto LOSE;//跳到顯示lose字符那里
  197.                 }
  198.                 if(Key_Stop==0)
  199.                 {
  200.                         delay(30);
  201.                         if(Key_Stop==0)//停止鍵按下
  202.                         {
  203.                                 beep();
  204.                                 TR0=0;//關(guān)閉定時(shí)器0,選手開(kāi)始回答
  205.                                 while(!Key_Stop);
  206.                                 while(1) //在顯示選手回答倒計(jì)時(shí)時(shí)只有在stop按鍵按下時(shí),才可按復(fù)位鍵
  207.                                 {
  208.                                         display(XuanShou_num,HuiDa_time);//顯示選手編號(hào)和回答倒計(jì)時(shí)
  209.                                         if(Key_Start==0)
  210.                                         {
  211.                                                 delay(10);
  212.                                                 if(Key_Start==0)
  213.                                                 {
  214.                                                         beep();
  215.                                                         table_score[XuanShou_num]++;//加分
  216.                                                 }
  217.                                         }
  218.                                         while(!Key_Start)
  219.                                         {
  220.                                                 display_char(17,18,1,16);//按鍵不放開(kāi)的情況下顯示+1
  221.                                                 shan_count=1;//調(diào)用的是閃動(dòng)顯示函數(shù),但是不讓其閃動(dòng)
  222.                                         }
  223.                                         if(Key_Stop==0)
  224.                                         {
  225.                                                 delay(10);
  226.                                                 if(Key_Stop==0)
  227.                                                 {
  228.                                                         beep();
  229.                                                         table_score[XuanShou_num]--;//扣分
  230.                                                 }
  231.                                         }
  232.                                         while(!Key_Stop)
  233.                                         {
  234.                                                 display_char(14,14,1,16);//按鍵不放開(kāi)的情況下顯示-1
  235.                                                 shan_count=1;//調(diào)用的是閃動(dòng)顯示函數(shù),但是不讓其閃動(dòng)
  236.                                         }
  237.                                         if(Key_Restart==0)
  238.                                         {
  239.                                                 delay(10);
  240.                                                 if(Key_Restart==0)//熱復(fù)位鍵,從頭開(kāi)始下一輪
  241.                                                 {
  242.                                                         beep();
  243.                                                         goto Top;
  244.                                                 }
  245.                                         }
  246.                                 }
  247.                         }
  248.                 }
  249. //                else
  250. /*                if(Key_Restart==0)
  251.                 {
  252.                         delay(10);
  253.                         if(Key_Restart==0)//熱復(fù)位鍵,從頭開(kāi)始下一輪
  254.                         {
  255.                                 beep();
  256.                                 goto Top;
  257.                         }
  258.                 } */
  259.         }
  260.        
  261. }

  262. void delay(uint z)//1ms基準(zhǔn)延時(shí)
  263. {
  264.         uint x,y;
  265.         for(x=z;x>0;x--)
  266.                 for(y=110;y>0;y--);
  267. }

  268. void init()//初始化函數(shù)
  269. {
  270. //        P1=0xff
  271.         EA=1;//開(kāi)總中斷;
  272.         TMOD=0x11;//定時(shí)器工作方式1,16位定時(shí)計(jì)數(shù)器
  273.         TH0=(65536-50000)/256;//50us
  274.         TL0=(65536-50000)%256;
  275.         ET0=1;//開(kāi)定時(shí)器0中斷(暫時(shí)不啟動(dòng)定時(shí)器)

  276. //        TMOD=0x01;//定時(shí)器工作方式1,16位定時(shí)計(jì)數(shù)器
  277.         TH1=(65536-50000)/256;//50us
  278.         TL1=(65536-50000)%256;
  279.         ET1=1;//開(kāi)定時(shí)器0中斷(暫時(shí)不啟動(dòng)定時(shí)器)

  280.         EX0=1;//啟動(dòng)外中斷0
  281.         EX1=1;//啟動(dòng)外中斷1

  282.         P1=0xff;//讀P1口的數(shù)據(jù)要先置1準(zhǔn)備
  283.         count_0=0;//定時(shí)器中的計(jì)數(shù)清零
  284.         count_1=0;
  285.         shan_count=0;
  286. }

  287. void display(uchar XuanShou,uchar time)//顯示數(shù)字的函數(shù)
  288. {

  289.                 P2=0x7f;//0111 1111最后一位數(shù)碼管亮
  290.                 P0=table[XuanShou];//選手編號(hào)
  291.                 delay(1);
  292.                 P2=0x7f;//0111 1111
  293.                 P0=0xff;//消余輝
  294.                 delay(1);
  295.        
  296.                 P2=0xdf;//1101 1111
  297.                 P0=table[time%10];//時(shí)間的個(gè)位
  298.                 delay(1);
  299.                 P2=0xdf;//0111 1111
  300.                 P0=0xff;//消余輝
  301.                 delay(1);
  302.        
  303.                 P2=0xef;// 1110 1111
  304.                 P0=table[time/10];//時(shí)間的十位
  305.                 delay(1);
  306.                 P2=0xef;//0111 1111
  307.                 P0=0xff;//消余輝
  308.                 delay(1);
  309. }

  310. void display_char(uchar char_1,uchar char_2,uchar char_3,uchar char_4 )//閃動(dòng)!顯示字符的函數(shù)
  311. {
  312.         shan_count++;
  313.         if(shan_count==150)        shan_count=0;
  314.          if(shan_count>0&&shan_count<50)
  315.          {
  316.                 P2=0x7f;//0111 1111
  317.                 P0=table_char[char_4];
  318.                 delay(1);
  319.                 P2=0x7f;//0111 1111
  320.                 P0=0xff;
  321.                 delay(1);
  322.        
  323.                 P2=0xbf;//1011 1111
  324.                 P0=table_char[char_3];
  325.                 delay(1);
  326.                 P2=0xbf;//1011 1111
  327.                 P0=0xff;
  328.                 delay(1);
  329.        
  330.                 P2=0xdf;//1101 1111
  331.                 P0=table_char[char_2];
  332.                 delay(1);
  333.                 P2=0xdf;//1101 1111
  334.                 P0=0xff;
  335.                 delay(1);
  336.        
  337.                 P2=0xef;//1110 1111
  338.                 P0=table_char[char_1];
  339.                 delay(1);
  340.                 P2=0xef;//1110 1111
  341.                 P0=0xff;
  342.                 delay(1);
  343.         }
  344.         else
  345.         {
  346.                  P2=0x7f;//0111 1111
  347.                 P0=0xff;
  348.                 delay(1);

  349.                 P2=0xbf;//
  350.                 P0=0xff;
  351.                 delay(1);

  352.                 P2=0xdf;//
  353.                 P0=0xff;
  354.                 delay(1);

  355.                 P2=0xef;//
  356.                 P0=0xff;
  357.                 delay(1);
  358.         }

  359. }
  360. void display_set(uchar char_1,uchar time,uchar char_2)//時(shí)間設(shè)置的閃動(dòng)顯示
  361. {
  362.         shan_count++;
  363.         if(shan_count==120)        shan_count=0;
  364.          if(shan_count>0&&shan_count<40)
  365.          {
  366.                  P2=0x7f;//0111 1111最后一位數(shù)碼管亮
  367.                 P0=table[char_2];//顯示一個(gè)符號(hào)
  368.                 delay(1);
  369.                 P2=0x7f;//0111 1111
  370.                 P0=0xff;//消余輝
  371.                 delay(1);

  372.                 P2=0xbf;//1011 1111
  373.                 P0=table[time%10];//時(shí)間的個(gè)位
  374.                 delay(1);
  375.                 P2=0xbf;//1011 1111
  376.                 P0=0xff;//消余輝
  377.                 delay(1);
  378.        
  379.                 P2=0xdf;//1101 1111
  380.                 P0=table[time/10];//時(shí)間的十位
  381.                 delay(1);
  382.                 P2=0xdf;//1101 1111
  383.                 P0=0xff;//消余輝
  384.                 delay(1);
  385.        
  386.                 P2=0xef;// 1110 1111
  387.                 P0=table[char_1];//顯示一個(gè)符號(hào)
  388.                 delay(1);
  389.                 P2=0xef;//1110 1111
  390.                 P0=0xff;//消余輝
  391.                 delay(1);
  392.          }
  393.          else
  394.          {
  395.                  P2=0x7f;//0111 1111
  396.                 P0=table[char_2];
  397.                 delay(1);

  398.                 P2=0xbf;//
  399.                 P0=0xff;
  400.                 delay(1);

  401.                 P2=0xdf;//
  402.                 P0=0xff;
  403.                 delay(1);

  404.                 P2=0xef;//
  405.                 P0=table[char_1];
  406.                 delay(1);
  407.          }
  408. }
  409. void display_score(uchar xs_num)//分?jǐn)?shù)查詢(xún)顯示函數(shù)
  410. {
  411.                 P2=0x7f;//0111 1111最后一位數(shù)碼管亮
  412.                 P0=table[(table_score[xs_num]%10)];//分?jǐn)?shù)的個(gè)位
  413.                 delay(1);
  414.                 P2=0x7f;//0111 1111
  415.                 P0=0xff;//消余輝
  416.                 delay(1);

  417.                 P2=0xbf;//1011 1111
  418.                 P0=table[(table_score[xs_num]/10)];//分?jǐn)?shù)的十位
  419.                 delay(1);
  420.                 P2=0xbf;//1011 1111
  421.                 P0=0xff;//消余輝
  422.                 delay(1);
  423.        
  424.                 P2=0xdf;//1101 1111
  425.                 P0=table_char[15];//間隔符號(hào)
  426.                 delay(1);
  427.                 P2=0xdf;//1101 1111
  428.                 P0=0xff;//消余輝
  429.                 delay(1);
  430.        
  431.                 P2=0xef;// 1110 1111
  432.                 P0=table[xs_num];//選手編號(hào)
  433.                 delay(1);
  434.                 P2=0xef;//1110 1111
  435.                 P0=0xff;//消余輝
  436.                 delay(1);
  437. }
  438. void beep()        //有源蜂鳴器函數(shù)
  439. {
  440.          fmq=0;
  441.          delay(80);
  442.          fmq=1;
  443. }
  444. void beep_last()//最后一聲特殊聲調(diào)
  445. {
  446.          fmq=0;
  447.          delay(300);
  448.          fmq=1;
  449. }
  450. void LED()
  451. {
  452.         led=0;
  453.         delay(150);
  454.         led=1;
  455. }
  456. void T0_time() interrupt 1//定時(shí)器0中斷函數(shù)_回答時(shí)間
  457. {
  458.         TH0=(65536-50000)/256;//50ms
  459.         TL0=(65536-50000)%256;//馬上重裝初值,以免有誤差
  460.         if(count_0==20)
  461.         {
  462.                 count_0=0;
  463.                 HuiDa_time--;
  464.                 if(HuiDa_time<=5)
  465.                 {
  466.                         if(HuiDa_time==0)
  467.                         {
  468.                                 beep_last();//最后一聲特殊警告
  469.                         }
  470.                         beep();
  471.                 }

  472.         }
  473.         count_0++;
  474.        
  475. }

  476. void T1_time() interrupt 3//定時(shí)器1中斷函數(shù)_搶答時(shí)間
  477. {
  478.         TH1=(65536-50000)/256;//50us
  479.         TL1=(65536-50000)%256;//馬上重裝初值,這樣在后面調(diào)用beep()函數(shù)時(shí)就不會(huì)影響定時(shí)器的準(zhǔn)確計(jì)時(shí)了
  480.         if(count_1==20)
  481.         {
  482.                 count_1=0;
  483.                 QiangDa_time--;
  484.                 if(QiangDa_time<=5)
  485.                 {
  486.                         if(QiangDa_time==0)
  487.                         {
  488.                                 beep_last();//最后一聲警告
  489.                         }
  490.                         else
  491.                         beep();
  492.                 }
  493.         }
  494.         count_1++;       
  495. }

  496. void EX0_set_QiangDa_time()        interrupt 0 //外中斷0,設(shè)置搶答時(shí)間
  497. {
  498.         delay(10);//消抖一下
  499.         if(Key_set_Q==0)
  500.         {
  501.                 beep();
  502.                 while(1)
  503.                 {
  504. //                        display(11,QiangDa_time_temp);
  505. //                        delay(100);//閃動(dòng)效果
  506.                         display_set(12,QiangDa_time_temp,13);//調(diào)用時(shí)間設(shè)置閃動(dòng)顯示函數(shù),效果為 [時(shí)間]
  507.                         if(Key_Start==0)//時(shí)間+1鍵
  508.                         {
  509.                                  delay(10);
  510.                                  if(Key_Start==0)
  511.                                  {
  512.                                          QiangDa_time_temp++;
  513.                                         if(QiangDa_time_temp==100)
  514.                                         {
  515.                                                 QiangDa_time_temp=1;
  516.                                         }
  517.                                  }
  518.                         }
  519.                         while(!Key_Start);//等待按鍵釋放
  520. //                        else
  521.                         if(Key_Stop==0)//時(shí)間-1鍵
  522.                         {
  523.                                  delay(10);
  524.                                  if(Key_Stop==0)
  525.                                  {
  526.                                          QiangDa_time_temp--;
  527.                                         if(QiangDa_time_temp==0)
  528.                                         {
  529.                                                 QiangDa_time_temp=99;
  530.                                         }
  531.                                  }
  532.                         }
  533.                         while(!Key_Stop);//等待按鍵釋放
  534. //                        else
  535.                         if(Key_Restart==0)
  536.                         {
  537.                                 if(Key_Restart==0)
  538.                                 {
  539.                                         beep();
  540.                                         break;
  541.                                 }
  542.                         }
  543.                 }
  544.         }
  545. }

  546. void EX1_set_HuiDa_time()        interrupt 2 //外中斷1,設(shè)置回答時(shí)間
  547. {
  548.         delay(10);//消抖一下
  549.         if(Key_set_H==0)
  550.         {
  551.                 beep();
  552.                 while(1)
  553.                 {
  554.                         display_set(12,HuiDa_time_temp,13);//調(diào)用時(shí)間設(shè)置閃動(dòng)顯示函數(shù),效果為 [時(shí)間]
  555.                         if(Key_Start==0)//時(shí)間+1鍵
  556.                         {
  557.                                  delay(10);
  558.                                  if(Key_Start==0)
  559.                                  {
  560.                                          HuiDa_time_temp++;
  561.                                         if(HuiDa_time_temp==100)
  562.                                         {
  563.                                                 HuiDa_time_temp=1;
  564.                                         }
  565.                                  }
  566.                         }
  567.                         while(!Key_Start);//等待按鍵釋放
  568. //                        else
  569.                         if(Key_Stop==0)//時(shí)間-1鍵
  570.                         {
  571.                                  delay(10);
  572.                                  if(Key_Stop==0)
  573.                                  {
  574.                                          HuiDa_time_temp--;
  575.                                         if(HuiDa_time_temp==0)
  576.                                         {
  577.                                                 HuiDa_time_temp=99;
  578.                                         }
  579.                                  }
  580.                         }
  581.                         while(!Key_Stop);//等待按鍵釋放
  582. //                        else
  583.                         if(Key_Restart==0)
  584.                         {
  585.                                 if(Key_Restart==0)
  586.                                 {
  587.                                         beep();
  588.                                         break;
  589.                                 }
  590.                         }
  591.                 }
  592.         }
  593. }
復(fù)制代碼



    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多