单片机第五章作业答案

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机第五章作业答案.

5.试编制一个子程序将字符串‘MCS-51 Microcomputer'装入外部RAM8000H开始的显示缓冲区。

ORG 0000H

AJMP 0030H

MIAN: MOV DPTR, #8000H MOV R1, #0

MOV R0, #20

LOOP: MOV A, R1

ADD A, #5

MOVC A, @A+PC

MOVX @DPTR, A ;1B

INC DPTR ;1B

INC R1 ;1B

DJNZ R0, LOOP ;3B

TAB: DB ‘M','C','S','-

‘,'5','1','

‘,'M','i','c','r','o'

DB

‘c','o','m','p','u','t','e','r '

END

6.试设计一个n字节的无符号十进制数加法子程序,其功能为将(R0)和(R1)指出的内码无符号十BCD字节压缩n中两个RAM部.

进制数相加,结果存放于被加数单元中。子程序入口时,R0,R1分别指向被加数和加数的低位字节,字节数n存于R2,出口时R0指向

和的最高位字节,CY为进位位。LEN EQU 30

ORG 0000H

AJMP MAIN

ORG 0030H

MAIN: MOV SP. #60H

MOV R2, #LEN

ACALL ADD_NBYTE

SJMP $

ADD_NBYTE: CLR C

LOOP: MOV A, @R0

ADDC A, @R1

DA A

MOV @R0, A

INC R0

INC R1

DJNZ R2, LOOP

RET

END

8.试设计一个程序,其功能为判断

(R2R3R4R5)中压缩BCD码十进制最高位是否为零,若最高位为0,且该十进制数不为0,则通过左移

使最高位不为0。

ORG 0000H

AJMP MAIN

ORG 0030H

MAIN: MOV A, R2 ANL A, #80H

JNZ NEXT

CLR C

LOOP: MOV A, R5 RLC A

MOV R5, A

MOV A, R4

RLC A

MOV R4, A

MOV A, R3

RLC A

MOV R3, A

MOV A, R2

A

RLC

A R2, MOV

80H A, #ANL LOOP JZ

$ SJMP NEXT:

END

其试设计一个双字节无符号整数乘法子程序,9.

)相乘,积存放)和(R5R4功能为将(R3R2 30H~33H。RR开始RRRR2累加到结果单R2R4R2RRR2累加到结果单元

R2RR2RR3RR3R4RR3累加到结果单R3RR3R5LRR3累加到结果单积:R0结束MULTB: MOV R7, #04 ;结果单元清0

MOV R0, #33H

LOOP : MOV @R0,#00H

LOOP ,R7 DJNZ

MOV A, R2 ;取被乘数低位字节

MOV B, R4 ;取乘

数低位字节R4

MUL AB ;R4×R2

ACALL RADD ;调用乘积相加子程

MOV A, R2 ;取被乘数低位字节

R2

MOV B, R5 ;取乘数高位字节R5

MUL AB ;R5× R2

DEC R0 ;积字节指针减1 ACALL RADD ;调用乘积相加子

程序

MOV A ,R4

MOV B , R3

R3 ;R4× MUL AB

R0 DEC

DEC R0

ACALL RADD

MOV A,R5

MOV B,R3 MUL AB ;R5×R3 DEC R0

ACALL RADD DEC R0

RET

;累加子程序RADD@R0 ADD :A,

A MOV @R0,

A MOV ,B

INC R0

@R0 A ADDC , R0 MOV @,A

INC R0

@R0 A MOV ,

;加进位#00H ,AADDC

MOV @R0,A

RET

11.试设计一个子程序,其功能为将(R0)指出的内部RAM中6个单字节正整数按从小到大的次序重新排列。

S_2_L: MOV R4, #5

CLR F0

PUSH 00H ;R0入栈

POP 01H ;出栈赋给R1

INC R1

LOOP0: MOV A, R4

MOV R5, A

LOOP1: MOV A, @R0 MOV B, A

MOV A, @R1

CJNE A, B, NEXT SJMP NOCH NEXT: JNC NOCH

SETB F0

MOV @R0, A

BA, XCH

MOV @R1, A NOCH: INC R0

INC R1

DJNZ R5, LOOP1

JNB F0, HALT

DJNZ R4, LOOP0

HALT: RET

12.试设计一个子程序,其功能为查表指令:MOVC A,@A+PC,求累加器(A)的平方值,结果送A,入口时(A)<15。

SQRT: ADD A,#1

MOVC A, @A+PC

相关文档
最新文档