MCS51笔记

IEQEFCR / 2023-05-19 / 原文

转载笔记

MCS-51第二章

MCS-51第三章

作业一

原作业

//第一题 R0转换成七段数码管显示
ORG        0000H
MOV        A,R0
MOV        DPTR,#SEVEN_SEG
MOVC       A,@A+DPTR
SJMP       TRANS

SEVEN_SEG:
DB      3FH,06H,5BH,4FH,66H
DB      6DH,7DH,07H,7FH,4FH
DB      77H,0xFC,39H,5EH,79H
DB      71H 

TRANS:
MOV     P1,A
RET
//第二题 实现逻辑功能函数
ORG     0000H
U       EQU 30H
V       EQU 31H
W       EQU 32H
X       EQU 33H
Y       EQU 34H
Z       EQU 35H
RES1    EQU 36H
RES2    EQU 37H
RES3    EQU 38H
RES4    EQU 39H
RES5    EQU 3AH
MOV     A,V
MOV     R0,W
ACALL   MYOR
XCH     A,RES1
MOV     A,Y
ACALL   MYNOW
XCH     A,RES2
MOV     A,U
MOV     R0,RES1
ACALL   MYAND
XCH     A,RES3
MOV     A,X
MOV     R0,RES2
ACALL   MYAND
XCH     A,RES4
MOV     A,Z
ACALL   MYNOT
XCH     A,RES5
MOV     A,RES3
MOV     R0,RES4
ACALL   MYOR
MOV     R0,RES5
ACALL   MYOR
SJMP    $

MYAND:
ANL     A,R0 
RET

MYOR:
ORL     A,R0
RET

MYNOT:
XRL     A,#11111111B
RET     
//第三题 嵌套延时
ORG     0000H      
DELAY:
MOV     R0,#20H
DELAY1:
MOV     R1,#100D
DELAY2:
NOP
NOP
NOP
DJNZ    R1,DELAY2
DJNZ    R0,DELAY1
SJMP    $
;第四题
ORG     0000H
MAX EQU 20H
MIN EQU 21H
SUM EQU 22H
MOV R0 ,#40H
MOV R1 ,#09H
MOV SUM , @R0
MOV MIN , @R0
MOV MAX , @R0
LOOP:
    	INC    	R0
	MOV 		A ,@R0
	ADD		A ,SUM
	MOV		SUM ,A
	MOV		A ,@R0 
    	CLR    	C
   	CJNE    	A,MIN,SMALL  //新值比目前最小值小
FINDBIG:
   	CLR     	C
	MOV		A ,@R0
    	CJNE    	A,MAX,BIG    //新值比目前最大值大
BACKTOLOOP:
    	DJNZ    	R1,LOOP

MOV  A ,SUM
SUBB A ,MAX
SUBB A ,MIN
MOV  B,#08H
DIV  AB
MOV  DPTR,#2100H	//将结果存入片外2100H
MOVX @DPTR,A
SJMP $

SMALL:
	JC 	EX
	SJMP 	FINDBIG
EX:
	MOV 	MIN , A
	SJMP  FINDBIG

BIG:
	JC 	BACKTOLOOP
	MOV 	MAX , A
	SJMP  BACKTOLOOP

ppt第1题

MOV A,#10; A变为10,psw:P=0,pc+1
MOV R0,#20H; R0,pc+1
MOV 30H,@R0; 30H的值变为20H中的值50H,pc+1
ADD A,30H;	A的值加上30H中的值,变为90,psw:Cy=0,AC=1,P=0,pc+1
MOV DPTR,#2000H; DPTR变为2000H,pc+1
MOVX @DPTR,A; 外部存储器单元2000H的值变为90,pc+1
MOV SP,#30H; SP=30H,pc+1
PUSH A; A的值压入栈中 SP=31H,pc+1
PUSH DPL; DPTR低八位压入栈中 ,SP=32H,pc+1
PUSH DPH; DPTR高八位压入栈中 ,SP=33H,pc+1

ppt第2题

是通过不同的控制总线,来把数据存储器和程序存储器严格分开。

读写数据存储器时,RD 和 WR 分别输出控制信号。

读出程序存储器时,PSEN ,输出控制信号。

ppt第3题

1)
MOV A,R7
MOV R4,A
2)
MOV DPTR,#20H
MOVX A,@DPTR
MOV R0,A
3)
MOV DPTR,#2000H
MOV A,00H
MOVC A,@A+DPTR
MOV R2,A
4)
MOV DPTR,#0456H
MOVX A,@DPTR
MOV DPTR,#0078H
MOVX @DPTR,A

ppt第4题

MOV A,@R0; A = 80H,PSW:P=1
MOV @R0,40H; (32H) = 40H
MOV 40H,A; (40H) = 80H
MOV R0,#40H R0=40H

ppt第5题

MOV R0,#30H
MOV DPTR,#0F00H
LOOP:
	MOV A,@R0
	MOVX @DPTR,A
	INC DPTR
	INC R0
	CJNE R0,#40H,LOOP
SJMP $

ppt第6题

MOV R0,#20H
MOV R1,#30H
LOOP:
	MOV A,@R0
	MOV B,@R1
	MOV @R1,A
	MOV @R0,B
	INC R0
	INC R1
	CJNE R0,#2AH,LOOP
SJMP $

ppt第7题

MOV 21H,#5AH;     (21H) = 5AH
MOV R0,#21H;	R0 = 21H
MOV R1,#2FH;	R1 = 2FH
MOV A,@R0;		A = 5AH
CPL A;		A = A5H
MOV @R1,A;	      (2FH) = A5H
INC R0;		R0 = 22H
RL A;			A = 4BH
MOV @R0,A;		(22H) = 4BH
SETB ACC.2;		A = 4FH

结果:
(21H) = 5AH
(2FH) = A5H
(22H) = 4BH
A = 4FH

ppt第7题(3.12)

SP = 42H
A = 30H
B = 30H
PC = 0x200C