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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1965|回復: 0
打印 上一主題 下一主題
收起左側(cè)

Keyboard_Array單片機匯編語言源碼與仿真

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:309172 發(fā)表于 2018-4-16 13:15 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機Keyboard仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


鍵盤仿真匯編程序
  1.          WR273        EQU        8000H
  2.         RD244        EQU        8000H
  3.         DULA        EQU        P2.0
  4.         WELA        EQU        P2.1
  5.         ORG        0000H
  6.         AJMP        START
  7.         ORG        0030H
  8. START:        MOV        70H,#0BFH
  9.         MOV        71H,#0BFH
  10.         MOV        72H,#0BFH
  11.         MOV        73H,#0BFH
  12. LOOP1:        LCALL        DISP
  13.         LCALL        KEY        ;調(diào)用子程序KEY,得到所按下的按鍵編號值,存在RAM的7FH單元中      
  14.         MOV        A,7FH
  15.         MOV        DPTR,#TABLE
  16.         MOVC        A,@A+DPTR        ;將該鍵盤編號轉(zhuǎn)換為共陽極段碼   
  17.         MOV        73H,72H
  18.         MOV        72H,71H
  19.         MOV        71H,70H
  20.         MOV        70H,A                ;移位顯示
  21.         LJMP        LOOP1

  22. ;--------鍵盤掃描子程序--------------  
  23. KEY:        MOV        R7,#00H                ;R7存放鍵盤的列號  
  24.         MOV        A,#00H
  25.         MOV        B,#0EH
  26. KEY1:        NOP
  27.         ORL        A,B
  28.         MOV        DPTR,#WR273
  29.         MOVX        @DPTR,A                ;送掃描信號,掃描第一列   
  30.         NOP
  31.         NOP
  32.         NOP
  33.         NOP
  34.         MOV        DPTR,#RD244
  35.         MOVX        A,@DPTR
  36.         ANL        A,#0FH                ;收到的數(shù)據(jù)只保留低4位   
  37.         CJNE        A,#0FH,KEY2        ;若讀到的數(shù)據(jù)低4位不全為1,則表示有鍵按下,轉(zhuǎn)往KEY2     
  38.         INC        R7
  39.         SETB        C
  40.         MOV        A,B
  41.         RLC        A
  42.         ANL        A,#0FH                ;此時A中低4位為1101,作為掃描下一列的輸入   
  43.         CJNE        A,#0FH,KEY0
  44.         MOV        A,#0EH                ;若掃描完4列,均無鍵按下,則A的低4位裝入1110,R7裝入0,重新開始掃描      
  45.         MOV        R7,#00H
  46. KEY0:        MOV        B,A
  47.         SJMP        KEY1
  48. KEY2:   CPL        A
  49.         ANL        A,#0FH
  50.         JNB        ACC.0,KEY6
  51.         MOV        A,#00H
  52.         SJMP        KEY9
  53. KEY6:   JNB        ACC.1,KEY7
  54.         MOV        A,#01H
  55.         SJMP        KEY9
  56. KEY7:   JNB        ACC.2,KEY8
  57.         MOV        A,#02H
  58.         SJMP        KEY9
  59. KEY8:   MOV        A,#03H                ;KEY2-KEY8確定該列上哪一行的按鍵被按下,行號最終存放在A中      
  60. KEY9:   XCH        A,R7
  61.         MOV        B,#04H
  62.         MUL        AB
  63.         ADD        A,R7                ;列號*4+行號得到鍵值,鍵值布局與電路結(jié)構和掃描順序有關      
  64.         MOV        DPTR,#KTAB1
  65.         MOVC        A,@A+DPTR        ;將鍵值轉(zhuǎn)換為我為鍵盤編的號  
  66.         MOV        7FH,A                ;最終得到的鍵號存入RAM的7FH單元   
  67. KEYUP:  MOV        DPTR,#RD244
  68.         MOVX        A,@DPTR
  69.         ANL        A,#0FH
  70.         CJNE        A,#0FH,KEYUP
  71.         RET
  72. ;-----掃描結(jié)果與鍵盤編號的對應-------------
  73. KTAB1:        DB 03H,07H,0BH,0FH
  74.         DB 02H,06H,0AH,0EH
  75.         DB 01H,05H,09H,0DH
  76.         DB 00H,04H,08H,0CH
  77. ;-----數(shù)碼管顯示子程序---------------------
  78. DISP:        MOV A,70H                ;將RAM中70H-73H單元中的數(shù)據(jù)顯示在對應的數(shù)碼管上     
  79.         MOV DPTR,#0800H
  80.         MOVX @DPTR,A
  81.         MOV A,71H
  82.         MOV DPTR,#1000H
  83.         MOVX @DPTR,A
  84.         MOV A,72H
  85.         MOV DPTR,#2000H
  86.         MOVX @DPTR,A
  87.         MOV A,73H
  88.         MOV DPTR,#4000H
  89.         MOVX @DPTR,A
  90.         RET
  91. ;-----共陽極段代碼-------------------------  
  92. TABLE:        DB 0C0H,0F9H,0A4H,0B0H, 99H,92H,82H,0F8H,80H;0-8
  93.         DB 90H, 88H, 83H,0C6H,0A1H,86H,8EH
  94.         END
復制代碼



全部資料51hei下載地址:
Keyboard_Array.rar (64.82 KB, 下載次數(shù): 6)



評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表