久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6081|回復: 0
打印 上一主題 下一主題
收起左側

4×4鍵盤按鍵顯示對應鍵值單片機程序和proteus仿真

[復制鏈接]
跳轉到指定樓層
樓主
51單片機驅動4×4鍵盤按鍵顯示對應鍵值程序

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載):


單片機源程序如下:
  1. 偽定義        
  2.         KEYBUF    EQU    30H     ;鍵值暫存單元,查表時用
  3. ;*************************************
  4. ;*                                   *
  5. ;*      主程序和中斷程序入口         *
  6. ;*                                   *
  7. ;*************************************
  8.   ORG     0000H       ;程序執行開始地址
  9.   AJMP    MAIN                ;跳至MAIN執行
  10. ;*************************************
  11. ;*                                   *
  12. ;*        主  程  序             *
  13. ;*                                   *
  14. ;*************************************
  15.                 ORG     0040H
  16. MAIN:           MOV     P1,#0FFH
  17.                 CLR     P2.0
  18.                 LCALL   KEYSCAN         ;主體程序。調用查鍵子程序
  19.   LJMP MAIN    ;轉MAIN循環
  20.   NOP     ;軟件陷阱
  21.   NOP
  22.   NOP
  23.   LJMP MAIN   
  24. ;*************************************
  25. ;*                                   *
  26. ;* 鍵盤工作子程序(4 * 4 陣列)      *
  27. ;* 出口為各鍵工作程序入口 P1口      *
  28. ;*************************************
  29. KEYSCAN:        
  30.      MOV P1,#0FFH;清P1口,初始化鍵低電平有效
  31.      CLR P1.4;清P1.4口
  32.      MOV A,P1;讀P1口狀態
  33.      ANL A,#0FH;清高4位,保留低四位低電平有效
  34.      XRL A,#0FH;異或相同則為0不同結果為1,為0則表示無鍵被按下(這一行)
  35.      JZ NOKEY1;為0則轉下一行鍵值處理
  36.      LCALL DL10MS;有鍵按下則延時10ms再測一次抗干擾
  37.      MOV A,P1
  38.      ANL A,#0FH
  39.      XRL A,#0FH
  40.      JZ NOKEY1;是干擾則轉下一行鍵值處理程序
  41.      MOV A,P1
  42.      ANL A,#0FH;保留低四?
  43. KB1:
  44.      CJNE A,#0EH,KB2;如果值為#0E則為P1.4與P1.0組合的鍵
  45.      MOV KEYBUF,#0;賦鍵值
  46.      LJMP KEYWORK;轉鍵處理
  47. KB2: CJNE A,#0DH,KB3;如果值為#0D則為P1.4與P1.1組合的鍵
  48.      MOV KEYBUF,#1
  49.      LJMP KEYWORK
  50. KB3: CJNE A,#0BH,KB4;如果值為#0B則為P1.4與P1.2組合的
  51.      MOV KEYBUF,#2
  52.      LJMP KEYWORK
  53. KB4: CJNE A,#07H,KB5;如果值為#07則為P1.4與P1.3組合的
  54.      MOV KEYBUF,#3
  55.      LJMP KEYWORK
  56. KB5: NOP


  57. NOKEY1:
  58.      MOV P1,#0FFH
  59.      CLR P1.5
  60.      MOV A,P1
  61.      ANL A,#0FH
  62.      XRL A,#0FH
  63.      JZ NOKEY2
  64.      LCALL DL10MS
  65.      MOV A,P1
  66.      ANL A,#0FH
  67.      XRL A,#0FH
  68.      JZ NOKEY2
  69.      MOV A,P1
  70.      ANL A,#0FH
  71.      CJNE A,#0EH,KB6
  72.      MOV KEYBUF,#4
  73.      LJMP KEYWORK
  74. KB6: CJNE A,#0DH,KB7
  75.      MOV KEYBUF,#5
  76.      LJMP KEYWORK
  77. KB7: CJNE A,#0BH,KB8
  78.      MOV KEYBUF,#6
  79.      LJMP KEYWORK
  80. KB8: CJNE A,#07H,KB9
  81.      MOV KEYBUF,#7
  82.      LJMP KEYWORK
  83. KB9: NOP


  84. NOKEY2:
  85.      MOV P1,#0FFH
  86.      CLR P1.6
  87.      MOV A,P1
  88.      ANL A,#0FH
  89.      XRL A,#0FH
  90.      JZ NOKEY3
  91.      LCALL DL10MS
  92.      MOV A,P1
  93.      ANL A,#0FH
  94.      XRL A,#0FH
  95.      JZ NOKEY3
  96.      MOV A,P1
  97.      ANL A,#0FH
  98.      CJNE A,#0EH,KB10
  99.      MOV KEYBUF,#8
  100.      LJMP KEYWORK
  101. KB10: CJNE A,#0DH,KB11
  102.      MOV KEYBUF,#9
  103.      LJMP KEYWORK
  104. KB11: CJNE A,#0BH,KB12
  105.      MOV KEYBUF,#10
  106.      LJMP KEYWORK
  107. KB12: CJNE A,#07H,KB13
  108.      MOV KEYBUF,#11
  109.      LJMP KEYWORK

  110. KB13: NOP


  111. NOKEY3:
  112.      MOV P1,#0FFH
  113.      CLR P1.7
  114.      MOV A,P1
  115.      ANL A,#0FH
  116.      XRL A,#0FH
  117.      JZ NOKEY4
  118.      LCALL DL10MS
  119.      MOV A,P1
  120.      ANL A,#0FH
  121.      XRL A,#0FH
  122.      JZ NOKEY4
  123.      MOV A,P1
  124.      ANL A,#0FH
  125.      CJNE A,#0EH,KB14
  126.      MOV KEYBUF,#12
  127.      LJMP KEYWORK
  128. KB14: CJNE A,#0DH,KB15
  129.      MOV KEYBUF,#13
  130.      LJMP KEYWORK
  131. KB15: CJNE A,#0BH,KB16
  132.      MOV KEYBUF,#14
  133.      LJMP KEYWORK
  134. KB16: CJNE A,#07H,KB17
  135.      MOV KEYBUF,#15
  136.      LJMP KEYWORK
  137. KB17: NOP

  138. NOKEY4:
  139.      LJMP MAIN

  140. KEYWORK:
  141.       MOV A,KEYBUF;得到鍵值
  142.       MOV  DPTR,#TABLE
  143.       MOVC A,@A+DPTR;查行鍵值送ACC
  144.       MOV P0,A;

  145.      
  146. WAITFREE:
  147.      MOV A,P1;以下程序等待鍵釋放
  148.      MOV KEYBUF,#00H
  149.      ANL A,#0FH
  150.      XRL A,#0FH
  151.      JNZ WAITFREE
  152.      RET
  153. ;
  154. ;*************************************
  155. ;*                                   *
  156. ;*          延時513 us              *
  157. ;*                                   *
  158. ;*************************************
  159. ;
  160. ;513微秒延時程序
  161. DELAY:          MOV     R2,#0FEH
  162. DELAY1:         DJNZ    R2,DELAY1
  163.   RET
  164. ……………………

  165. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
