欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

八路直控鍵盤控制數碼顯示

作者:huqin   來源:本站原創   點擊數:  更新時間:2013年11月15日   【字體:


鍵盤電路作為單片機的輸入部分,數碼顯示電路作為單片機的輸出部分,由鍵盤電路通過單片機控制數碼管顯示電路的八路鍵控數碼管電路。按下S0到S7號按鍵時,數碼管顯示立刻顯示數字0到7。


 

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

關閉窗口

相關文章