单片机课后习题解答(3)

2019-09-01 19:50

10、试编写一子程序,是R1、R0指向的两个片外RAM连续单元中的高4位二进制数,合并成一个字节,装入累加器A中。已知R0指向低地址,并要求该单元高四位放在A中高四位。 答: MOVX A,@R1 ANL A,#0F0H SWAP A MOV R2,A MOVX A,@R0 ANL A,#0F0H ORL A,R2

11、试编程把以2040H为首地址的连续50个单元的无符号数按降序排列,存放到以3000H为首地址的存储区中。

答: MOV R2,#50 MOV R3,#20H

MOV R4,#40H ;源地址 MOV R5,#30H

MOV R6,#00H ;目的地址

SEND: MOV DPH,R3 ;SEND将2040H数据块移入3000H存储区 MOV DPL,R4 MOVX A,@DPTR INC DPTR MOV R3,DPH MOV R4,DPL MOV DPH,R5 MOV DPL,R6 MOVX @DPTR,A INC DPTR MOV R5,DPH MOV R6,DPL DJNZ R2,SEND

MOV R2,#49 ;重复次数 CMP1: MOV DPTR,#3000H

MOV R3,#49 ;比较次数 CMP2: MOVX A,@DPTR MOV B,A INC DPTR MOVX A,@DPTR CJNE A,B,L1

- 10 -

AND MOVX INC INC DJNZ SJMP A,#00H @DPTR,A R0 DPTR R2,LP $

L1:

JC NOMOVE MOV 30H,A CLR C

MOV A,DPL SUBB A,#01H

MOV DPL,A MOV A,30H MOVX @DPTR,A INC DPTR MOV A,B MOVX @DPTR,A

NOMOVE: DJNZ R3,CMP2 ;50个数重复一遍? DJNZ R2,CMP1 ;排序结束? LJMP $

12、试编一查表程序,从首地址为2000H,长度为100的数据块中找出ASCII码为A,将其地址送到20A0H和20A1H单元中。 答: MOV DPTR,#2000H MOV R2,#100 GO_ON: MOVX A,@DPTR

CJNE A,#41H,IFEND MOV A,DPH MOV B,DPL

MOV DPTR,#20A0H MOVX @DPTR,A INC DPTR XCH A,B MOVX @DPTR,A SJMP OVER IFEND: INC DPTR

DJNZ R2,GO_ON OVER: SJMP OVER

13、设在200H~204H单元中,存放5个压缩BCD码,编程将他们转换成ASCII码,存放到以205H单元为首地址的存储区。 答: MOV R2,#05H MOV R3,#02H MOV R4,#00H MOV R5,#02H MOV R6,#05H CHLP: MOV DPH,R3

MOV DPL,R4

MOVX A,@DPTR INC DPTR MOV R3,DPH MOV R4,DPL MOV B,A

- 11 -

SWAP A

ANL A,#0FH ORL A,#30H MOV DPH,R5 MOV DPL,R6 MOVX @DPTR,A INC DPTR MOV A,B ANL A,#0FH ORL A,#30H MOVX @DPTR,A MOV R5,DPH MOV R6,DPL DJNZ R2,CHLP

14、有一无符号数据块长度在30H单元中,其首地址为31H单元,求出数据块中最大值,并存入40H中。

答: MOV R0,#31H MOV R1,30H MOV 40H,#00H LOOP: MOV A,@R0 CJNE A,40H,L1 SJMP AGAIN L1: JNC L2 SJMP AGAIN L2: MOV 40H,A AGAIN: INC R0

DJNZ R1,LOOP SJMP $ 15、略

16、在以2000H为首地址的存储区内,存放20个用ASCII码表示的0~9之间的数,试编程,将它们转换成BCD码,并以压缩BCD码的形式存在3000H~3009H单元中。 答: MOV R2,#10 MOV R3,#20H MOV R4,#00H MOV R5,#30H MOV R6,#00H LP: MOV DPH,R3 MOV DPL,R4 MOVX A,@DPTR ANL A,#0FH SWAP A XCH A,B INC DPTR MOVX A,@DPTR ANL A,#0FH

- 12 -

ORL A,B INC DPTR MOV R3,DPH MOV R4,DPL MOV DPH,R5 MOV DPL,R6 MOVX @DPTR,A INC DPTR MOV R5,DPH MOV R6,DPL DJNZ R2,LP SJMP $

17、试编程实现下列逻辑表达式功能。设P1.7~P1.0为8个变量的输入端,而其中P1.7又作为变量的输出端。

;输入端定义

X0 EQU P1.0

X1 EQU P1.1 X2 EQU P1.2 X3 EQU P1.3 X4 EQU P1.4 X5 EQU P1.5 X6 EQU P1.6

X7 EQU P1.7

(1)Y?X0X1X2?X3?X4X5X6?X7

MOV ANL ANL ORL MOV MOV ANL ANL ORL ORL MOV

C,X0 C,X1 C,/X2 C,X3 00H,C C,X4 C,X5 C,X6 C,/X7 C,00H P1.7,C

(2)Y?X0X1?X2X3X4?X5X6X7

MOV ANL CPL MOV MOV ANL ANL C,X0 C,X1 C

00H,C C,X2 C,X3 C,X4

- 13 -

CPL C

MOV 01H,C MOV C,X5 ANL C,X6 ANL C,X7 CPL C

ORL C,O1H CPL C

ORL C,00H MOV P1.7,C 18、略 19、略

20、试编写延时1s、1min、1h子程序。

;单片机时钟fosc=12MHz,计算为近似值 ;1s延时子程序 DLY_1S: MOV R0,#10 L3: MOV R1,#200 L2: MOV R2,#250 L1: DJNZ R2,L1 DJNZ R1,L2 DJNZ R0,L3 RET

;延时1min

DLY_1M: MOV R3,#60 L4: LCALL DLY_1S DJNZ R3,L4 RET

;延时1h

DLY_1H: MOV R4,#60 L5: LCALL DLY_1M DJNZ R4,L5 RET

21、用程序实现c=a2+b2。设a、b均小于10,a存在31H单元中,b存在32H单元中,c存33H单元。

答: ORG 1000H SR: MOV A,31H

ACALL SQR MOV R1,A MOV A,32H ACALL SQR ADD A,R1 MOV 33H,A SJMP $

- 14 -


单片机课后习题解答(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:网络课书法鉴赏习题答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: