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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 手動可調(diào)變速的流水燈程序

          手動可調(diào)變速的流水燈程序

          作者: 時間:2016-12-01 來源:網(wǎng)絡 收藏
          /*********** 2011.7 JQ--V0.1 宏晶公司STC單片機開發(fā)板 ************

          $ 程序作用:手動可調(diào)變速流水燈的效果

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

          $ 程序作者: JQ(QQ:489555226 Email:489555226@qq.com)

          $ 程序版本: JQ--V0.1

          $ 編制日期: 2011-07-01

          $ 編譯器:Keil C uVision2

          $ 所用芯片:STC89C52,11.0592M晶振

          $ 程序開發(fā)板:JQ--V0.1版本

          $ 程序通俗易懂 注釋詳細 結(jié)構(gòu)化模塊是51單片機初學愛好者的理想選擇

          ******************** JQ--V0.1 宏晶公司STC單片機開發(fā)板 **********************/

          #include //52單片機頭文件定義

          #define uchar unsigned char //數(shù)據(jù)類型uchar的宏定義
          #define uint unsigned int //數(shù)據(jù)類型uint的宏定義

          #define led P0 //P0口宏定義
          void init();
          uchar count,speed,num; //全局變量定義

          sbit key =P3^2;

          void delay(uint k);

          uchar code huayang[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,};//0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0x00,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0x55,0x55,0x00}; //花樣跑馬燈數(shù)組定義 隨便改變數(shù)組里面的值就可以改變花樣(該數(shù)組有27個數(shù)值)
          void main(void) //主函數(shù)
          {
          uchar i;
          init();
          while(1) //while死循環(huán)
          {
          for(i=0;i<8;i++) //0-26共27次循環(huán)依次取出數(shù)組中的數(shù)(i小于多少由數(shù)組中的數(shù)決定)
          {
          led=huayang[i]; //把取出的數(shù)以總線的方式賦給led即P0口
          }
          }
          }

          void init() //初始化
          {
          speed=0;
          TMOD=0x01; //定時器T0的應用 后面會詳細講
          TH0=(65536-speed)/256;
          TL0=(65536-speed)%256;
          EA=1;
          ET0=1;
          TR0=1;
          }


          void timer0() interrupt 1 //定時器T0中斷 后面會詳細講
          {
          TH0=(65536-speed)/256;
          TL0=(65536-speed)%256;
          count++;
          if(count==5000)
          {
          count=0;

          if(key==0) //按鍵消抖
          { delay(5);
          if(key==0)
          num++;
          while(!key); //松手檢測 只要當key==1時才會退出這個while循環(huán)!

          if(num==1)
          {
          speed=50; //速度調(diào)節(jié)(也就是改變定時器的初值!)
          }

          if(num==2)
          {
          speed=100;
          }

          if(num==3)
          {
          speed=150;
          }

          if(num==4)
          {
          speed=200;
          }
          }
          }
          if(num==5) num=0;

          }


          void delay(uint k) //延時子函數(shù)
          {
          while(--k);
          }


          //這過程序用到了定時器 后面會跟大家詳細講解的! 謝謝大家!?。?br />//對于調(diào)速函數(shù)可以進行修改,使其變得更加的簡潔,speed=num*50;if(num==6) num=0;//防止程序出錯,所以進行了限制!



          評論


          技術專區(qū)

          關閉
          看屁屁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); })();