单片机原理及应用教程第3版习题课后答案 下载本文

内容发布更新时间 : 2024/5/9 11:53:37星期一 下面是文章的全部内容请认真阅读。

11个8位寄存器的88位。位寻址给出的是直接地址。

2.位寻址和字节寻址如何区分?在使用时有何不同?

由寻址方式可以看出,不同的寻址方式所寻址的存储空间是不同的。正确地使用寻址方式不仅取决于寻址方式的形式,而且取决于寻址方式所对应的存储空间。字节寻址必须是对8位存储单元,位寻址的存储空间只能是片内RAM的20H~2FH字节地址中的所有位(位地址为00H~7FH)和部分SFR的位,决不能是该范围之外的任何单元的任何位。

3.要访问专用寄存器和片外数据寄存器,应采用什么寻址方式?举例说明。 访问专用寄存器:可采用直接寻址或寄存器寻址。

访问片外数据寄存器:寄存器间接寻址 4.什么是堆栈?其主要作用是什么? 堆栈是后进先出的数据存储区

一般用于中断处理过程中,若需要保护现场数据(如内部RAM单元的内容),可使用入栈指令,将数据压入堆栈,中断处理过程执行完后,再使用出栈指令恢复现场数据。

5.编程将内部RAM的20H单元的内容传送给外部RAM的2000H单元。

MOV A,20H

MOV DPTR,#2000H MOVX @DPTR,A

6.编程将内部数据存储器20H~30H单元内容清零。 MOV R0,#20H

MOV A,#0 MOV R3,#17 LOP :MOV @R0,A

9

INC R0 DJNZ R3,LOP

7.编程查找内部RAM的32H~41H单元中是否有0AAH这个数据,若有这一数据,则将50H单元置为0FFH,否则清50H单元为0。

MOV R3, #10H

MOV A,#0AAH MOV R0,#31H LOP :INC R0 SUBB A,@R0 JZ LOP1 DJNZ R3,LOP MOV 50H,#0H AJMP LOP3 LOP1:MOV 50H,#0FFH LOP3: AJMP 1OP3

8.查找20H~4FH单元中出现00H的次数,并将查找结果存入 MOV R3,#30H MOV R0,#20H MOV A,#0

LOP: MOV A,@R0 JZ LOP1

10

50H单元。 LOP3: INC R0 DJNZ R3,LOP AJMP LOP2 LOP1: INC 50H AJMP LOP3 LOP2:AJMP LOP2

9.已知A=83H,R0=17H,(17H)=34H,写出下列程序段执行完后的A中的内容。

ANL ORL

XRL CPL

A, @R0 A A, #17H 17H, A

(A)=11001011B=0CBH

10.已知单片机的fosc=12MHz,分别设计延时0.1s、1s、1min的子程序。 设晶振频率为12MHz,一个机器周期为1μs,

延时1ms的子程序:

DELAY: MOV R7, #0FFH LOOP: NOP NOP DJNZ R7, LOOP RET

执行时间(机器周期) 1 1 1 2 2

该程序段的总的执行时间为:

(1+4×255+2)?s=1023μs≈1ms

延时时间为100ms的子程序:

DELAY: MOV R5,#64H 对延时1ms的子程序循环100次。

LOP1: MOV R7, #0FFH LOOP: NOP NOP DJNZ R7, LOOP

DJNZ R5,LOP1

11

RET

延时时间为1s的子程序:

DELAY1: MOV R3, #0AH 对延时100ms的子程序循环10次 DELAY: MOV R5,#64H 。 LOP1: MOV R7, #0FFH LOOP: NOP NOP DJNZ R7, LOOP

DJNZ R5,LOP1

DJNZ R3, DELAY

RET

延时时间为60s的子程序: 对延时1s的子程序循环60次

11.MCS-51汇编语言中有哪些常用的伪指令?各起什么作用? BIT(地址符号命令)

END(结束汇编) EQU(等值) DB(定义字节)

DW(定义字) DS(定义存储单元) ORG(汇编起始地址)

12.比较下列各题中的两条指令有什么异同?

① MOV A, R1; MOV 0E0H, R1 指令功能相同,寻址方式表示不同

12