单片机原理及接口技术课后习题答案 - 李朝青(2)

2019-06-17 18:45

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周期 MOV A,#DATA ;立即数寻址 2字节1周期 MOV DATA1,DATA2 ;直接寻址 3字节2周期 MOV 74H,#78H ;立即数寻址 3字节2周期

如果想查某一指令的机器码,字节数或周期数可查阅书本后面的附录A 9、设R0的内容分为32H,A的内容为48H,。。。。请指出在执行下列程序段后上述各单元内容的变化?

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

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

最后结果:(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 CLR ACC.4 CLR ACC.3 18、MOV 27H,R7 MOV 26H,R6 MOV 25H,R5 MOV 24H,R4 MOV 23H,R3 MOV 22H,R2 MOV 21H,R1 MOV 20H,R0 19、MOV 2FH,20

MOV 2EH,21 MOV 2DH,22 20、编程,进行两个16位数的减法:6F5DH-13B4H,结果存入内部RAM的30和31H单元,30H存低八位。 CLR C

MOV A,#5DH ;被减数的低8位→A MOV R2,#B4H ;减数低8位→R2

SUBB A,R2 ;被减数减去减数,差→A MOV 30H,A ;低8位结果→30H MOV A,#6FH ;被减数的高8位→A MOV R2,#13H ;减数高8位→R2

SUBB A,R2 ;被减数减去减数,差→A MOV 31H,A ;高8位结果→30H

注意:如果在你的程序中用到了进位位,在程序开始的时候要记得清0进位位 21、编程,若累加器A满足下列条件,则程序转至LABEL存储单元,设A中为无符号数。 (1)A≥10

CJNE A,#0AH,L1 ;(A)与10比较,不等转L1 LJMP LABEL ;相等转LABEL L1:JNC LABEL ;(A)大于10,转LABEL 或者: CLR C

SUBB A,#0AH JNC LABEL (2)A>10

CJNE A,#0AH,L1 ;(A)与10比较,不等转L1 RET ;相等结束 L1:JNC LABEL ;(A)大于10,转LABEL RET ;(A)小于10,结束 或者: CLR C

SUBB A,#0AH JNC L1 RET

L1:JNZ LABEL RET

(3)A≤10

CJNE A,#0AH,L1 ;(A)与10比较,不等转L1 L2:LJMP LABEL ;相等转LABEL


单片机原理及接口技术课后习题答案 - 李朝青(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:庆祝建国60周年征文-风采六十年

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

马上注册会员

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