单片机原理与接口技术习题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2-7 MCS-51单片机的21个特殊功能寄存器中,哪些具有位寻址能力?
答:MCS-51单片机中的程序状态字寄存器(PSW),B寄存器,累加器(ACC),端口P0~P3,控制寄存器中用于中断控制的中断优先级控制寄存器(IP)和中断允许控制寄存器(IE),用于设置定时/计数器和串行口工作方式的定时/计数器控制寄存器(TCON)、串行口控制寄存器(SCON)具有位寻址能力。
2-8 程序状态字寄存器(PSW)的作用是什么?
答:PSW寄存器是8位寄存器,用做程序运行状态的标志,字节地址为D0H。可以进行位寻址。
2-9 MCS-51单片机的P3口具有哪些功能?
答:P3口是双功能口,除了作为准双向通用I/O口使用外,每一根口线还具有第二种功能,P3口的各位如不设定为第二功能则自动处于第一功能。P3的第二功能涉及到串行口、外部中断、定时器,与特殊功能寄存器有关。
2-13 什么是时钟周期、状态周期、机器周期和指令周期?当单片机时钟频率为12MHz时,一个机器周期是多少?ALE引脚的输出频率是多少?
答:时钟周期也称为振荡周期,定义为时钟脉冲频率(f osc)的倒数,它是计算机中最基本的、最小的时间单位。
时钟周期经2分频后成为内部的时钟信号,用作单片机内部各功能部件按序协调工作的控制信号,称为状态周期,用S表示。
完成一个基本操作所需要的时间称为机器周期。
指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成,指令不同,所需要的机器周期数也不同。
当单片机时钟频率为12MHz时,一个机器周期为1μs。ALE引脚的输出频率为2MHz。
2-14 什么时候需要复位操作?对复位信号有何要求?
答:复位是单片机的初始化操作。单片机系统在上电启动运行时,都需要先复位。
上电复位利用电容器的充电实现。在时钟电路工作后,在RST端连续给出2个机器周期的高电平就可完成复位操作。MCS-51单片机的上电加按键复位电路当复位按键按下后,复位端通过51Ω的小电阻与+5V电源接通,迅速放电,使RST引脚为高电平;当复位按键弹起后,+5V电源通过2kΩ电阻对22μF电容重新充电,RST引脚端出现复位正脉冲。
习题与思考题3
3-1 什么是寻址方式?MCS-51指令系统有哪些寻址方式?相应的寻址空间在何处?
答:在指令系统中,操作数是一个重要的组成部分,它指定了参与运算的数据或数据所在的地址单元。如何找到参与运算的这个数据或数据所在的地址就称为寻址方式。
MCS-51指令系统的寻址方式主要有立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、基址加变址寻址、相对寻址和位寻址等七种。
对程序存储器只能采用立即寻址和基址加变址寻址方式;对特殊功能寄存器只能采用直接寻址方式,不能采用寄存器间接寻址,对8032/8052等单片机内部RAM的高128个字节(80H~FFH),只能采用寄存器间接寻址,不能使用直接寻址方式;对位操作指令只能对位寻址区操作;外部扩展的数据存储器只能用MOVX指令访问,而内部RAM的低128个字节(00H~7FH)既能用直接寻址,也能用间接寻址。
3-2 访问外部数据存储器和程序存储器可以用哪些指令来实现?举例说明。
答:访问外部数据存储器可以用以下指令实现:
MOVX A, @Ri ;((Ri))→A,寄存器Ri指向的片外RAM地址中的内容送到累加
器A中
MOVX @Ri, A ;A→((Ri)),累加器中内容送到寄存器Ri指向的片外RAM地址
中
MOVX A, @DPTR ;((DPTR))→A,数据指针指向的片外RAM地址中的内容送到累
加器A中
MOVX @DPTR, A ;A→((DPTR)),累加器中内容送到数据指针指向的片外RAM地
址中
访问程序存储器可以用以下指令实现:
MOVC A, @A+DPTR ;((A+DPTR))→A,表格地址单元中的内容送到累加器A中
MOVC A, @A+PC ;PC+1→PC,((A+PC))→A,表格地址单元中的内容送到累
加器A中
3-3 试用下列3种寻址方式编程,将立即数0FH送入内部RAM的30H单元中。(1) 立即寻址方式;(2) 寄存器寻址方式;(3) 寄存器间接寻址方式
答:(1)立即寻址方式:MOV 30H, #0FH
(2)寄存器寻址方式:MOV R5, #0FH
MOV 30H, R5
(3)寄存器间接寻址方式:MOV @R1, #0FH
MOV 30H, @R1
3-5 试编写一段程序,将内部数据存储器30H、3lH单元内容传送到外部数据存储器1000H、1001H单元中。答:MOV A, 30H
MOV DPTR, #1000H
MOV @DPTR, A
MOV A, 31H
MOV DPTR, #1000H
MOV @DPTR, A
3-13 SJMP指令和AJMP指令都是字节转移指令,它们有什么区别?各自的转移范围是多少?能否用AJMP指令代替程序中的所有SJMP指令?为什么?
答:AJMP和SJMP的区别有:
(1) 跳转范围不同。
AJMP addr1 ;短跳转范围:2KB
SJMP rel ;相对跳转范围:-128~+127
(2) 指令长度不同。
(3) 指令构成不同。AJMP、LJMP后跟的是绝对地址,而SJMP后跟的是相对地址。
不能用AJMP指令代替程序中的SJMP指令,因为如果改变的话,程序跳转到的新PC值指向的地址会不同,导致程序出现错误。
3-14 试用位操作指令实现下列逻辑操作。要求不得改变未涉及到的位的内容。(1)使ACC.0置位;
(2)清除累加器高4位;
(3)清除ACC.3,ACC.4,ACC.5,ACC.6。
答:(1)SETB ACC.0
(2)CLR ACC.4
CLR ACC.5
CLR ACC.6
CLR ACC.7
(3)CLR ACC.3