单片机原理及接口技术课后答案 - 李朝青 下载本文

F0用户标志位

RS1,RS0,用来选择当前工作寄存器组(R0~R7)(4选1) OV=Overflow(溢出标志位) P=Parity(奇偶校验位)

17. 位地址7CH与字节地址7CH如何区别?位地址7CH具体在片内RAM中的什么位置?

答:用不同的寻址方式来加以区分,即访问128个位地址用位寻址方式,访问低128字节单元用字节寻址和间接寻址。

具体地址为2F的第五位,即为7C。

18. 89C51单片机的时钟周期与振荡周期之间有什么关系?什么叫机器周期和指令周期?

答:时钟信号的周期称为机器状态周期,是振荡周期的两倍。一个机器周期是指CPU访问存储器一次所需的时间。指令周期是执行一条指令所需的时间。 19. 一个机器周期的时序如何划分?

答:一个机器周期=12个震荡周期=6个时钟周期(状态周期)

S1P1,S1P2,S2P1,S2P2,S3P1,S3P2,S4P1,S4P2,S5P1,S5P2,S6P1,S6P2 其中s=state(状态),p=phase(相位)

20. 什么叫堆栈?堆栈指针SP的作用是什么?89C51单片机堆栈的容量不能超过多少字节?

答:堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。要点:堆:顺序随意栈:后进先出(Last-In/First-Out)

在调用子程序时需要保存调用函数的CPU寄存器PC指针,PC指针是被CALL指令自动压入SP所指向的片内存储器,CPU寄存器要由用户用PUSH指令自行保存,因此SP的作用就是一个指针,当进行中断调用,子函数调用时将现场数据压入SP所指向的存储器,SP自动增加1或2,当中断结束RETI,调用返回RET,POP时将SP数据弹出,SP自动减1

8051最大为128字节的片内存储器,0X20以上理论都可以做堆栈用96字节,8052为256字节224字节可用,但这样便没有其它空间可用于数据存储现在的单片机的程序一般都能用C51来,不用关心堆栈大小与SP寄存器

21. 89C51有几种低功耗方式?如何实现? 答:空闲方式和掉电方式

空闲方式和掉电方式是通过对SFR中的PCON(地址87H)相应位置1而启动的。

当CPU执行完置IDL=1(PCON.1)的指令后,系统进入空闲工作方式。这时,内部时钟不向CPU提供,而只供给中断、串行口、定时器部分。CPU的内部状态维持,即包括堆栈指针SP、程序计数器PC、程序状态字PSW、累加器ACC所有的内容保持不变,端口状态也保持不变。ALE和PSEN保持逻辑高电平。 当CPU执行一条置PCON.1位(PD)为1的指令后,系统进入掉电工作方式。在这种工作方式下,内部振荡器停止工作。由于没有振荡时钟,因此,所有的功能部件都停止工作。但内部RAM区和特殊功能寄存器的内容被保留,而端口的输出状态值都保存在对应的SFR中,ALE和PSEN都为低电平。 22. PC与DPTR各有哪些特点?有何异同? 答:(1)程序计数器PC作为不可寻址寄存器的特点

程序计数器PC是中央控制器申最基本的寄存器,是一个独立的计数器,存放着下一条将程序存储器中取出的指令的地址。

程序计数器PC变化的轨迹决定程序的流程。程序计数器的宽度决定了程序存储器可以 寻址的范围。

程序计数器PC的基本工作方式有:

①程序计数器PC自动加1。这是最基本的工作方式,也是这个专用寄存器被称为计数 器的原因。

②执行条件或无条件转移指令时,程序计数器将被置入新的数值,程序的流向发生变化。 变化的方式有下列几种:带符号的相对跳转SJMP、短跳转AJMP、长跳转LJMP及JMP @A+DPTR等。 ③在执行调用指令或响应中断时:

●PC的现行值,即下一条将要执行的指令的地址送入堆栈,加以保护;

●将子程序的入口地址或者中断矢量地址送入PC,程序流向发生变化,执行子程序或中断服务程序;

●子程序或中断服务程序执行完毕,遇到返回指令RET或RETI时,将栈顶的内容送到PC寄存器中,程序流程又返回到原来的地方,继续执行。 (2)地址指针DPTR的特点

地址指针DPTR的特点是,它作为片外数据存储器寻址用的地址寄存器(间接寻址)。 (3)地址指针DPTR与程序计数器PC的异同 ①相同之处:

●两者都是与地址有关的、16位的寄存器。其中,PC与程序存储器的地址有关,而 DPTR与数据存储器的地址有关。

●作为地址寄存器使用时,PC与DPTR都是通过P0和P2口(作为16位地址总线)输 出的。但是,PC的输出与ALE及PSEN有关;DPTR的输出,则与ALE、RD及WR相联系。 ②不同之处:

●PC只能作为16位寄存器对待,由于有自动加1的功能,故又称为计数器; DPTR可以作为16位寄存器对待,也可以作为两个8位寄存器对待。

●PC是不可以访问的,有自己独特的变化方式,它的变化轨迹决定了程序执行的流程; DPTR是可以访问的,如MOV DPTR,#XXXXH,INC DPTP。

