单片机查表程序编写 急!

单片机查表程序编写 急!,第1张

org 0000h

mov 30h, #1

mov 31h, #3

mov 32h, #5

mov 33h, #7

mov 34h, #9

mov 35h, #2

mov 36h, #4

mov 37h, #6

mov 38h, #8

mov 39h, #10

call SQRT

sjmp $

查表法求平方的程序如下。

SQRT:

MOV R0, #30H

MOV R1, #40H

MOV R2, #10

LOOP:

MOV A, @R0

ADD A, #S_TAB - ($ + 4)

MOVC A, @A + PC

MOV @R1, A

INC R0

INC R1

DJNZ R2, LOOP

RET

S_TAB:

DB 1, 4, 9, 16, 25, 36, 49, 64, 81, 100

LTB2:

-------------------下面是R2R3乘以2

MOV A, R3

CLR C

RLC A

MOV R3, A

XCH A, R2

RLC A

XCH R2, A

------------------下面是表首地址加上R2R3

MOV DPTR, #TAB2

ADD A, DPL (R2R3)+(DPTR)→(DPTR)

MOV DPL, A

MOV A, DPH

ADDC A, R2

MOV DPH, A

------------------下面是查表,查出两个字节

CLR A

MOVC A, @A + DPTR

MOV R2,A

CLR A

INC DPTR

MOVC A, @A + DPTR

MOV R3,A

RET

----

这个程序,是根据两个字节的数据来查表,查出的,也是两个字节。

如果先弄懂了一个字节的查表程序,看这个程序,也就没有什么难的了。

如下:

ORG 0000H

BUF1 EQU 30H

BUF2 EQU 40H

NEQU 0AH

MOV 30H, #05H 00~09H,加上这行,就是给定30H单元数据。

MOV R0, #5 这里不应该是5, 应该是BUF1

MOV R1, #BUF2以下不变

……


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7929442.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存