MCS51笔记
转载笔记
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