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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機單按鍵控制LED發(fā)光的程序

          單片機單按鍵控制LED發(fā)光的程序

          作者: 時間:2012-12-01 來源:網(wǎng)絡(luò) 收藏
          51的程序,就是用一個與P3_0引腳連接的按鍵控制P2_0相連LED的亮和滅兩種狀態(tài)。按一次按鍵燈亮,再按一次按鍵燈滅。再按一次又亮,再按一次燈又滅,本程序出自網(wǎng):http://www.51hei.com,經(jīng)過測試已經(jīng)可以成功運行。
          #include "AT89X51.H"
          void main(void) // 主程序
          {
          bit mark; //定義位變量
          unsigned int n; //定義循環(huán)變量
          while(1) //無限循環(huán)
          {
          if (P3_0==0) //如果按鍵按下
          {
          for(n=0;n1000;n++); //延時一段時間,等待按鍵完全按下
          mark=~mark; //翻轉(zhuǎn)標記
          while(!P3_0) //等待按鍵彈起
          for(n=0;n1000;n++); //等待按鍵完全彈起
          }
          P2_0=mark; //點亮或是關(guān)滅LED燈
          }}
          while(1) //無限循環(huán)
          {
          if(ldelay==1 ) //若是時間溢出標記為1,處理如下語句
          {
          ldelay=0; //清除時間溢出標記
          P2=ledp[ledi]; //讀出一個表格值送到P2口
          ledi++; //指向下一個表格值
          if(ledi==4)
          {
          ledi=0; //到了最后一個燈就換到第一個
          sp--; //速度級別減1
          if (sp==3) //如果速度級別減到3
          sp=23; // 恢復(fù)速度最慢的級別23
          }}}}
          timer0() interrupt 1 //定時器0中斷服務(wù)程序
          {
          static unsigned int kk; //定義靜態(tài)局部變量
          kk++; //每次中斷服務(wù),kk加1
          if(kk==(100*sp)) //最少次數(shù)為100*sp=300,時間為300次*0.25ms
          //最多次數(shù)為2300次,時間為2300次*0.25ms
          //如果kk=(100*sp),執(zhí)行如下語句
          {
          kk=0;
          ldelay=1; //當kk值與100*sp值相等,將ldelay標記置1,則處理燈亮與顯示速度
          } }


          評論


          相關(guān)推薦

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