at89s51单片机实验——按键识别(编辑修改稿)内容摘要:
程,就是使其恢复成高电平状态。 ( 1. 对于按键识别的指令,我们依然选择如下指令 JB BIT, REL 指令是用来检测 BIT 是否为高电平,若BIT= 1,则程序转向 REL处执行程序,否则就继续向下执行程序。 或者是 JNB BIT, REL指令是用来检测 BIT 是否为低电平,若 BIT= 0,则程序转向 REL 处执行程序,否则就继续向下执行程序。 ( 2. 但对程序设计过程中按键识别过程的框图如右图所示: 图 AT89S51单片机实验及实践教程 51 5. 程序框图 图 6. 汇编源程序 ORG 0 START: MOV R1,00H。 初始化 R7为 0,表示从 0开始计数 MOV A,R1。 CPL A。 取反指令 MOV P1,A。 送出 P1端。at89s51单片机实验——按键识别(编辑修改稿)
相关推荐
XRL A,0FH JZ NOKEY4 LCALL DELY10MS MOV A,P3 ANL A,0FH XRL A,0FH JZ NOKEY4 MOV A,P3 ANL A,0FH CJNE A,0EH,NK13 MOV KEYBUF,12 AT89S51单片机实验及实践教程 75 LJMP DK4 NK13: CJNE A,0DH,NK14 MOV KEYBUF,13 LJMP DK4
MOV KEYBUF,10 LJMP DK3 NK11: CJNE A,07H,NK12 MOV KEYBUF,11 LJMP DK3 NK12: NOP DK3: MOV A,KEYBUF MOV DPTR,TABLE MOVC A,@A+DPTR MOV P0,A MOV A,KEYBUF MOV B,2 MUL AB MOV TEMP,A MOV DPTR,TABLE1 MOVC A
RT: MOV Count,00H NEXT: MOV A,Count MOV B,10 DIV AB MOV DPTR,TABLE MOVC A,@A+DPTR MOV P0,A MOV A,B MOVC A,@A+DPTR MOV P2,A WT: JNB SP1,WT WAIT: JB SP1,WAIT LCALL DELY10MS AT89S51单片机实验及实践教程 59 JB SP1
R5,248 DJNZ R5,$ DJNZ R4,D1 DJNZ R3,DELAY RET TABLE: DB 0FEH,0FDH,0FBH,0F7H AT89S51单片机实验及实践教程 42 DB 0EFH,0DFH,0BFH,07FH DB 0FEH,0FDH,0FBH,0F7H DB 0EFH,0DFH,0BFH,07FH DB 07FH,0BFH,0DFH,0EFH DB 0F7H
Y500 LCALL DELY500 DJNZ R2,DV CPL FLAG NEXT: MOV R2,200 DV1: CPL LCALL DELY500 开始 K1 按下了吗。 FLAG= 0吗。 置 200 次计数 输出取反 延时 500us 计数值计完了吗。 FLAG 取反 置 200 次计数 输出取反 延时 1ms 计数值计完了吗。 FLAG 取反 AT89S51单片机实验及实践教程
只能采用查表的方式来完成我们所需的要求了。 这样我们按着数字 0- 9 的顺序,把每个数字的笔段代码按顺序排好。 建立的表格如下所示: TABLE DB 3FH, 06H, 5BH,4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH 5.程序框图 图 6. 汇编源程序 ORG 0 START: MOV R1,00H NEXT: MOV A,R1 AT89S51单片机实验及实践教程