找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3799|回复: 1
打印 上一主题 下一主题
收起左侧

有用汇编写的线反转法扫描键盘程序吗

[复制链接]
跳转到指定楼层
楼主
ID:71905 发表于 2015-1-9 13:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人最近在写单片机综设,需要用到汇编写扫描键盘程序,想用线反转法,求各位大神有用汇编写的线反转法扫描键盘的程序
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 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
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表