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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3671|回復: 0
打印 上一主題 下一主題
收起左側

關于搶答器的PROTEUS原理圖,附帶HEX文件與c程序

[復制鏈接]
跳轉到指定樓層
樓主
構建和諧論壇,杜絕灌水

8路搶答器仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit k0=P1^0;                           /*數碼管段選*/
  5. sbit k1=P1^1;
  6. sbit k2=P1^2;
  7. sbit k3=P1^3;
  8. sbit k4=P1^4;
  9. sbit k5=P1^5;
  10. sbit k6=P1^6;
  11. sbit k7=P1^7;
  12. sbit wela0=P2^0;                        /*數碼管位選*/
  13. sbit wela1=P2^2;                       
  14. sbit wela2=P2^3;
  15. sbit beep=P2^4;                                /*蜂鳴器*/
  16. sbit ks=P3^0;                                /*開始計時*/
  17. sbit tz=P3^1;                                /*停止計時*/
  18. sbit jiayi=P3^4;                        /*時間加1s*/
  19. sbit jianyi=P3^5;                        /*時間減1s*/
  20. sbit fw=P3^6;                                /*復位*/
  21. uchar qiangdanum=0xff;
  22. uchar code table[]=
  23. {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  24. uchar ge=0,shi=0;
  25. uint num,time=30;
  26. void display();                         /*顯示函數*/
  27. void kys();                                                                /*設置按鍵函數*/
  28. void kys2();                                                        /*搶答按鍵函數*/
  29. void delay(unsigned int z)              /*延遲函數*/
  30. {
  31.     unsigned int x,y;
  32.     for(x=z;x>0;x--)
  33.       for(y=110;y>0;y--);
  34. }
  35. void intial()              
  36. {
  37.     TMOD=0X01;                     /*采用方式一,即十六位計數器*/
  38.     TH0=(65536-50000)/256;         /*設置初始值,50ms中斷一次*/
  39.     TL0=(65536-50000)%256;                                         
  40.     EA=1;ET0=1;                 /*開啟總中斷源,定時器中斷*/
  41. }                                   

  42. main()
  43. {
  44.     intial();                                    /*初始化*/
  45.         while(1)
  46.         {         
  47.                 display();                           /*顯示函數*/
  48.             kys();
  49.                 if(TR0==1)
  50.                 {
  51.                     kys2();
  52.                 }
  53.         }          
  54. }

  55. void kys2()                                                        /*搶答按鍵函數*/
  56. {
  57.     if(k0==0)                               /*開關0按下*/
  58.     {
  59.             delay(5);
  60.         if(k0==0)                        
  61.         {
  62.                     qiangdanum=1;            /* 1號選手搶答成功,數碼管顯示1*/
  63.                         beep=1;
  64.                         delay(100);
  65.                         beep=0;
  66.                         TR0=0;
  67.                         time=60;
  68.                 }  
  69.      }                        
  70.     if(k1==0)                                /*開關1按下*/
  71.     {
  72.             delay(5);
  73.         if(k1==0)                       
  74.         {
  75.                     qiangdanum=2;                /* 2號選手搶答成功,數碼管顯示2*/
  76.                         beep=1;
  77.                         delay(100);
  78.                         beep=0;
  79.                         TR0=0;                                          /*停止計數*/
  80.                 }  
  81.      }                          
  82.     if(k2==0)                                 /*開關2按下*/
  83.     {
  84.             delay(5);
  85.         if(k2==0)                        
  86.         {
  87.                     qiangdanum=3;                 /* 3號選手搶答成功,數碼管顯示3*/
  88.                         beep=1;
  89.                         delay(100);
  90.                         beep=0;
  91.                         TR0=0;                                                         /*停止計數*/
  92.                         time=60;
  93.                 }  
  94.      }                          
  95.     if(k3==0)                                 /*開關3按下*/
  96.     {
  97.             delay(5);
  98.         if(k3==0)                        
  99.         {
  100.                     qiangdanum=4;           /* 4號選手搶答成功,數碼管顯示4*/
  101.                     beep=1;
  102.                         delay(100);
  103.                         beep=0;
  104.                         TR0=0;                                                   /*停止計數*/
  105.                         time=60;
  106.                 }                              
  107.      }  
  108.     if(k4==0)                                 /*開關4按下*/
  109.     {
  110.             delay(5);
  111.         if(k4==0)                        
  112.         {
  113.                      qiangdanum=5;           /* 5號選手搶答成功,數碼管顯示5*/
  114.                          beep=1;
  115.                          delay(100);
  116.                          beep=0;
  117.                          TR0=0;                                                         /*停止計數*/
  118.                          time=60;
  119.              }                             
  120.      }
  121.     if(k5==0)                                 /*開關5按下*/
  122.     {
  123.             delay(5);
  124.         if(k5==0)                        
  125.         {
  126.                      qiangdanum=6;           /* 6號選手搶答成功,數碼管顯示6*/
  127.                          beep=1;
  128.                          delay(100);
  129.                           beep=0;
  130.                          TR0=0;                                                         /*停止計數*/
  131.                          time=60;
  132.                 }     
  133.      }   
  134.     if(k6==0)                                 /*開關6按下*/
  135.     {
  136.             delay(5);
  137.         if(k6==0)                        
  138.         {
  139.                      qiangdanum=7;          /* 7號選手搶答成功,數碼管顯示7*/
  140.                          beep=1;
  141.                          delay(100);
  142.                          beep=0;
  143.                          TR0=0;                                                         /*停止計數*/
  144.                          time=60;
  145.                 }     
  146.      }
  147.     if(k7==0)                                     /*開關7按下*/
  148.     {   
  149.             delay(5);
  150.         if(k7==0)                        
  151.         {
  152.                      qiangdanum=8;          /* 8號選手搶答成功,數碼管顯示8*/
  153.                          beep=1;
  154.                          delay(100);
  155.                          beep=0;
  156.                          TR0=0;                                                         /*停止計數*/
  157.                          time=60;
  158.                 }     
  159.      }
  160. }

  161. void kys()                                                /*設置按鍵函數*/
  162. {
  163.            if(ks==0)
  164.         {
  165.                 delay(5);
  166.             if(ks==0)
  167.                 {
  168.                 TR0=1;
  169.                 }
  170.         }
  171.     if(tz==0)
  172.     {
  173.                 delay(5);
  174.             if(tz==0)
  175.                    TR0=0;
  176.      }
  177.         if(jiayi==0)
  178.         {
  179.                 delay(5);
  180.                 if(jiayi==0)
  181.                    time++;
  182.                 while(!jiayi);
  183.         }
  184.         if(jianyi==0)
  185.         {
  186.                 delay(5);
  187.                 if(jianyi==0)
  188.                    time--;
  189.                 while(!jianyi);
  190.         }
  191.         if(fw==0)
  192.         {
  193.                 delay(5);
  194.                 if(fw==0)
  195.                 {
  196.                    time=30;
  197.                    qiangdanum=0xff;
  198.                 }
  199.         }
  200. }

  201. void time0() interrupt 1                   /*1秒定時函數,采用方式1重裝*/
  202. {
  203.     num++;
  204.     TH0=(65536-50000)/256;
  205.     TL0=(65536-50000)%256;
  206. ……………………

  207. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
搶答器.rar (107.38 KB, 下載次數: 37)


評分

參與人數 2黑幣 +55 收起 理由
q875169372 + 5 為什么我用你的.c文件生成的HEX文件加入仿.
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

無效樓層,該帖已經被刪除
無效樓層,該帖已經被刪除
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表