《4×4矩阵键盘的工作原理与编程》-《电子制作》2006年第3期
作者:gguoqing出处:《电子制作》杂志更新时间: 2006年04月08日
“单片机新手入门实例详解”之三《4×4矩阵键盘的工作原理与编程》-原文发
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
在《电子制作》2006年第3期,作者:gguoqing
=====================================进入论坛讨论本文:
=====================================源程序:;********************************************************************************;*标题:伟纳电子ME300B单片机开发系统演示程序-矩阵键盘数码管显示键值*;*文件:WL031.asm*;*日期:2005-3-20*;*版本:1.0*;*作者:gguoqing*;*邮箱:gguoqing@willar.com*;*网站:
;*;********************************************************************************;*描述:*;*矩阵键盘数码管显示键值*;**;*矩阵键盘定义:*;*P1.0-P1.3为列线,P1.4-P1.7为行线*;**;**;********************************************************************************;*【版权】Copyright(C)伟纳电子www.willar.comAllRightsReserved*;*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!*;********************************************************************************RELAYEQUP1.3BEEPEQUP3.7;------------------------------------------------------ORG0000HJMPMAIN;------------------------------------------------------MAIN:MOVSP,#60HMOV30H,#00HLOOP1:CALLKEY_INCALLKEY_PLAERJMPLOOP1;-----------------------------------------------------KEY_IN:MOVP1,#0F0H;置列线为0,行线为1MOVA,P1ANLA,#0F0HMOVB,AMOVP1,#0FH;置列线为1,行线为0MOVA,P1ANLA,#0FHORLA,B;高四位与低四位重新组合CJNEA,#0FFH,KEY_IN1;0FFH为末按键RETKEY_IN1:MOVB,AMOVDPTR,#KEYTABLEMOVR3,#0FFH;KEY_IN2:INCR3MOVA,R3MOVCA,@A+DPTRCJNEA,B,KEY_IN3MOVA,R3;找到,取顺序码MOV30H,ACALLBEEP_BLRETKEY_IN3:CJNEA,#0FFH,KEY_IN2;末完,继续查RET;0FFH为结束码;----------------------------------------------;蜂鸣器响一声子程序;----------------------------------------------BEEP_BL:MOVR6,#100BL1:CALLDEX1CPLBEEPDJNZR6,BL1MOVR5,#25CALLDELAYRETDEX1:MOVR7,#180DEX2:NOPDJNZR7,DEX2RETDELAY:;延时R5×10MSMOVR6,#50DELAY1:MOVR7,#100DJNZR7,$DJNZR6,DELAY1DJNZR5,DELAYRET;-----------------------------------------------------KEYTABLE:DB0EEH,0EDH,0EBH,0E7H,0DEH;0,1,2,3,4,顺序码DB0DDH,0DBH,0D7H,0BEH,0BDH;5,6,7,8,9,DB0BBH,0B7H,07EH,07DH,07BH;A,B,C,D,E,DB077H,0FFH;F0FF为结束码;-----------------------------------------------------;键值显示子程序;使用一个数码管显示;-----------------------------------------------------KEY_PLAER:MOVA,30HMOVDPTR,#TAB;取段码表地址MOVCA,@A+DPTR;查显示数据对应段码MOVP0,A;段码放入P0口CLRP2.7;第一个数码管亮RET;-----------------------------------------------------TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8HDB80H,90H,88h,83h,0c6h,0a1h,86h,8eh;-----------------------------------------------------END