当前位置:首页 > 单片机 > 单片机
[导读];取键值程序;功能:等待键入,并刷新显示,并返回键值放A;占用:PSW,A,DPTR,R0,R2,R3,R4,R6,R7;入口:无出口:AORG0190HWAT_KB:MOVR0,#3FHWAT_0:ACALLDISP_0;刷新显示器ACALLT_KBJZWAT_0;无键,循环ACALLKEY_LD;延时消

;取键值程序

;功能:等待键入,并刷新显示,并返回键值放A


;占用:PSW,A,DPTR,R0,R2,R3,R4,R6,R7

;入口:无出口:A

ORG0190H

WAT_KB:MOVR0,#3FH


WAT_0:ACALLDISP_0;刷新显示器


ACALLT_KB


JZWAT_0;无键,循环


ACALLKEY_LD;延时消抖,刷新显示

JZWAT_0;无键,循环

KB_VUL:CLRA


CPLA


MOVDPTR,#PORT_B

MOVX@DPTR,A;关显示


MOVR2,#0FEH

MOVR4,#0


KB_1:MOVDPTR,#PORT_A

MOVA,R2

MOVX@DPTR,A;扫描键盘


INCDPTR


INCDPTR

MOVXA,@DPTR;读键盘

CPLA


ANLA,#0FH;屏蔽无效位

JNZKB_2;有键,转键分析


INCR4

MOVA,R2


JNBACC.7,WAT_0;无键,返回


RLA


MOVR2,A

SJMPKB_1;无键,扫描下一行

KB_2:RRCA

JCKB_3;有键,转取键值

XCHA,R4;取下一行


ADDA,#8


XCHA,R4

SJMPKB_2;无键,循环

KB_3:MOVR2,#21

KB_4:ACALLDISP_0

ACALLT_KB

JZKB_5;刷新显示,等键释放

DJNZR2,KB_4


KB_5:MOVDPTR,#KEY_TB


MOVA,R4

MOVCA,@A+DPTR;取键值

RET


KEY_LD:ACALLDISP_0


ACALLDISP_0


ACALLT_KB


RET


KEY_TB:DB07H,08H,09H,0AH;7,8,9,A

DB1CH,1DH,1EH,11H;FFIS/FUNC,FFNO/USER,FILL/MODE,空


DB04H,05H,06H,0BH;4,5,6,B


DB1AH,1BH,1FH,10H;COMP/DEC,MOVE/HEX,OFST/HIST,MON


DB01H,02H,03H,0CH;1,2,3,C


DB18H,19H,14H,15H;BP/BTOP,BT/BENT,EXEC,SCAL


DB00H,0FH,0EH,0DH;0,F,E,D

DB16H,17H,12H,13H;NEXT/+,LAST/-,TRAC,STEP


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