全站数据
8 4 2 0 5 8 1

MCS-51单片机查表程序

长沙IT研习社 | 简单学习,快乐成才!         
问题更新日期:2024-10-23 13:03:23

问题描述

MCS-51单片机查表程序,麻烦给回复
精选答案
最佳答案

16和7是查表指令时的PC与数据表格之间的字节数

MOV A ,@R0 ;取R0指向的地址中的数据到A

ANL A,#0FH ;高四位清零

ADD A,#16 ;加16

MOVC A, @A+PC;查表,表的首地址为绝对地址PC+A

MOVC A,@A+PC就需要1个字节啊

查表指令距离表首地址的长度是字节数

用DPTR的汇编程序:

ORG 0100H

MOV 30H,#12H

MOV 31H,#34H

MOV 32H,#56H

MOV 33H,#78H

LCALL SUBRTE

ORG 1000H

SUBRTE:MOV R0,#30H ; ;置地址指针R0初值

MOV R1,#40H ; ;置地址指针R1初值

MOV R2,#4 ; ;置字节数

LOOP:MOV A,@R0;;取16进制数

ANL A,#0FH;;屏蔽高4位

MOVDPTR,#TABLE;;

MOVC A,@A+DPTR ;;查表低4位转换为ASCⅡ码

MOV @R1,A ; ;送结果

INC R1 ;;修改指针

MOV A,@R0 ;;从新取16进制数

SWAP A ;;高4位与低4位互换

ANL A,#0FH ; ;取高4位

ADD A,#7

MOVC A,@A+PC;;查表高4位转换为ASCⅡ码

MOV @R1,A

INC R0

INC R1

DJNZ R2,LOOP

DEC R1

RET

TABLE: DB '012345678'

DB '9ABCDEF'

END