MCS-51单片机查表程序的问题

MCS-51单片机查表程序的问题,第1张

MOV DPTR,#TAB

MOVC A,@A+DPTR

CPL A ;理解这句

MOV P0,A

MOV DPTR,#TAB 这句是将TAB处的内容地址移入DPTR寄存器(51单片机中唯一的一个16位的)

MOVC A,@A+DPTR 这句将(A寄存器中的内容+DPTR)中的地址处的数据移入A

比如此时 A=0,DPTR=300,这时就将300+0寄存器里的数据移到A

如果A=2,DPTR=300,这时就将(300+2)寄存器里的数据移到A

CPL A ; A求反,

MOV P0,A 将A的值移入P0口,用数码管等显示出来结果

SERCHA:

MOV DPTR,#2000H

MOV R2,#100

LOOP:

MOVX A,@DPTR

CJNE A,#'A',LOOP1

PUSH DPH

PUSH DPL

MOV DPTR,#20A0H

POP ACC

MOVX @DPTR,A

INC DPTR

POP ACC

MOVX @DPTR,A

RET

LOOP1:

INC DPTR

DJNZ R2,LOOP

RET

程序一 求31H中的平方到31H

MOV A,30H ;// 将30H中的内容送累加器A

MOV DPTR,#3000H; //偏移寄存器送值 DPTR=3000H

MOVC A,@A+DPTR ; // 将 地址A+DPTR=30H+3000H 中的内容送到 累加器A,即进行差表,表的//起始地址为DPTR=3000H ,偏移量 A=(30H),注意此处的MOVC

MOV 31H,A; //将 A中的内容 放回 地址31H ,即 (31H)=A

SJMP $;//跳转

3000H:DB 0,1,4,9,16 ;// 表的内容 起始与地址3000H

程序二 类似,只是多了一个循环,和一个比较判断。

;

RL A

MOV B, A

MOV DPTR, #TAB

MOVC A, @A + DPTR

MOV R7, A

MOV A, B

INC A

MOVC A, @A + DPTR

MOV R6, A

RET

TAB:

DW 0, 1, 4, 9, 16, 25, 36, 49, , 400 ; 平方数据表,楼主自己补全吧。

END

以上就是关于MCS-51单片机查表程序的问题全部的内容,包括:MCS-51单片机查表程序的问题、单片机问题,试编一查表程序、基础差,2个简单的51查表程序,求高手解释每一步,谢谢啦~等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9462986.html

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

发表评论

登录后才能评论

评论列表(0条)

保存