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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3191|回復: 0
打印 上一主題 下一主題
收起左側(cè)

51單片機四路搶答器源碼

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:326666 發(fā)表于 2018-5-11 23:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機源程序如下:
  1. /**********************BST-M51實驗開發(fā)板例程************************
  2. *  平臺:BST-M51 + Keil U4 + STC89C52
  3. *  名稱:本例程為一搶答器;其中主持人操控k3與k4兩個按鍵。選手共2位,分別操控k1、k2中的一個按鍵。
  4.                   當主持人按下?lián)尨痖_始按鍵k3后,倒計時開始,計時5s。此后最先按下按鍵的選手號碼將顯示與數(shù)碼管上。
  5.                   后來按下的將無顯示。
  6.                   若五秒計時結(jié)束后,再按下按鍵也不會顯示。
  7.                   若主持人沒有按開始鍵,就有選手搶答,則視為犯規(guī)。此時犯規(guī)的選手號碼將被顯示于數(shù)碼管上
  8.                   同時,蜂鳴器發(fā)出長笛聲報警,數(shù)碼管全亮。
  9.                   而當主持人按下清零鍵K4后,一切狀態(tài)均恢復,可以開始新一輪的搶答。
  10.                                            按鍵功能簡介
  11.                          k3搶答開始         k4 清零
  12.                           k1、k2   分別為兩個選手按鍵
  13. *  晶振:11.0592MHZ
  14. *  說明:免費開源,不提供源代碼分析.
  15. ******************************************************************/


  16. #include<reg51.h>

  17. #define uchar unsigned char

  18. #define dula P0                //段選信號的鎖存器控制
  19. #define wela P2                //位選信號的鎖存器控制,這里只用到P2.4-P2.7
  20. sbit beep=P2^3;
  21. sbit k1 =P3^4;
  22. sbit k2 =P3^5;
  23. sbit k3 =P3^6;
  24. sbit k4 =P3^7;
  25. uchar key,j,k,daojishi=5,wei;
  26. bit begin,end,clear,fangui;
  27. uchar a0,b0=16;c0=16;d0=16;
  28. unsigned int pp;
  29. unsigned char code weitable[]={0x8f,0x4f,0x2f,0x1f};
  30.                                                 //數(shù)碼管各位的碼表
  31. unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
  32.                         0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};

  33. void delay(unsigned char i)
  34. {
  35.   for(j=i;j>0;j--)
  36.     for(k=125;k>0;k--);
  37. }

  38. void display1(uchar wei,uchar shu)//在任意一位顯示任意的數(shù)字
  39. {
  40.    wei=wei-1;
  41.    wela|=0xf0;//給P2.4-P2.7置1
  42.    P0=table[shu];
  43.    wela=wela&weitable[wei];//給P2需要顯示的那一位置1,其他置0
  44.    delay(5);
  45. }

  46. void display(uchar a,uchar b,uchar c,uchar d)
  47. {                                                  //一次顯示4個數(shù)字,且每位顯示數(shù)字可自定。
  48.    display1(1,a);
  49.    display1(2,b);
  50.    display1(3,c);
  51.    display1(4,d);
  52. }
  53. void keyscan()
  54. {
  55.         if(k1==0)
  56.         {
  57.                 while(k1==0);
  58.                 key= 1;
  59.         }
  60.         if(k2==0)
  61.         {
  62.                 while(k2==0);
  63.                 key=2;
  64.         }
  65.         if(k3==0)
  66.         {
  67.                 while(k3==0);
  68.                 begin =1;
  69.         }
  70.         if(k4==0)
  71.         {
  72.                 while(k4==0);
  73.                 clear = 1;
  74.         }
  75. }
  76. void main()
  77. {
  78.         TMOD=0x01;
  79.         
  80.         TH0=(65536-46080)/256;// 由于晶振為11.0592,故所記次數(shù)應為46080,計時器每隔50000微秒發(fā)起一次中斷。
  81.         TL0=(65536-46080)%256;//46080的來歷,為50000*11.0592/12
  82.         ET0=1;
  83.         EA=1;
  84.         a0=table[16];
  85.         beep =1;
  86.         P1=0xff;
  87.         begin=0;
  88.         key=0;
  89.         end = 0;
  90.         fangui = 0;
  91.         while(1)
  92.         {
  93.                 keyscan();//按鍵掃描
  94.                 if(begin)
  95.                 {
  96.                         if(!end)
  97.                                 TR0=1;//開始計時
  98.                                 if(pp==20)//定時1s
  99.                                 {
  100.                                         pp=0;
  101.                                         daojishi--;
  102.                                 }
  103.                                 if(key!=0)
  104.                                 {
  105.                                         a0=key;
  106.                                         end = 1;
  107.                                         daojishi = 0;
  108.                                 }
  109.                                 if(!daojishi)
  110.                                 {
  111.                                         TR0=0;
  112.                                         pp=0;
  113.                                 }

  114.                 }
  115.                 else
  116.                 {        
  117.                         if(key!=0)
  118.                         {
  119.                                 fangui=1;
  120.                                 a0 = key;
  121.                         }
  122.                 }
  123.                 if(clear)
  124.                 {
  125.                         a0=0;key=0;begin=0;fangui=0;beep=1;daojishi=5;clear=0;
  126.                         b0=16;c0=16;d0=16;P1=0xff;pp=0;end = 0;
  127.                 }
  128.                 d0 = daojishi;
  129.                 display(a0,b0,c0,d0);
  130.                 if(fangui)        
  131.                 {
  132.                         beep=0;
  133.                         P1=0x00;;
  134.                 }

  135.         }
  136. }

  137. void time0() interrupt 1
  138. {        TH0=(65536-46080)/256;
  139.         TL0=(65536-46080)%256;
  140.         pp++;
  141. }
復制代碼

所有資料51hei提供下載:
51單片機四路搶答器.rar (18.12 KB, 下載次數(shù): 50)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: www.一区二区三区 | 在线播放中文字幕 | 日韩在线中文字幕 | 午夜视频一区 | 日本电影一区二区 | 天天综合日日夜夜 | 91免费高清| 精品国产乱码久久久久久丨区2区 | 欧美福利一区 | 久久99精品国产自在现线小黄鸭 | 日本三级电影免费 | 欧洲国产精品视频 | 国产亚韩 | 99久久精品国产一区二区三区 | 午夜精品久久久久久久久久久久久 | 久久久久久久电影 | 亚洲欧美久久 | 色婷婷综合久久久中字幕精品久久 | 天天久久 | 亚洲精品自在在线观看 | 成人国产精品久久久 | 日韩高清国产一区在线 | 成年无码av片在线 | 俺去俺来也www色官网cms | 国产一在线 | 日本亚洲欧美 | 污片在线观看 | 一区二区三区回区在观看免费视频 | 国产不卡一区在线观看 | 久久久91 | 欧美一级片中文字幕 | 亚洲91视频| 中文字幕国产精品 | 日韩视频在线播放 | 亚洲精品黄色 | 中文字幕欧美日韩 | 九一在线| 色综合中文 | 米奇7777狠狠狠狠视频 | 午夜电影福利 | 精品久|