8279可编程设置型键盘

时间:2013-10-07 03:57:31
【文件属性】:
文件名称:8279可编程设置型键盘
文件大小:44KB
文件格式:DOC
更新时间:2013-10-07 03:57:31
8279 8279可编程设置型键盘 ;键盘和LED显示程序 ; ;********************************************* ;* 8279 初始化 * ;* KEYCOM为8279命令口 KEYDAT为8279数据口 * ;********************************************* KEYCOM XDATA 0E601H KEYDAT XDATA 0E600H KEYCAM EQU 30H ;定义存放按键值RAM起始地址 ORG 0000H AJMP START ORG 0003H LJMP AAA ORG 0060H START: MOV R0,#10 MOV DPTR,#KEYCOM ;命令口地址 MOV A, #10H ;键盘/显示方式命令字8字符显示左入口,编码键盘,双键锁定 MOVX @DPTR,A MOV A,#34H ;程序时钟命令 26分频对外部输入时钟 MOVX @DPTR,A MOV A,#0DFH ;清除显示缓冲区命令 MOVX @DPTR,A BUSY1: MOVX A,@DPTR JB ACC.7,BUSY1 MOV IE,#81H MOV DPTR,#KEYDAT MOV A,#0C8H MOVX @DPTR,A ;字型送入8279 INC DPTR MOV A,#90H MOVX @DPTR,A ;字位送入8279(显示P) HA7S2: MOV 30H,#80H MOV 31H,#40H HA7S3: MOV DPTR,#KEYCOM MOVX A ,@DPTR ANL A,#07H CJNE A,#00H ,HA7S4; AJMP HA7S3 HA7S4: MOV DPTR ,#KEYDAT MOVX A,@DPTR MOV B,A ;取键值 MOV R1,#00H MOV DPTR ,#KEYTAB ;数字键键值表 HA7S5: MOV A , #00H MOVC A,@A+DPTR CJNE A , B ,HA7S6;查键值表是否相同 AJMP HA7SA; 转数字键处理程序 HA7S6: INC DPTR ;键值表地址加1 INC R1 ;查找次数加1 MOV A,R1 JB ACC.4 ,HA7S7 ;是功能键吗? AJMP HA7S5 ; 继续查找 HA7S7: MOV R1,#00H MOV DPTR ,#KEYTAB1 ;功能键表地址 HA7S8: MOV A,#00H MOVC A,@A+DPTR ;取出功能键键值 CJNE A,B,HA7S9 ;键值相同吗? AJMP HA7SC ;转功能键处理子程序 HA7S9: INC DPTR INC R1 MOV A,R1 JNB ACC.2,HA7S8 ;继续查找 LJMP START ;;; AJMP HA7SD ;无按键返回 HA7SD: LJMP START HA7SA: MOV A ,30H MOV DPTR ,#0FE01H MOVX @DPTR ,A; 字位送入8279 MOV A,R1 MOV R0,31H MOV @R0,A INC 31H MOV DPTR ,#CDATA MOVC A,@A+DPTR;取字型代码 MOV DPTR,#KEYDAT MOVX @DPTR,A ;送8279显示 INC 30H MOV A,30H ;字位加1 CJNE A,#88H,HA7SB ; LJMP HA7S2 HA7SB: AJMP HA7S3 HA7SC: MOV DPTR ,#KJPADDR MOV A,R1 RL A ;; ADD A,R1 ADD A,#00H JMP @A+DPTR ; KJPADDR: LJMP LOOP0 LJMP LOOP1 LJMP LOOP2 KEYTAB: DB 0C1H,0C8H,0C9H,0D0H,0D8H,0E0H,0C2H,0CAH,0D1H,0D9H DB 0DAH,0C3H,0CBH,0D2H,0D3H,0DBH KEYTAB1:DB 0E3H,0E2H,0E1H CDATA: DB 0CH,9FH,4AH,0BH,99H,29H,28H,8FH,08H,09H,88H,38H,6CH,1AH,68H,0E8H LOOP0:MOV R5,#0CH ;0 LJMP DISPC LOOP1:MOV R5,#9FH ;1 LJMP DISPC LOOP2:MOV R5,#4aH ;2 DISPC: MOV R6,#80H DISPC1: MOV DPTR ,#KEYCOM MOVX @DPTR,A ;字位送8279 MOV A ,R5 MOV DPTR ,#KEYDAT ;字形送8279 MOVX @DPTR ,A LCALL DELAY1 ; MOV A ,#0FFH ; MOVX @DPTR ,A ;关显示 ; INC R6 ; ; CJNE R6,#88H,DISPC1 ; AJMP DISPC; LJMP HA7S2 AAA: NOP NOP RETI DELAY1:MOV R1,#0FAH DELAY2:NOP NOP DJNZ R1,DELAY2 DJNZ R0,DELAY1 RET END

网友评论

  • 不错,可以参考过程。