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
|