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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51單片機匯編:多路延時開關

          51單片機匯編:多路延時開關

          作者: 時間:2016-11-30 來源:網(wǎng)絡 收藏
          要求:51單片機,8個按鍵、8個發(fā)光二極管。

          ;一個鍵按下則對應燈亮,3秒后滅,每個鍵控制一個燈。

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


          ;題目要求的電路,非常簡單,用 P1 連接按鍵、P2 連接 LED 即可。


          ;用定時器,定時 7.5 ms,中斷 400 遍,即為 3 秒鐘。


          ;針對每個燈,都要有一個計時單元,用來控制亮燈 3 秒鐘的時間。


          ;用匯編語言編寫程序如下:


          KEY EQU 30H

          K_L EQU 31H

          K_T EQU 32H


          ORG 0000H

          AJMP START

          ORG 000BH ;T0中斷入口地址

          JMP T0_INT

          START:

          MOV TH0, #40 ;定時7.5ms@11.0592MHz

          SETB TR0

          SETB ET0

          SETB EA

          SJMP $ ;主程序結束

          ;--------------------------------

          T0_INT:

          MOV TH0, #40 ;定時7.5ms@11.0592MHz

          MOV A, P1

          CPL A ;有按鍵,為1

          MOV KEY, A

          XRL A, K_L

          MOV K_T, A

          MOV K_L, KEY

          MOV A, KEY

          CPL A ;沒按則為1

          ANL A, K_T ;釋放則為1

          ;-----------------------------------

          MOV R0, #40H

          MOV R2, #127

          T0_L1:

          JNB ACC.7, $ + 9

          MOV @R0, #200

          XCH A, R2

          ANL P2, A ;打開LED

          XCH A, R2


          RL A

          XCH A, R2

          RR A ;右移R2

          XCH A, R2

          INC R0

          CJNE R0, #48H, T0_L1

          ;-----------------------------------

          CPL F0

          JNB F0, T0_END

          MOV R0, #40H

          MOV R2, #128

          MOV A, R2

          T0_L2:

          DEC @R0

          CJNE @R0, #255, $ + 6

          INC @R0

          ORL P2, A ;關閉LED


          RR A ;右移R2

          MOV R2, A

          INC R0

          CJNE R0, #48H, T0_L2


          T0_END:

          RETI

          ;-----------------------------------

          END

          ;-----------------------------------


          本程序,使用了定時中斷方式,對按鍵進行檢測;并含有延時消抖、等待釋放的環(huán)節(jié)。


          在按鍵按下、再釋放后,即刻,就能使 LED 發(fā)光,經(jīng)過 3 秒鐘之后,自動熄滅。


          各個按鍵的動作互不影響,各個 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); })();