单片机学习小组
直播中

廉鼎琮

7年用户 945经验值
私信 关注

如何将显示缓冲区的数据取出拼装成一个字节呢

如何将显示缓冲区的数据取出拼装成一个字节呢?如何修改程序呢?

回帖(1)

孙缅禧

2022-1-21 11:09:53
chapter1

1、本试验把2000h、2001h的低位分别送入2002h高低位,用于把显示缓冲区的数据取出拼装成一个字节。通过该实验学生可以了解单片机读写存储器的方法,同时也可以了解单片机编程、调试方法。

ORG 0000H;
MOV DPTR,#2000H;
MOVX A,@DPTR;


ANL A,#0FH;
SWAP A;
MOV R1,A;
INC DPTR;


MOVX A,@DPTR;
ANL A,#0FH;
ORL A,R1;
INC DPTR;
MOVX @DPTR,A;
END;


2、假使拆字,把2000h的内容拆开,高位送2001h低位,低位送2002h低位,2001h、2002h高位清零,如何修改程序。

ORG 0000H;
MOV DPTR,#2000H;
MOVX A,@DPTR;


ANL A,#0F0H;                //取高位
SWAP A;                //高位移到低位
INC DPTR;                //当前变2001h
MOVX @DPTR,A;                //把原来2000h的高位送到20001h低位


MOV DPTR,#2000H;
MOVX A,@DPTR;
ANL A,#0FH;                //取低位
MOV DPTR,#2002H;               
MOVX @DPTR,A;                //把原来2000h的高位送到2002h低位
END;


chapter2

1、数据区传送子程序

MOV R0,#30H;
MOV A,#01H;
INIT:MOV @R0,A;
INC R0;
INC A;
CJNE R0,#3AH,INIT;


MOV R0,#30H;
MOV R1,#60H;
TRANS:MOV A,@R0;
MOV @R1,A;
INC R0;
INC R1;
CJNE R1,#6AH,TRANS;
END;


2、数据排序实验

ORG 000H
LJMP QUE
ORG 09B0H
QUE:MOV R3,#50H
QUE1:MOV A,R3;


MOV R0,A
MOV R7,#0AH;
CLR 00H;
MOV A,@R0
QL2:INC R0


MOV R2,A
CLR C
MOV 22H,@R0
CJNE A,22H,QL3
SETB C


QL3:MOV A,R2
JC QL1                //JNC QL1
SETB 00H
XCH A,@R0
DEC R0


XCH A,@R0
INC R0;
QL1:MOV A,@R0
DJNZ R7,QL2
JB 00H,QUE1


LOOP:SJMP LOOP
END
举报

更多回帖

发帖
×
20
完善资料,
赚取积分