找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

有用匯編寫的線反轉法掃描鍵盤程序嗎

[復制鏈接]
跳轉到指定樓層
樓主
ID:71905 發(fā)表于 2015-1-9 13:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本人最近在寫單片機綜設,需要用到匯編寫掃描鍵盤程序,想用線反轉法,求各位大神有用匯編寫的線反轉法掃描鍵盤的程序
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2015-1-9 14:47 | 只看該作者
反轉法掃描的匯編程序:電路圖:矩陣鍵盤接p1口,數碼管位接p2 段選接p3,程序經過測試的可以用.
  1.         org 0000h
  2.         ljmp main
  3.         org 0030h
  4. main:   mov P2,#0feh    ;送數碼管位選
  5.         lcall scan      ;調用掃描函數
  6.         ljmp main
  7. scan:   mov P1,#0f0h
  8.         mov a,90h       ;讀引腳
  9.         cjne a,#0f0h,start0  ;
  10.         ljmp exit
  11. start0: lcall delay
  12.         mov P1,#0f0h
  13.         mov a,90h       ;再次讀引腳
  14.         cjne a,#0f0h,start1
  15.         ljmp exit
  16. start1: mov r3,a        ;存取行的碼值

  17.         mov P1,#0fh
  18.         mov a,90h          ;
  19.         cjne a,#0fh,start2
  20.         ljmp exit
  21. start2: lcall delay

  22.         mov P1,#0fh
  23.         mov a,90h       ;讀取列碼值
  24.         mov r2,a
  25.         cjne a,#0fh,strat3
  26.         ljmp exit
  27. strat3: ;mov r2,a

  28.         anl a,#0fh
  29.         mov r2,a
  30.         mov a,r3
  31.         anl a,#0f0h
  32.         orl a,r2
  33.        ; orl a,r3

  34.         mov 60h, a         ;存取鍵的碼值
  35.         mov r5,#00h
  36.         mov dptr,#cod
  37. w1:     mov a,r5
  38.         movc a,@a+dptr    ;開始查表
  39.         inc r5
  40.         cjne a,60h,w1      ;直到查表結束
  41.         lcall display     ;查到后開始顯示
  42. exit:   ret
  43. display:mov a,r5          ;顯示的數值代號存在r5中
  44.         subb a,#01h
  45.         mov dptr,#num
  46.         movc a,@a+dptr
  47.         mov P3,a          ;送數碼管段碼
  48.         ret



  49. delay:  MOV R5,#10
  50.   D2:        MOV R6,#2
  51.   D1:        MOV R7,#248
  52.         DJNZ R7,$
  53.         DJNZ R6,D1
  54.         DJNZ R5,D2
  55.         RET

  56.         ORG 0500H
  57. num:    DB  0C0H,0F9H,0A4H,0B0H,99H
  58.         DB   92H,82H,0F8H,080H,90H,88h,83h,0c6h,0a1h,86h,8eh
  59.         org 0550h
  60. cod:    db   0eeh,0deh,0beh,7eh, 0edh,0ddh,0bdh,7dh
  61.         db   0ebh,0dbh,0bbh,7bh,0e7h,0d7h,0b7h,77h

  62.         end
復制代碼
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

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