23. 89C51端口锁存器的“读—修改—写”操作与“读引脚”操作有何区别?

答:指令系统中有些指令读锁存器的值, 有些指令则读引脚上的值。读锁存器指令是从锁存器中读取一个值并进行处理, 把处理后的值(原值或已修改后的值)重新写入锁存器中。这类指令称为读-修改-写指令。

对于读-修改-写指令。直接读锁存器而不是读端口引脚, 是因为从引脚上读出的数据不一定能真正反映锁存器的状态。

单片机原理及接口技术课后习题答案 第三章

1、 指令:CPU根据人的意图来执行某种操作的命令

指令系统:一台计算机所能执行的全部指令集合

机器语言:用二进制编码表示,计算机能直接识别和执行的语言 汇编语言:用助记符、符号和数字来表示指令的程序语言

高级语言:独立于机器的,在编程时不需要对机器结构及其指令系统有深入了解的通用性语言 2、 见第1题

3、简述8951的汇编指令格式。答: 操作码 [目的操作数] [,源操作数] 4、简述8951的寻址方式和所能涉及的寻址空间。 寻址方式 立即数寻址 直接寻址 寄存器寻址 寄存器间接寻址 变址寻址 相对寻址 位寻址 寻址空间 程序存储器ROM 片内RAM低128B、特殊功能寄存器 工作寄存器R0-R7、A、B、C、DPTR 片内RAM低128B、片外RAM 程序存储器(@A+PC,@A+DPTR) 程序存储器256B范围(PC+偏移量) 片内RAM的20H-2FH字节地址、部分SFR 5、访问特殊功能寄存器和外数据存储器,应采用那些寻址方式? 答: SFR:直接寻址,位寻址,寄存器寻址;片外RAM:寄存器间接寻址

6、8951中已知(30H)=38H,请分析以下各是什么指令,说明源操作数的寻址方式以及执行结果。 MOV A,40H ;直接寻址(40H)→A MOV R0,A;寄存器寻址(A)→R0 MOV P1,#0F0H ;立即数寻址0F0→P1 MOV @R0,30H;直接寻址(30H) →(R0) MOV DPTR,#3848H;立即数寻址 3848H→DPTR MOV 40H,38H;直接寻址 (38H) →40H MOV R0,30H;直接寻址 (30H) →R0 MOV P0,R0;寄存器寻址( R0 )→P0 MOV 18H,#30H ;立即数寻址30H→18H MOV A,@R0 ;寄存器间接寻址 ((R0)) →A MOV P2,P1 ;直接寻址 (P1)→P2

最后结果:(R0)=38H,(A)=40H,(P0)=38H,(P1)=(P2)=0F0H,(DPTR)=3848H,(18H)=30H,(30H)=38H,(38H)=40H,(40H)=40H,(48H)=38H 注意:→左边是内容,右边是单元

7、8951片内高128字节的地址寻址要注意什么/? 答: 用直接寻址,位寻址,寄存器寻址

8、指出些列指令的本质? MOV

A,DATA ;直接寻址 2字节1周期

A,#DATA

;立即数寻址

2字节1周期 3字节2周期

DATA1,DATA2

;直接寻址 3字节2周期

MOV MOV MOV

74H,#78H ;立即数寻址

如果想查某一指令的机器码,字节数或周期数可查阅书本后面的附录A

9、设R0的内容分为32H,A的内容为48H,。。。。请指出在执行下列程序段后上述各单元内容的变化?

MOV A,@R0 ;((R0))=80H→A MOV @R0,40H MOV R0,#35H

;(40H)=08H→(R0) ;35H→R0

MOV 40H,A ;(A)=80→40H

最后结果:(R0)=35H (A)=80H,(32H)=08H,(40H)=80H 10、如何访问SFR,可采用那些寻址方式? 答:用直接寻址,位寻址,寄存器寻址 11、如何访问片外RAM,可使用那些寻址方式? 答:只能采用寄存器间接寻址(用MOVX指令) 12、如何访问片内RAM,可使用那些寻址方式?

答:低128字节:直接寻址,位寻址,寄存器间接寻址,寄存器寻址(R0~R7) 高128字节:直接寻址,位寻址,寄存器寻址

13、如何访问片内外程序存储器,可使用那些寻址方式? 答:采用变址寻址(用MOVC指令) 14、说明十进制调整的原因和方法?

答:压缩BCD码在进行加法运算时应逢十进一,而计算机只将其当作十六进制数处理,此时得到的结果不正确。用DA A指令调整(加06H,60H,66H) 15、说明8951布尔机处理机功能? 答:用来进行位操作

16、ANL A,#17H ;83H∧17H=03H→A ORL 17H,A ;34H∨03H=37H→17H XRL A,@R0 ;03H⊕37H=34H CPL A ;34H求反等于CBH 所以(A)=CBH

17、(1)SETB ACC.0或SETB E0H ;E0H是累加器的地址 (2)CLR ACC.7 CLR ACC.6 CLR ACC.5 CLR ACC.4 (3)CLR ACC.6 CLR ACC.5