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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1373|回復: 2
收起左側(cè)

有沒有大佬 看下怎么調(diào)試 求幫助

[復制鏈接]
ID:356540 發(fā)表于 2018-6-22 00:24 | 顯示全部樓層 |閱讀模式
  1. #include<reg52.h>
  2. #include<intrins.h>

  3. sbit ADDR0=P1^0;
  4. sbit ADDR1=P1^1;
  5. sbit ADDR2=P1^2;
  6. sbit ADDR3=P1^3;
  7. sbit ENLED=P1^4;

  8. sbit BUZZ = P1^6;  //蜂鳴器控制引腳

  9. unsigned char code LEDwei[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
  10.                              0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e
  11. };

  12. unsigned char code KeyCode[]={0xff,0xe7,0xd7,0xb7,0x77,0xeb,0xdb,0xbb,0x7b,
  13.                          0xed,0xdd,0xbd,0x7d,0xee,0xde,0xbe,0x7e
  14. };    //矩陣鍵盤按鍵編碼

  15. unsigned char scan0=0xfe;
  16. unsigned char count[]={0,0,0,0,0,0};
  17. unsigned char byte=5;
  18. unsigned char number[5];
  19. unsigned char key;
  20. unsigned char n;
  21. unsigned int cnt;        
  22. unsigned char flag=1;
  23. bit f0;


  24. void delay_ms(unsigned int cnt)
  25. {
  26.         unsigned char i;
  27.         while(cnt--)
  28.         {
  29.                 for(i=0;i<=110;i++);
  30.         }
  31. }

  32. void Scankeyboard();
  33. void countDown();

  34. void main()
  35. {
  36.         ADDR3=1;
  37.         ENLED=0;         
  38.         TMOD=0x01;
  39.         TH0=0xfc;
  40.         TL0=0x67;
  41.         EA=1;
  42.         TR0=1;
  43.         ET0=1;
  44.         while(1)
  45.         {
  46.                 Scankeyboard();
  47.                 countDown();
  48.         
  49.         }
  50. }
  51. void time0()interrupt 1
  52. {
  53.         unsigned char i;
  54.         cnt++;
  55.         TH0=0xfc;
  56.         TL0=0x67;
  57.         P0=0xff;
  58.         switch(i)
  59.         {
  60.                 case 0:ADDR0=0;    ADDR1=0;   ADDR2=0; i++; if(byte>=1) P0=LEDwei[count[0]];break;
  61.                 case 1:ADDR0=1;    ADDR1=0;   ADDR2=0; i++; if(byte>=2) P0=LEDwei[count[1]];break;
  62.                 case 2:ADDR0=0;    ADDR1=1;   ADDR2=0; i++; if(byte>=3) P0=LEDwei[count[2]];break;
  63.         case 3:ADDR0=1;    ADDR1=1;   ADDR2=0; i++; if(byte>=4) P0=LEDwei[count[3]];break;
  64.         case 4:ADDR0=0;    ADDR1=0;   ADDR2=1; i++; if(byte>=5) P0=LEDwei[count[4]];break;
  65.                 case 5:ADDR0=1;    ADDR1=0;   ADDR2=1; i=0; P0=LEDwei[count[5]];break;
  66.                 default:break;
  67.         }
  68. }
  69. void countDown()
  70. {

  71.         if(flag==3)
  72.         {        
  73.                 if(byte==1&count[0]>9)        BUZZ=~BUZZ;
  74.                 if(byte==2&count[1]>9)        BUZZ=~BUZZ;
  75.                 if(byte==3&count[2]>9)        BUZZ=~BUZZ;
  76.                 if(byte==4&count[3]>9)        BUZZ=~BUZZ;
  77.                 if(byte==5&count[4]>9)        BUZZ=~BUZZ;
  78.                 if(cnt==1000&f0==0)
  79.                 {
  80.                         cnt=0;
  81.                         count[0]--;                                     //個位
  82.                         if(count[0]>9)
  83.                         {        f0=1;
  84.                                 if(byte>1)
  85.                                 {        
  86.                                         f0=0;               
  87.                                         count[0]=9;
  88.                                         count[1]--;                             //十位
  89.                                         if(count[1]>9)
  90.                                         {
  91.                                                 f0=1;
  92.                                                 if(byte>2)
  93.                                                 {
  94.                                                         f0=0;
  95.                                                         count[1]=9;
  96.                                                         count[2]--;                         //百位
  97.                                                         if(count[2]>9)
  98.                                                         {
  99.                                                                 f0=1;
  100.                                                                 if(byte>3)
  101.                                                                 {
  102.                                                                         f0=0;
  103.                                                                         count[2]=9;
  104.                                                                         count[3]--;                 //千位
  105.                                                                         if(count[3]>9)
  106.                                                                         {
  107.                                                                                 f0=1;
  108.                                                                                 if(byte>4)
  109.                                                                                 {
  110.                                                                                         f0=0;
  111.                                                                                         count[3]=9;
  112.                                                                                         count[4]--;                 //萬位
  113.                                                                                         if(count[4]>9)
  114.                                                                                         {
  115.                                                                                                 f0=1;
  116.                                                                                         }
  117.                                                                                 }
  118.                                                                         }                                                                 
  119.                                                                 }
  120.                                                         }
  121.                                                 }
  122.                                         }
  123.                                 }
  124.                         }
  125.                 }
  126.         }
  127. }

  128. void Scankeyboard()
  129. {
  130.         unsigned char scan,keyboard;
  131.         unsigned char i;

  132.         P2=scan0;
  133.         scan=P2;
  134.         if(scan!=scan0)
  135.         {
  136.                 delay_ms(2);
  137.                 if(scan!=scan0)
  138.                 {
  139.                         while(P2!=scan0);
  140.                         keyboard=scan;
  141.                         for(i=1;i<17;i++)
  142.                         {
  143.                                 if(keyboard==KeyCode[i])
  144.                                         key=i;
  145.                         }
  146.                         if(flag==2)
  147.                         {
  148.                                 if(n>byte)
  149.                                         n=byte;
  150.                                 if(key>=1&key<=3)           //1~3
  151.                                 {         
  152.                                          number[n++]=key;
  153.                                 }
  154.                                 if(key>=5&key<=7)           //4~6
  155.                                 {         
  156.                                          number[n++]=key-1;
  157.                                  }
  158.                                 if(key>=9&key<=11)                    //7~9
  159.                                 {         
  160.                                          number[n++]=key-2;
  161.                                 }
  162.                                 if(keyboard==KeyCode[13])        //0
  163.                                 {         
  164.                                         number[n++]=0;
  165.                                 }
  166.                                 count[n-1]=number[n-1];                                
  167.                         }
  168.                         if(flag==1)
  169.                         {
  170.                                 if(key>=1&key<=3)           //1~3
  171.                                 {         
  172.                                          key=key;
  173.                                          byte=key;               //設(shè)置倒計時的位數(shù)
  174.                                          count[5]=byte;
  175.                                     // flag=2;
  176.                                 }
  177.                                 if(key==5|key==6)           //4~5
  178.                                 {         
  179.                                          key=key-1;
  180.                                          byte=key;               //設(shè)置倒計時的位數(shù)
  181.                                          count[5]=byte;
  182.                                      //flag=2;
  183.                                 }                                
  184.                         }
  185.                         if(flag==3&key==15)                        //重新設(shè)定倒計時
  186.                         {
  187.                             flag=1;f0=0;
  188.                                 count[0]=0;
  189.                                 count[1]=0;
  190.                                 count[2]=0;
  191.                                 count[3]=0;
  192.                                 count[4]=0;
  193.                                 count[5]=0;
  194.                                 byte=5;
  195.                         }
  196.                         else if(flag==1&key==15)
  197.                                 flag=2;
  198.                         else if(flag==2&key==15)
  199.                                 flag=3;               
  200.                 }
  201.         }
  202.         else
  203.         {
  204.                 scan0=_crol_(scan0,1);
  205.                 if(scan0==0xef)
  206.                 {
  207.                         scan0=0xfe;
  208.                 }
  209.         }
  210. }
