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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 玩轉(zhuǎn)單片機,你我都是菜鳥(續(xù)3)

          玩轉(zhuǎn)單片機,你我都是菜鳥(續(xù)3)

          作者: 時間:2016-11-25 來源:網(wǎng)絡 收藏
          好久沒有更新博文了,由于晚上回家沒有網(wǎng)所以很久沒更新了,好不容易寫的一篇突然斷電沒有保存,真夠杯具的。電來了又重新寫了。不知道最近還有沒有人關注我。其實這我都不惦記了,希望群里的朋友迷茫的盡快找到方向,盡快都成為高手。如果你還關注我不知道是因為我的經(jīng)歷還是因為我前一篇的那些題目?前幾篇寫的一些我的經(jīng)歷可能有些人看了,可能還會有同感,如果愿意可以跟著我的思路走,先完成我上篇博文提到的幾個題目。至于我的經(jīng)歷,如果你還感興趣可以留言,我在后邊再說說。。。。。。
          下面開始第一個題目:流水燈
          硬件前提:用51的P1口控制8個LED,1點亮,0熄滅。
          (1)第1,3,5,7個燈半亮,其余的全亮。
          (2)第1個亮1/8,第2個亮2/8,第3個亮3/8,第4個亮4/8,第5個亮5/8,第6個亮6/8, 第7個亮7/8,第8個全亮。
          (3)所有的燈逐漸從暗到全亮,再由全亮到暗。
          (4)8個燈從第一個開始依次漸亮,直到最后一個。再從最后一個起漸暗,直 到 第一個。如此循環(huán)往復。這才是真正的流水燈。


          單片機初學者幾乎都做的一個實驗就是流水燈實驗,因為大家都做,所以就覺得很簡單,很多人對這個實驗幾乎不屑。其實要徹底的玩轉(zhuǎn)這個實驗也是很不簡單的事情,不信看看你能不能完成下面的實驗題,如果你能拿下它,那么你已經(jīng)一只腳穩(wěn)穩(wěn)地踏入了單片機門檻,并且你一定不想再回頭了,此時已經(jīng)有一部分人對你刮目相看了(包括我),因為就這幾個題目算起來我想了有整整一天了,總算有個結果,而且還有一些問題,尤其是第(2)個題目效果很不明顯。我把這幾個題目的程序貼出來,希望大家給點意見,我們互相交流,互相學習,互相指導。
          題目要求:第1,3,5,7個燈半亮,其余的全亮。
          (1)程序:
          #include
          #defineucharunsignedchar
          #defineledP1//led接在P1口
          #defineTon40//基準脈寬0.04ms
          ucharLEDflag=0;//全局變量,最大255,保存T0中斷次數(shù)

          voidinit();
          voidled_on();
          voidmain()
          {
          init();
          while(1)
          {

          led_on();

          }
          }
          voidinit()//定時器初始化
          {
          TMOD=0x02;//T0方式2,8位自動載入
          TH0=256-Ton;//T0初始值
          TL0=256-Ton;//重載值
          TR0=1;//啟動T0
          ET0=1;//開T0,T1中斷
          EA=1;//全局中斷允許
          }

          voidtime0_int()interrupt1using3//T0中斷函數(shù),中斷1,使用工作組3
          {
          LEDflag++;//修改LEDflag
          }

          voidled_on()
          {

          if(LEDflag==0)//點亮8個燈
          {
          led=0x00;
          }
          if(LEDflag==12)//熄滅1,3,5,7燈
          {
          led=0x55;
          }
          }
          題目要求:第1個亮1/8,第2個亮2/8,第3個亮3/8,第4個亮4/8,第5個亮5/8,第6個亮 6/8, 第7個亮7/8,第8個全亮。
          (2)程序:
          #include
          #defineucharunsignedchar
          #defineledP1//led接在P1口
          #defineTon40//基準脈寬0.04ms
          uchari,LEDflag=0;//全局變量,最大255,保存T0中斷次數(shù)
          //ucharcodeled_off[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
          voidinit();
          voidled_on();
          voidmain()
          {
          init();
          while(1)
          {

          led_on();

          }
          }
          voidinit()//定時器初始化
          {
          TMOD=0x02;//T0方式2,8位自動載入
          TH0=256-Ton;//T0初始值
          TL0=256-Ton;//重載值
          TR0=1;//啟動T0
          ET0=1;//開T0,T1中斷
          EA=1;//全局中斷允許
          }

          voidtime0_int()interrupt1using3//T0中斷函數(shù),中斷1,使用工作組3
          {
          LEDflag++;//修改LEDflag
          }

          voidled_on()
          {
          switch(LEDflag)
          {
          case32:led=0x00;
          //為真時語句
          break;
          case64:led=0x01;
          //為真時語句
          break;
          case96:led=0x03;
          //為真時語句
          break;
          case128:led=0x07;
          //為真時語句
          break;
          case160:led=0x0f;
          //為真時語句
          break;
          case192:led=0x1f;
          //為真時語句
          break;
          case224:led=0x3f;
          //為真時語句
          break;
          case255:led=0x7f;
          //為真時語句
          break;
          default:
          //冗余語句
          break;
          }

          }
          題目要求:所有的燈逐漸從暗到全亮,再由全亮到暗。
          (3)程序:
          #include
          #defineucharunsignedchar
          #defineledP1//led接在P1口
          #defineTon40//基準脈寬0.04ms
          ucharLEDflag=0;//全局變量,最大255,保存T0中斷次數(shù)
          voidinit();
          voidled_on_off();
          voidmain()
          {
          init();
          while(1)
          {

          led_on_off();

          }
          }

          上一頁 1 2 下一頁

          關鍵詞: 單片機流水

          評論


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