原创 16矩阵键盘程序

2007-9-10 21:30 4268 4 5 分类: MCU/ 嵌入式

/*     16矩阵键盘扫描程序
    1      2       3        4 
    5      6       7        8
    9      0       A       B
    C     D       E       F
    
     P3口扫描键盘输入,
   
    P1口控制显示输入值    */
                  
   ORG 0000H
   AJMP MAIN
   ORG 0030H
 MAIN:    MOV A ,#00H
 START:  MOV P3 ,#0FH         
   MOV  A ,P3
   CJNE A ,#0FH ,GO1    /*有键按下就调到GO1*/
   
   ACALL DEL10MS     /*延时维持数码管点亮显0*/
   AJMP START
  GO1:    ACALL DEL10MS     /*延时10ms去抖*/
    CJNE A ,#0FH ,KEY_SCAN  /*无键盘按下就返回*/
   AJMP START
 KEY_SCAN: MOV  P3,#0EFH     /*键盘扫描 P3.4开始*/
   JNB  P3.0 ,L1
   JNB  P3.1 ,L5
   JNB  P3.2 ,L9
   MOV  P3 ,#0DFH         /*扫描P3.5*/
   JNB  P3.0 ,L2
   JNB  P3.1 ,L6
   JNB  P3.2 ,L0
   MOV  P3 ,#0BFH         /*扫描P3.6*/
   JNB  P3.0 ,L3
   JNB  P3.1 ,L7
   MOV  P3 ,#7FH       /*扫描P3.7*/
   JNB  P3.0 ,L4
   JNB  P3.1 ,L8
   AJMP MAIN


  L0: MOV  A ,#00H      /*显0子程序*/
   AJMP GOON
  L1: MOV  A ,#01H     /*显1*/
   AJMP GOON
  L2: MOV  A ,#02H     /*显2*/
   AJMP GOON
  L3: MOV  A ,#03H      /*显3*/
   AJMP GOON
  L4: MOV  A ,#04H      /*显4*/
   AJMP GOON
  L5: MOV  A ,#05H      /*显5*/
   AJMP GOON
  L6: MOV  A ,#06H     /*显6*/
   AJMP GOON
  L7: MOV  A ,#07H     /*显7*/
   AJMP GOON
  L8: MOV  A ,#08H     /*显8*/显
   AJMP GOON
  L9: MOV  A ,#09H     /*显9*/
   AJMP GOON


  GOON:    MOV DPTR ,#DIS_TAB      /*调取数据表数据*/
   MOVC A ,@A+DPTR
   MOV P1 ,A     /*数据由P1显示*/
   LJMP MAIN 
   
   ORG 0250H
 DEL10MS: MOV R5 ,#0BH    /*10毫秒延时*/
 D1:  MOV R6 ,#02H
 D2:  MOV R7 ,#0FFH
 D3:  DJNZ R7 ,D3
   DJNZ R6 ,D2
   DJNZ R5 ,D1
   RET


   ORG 0300H
 DIS_TAB: DB 0C0H,0F9H,0A4H,0B0H,099H  /* 数据表显示:0,1,2,3,4 */
   DB 092H,082H,0F8H,080H,090H  /* 数据表显示:5,6,7,8,9,*/
   
   END



 

文章评论1条评论)

登录后参与讨论

用户163622 2008-8-28 16:48

怎么没有原理图啊?/

用户513513 2008-5-5 17:57

关于红外通信距离的问题 比如说:在家点产品中 红外遥控机采用单向数据的通讯,距离能达到5-6m 在手机的红外通讯中 数据是双向传输 距离很近 而且需要角度正确 而在有些远红外中,如PC掌机 可以达到10m以上 需要问的是 :在红外通讯的协议中,有没有对传输的距离进行定义,传输距离的大小 具体与哪些方面有关系。希望得到详细点的回答 最好是有资料的 不胜感激 PS:你文中的邮箱地址怎么不对? 本人 do_best_@126.com

用户10652 2008-1-22 12:18

hfgh
相关推荐阅读
用户371213 2011-07-23 23:13
FPGA的GTP信号PCB布线要点
FPGA的GTP信号PCB布线要点千兆位级串行I/O技术有着极其出色的优越性能,但这些优越的性能是需要条件来保证的,即优秀的信号完整性。例如,有个供应商报告说,他们第一次试图将高速、千兆位级串行设计用...
用户371213 2011-07-12 22:27
Win7下VC6.0 “打开工程”、“添加文件”导致崩溃问题
启动 打开文件 对话框,在 Visual c + + 中使用键盘快捷键或从 文件 菜单中将产生以下错误: 访问冲突 (0xC0000005) 在 0x5003eaed DEVSHL.DLL 中。...
用户371213 2011-01-21 17:35
DDR2 SDRAM硬件设计中需要注意地方
DDR2 SDRAM硬件设计中需要注意地方   在XXX板的设计过程中,DDR2 SDRAM的设计,遇到了不少困惑,经过与其他人交流和查阅相关资料,基本完成了DDR2 SDRAM部分的设计。这里以MT...
用户371213 2011-01-21 17:33
DDR2调试中的几个时钟的解释
DDR2调试中的几个时钟的解释 1. MCB需要三个基本时钟l  MCB system clocks ,memory controller的工作作时钟 和external memory device的...
用户371213 2007-09-21 22:28
劝诫
        给学电子的同学们转一好帖,对照它试着掂量一下自己,克制自己浮躁的学习态度。确实,学技术的不能浮躁,不能眼高手低,应该注重基础。                     请不要做浮躁的电...
用户371213 2007-09-14 22:25
FPGA开发软件Quartus7.1破解版
Quartus II7.1 PC版下载&&破解- [EDA相关]QuartusII更新快啊,喜欢体验新功能的要赶紧下了 ftp://ftp.altera.com/outgoing/re...
我要评论
1
4
关闭 站长推荐上一条 /2 下一条