復制代碼
回復

使用道具 舉報

ID:356540 發(fā)表于 2018-6-22 00:29 | 顯示全部樓層
我調(diào)試的老是計時很久才響應(yīng)  
回復

使用道具 舉報

ID:320306 發(fā)表于 2018-6-22 12:29 | 顯示全部樓層
你怎么是限制會員,還有你提問不會很清楚,不明白你問什么意思?
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜国产一级 | 免费在线黄色av | 一区二区高清在线观看 | 国产精品18hdxxxⅹ在线 | 国产成人精品一区二区 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 91精品免费视频 | 精品粉嫩aⅴ一区二区三区四区 | 亚洲精品一区二区三区中文字幕 | 日韩男人天堂 | 欧美日韩精品一区 | 91中文字幕在线 | 日韩欧美不卡 | 中文久久 | 亚洲国产精品视频 | 最新国产精品精品视频 | 久草视频观看 | 亚洲高清中文字幕 | 精品一区在线 | 国产精品1 | 黄色在线免费观看视频网站 | 免费a v网站 | 天天看天天摸天天操 | 九色porny自拍视频 | 日本一区视频在线观看 | 美女久久 | 久久精品日产第一区二区三区 | 九九热在线观看 | 国产成人精品久久二区二区 | 欧美日韩午夜精品 | 中文字幕日韩欧美 | av在线免费观看网站 | 亚洲一区二区三区四区av | 男人av网 | 国产日韩欧美 | 亚洲国产精品日本 | 久久91精品国产一区二区三区 | 日韩视频国产 | 中日韩欧美一级片 | 亚洲一区不卡在线 | 亚洲男人网 |