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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 八路直控鍵盤控制數(shù)碼顯示

          八路直控鍵盤控制數(shù)碼顯示

          作者: 時(shí)間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
          鍵盤電路作為單片機(jī)的輸入部分,數(shù)碼顯示電路作為單片機(jī)的輸出部分,由鍵盤電路通過單片機(jī)控制數(shù)碼管顯示電路的八路鍵控?cái)?shù)碼管電路。按下S0到S7號按鍵時(shí),數(shù)碼管顯示立刻顯示數(shù)字0到7。


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

          ORG 0000H ;隨后的指令代碼從0000H單元開始存放。
          LJMP START ;轉(zhuǎn)到標(biāo)號START處
          ORG 0030H ;隨后的指令代碼從0030H單元開始存放。
          START:MOV P0,#00H ;關(guān)閉數(shù)碼管,不顯示任何內(nèi)容。
          SAOMIAO:MOV P2,#0FFH ;對P2口所有位寫1,也就是處于讀狀態(tài),確保讀數(shù)正確。
          CLR A ;對累加器A清零。
          MOV A,P2 ;第一次讀取P2口的數(shù)據(jù),并送入累加器A中。
          CPL A ;對A按位取反,如果沒有鍵按下, A為00H,如果有鍵按下,相應(yīng)的位為1。
          JZ SAOMIAO ;如果A=00H,說明沒有鍵按下,跳到標(biāo)號SAOMIAO處繼續(xù)掃描。如果A不等于00H,說明有鍵按下,應(yīng)該調(diào)用10MS的延時(shí)去抖子程序。
          LCALL DELAY10MS ;調(diào)用10MS的延時(shí)去抖子程序。
          MOV A,P2 ;第二次讀取P2口的數(shù)據(jù),并送入累加器A中。
          CPL A ;對A按位取反,如果沒有鍵按下, A為00H,如果有鍵按下,相應(yīng)的位為1。
          JZ SAOMIAO ;如果A=00H,說明沒有鍵按下,跳到標(biāo)號SAOMIAO處繼續(xù)掃描。如果A不等于00H,說明確實(shí)有鍵按下,順序執(zhí)行下面的程序,判斷是哪個(gè)鍵按下了。
          JB ACC.0,SZ0 ;如果S0鍵按下,則ACC.0=1,轉(zhuǎn)去執(zhí)行顯示數(shù)字0,否則順序執(zhí)行。
          JB ACC.1,SZ1 ;如果S1鍵按下,則ACC.1=1,轉(zhuǎn)去執(zhí)行顯示數(shù)字1,否則順序執(zhí)行。
          JB ACC.2,SZ 2 ;如果S2鍵按下,則ACC.2=1,轉(zhuǎn)去執(zhí)行顯示數(shù)字2,否則順序執(zhí)行。
          JB ACC.3,SZ 3 ;如果S3鍵按下,則ACC.3=1,轉(zhuǎn)去執(zhí)行顯示數(shù)字3,否則順序執(zhí)行。
          JB ACC.4,SZ 4 ;如果S4鍵按下,則ACC.4=1,轉(zhuǎn)去執(zhí)行顯示數(shù)字4,否則順序執(zhí)行。
          JB ACC.5,SZ 5 ;如果S5鍵按下,則ACC.5=1,轉(zhuǎn)去執(zhí)行顯示數(shù)字5,否則順序執(zhí)行。
          JB ACC.6,SZ 6 ;如果S6鍵按下,則ACC.6=1,轉(zhuǎn)去執(zhí)行顯示數(shù)字6,否則順序執(zhí)行。
          JB ACC.7,SZ 7 ;如果S7鍵按下,則ACC.7=1,轉(zhuǎn)去執(zhí)行顯示數(shù)字7,否則順序執(zhí)行。
          LJMP SAOMIAO;跳轉(zhuǎn)到SAOMIAO處繼續(xù)掃描。
          SZ0:MOV P0,#3FH ;顯示數(shù)字0。
          LJMP SAOMIAO;跳轉(zhuǎn)到SAOMIAO處繼續(xù)掃描按鍵。
          SZ1:MOV P0,#06H ;顯示數(shù)字1。
          LJMP SAOMIAO;跳轉(zhuǎn)到SAOMIAO處繼續(xù)掃描按鍵。
          SZ2:MOV P0,#5BH ;顯示數(shù)字2。
          LJMP SAOMIAO;跳轉(zhuǎn)到SAOMIAO處繼續(xù)掃描按鍵。
          SZ3:MOV P0,#4FH ;顯示數(shù)字3。
          LJMP SAOMIAO;跳轉(zhuǎn)到SAOMIAO處繼續(xù)掃描按鍵。
          SZ4:MOV P0,#66H ;顯示數(shù)字4。
          LJMP SAOMIAO;跳轉(zhuǎn)到SAOMIAO處繼續(xù)掃描按鍵。
          SZ5:MOV P0,#6DH ;顯示數(shù)字5。
          LJMP SAOMIAO;跳轉(zhuǎn)到SAOMIAO處繼續(xù)掃描按鍵。
          SZ6:MOV P0,#7DH ;顯示數(shù)字6。
          LJMP SAOMIAO;跳轉(zhuǎn)到SAOMIAO處繼續(xù)掃描按鍵。
          SZ7:MOV P0,#07H ;顯示數(shù)字7。
          LJMP SAOMIAO;跳轉(zhuǎn)到SAOMIAO處繼續(xù)掃描按鍵。
          DELAY10MS:MOV R7,#20 ;從本行開始,到RET結(jié)束,為10MS延時(shí)去抖子程序。
          D1:MOV R6,#250
          D2:DJNZ R6,D2
          DJNZ R7,D1
          RET
          END



          評論


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