4X4鍵盤顯示.zip (30.35 KB, 下載次數: 26)


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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久操av在线 | 国产分类视频 | www.99精品 | 亚洲精品日韩一区二区电影 | 欧美日韩毛片 | 国产精品亚洲精品久久 | 亚洲一区 | 毛片网在线观看 | 91成人精品 | 久久久久久久久久久成人 | 三级黄色大片网站 | 日韩免费毛片视频 | 国产午夜精品一区二区三区嫩草 | 久久精品视频免费看 | 美日韩免费视频 | 成人免费视频观看视频 | 狠狠干美女 | 蜜桃在线一区二区三区 | 高清国产一区二区 | 国产精品不卡一区 | 欧美日韩一区在线 | 精品人伦一区二区三区蜜桃网站 | 日韩国产一区二区 | 国产成人午夜精品影院游乐网 | 新91视频网 | 午夜精品久久久久久久久久久久 | 激情一区二区三区 | 欧美国产视频 | 日韩一二区 | 亚洲一区二区三区在线免费观看 | 欧美亚洲国产一区二区三区 | 91精品国产综合久久国产大片 | 九九九视频在线 | 欧美日韩国产精品一区 | 日韩精品视频网 | 精品久久久久久久久久久 | 国产一区二区三区欧美 | 成人三区 | 久久久精品网站 | 精品久久香蕉国产线看观看亚洲 | 日韩二区三区 |