欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1486|回復(fù): 0
收起左側(cè)

搶答器的單片機(jī)源碼

[復(fù)制鏈接]
ID:405619 發(fā)表于 2018-11-30 16:40 | 顯示全部樓層 |閱讀模式
搶答器

單片機(jī)源程序如下:
  1. #include<reg52.h>
  2. #include"key.h"
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit LSA=P2^2;
  6. sbit LSB=P2^3;
  7. sbit LSC=P2^4;
  8. sbit k1=P3^1;
  9. sbit k2=P3^0;
  10. sbit k3=P3^2;
  11. sbit k4=P3^3;
  12. sbit beep=P1^5;
  13. uchar wei[8],flag=1,flag2,flag1;
  14. char ns=0,ms=0,s=10;
  15. uchar num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
  16.              0x07,0x7f,0x6f,0x40};

  17. void init()
  18. {
  19. TMOD=0x01;        //定時(shí)器0,方式一
  20. TH0=(65536-400)/256;                //賦初值
  21. TL0=(65536-400)%256;
  22. EA=1;           //開總中斷
  23. ET0=1;           //開定時(shí)器1的中斷
  24. TR0=0;           //開定時(shí)
  25. }

  26. void feng()
  27. {
  28. uchar i;
  29. for(i=0;i<50;i++)
  30. {
  31.   beep=0;
  32.   delayns(200);
  33.   beep=1;
  34.   delayns(200);
  35. }
  36. }

  37. void zhuanhua()
  38. {
  39. wei[0]=num[ns%10];
  40. wei[1]=num[ns/10];
  41. wei[2]=num[10];
  42. wei[3]=num[ms%10];
  43. wei[4]=num[ms/10];
  44. wei[5]=num[10];
  45. wei[6]=num[s%10];
  46. wei[7]=num[s/10];
  47. }

  48. void xianshi()
  49. {
  50. uchar i;
  51. for(i=0;i<8;i++)
  52. {
  53.   switch(i)
  54.   {
  55.    case 0:
  56.     LSA=0,LSB=0,LSC=0;break;
  57.    case 1:
  58.     LSA=1,LSB=0,LSC=0;break;
  59.    case 2:
  60.     LSA=0,LSB=1,LSC=0;break;
  61.    case 3:
  62.     LSA=1,LSB=1,LSC=0;break;
  63.    case 4:
  64.     LSA=0,LSB=0,LSC=1;break;
  65.    case 5:
  66.     LSA=1,LSB=0,LSC=1;break;
  67.    case 6:
  68.     LSA=0,LSB=1,LSC=1;break;
  69.    case 7:
  70.     LSA=1,LSB=1,LSC=1;break;
  71.   }
  72.   P0=wei[i];
  73.   delayns(200);
  74.   P0=0x00;
  75. }
  76. }

  77. void keyscan()
  78. {
  79.   if(flag==1)
  80.   {
  81.    if(k1==0)
  82.    {
  83.     delayns(100);
  84.     if(k1==0)
  85.     {
  86.          if(flag1==0)
  87.          {
  88.       TR0=1;
  89.       flag=0;
  90.           flag2=0;
  91.           flag1=1;
  92.          }
  93.     }
  94.    }
  95.   }
  96. while(k1!=1);
  97. if(flag==0)
  98. {
  99.    if(k2==0)
  100.    {
  101.     delayns(100);
  102.     if(k2==0)
  103.     {
  104.      s=10;ms=0;ns=0;
  105.      TR0=0;
  106.      flag=1;
  107.          flag1=0;
  108.          flag2=0;
  109.     }
  110.   }
  111. }
  112. while(k2!=1);
  113.      if(flag1==1)
  114.          {
  115.           key_num();
  116.       if((keynum>=1)&&(keynum<=9))
  117.       {          
  118.        TR0=0;
  119.        LSA=0;LSB=0;LSC=0;
  120.        P0=num[keynum];
  121.            keynum=0;
  122.            flag1=0;
  123.        flag2=1;
  124.           }
  125.          }
  126. }

  127. void main()
  128. {
  129. init();
  130. while(1)
  131. {
  132.   keyscan();
  133.   if(flag2==0)
  134.   {
  135.    zhuanhua();
  136.    xianshi();
  137.   }
  138. }
  139. }

  140. void zd() interrupt 1
  141. {
  142. TH0=(65536-400)/256;//賦初值
  143. TL0=(65536-400)%256;       
  144. ns--;                                 
  145. if(ns==-1)
  146. {
  147.   ns=49;
  148.   ms--;
  149.   if(ms==-1)
  150.   {
  151.    ms=49;
  152.    s--;
  153.   }
  154. }
  155. if((s==0)&&(ms==0)&&(ns==0))
  156. {
  157.   s=0;ms=0;ns=0;       
  158.   TR0=0;
  159.   feng(); //在嵌套一個(gè)中斷,消除蜂鳴器占用問題
  160. }
  161. }
復(fù)制代碼

所有資料51hei提供下載:
搶答器.zip (37.91 KB, 下載次數(shù): 7)


回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表