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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51單片機C語言程序(四)鍵盤 數(shù)碼管 跑表程序

          51單片機C語言程序(四)鍵盤 數(shù)碼管 跑表程序

          作者: 時間:2016-11-24 來源:網(wǎng)絡 收藏
          程序一

          數(shù)碼管前三位顯示一個跑表,
          從000到999之間以1%秒的速度運行,
          當按下一個獨立鍵盤時跑表停止,
          松開手后跑表繼續(xù)運行(用定時器設計表)

          本文引用地址:http://www.ex-cimer.com/article/201611/321015.htm

          #include
          #include
          #define uint unsigned int
          #define uchar unsigned char
          sbit dula=P2^6;
          sbit wela=P2^7;
          sbit s2=P3^4;
          uchar code table[]={
          0x3f,0x06,0x5b,0x4f,
          0x66,0x6d,0x7d,0x07,
          0x7f,0x6f,0x77,0x7c,
          0x39,0x5e,0x79,0x71,
          0x76,0x79,0x38,0x3f,0};
          uchar flag,t0,ge,shi,bai;
          uint shu;
          void init();
          void display(uchar aa,uchar bb,uchar cc);
          void delay(uint z)
          {
          uint x,y;
          for(x=z;x>0;x--)
          for(y=110;y>0;y--);
          }
          void main()
          {
          init();
          while(1)
          {
          display(bai,shi,ge);
          if(s2==0)
          {
          delay(10);
          if(s2==0)
          {
          TR0=0;
          while(!s2)
          display(bai,shi,ge);
          TR0=1;
          }
          }
          }
          }

          void init()
          {
          TMOD=0x01;
          TH0=(65536-10000)/256;
          TL0=(65536-10000)%256;
          EA=1;
          ET0=1;
          TR0=1;
          }

          void timer0() interrupt 1
          {
          TH0=(65536-10000)/256;
          TL0=(65536-10000)%256;
          shu++;
          if(shu==1000)
          shu=0;
          bai=shu/100;
          shi=shu%100/10;
          ge=shu%10;

          }


          void display(uchar aa,uchar bb,uchar cc)
          {
          dula=1;
          P0=table[aa];
          dula=0;
          P0=0xff;
          wela=1;
          P0=0xfe;
          wela=0;
          delay(1);

          dula=1;
          P0=table[bb];
          dula=0;
          P0=0xff;
          wela=1;
          P0=0xfd;
          wela=0;
          delay(1);

          dula=1;
          P0=table[cc];
          dula=0;
          P0=0xff;
          wela=1;
          P0=0xfb;
          wela=0;
          delay(1);
          }

          程序二

          數(shù)碼管前三位顯示一個跑表,
          從000到999之間以1%秒的速度運行,
          當按下一個獨立鍵盤時跑表停止,
          松開手后跑表繼續(xù)運行(用定時器設計表)

          三個獨立鍵盤實現(xiàn)按下第一個時計時停止,按下第二個
          時計時結(jié)束,按下第三個是計數(shù)值清零從頭開始

          #include
          #include
          #define uint unsigned int
          #define uchar unsigned char
          sbit dula=P2^6;
          sbit wela=P2^7;
          sbit s2=P3^4;
          sbit s3=P3^5;
          sbit s4=P3^6;
          sbit s5=P3^7;
          uchar code table[]={
          0x3f,0x06,0x5b,0x4f,
          0x66,0x6d,0x7d,0x07,
          0x7f,0x6f,0x77,0x7c,
          0x39,0x5e,0x79,0x71,
          0x76,0x79,0x38,0x3f,0};
          uchar flag,t0,ge,shi,bai;
          uint shu;
          void init();
          void display(uchar aa,uchar bb,uchar cc);
          void delay(uint z)
          {
          uint x,y;
          for(x=z;x>0;x--)
          for(y=110;y>0;y--);
          }
          void main()
          {
          init();
          while(1)
          {
          display(bai,shi,ge);
          if(s2==0)
          {
          delay(10);
          if(s2==0)
          {
          TR0=0;
          while(!s2)
          display(bai,shi,ge);
          TR0=1;
          }
          }
          if(s3==0)
          {
          delay(10);
          if(s3==0)
          {
          while(!s2)
          display(bai,shi,ge);
          TR0=0;
          }
          }
          if(s4==0)
          {
          delay(10);
          if(s4==0)
          {
          while(!s2)
          display(bai,shi,ge);
          TR0=1;
          }
          }
          if(s5==0)
          {
          delay(10);
          if(s5==0)
          {
          while(!s2)
          display(bai,shi,ge);
          shu=0;
          }
          }
          }
          }

          void init()
          {
          TMOD=0x01;
          TH0=(65536-10000)/256;
          TL0=(65536-10000)%256;
          EA=1;
          ET0=1;
          TR0=1;
          }

          void timer0() interrupt 1
          {
          TH0=(65536-10000)/256;
          TL0=(65536-10000)%256;
          shu++;
          if(shu==1000)
          shu=0;
          bai=shu/100;
          shi=shu%100/10;
          ge=shu%10;

          }


          上一頁 1 2 下一頁

          評論


          技術(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); })();