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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > C51單片機(jī)學(xué)習(xí)手記之1:一盞閃爍

          C51單片機(jī)學(xué)習(xí)手記之1:一盞閃爍

          作者: 時(shí)間:2012-10-24 來(lái)源:網(wǎng)絡(luò) 收藏
          最近開(kāi)始學(xué)習(xí),可謂磕磕絆絆,因?yàn)楸救吮容^笨笨啦...(聽(tīng)聽(tīng)Michael Jackson的《Heal The World》就堅(jiān)持下來(lái)了),不知道對(duì)大家是否有用...
          閑言碎語(yǔ)不要講,下面我就來(lái)說(shuō)說(shuō)這邁出的第一步,我從2010年才接觸到單片機(jī),想想比別人晚了10多年,不過(guò)沒(méi)關(guān)系,只要有心學(xué)習(xí),從0-1很難,但從1到100、1000、...可能就沒(méi)有那么麻煩了。主要要自學(xué)單片機(jī)原理、電子線路、匯編語(yǔ)言,C語(yǔ)言,如果你剛好學(xué)過(guò),那就恭喜啦。
          本文旨在介紹單片機(jī)入門(mén)的基礎(chǔ)知識(shí),為和我一樣的新手提供一個(gè)交流的平臺(tái)。仿真所使用單片機(jī)為ATMEL公司的AT89C52,軟件為PROTEUS和KEIL;只提供原理圖和KEIL環(huán)境下的注釋,希望對(duì)廣大即將接觸單片機(jī)的人有所幫助,如果有錯(cuò)誤歡迎回帖指出與本人交流或QQ聯(lián)系(93542746),共同進(jìn)步。

          點(diǎn)擊瀏覽下一頁(yè)

          本人用Proteus畫(huà)得原理圖如下所示,該電路較簡(jiǎn)單,在P1.7上接一個(gè)發(fā)光二極管,為防止電流過(guò)大燒壞二極管(LED的Imax=10mA),因此接了一個(gè)限流電阻。單片機(jī)31引腳(EA/Vpp)要接高電平,因?yàn)閱纹瑱C(jī)訪問(wèn)的是下載到單片機(jī)內(nèi)部的程序。
          原理圖:
          點(diǎn)擊瀏覽下一頁(yè)
          匯編程序:
              org 000h
              ajmp main
              org 003h
          main:  mov P1,#07fh;7fh的二進(jìn)制數(shù)為01111111,P1.7輸出低電平
              acall del;調(diào)用延時(shí)子程序
              mov p1,#0ffh;ffh的二進(jìn)制數(shù)為11111111,P1.7輸出高電平
              acall del
              ajmp main
          del:   mov r5,#04h
          del1:  mov r6,#0ffh
          del2:  mov r7,#0ffh
          del3:  djnz r7,del3;r7中內(nèi)容減1后判斷,為0,向下執(zhí)行;不為0,執(zhí)行本身
              djnz r6,del2
              djnz r5,del1;共做04h*ffh*ffh次減1,即4*256*256次
              ret
              end
          C程序:
          #include reg52.h> //通用89C52頭文件
          /*************************************************************
          * IO定義 *
          /*************************************************************/
          sbit LED = P1 ^ 7;//定義P1.7為L(zhǎng)ED控制口,低電平LED亮
          /*************************************************************
          * 毫秒級(jí)延時(shí)函數(shù) *
          調(diào)用函數(shù)必須給延時(shí)函數(shù)一個(gè)0~65535的延時(shí)值對(duì)應(yīng)0MS到65535MS
          備 注:應(yīng)用于1T單片機(jī)時(shí)i600,應(yīng)用于12T單片機(jī)時(shí)i125
          /*************************************************************/
          void Delay (unsigned int a){//需要輸入變量值0~65535
          unsigned int i;
          while( --a != 0){//i 從0加到125,CPU大概就耗時(shí)1毫秒
          for(i = 0; i 125; i++);//空指令循環(huán)
          }
          }
          /*************************************************************
          * 主函數(shù) *
          /*************************************************************/
          void main (void){
          while(1){//無(wú)限循環(huán)以下程序
          LED = ~LED;//取LED相反狀態(tài)
          Delay(150);//延時(shí)150ms
          }//(0~65535之間)
          }


          評(píng)論


          相關(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); })();