正在加载图片...
MOV A402 :第一行有键按下,该行首键号#02A一 LKP: ADD A.R4 :健号=首行号十列号 PUSH ACC :键号进栈保护 LK3: ACALL KS1 :等待键释放 JNZ LK3 未释放,等特 POP AC :健释放,健号 A→ RET :键扫描结束 NEXT INC R4 :列号加1,指向下一列 MOV A.R2 :列扫描字 A→ JNB ACC.1,KND:判断2列全扫描完?扫描完,转KND RL A :没扫描完,扫描字左移一位,形成下一列扫描字 MOV R2,A :扫描字 R2→ AJMP LK4 ;扫描下一列 AJMP KEYI :全扫描完,返回 MOV A.#FCH :全扫描字1I11100B A→ MOV P1,A :全扫描字 所行行 MOV A.PI ;读取列值 CPL A ;取正逻辑,高电平表示有键按下 ANL A.#0COH 屏蔽低6位,取高2位 RET :出口状态(A)=0,有键按下 5婴求将存放在8031单片机内部RAM中30H-33H单元的4字节数据,按十六进制(8位)从做到右显示,试 编制程序。 ORG1000H:指向显示缓冲区 MOVR0,#30H:显示字节数 MOV R2,#04 初始显示位置(最高位 MOV P1,#08H :取1B SDLAY: MOV A,@RO :备份 MOV B.A ;截取字节高位 ANL A.#OFOH :装入P1.4-P1.7 ORL P1,A :准备显示右一位 MOV A,#02 ;第一行有键按下,该行首键号#02 A LKP: ADD A,R4 ;键号=首行号+列号 PUSH ACC ;键号进栈保护 LK3: ACALL KS1 ;等待键释放 JNZ LK3 ;未释放,等待 POP AC ;键释放,键号 A RET ;键扫描结束 NEXT: INC R4 ;列号加 1,指向下一列 MOV A,R2 ;列扫描字 A JNB ACC.1,KND ;判断 2 列全扫描完?扫描完,转 KND RL A ;没扫描完,扫描字左移一位,形成下一列扫描字 MOV R2,A ;扫描字 R2 AJMP LK4 ;扫描下一列 AJMP KEY1 ;全扫描完,返回 MOV A,#FCH ;全扫描字 11111100B A MOV P1,A ;全扫描字 所有行 MOV A,P1 ;读取列值 CPL A ;取正逻辑,高电平表示有键按下 ANL A,#0C0H ;屏蔽低 6 位,取高 2 位 RET ;出口状态(A)!=0,有键按下 5 要求将存放在 8031 单片机内部 RAM 中 30H—33H 单元的 4 字节数据,按十六进制(8 位)从做到右显示,试 编制程序。 ORG 1000H ;指向显示缓冲区 MOV R0,#30H ;显示字节数 MOV R2,#04 ;初始显示位置(最高位) MOV P1,#08H ;取 1B SDLAY: MOV A,@R0 ;备份 MOV B,A ;截取字节高位 ANL A,#0F0H ;装入 P1.4—P1.7 ORL P1,A ;准备显示右一位
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有