<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 自己寫的按鍵單片機(jī)程序

          自己寫的按鍵單片機(jī)程序

          作者: 時(shí)間:2016-12-02 來源:網(wǎng)絡(luò) 收藏
          用4個(gè)按鍵來控制數(shù)碼管顯示的內(nèi)容
          #include
          #define duan P0//段選
          #define wei P2//位選
          unsigned char code wei1[8] = {
          0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位選控制 查表的方法控制
          unsigned char code duan1[17] = {
          0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
          0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的顯示碼
          unsigned char ge,shi,bai,a,b;
          sbit key1=P1^0;
          sbit key2=P1^1;
          sbit key3=P1^2;
          sbit key4=P1^3;
          void keys();//按鍵 函數(shù)
          void s(unsigned char xms);//延時(shí)函數(shù)
          void DigDisplay(); //動態(tài)顯示函數(shù)
          void init(); //初始化函數(shù)
          void main(void)
          {
          init();
          while(1)
          {
          DigDisplay();
          keys();
          }
          }

          void DigDisplay()
          {
          unsigned char i;
          unsigned int j;

          bai=a/100;
          shi=a%100/10;
          ge=a%10;

          i=0;
          wei = wei1[i];//發(fā)送位選
          duan = duan1[bai]; //發(fā)送段碼
          j = 10;//掃描間隔時(shí)間設(shè)定
          while(j--);
          duan = 0x00; //消隱
          i++;

          wei = wei1[i];//發(fā)送位選
          duan = duan1[shi]; //發(fā)送段碼
          j = 10;//掃描間隔時(shí)間設(shè)定
          while(j--);
          duan = 0x00; //消隱
          i++;

          wei = wei1[i];//發(fā)送位選
          duan = duan1[ge]; //發(fā)送段碼
          j = 10;//掃描間隔時(shí)間設(shè)定
          while(j--);
          duan = 0x00; //消隱
          }

          void init()
          {
          key1=1;
          key2=1;
          key3=1;
          key4=1;
          TMOD=0X01;
          TH0=(65536-45872)/256;
          TL0=(65536-45872)%256;
          EA=1;
          ET0=1;
          }

          void s(unsigned char xms)
          {
          unsigned char x,y;
          for(x=xms;x>0;x--)
          for(y=110;y>0;y--);
          }
          void times() interrupt 1
          {
          TH0=(65536-45872)/256;
          TL0=(65536-45872)%256;
          b++;
          if(b==20)
          {
          b=0;
          a++;
          if(a==256)
          {
          a=0;
          }
          }
          }
          void keys()
          {
          if(key1==0)
          {
          s(10);
          if(key1==0)
          {
          a++;
          TR0=0;
          if(a==256)
          a=0;
          while(!key1)
          DigDisplay();
          }
          }

          if(key2==0)
          {
          s(10);
          if(key2==0)
          {
          TR0=0;
          if(a==0)
          a=256;
          a--;
          while(!key2)
          DigDisplay();
          }
          }

          if(key3==0)
          {
          s(10);
          if(key3==0)
          {
          TR0=0;
          a=0;
          while(!key3)
          DigDisplay();
          }
          }

          if(key4==0)
          {
          s(10);
          if(key4==0)
          {
          while(!key4)
          DigDisplay();
          TR0=~TR0;
          }
          }

          }


          關(guān)鍵詞: 按鍵單片機(jī)程

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();