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

標(biāo)題: 單片機(jī)八位搶答器,請(qǐng)大家?guī)兔纯闯绦蚰睦镉绣e(cuò)誤? [打印本頁]

作者: 24和8    時(shí)間: 2020-12-29 09:56
標(biāo)題: 單片機(jī)八位搶答器,請(qǐng)大家?guī)兔纯闯绦蚰睦镉绣e(cuò)誤?
  1. #include "reg51.h"
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. sbit k1=P1^0;
  5. sbit k2=P1^1;
  6. sbit k3=P1^2;
  7. sbit k4=P1^3;
  8. sbit k5=P1^4;
  9. sbit k6=P1^5;
  10. sbit k7=P1^6;
  11. sbit k8=P1^7;//選手按鈕
  12. sbit k_1=P3^0;//主持人開始/結(jié)束按鈕
  13. sbit k_2=P3^1;//按下系統(tǒng)清零
  14. sbit song=P3^7;//蜂鳴器

  15. uint biaozhi;
  16. unsigned char led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//數(shù)碼管0-9段碼

  17. void delay(uint t)//輸入數(shù)據(jù)延時(shí)
  18. {  
  19.     uint i,j;
  20.     for(i=0;i<t;i++)
  21.     for(j=0;j<600;j++);
  22. }
  23. void disp(uint a,uint b)//輸入數(shù)字顯示內(nèi)容(十位,個(gè)位)  時(shí)間用途
  24. {        
  25.         P2=0xfe;
  26.         P0=led[a];
  27.         p2=0xfd;
  28.         P0=led[b];
  29.         delay(1000);
  30. }

  31. void disp2(uint a,uint b,uint c)//輸入數(shù)字顯示內(nèi)容(十位,個(gè)位)  號(hào)牌用途
  32. {   
  33.     uint a,b,c;
  34.     P2=0xfc;
  35.     P0=led[a];
  36.     p2=0xfb;
  37.     P0=led[b];
  38.     delay(c*1000);
  39. }

  40. void clear()
  41. {
  42.     p2=0xf0;
  43.     p0=led[0];
  44. }

  45. void keys()        //搶答程序
  46. { /*處于允許搶答狀態(tài),且有人按下?lián)尨鸢粹o  搶答之后顯示數(shù)值,改變標(biāo)志終止搶答*/
  47.   //暫時(shí)未接蜂鳴器

  48.     if(k1==0&&k1==0){song=0;delay(1);biaozhi=1;disp2(0,1,1000);}     
  49.     if(k2==0&&k1==0){song=0;delay(1);biaozhi=1;disp2(0,2,1000);}
  50.     if(k3==0&&k1==0){song=0;delay(1);biaozhi=1;disp2(0,3,1000);}
  51.     if(k4==0&&k1==0){song=0;delay(1);biaozhi=1;disp2(0,4,1000);}
  52.     if(k5==0&&k1==0){song=0;delay(1);biaozhi=1;disp2(0,5,1000);}
  53.     if(k6==0&&k1==0){song=0;delay(1);biaozhi=1;disp2(0,6,1000);}
  54.     if(k7==0&&k1==0){song=0;delay(1);biaozhi=1;disp2(0,7,1000);}
  55.     if(k8==0&&k1==0){song=0;delay(1);biaozhi=1;disp2(,8,1000);}
  56. }

  57. void time60()//60秒倒計(jì)時(shí)程序
  58. {
  59.         uint a=5,b=9;
  60.         for(a>=0;a--){   
  61.     for(b<0;b--)
  62.     disp(1,a);
  63.     disp(2,b);
  64.     delay(1000);
  65.         }
  66. }

  67.         void ea()//顯示開機(jī)界面
  68. {
  69.         unsigned char ci=0;
  70.         while(ci<200)//循環(huán)200次(持續(xù)一段時(shí)間)
  71.         {
  72.                 P2=0xfe;  //位選1
  73.                 P0=0x77;  //顯示A
  74.                 delay(5);
  75.                 P2=0xfd;  //位選2
  76.                 P0=0x79;  //顯示E
  77.                 delay(5);
  78.                 ci++;
  79.         }
  80. }

  81. void main(){
  82. uint d=10;
  83. ea();
  84. if(K1==0)//主持人按下開始
  85. {
  86. for(d>0;d--)
  87. {
  88.         disp(1,d);//10秒倒計(jì)時(shí)
  89.         key();//選手搶答
  90.         if(biaozhi==1)
  91.     {
  92.     if (k2==0)//如果按下清零按鈕.系統(tǒng)清零
  93.     {
  94.     clear();
  95.     }
  96.         time60();

  97.     }//如果選手搶答,搶答成功進(jìn)入60秒倒計(jì)時(shí)
  98.     else if(biaozhi!=1)
  99.     {
  100.     ea();
  101.     }

  102. }
  103. }
復(fù)制代碼



//請(qǐng)問哪兒出錯(cuò)了啊


作者: 麥麥123    時(shí)間: 2020-12-29 12:22
最好進(jìn)行單步調(diào)試,這樣更容易看出來哦
作者: songxia8013    時(shí)間: 2020-12-29 22:28
這樣是看不出來的,可以根據(jù)仿真或?qū)嵨锏默F(xiàn)象去找錯(cuò)誤點(diǎn)!
作者: fightfit    時(shí)間: 2020-12-30 11:09
你這有電路圖或者仿真圖嗎?最好發(fā)一下,看看你都用了哪些引腳,有沒有進(jìn)行設(shè)置。我這也有一份程序 ,要是需要我可以發(fā)給你。




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1