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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51單片機學習之1-鎖存器驅動led燈

          51單片機學習之1-鎖存器驅動led燈

          作者: 時間:2016-11-30 來源:網(wǎng)絡 收藏

          真值表



          這表格分成兩個部分:INPUTS(輸入)、OUTPUT(輸出)。
          L:表示低電平 在INPUTS表示輸入低電平 在OUTPUT表示輸出低電平。
          H:表示高電平 在INPUTS表示輸入高電平在OUTPUT表示輸出高電平。
          X:表示無所謂是高電平還是低電平。
          Q0:表示維持原來的狀態(tài)不變。
          Z:高阻態(tài) (接的是高電平則是高電平,接的是低電平則是低電平)當輸出高阻態(tài)時,說明芯片沒有工作。

          INPUTS(輸入):
          OE:OE上面有一條橫杠代表低電平有效。
          LE:鎖存控制。
          D:輸入端 即 D0 — D7

          OUTPUT(輸出):
          Q:輸出端 即 Q0 — Q7

          真值表解釋:
          第三行:OE=LLE=H D=H Q=H
          表示OE為低電平時,LE為高電平即不鎖存,那么D是高電平則Q也是高電平。
          第四行:OE=LLE=H D=L Q=L
          表示OE為低電平時,LE為高電平即不鎖存,那么D是低電平則Q也是低電平。
          第五行:OE=L LE=L D=X Q=Q0
          表示OE為低電平時,LE為低電平即鎖存,那么無論D是什么狀態(tài),Q仍保持上一次的狀態(tài)。
          第六行:OE=H LE=X D=X Q=Z
          表示OE為高電平即停用芯片,LE無論是什么狀態(tài),D無論是什么狀態(tài),Q保持高阻態(tài)即不起作用。

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


          二、電路圖



          單片機的一組P0口要控制8個Led燈,首先需要將LE引腳置1,讓74HC573的Q輸出端與D輸入端關聯(lián)起來。這樣P0口的電平狀態(tài)會傳遞給D輸入端進而改變Q的電平狀態(tài)。

          8個Led的正極接在1k的排阻。相當于每個Led串入一個1k的電阻。這里的電阻起限流作用,硅發(fā)光二極管的發(fā)光壓降是0.7V;其發(fā)光的電流一般為3—10mA,而單片機(控制芯片)的I/O口有一個灌入電流一般為20mA左右(超過這個電流時,單片機內部PN節(jié)會被擊穿)。所以加一個1k電阻限流,避免流過Led的電流過大而燒毀Led。

          (單片機(控制芯片)的I/O口有一個灌入電流一般為20mA左右;超過這個電流時,單片機內部PN節(jié)會被擊穿。一般的繼電器驅動電流在40、50—120mA;一般常用9012的PNP(9013、NPN)三極管作為開關三極管,該三極管的驅動電流可以達到200mA左右,可以用來驅動繼電器。達林頓反向驅動器:ULN2001A—ULN2002A(ST)驅動電流500mA;(給低電平輸出高電平,給高電平輸出低電平))

          電阻的取值:

          當Led點亮后,Led會有一個電壓。一般情況下紅色直插LED應該是1.7V,剩下3.3V的電壓會加在電阻上。Led需要的電流是3.3ma(0.0033A)電壓除于電流3.3V/0.0033A=1000歐=1K。(不同的廠家生產(chǎn)的LED的電壓和電流可能略有差別)

          我們要讓Led亮,那么首先要明確的是,單片機是TTL電平,高電平為+5V低電平為0V,單片機供電也是5V,所以電源正極VCC應該為+5V負極為0V。Led的正極通過電阻接在VCC,Led的負極接在74HC573的Q輸出端。當單片機的IO口給低電平時即0V,并且74HC573LE為高電平,那么電流會從VCC→1K電阻→Led→74HC573Q→74HC573D→單片機的IO口,此時Led燈亮。

          按照上面的電路圖,程序代碼應為:

          #include

          sbitLed=P0^0;

          sbitLE=P1^6;//由于51單片機上電,IO口默認為高電平所以這句可省略。

          voidmain()

          {

          LE=1; //由于51單片機上電,IO口默認為高電平所以這句可省略。

          Led=0;//直接操作P0的0端口讓第一個Led燈亮

          //P0=0xFE;//操作P0一組IO口,0xFE==11111110,P0的0端口置0其余置1 效果和 Led=0 一樣。不同的是前者操作了一組端口后者只操作了一個端口
          P0=0x00; //P1端口全部置0即讓所有的LED燈亮。

          while(1); // 程序運行到這里的時候 一直無限循環(huán)。因為Keil 編譯后期產(chǎn)生的匯編代碼中,結尾有一條 LJMP main,就是不同的執(zhí)行main函數(shù)。加上這一條就可以阻止它重復執(zhí)行上面的代碼。


          上一頁 1 2 下一頁

          關鍵詞: 51單片機鎖存器led

          評論


          相關推薦

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