单片机复习材料(15)
发布时间:2021-06-05
发布时间:2021-06-05
作业编程题:
3.1编写程序,把片外数据存储器0000H~0050H中的内容传送到片内数据存储器20H~70H
ORG 0000H
MOV DPTR,#0000H MOV R0,#20H
LOOP:MOVX A,@DPTR
MOV @R0,A ORG 0
MOV A,R0 ADD A,R6 MOV 50H,A
MOV A,R7 ADDC A,R1 MOV 51H,A MOV A,#0
INC DPTR INC R0
CJNE R0,#71H,LOOP SJMP $
3.2 编写程序,实现双字节加法运算,要求R1R0+R7R6→(52H)(51H)(50H)(内部RAM)。
ADDC A,#0
MOV 52H,A SJMP $
3.3 设X在累加器A中(0≤X≤20),求X2并将平方数高位存放在R7中,低位存放在R6中。试用查表法编出子程序。
ORG 0
MOV DPTR,#TAB ADD A,ACC PUSH ACC
MOVC A,@A+DPTR
MOV R7,A POP ACC
INC A
MOVC A,@A+DPTR MOV R6,A
SJMP $
TAB:DB 00,00,00,01,00,04,
00,09,00,16H,
DB 04H,00
3.4 设内部RAM的20H和21H单元中有两个带符号数,将其中的大数存放在22H单元中,编程序实现。
ORG 0
MOV A,20H XRL A,21H ANL A,#80H JZ CMP
JB 20H,7,BG
AG:MOV 22H,20H
SJMP $
BG:MOV 22H,21H
SJMP $
CMP:MOV A,20H
CJNE A,21H,GR GR:JNC AG
MOV 22H,21H SJMP $
3.5 若单片机的经侦频率为6MHz,求下列延时子程序的延时时间。
Fosc=6MHz,MC=2us 机器周期数 DELAY: MOV R1,#0F8H 1 LOOP: MOV R3,#0FBH 1 DJNZ R3,$ 1 DJNZ R1,LOOP 2 RET 2
3.6 编程将内部数据存储器20H~24H单元压缩的BCD码转换成ASCII码存放在25H开始的单元内。
ORG 0000H
MOV R7,#05H MOV R0,#20H MOV R1,#25H NET:MOV A,@R0
ANL A,#0F0H SWAP A
ADD A,#30H MOV @R1,A INC R1 MOV A,@R0 ANL A,#0FH ADD A,#30H MOV @R1,A
INC R0 INC R1
DJNZ R7,NET SJMP $ END