单片机课后题答案(霍孟友主编)(8页).doc
《单片机课后题答案(霍孟友主编)(8页).doc》由会员分享,可在线阅读,更多相关《单片机课后题答案(霍孟友主编)(8页).doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-单片机课后题答案(霍孟友主编)-第 8 页2-1. 8051单片机芯片内部包含哪些主要逻辑功能部件? 答:一个8位微处理器(CPU);片内数据存储器RAM;片内程序存储器ROM;四个8位并行I/O口P0P3;两个定时器/计数器;五个中断源的中断控制系统;一个UART(通用异步接收发送器)的串行I/O口;片内振荡器和时钟产生电路。2-2、8051存储器分哪几个地址空间?如何区别不同空间寻址? 答: 片内、外统一编址的64KB程序存储器; 片内256B数据存储器; 片外64KB数据存储器。硬件:引脚接高电平时CPU从片内0000H单元开始取指令,接低电平时CPU直接访问片外EPROM。EA软件:
2、MOV指令访问片内数据存储器, MOVX 指令访问片外数据存储器,MOVC指令用于读取程序存储器中的常数。2-3. 简述8051片内RAM的空间分配。答:低128B位数据存储器区分为:工作寄存器区(00H1FH);位寻址区(20H2FH);一般数据存储区(30H7FH) 高128B数据存储器区离散地分布着21个特殊功能寄存器2-4. 简述直接位寻址区的空间分配,片内RAM中包含哪些可位寻址单元? 答:MCS-51单片机片内RAM中有两个区域可进行位寻址: (1)片内RAM低128字节的位寻址区,地址为20H2FH的16个字节单元共128位,每一位都有相应的位地址,可用位寻址方式对其进行置位、复
3、位、内容传送、逻辑运算等操作,128位的位地址定义为00H7FH。(2)片内RAM高128字节的存储器区,有21个特殊功能寄存器。其中字节地址正好能被8整除的字节单元中的每一位都可以按位寻址、操作。14 2-5 8051的P0P3口有何不同,用作通用I/O口输入数据时应注意什么? 答:P0P3口功能不完全相同。(1) 访问外扩展存储器时,P2口送出16位地址的高8位地址,P0口先送出16位地址的低8位地址,再做数据的输入/输出通道。(2) 在无片外扩展存储器的系统中,P0、P2口不需要做地址口时,和P1、P3口一样,都可作为准双向通用I/O口使用。P0的输出级无上拉电阻,在作为通用I/O口时需
4、外接上拉电阻,且P0口的每一位输出可驱动8个TTL负载,而P0P3口的输出级接有上拉负载电阻,每一位输出可驱动4个TTL负载。在作通用I/O输入数据时应注意:应先对相应的端口锁存器写1,防止误读。2-6. 8051单片机引脚有何功能?在使用8031时,引脚应如何处理? EAEA答:引脚为外部程序存储器地址允许输入端,其电平的高低决定了系统复位后CPU是从片内程序存储器还是片外扩展存储器的0000H字节单元开始取指令。EA(1) 当引脚接成高电平时,CPU首先从片内0000H字节单元开始取指令执行程序,当指令地址寄存器PC中的内容超过0FFFH后,就自动转向片外扩展的EPROM中取指令执行,这时
5、芯片外部的重叠地址为0000H0FFFH的低4KB EPROM忽略不用。EA(2) 当引脚接成低电平时,复位后CPU直接从片外EPROM的0000H字节单元开始取指令执行,这时芯片内部0000H0FFFH的4KB单元被忽略不用。EA在使用8031时,由于其内部没有ROM/EPROM,所以必须使用外部扩展程序存储器,它的引脚应该接成低电平,CPU直接从片外扩展的EPROM中取指令执行。EA2-7. 8051单片机有哪些信号需要芯片以第二功能的方式提供? 答: (1)VPD(9脚):片内RAM备用电源的输入端。(2)(30脚):对于片内带有可编程序存储器的芯片,作为编程写入的编程脉冲输入端,把编写
6、好的程序指令代码存入程序存储器中。PROG (3) VPP (31脚):对于片内有EPROM的芯片固化程序时,它作为是加高编程电压的输入端。(4) RXD (10脚):串行口通信数据输入线。(5) TXD (11脚):串行口通信数据输出线。(6) (12脚):外部中断0输入信号。INT0 (7) (13脚):外部中断1输出信号。INT1 (8) T0 (14脚):定时器0的脉冲信号外部输入。(9) T1 (15脚):定时器1的脉冲信号外部输入。15 (10) (16脚):CPU至片外数据存储器的“写选通控制”输出。WR (11) (17脚):CPU至片外数据存储器的“读选通控制”输出。RD 2
7、-8. 内RAM低128B单元划分为哪三个主要区域?各区域主要功能是什么? 答:地址范围为00H7FH的128字节单元,按功能特点划分为不同的几个区,分述如下。(1) 工作寄存器区地址范围为00H1FH的32字节存储器单元,分为四个组,每组有8个工作寄存器字节单元,定名为R0、R1、R2、R3、R4、R5、R6和R7。通过改变程序状态字特殊功能寄存器PSW中RS1,RS0两位的内容,每组工作寄存器均可选作CPU的当前工作寄存器组。(2) 位寻址区地址为20H2FH的16个字节单元中共128位,每一位都有相应的位地址,可用位寻址方式对其进行置位、复位、内容传送、逻辑运算等操作。(3) 一般数据存
8、储区地址范围为30H7FH的区域,可用于原始数据及运算结果的存储。值得注意的是,30H7FH中一部分字节单元可以开辟出一块遵守“后进先出”或“先进后出”规则的特殊数据区堆栈。2-9. 单片机系统复位有哪几种方法?复位后特殊功能寄存器初始状态如何? 答:使单片机系统复位有两种方法:上电自动复位和按键手动复位系统复位的主要功能就是把PC初始化为0000H,使单片机从0000H单元开始执行程序,另外,系统复位还使一些特殊功能寄存器恢复到复位状态。PC: 0000H ACC: 00H PSW: 00H SP: 07H DPTR:0000H P03: FFH IP: *000000B IE:0*0000
9、00B TMOD: 00H TCON: 00H TL0: 00H TH0: 00H TL1: 00H TH1: 00H SCON: 00H SBUF:不定PCON: 0*0000B 2-10. 开机复位后,CPU使用那组工作寄存器作为当前工作寄存器?它们的地址是什么? 答:开机复位后,由于(RS1=0,RS0=0),CPU使用第0组工作寄存器作为当前工作寄存器,它的地址为00H07H. 2-11. CPU如何确定和改变当前工作寄存器组? 答:通过改变程序状态字特殊功能寄存器PSW中RS1,RS0两位的内容,每组工作寄存器均可被选作当前工作寄存器。RS1 RS0 当前工作寄存器0 0 第0组 0
10、 1 第1组16 1 0 第2组 1 1 第3组2-13位寻址与字节单元地址7CH如何区别?位地址7CH、具体在片内RAM的什么位置? 答:8051采用不同的寻址方式和指令分别对位和字节进行不同的操作,如SETB 20H指的是20H位单元的内容置为1,而MOV 20H,#0FFH指的是内RAM20H字节单元的内容变为FFH。位地址7CH在内RAM低128字节的2FH字节单元的第四位。2-14. 8051单片机时钟周期与振荡周期之间有什么关系? 答:8051单片机的时钟周期为振荡周期的两倍。2-15 一个机器周期的时序是怎样划分的? 答:MCS-51系列单片机工作的一个机器周期由6个S状态周期组
11、成,即S1S6,每个状态又持续两个振荡周期,即P1和P2两拍,故一个机器周期包括12个振荡周期。一个机器周期具体分为S1P1,S1P2,S2P1,S2P2,S3P1,S3P2,S4P1,S4P2,S5P1, S5P2,S6P1,S6P2共12状态拍。若采用12MHZ晶体振荡器,则每个机器周期恰为1s。2-16. 什么叫堆栈?堆栈指针SP的作用是什么?8051单片机堆栈容量不能超过多少字节? 答:一般在30H7FH的地址范围内,有一部分字节单元可开辟出一块遵守“后进先出”或“先进后出”规则的特殊数据区,就叫堆栈。SP为堆栈指针,它始终存放堆栈顶部字节单元的地址(栈顶指针),数据压栈时,SP首先自
12、动加1,然后数据压入SP内容指示的字节单元中;而数据出栈时,SP内容指示的字节单元中的数据弹出,然后SP自动减1,这样SP始终指向堆栈顶部字节单元的地址。8051单片机堆栈容量最多不能超过128字节。初始化后,(SP)=07H,如果CPU使用工作寄存器1组,那么堆栈和工作寄存器将发生冲突,因此常把堆栈移至307FH区域之中。2-17. 分析原教材中说明图2-16系统中各信号线的作用。答:P1口用作一般I/O口,P1.0,P1.1,P1.2通过光电隔离电路向三相步进电机的功率放大电路顺序地发出步进脉冲信号;P1.6和P1.7作为输入,检测控制步进电机的正反转的按键状态;XTAL1和XTAL2接外
13、部时钟电路,为系统提供振荡时钟;P0口分时用作地址/数据总线,取指令时输出低8位地址,经地址锁存器74LS373锁存,其它时间P0口用作数据总线输出8位数据;高5位地址由P2.0P2.4提供; ALE作为地址输出锁存控制端;接地,CPU直接从外扩EPROM中取指令执行;为程序存储器输出允许控制端,在CPU读取EPROM中数据时,EAPSEN17 使EPROM输出指令。3-1 什么是寻址方式?MCS-51单片机有哪几种寻址方式?对8031内部RAM的128255字节地址的空间寻址要注意什么? 答:寻址方式是如何找到存放被操作数据的位置(地址)的方法;MCS-51单片机有七种寻址方式:寄存器寻址、
14、直接寻址、立即数寻址、寄存器间接寻址、变址间接寻址、相对寻址和位寻址;8031内部RAM的128255字节为特殊功能寄存器区,只允许使用直接寻址方式。3-6 若要完成以下数据传送,如何应用MCS-51指令予以实现? (1) R1的内容传送到R0: MOV A, R1 MOV R0, A (2) 外部RAM 20H单元的内容送入R0: MOV R1, #20H MOVX A, R1 MOV R0, A (1) 外部RAM 0020H单元的内容送内部RAM 20H单元: MOV R0, #20H MOVX A, R0 MOV 20H, A (2) 外部RAM 1000H单元内容送内部RAM 20H
15、单元: MOV DPTR, #1000H MOVX A, DPTR31 MOV 20H, A (3) 外部ROM 2000H单元内容送R0: MOV A, #00H MOV DPTR, #2000H MOVC A, A+DPTR MOV R0, A (4) 外部ROM 2000H单元内容送内部RAM 20H单元: MOV A, #00H MOV DPTR, #2000H MOVC A, A+DPTR MOV 20H, A (5) 外部ROM 2000H单元内容送外部RAM 0020H单元: MOV A, #00H MOV R0, #20H MOV DPTR, #2000H MOVC A, A+
16、DPTR MOVX R0, A 3-8 已知SP=25H,PC=2345H,标号LABEL所在的地址为3456H, 问执行长调用指令LCALL LABEL后,堆栈指针和堆栈的内容发生什么变化?PC值等于什么? 答:(SP)=27H,(26H)=48H,(27H)=23H;(PC)=3456H 3-9 上题中的LCALL指令能否直接换成ACALL指令,为什么?如果使用ACALL指令,则可调用的地址范围是什么? 答:不能,因为LABEL所在地址3456H与PC不在同一2 KB范围内,即高5位地址不同。若要使用ACALL指令,可调用的地址范围是2000H27FFH。3-10 有一个16位二进制数,高
17、8位存于21H单元,低8位存于20H单元。执行如下程序段,试问: 程序段功能是什么? 能否用MOV代替程序段中的XCH语句而不改变程序的逻辑功能?写出相应程序段。 两个程序段结果是否相同?差别在哪里? CLR C XCH A,21H RRC A XCH A,21H32 XCH A,20H RRC A XCH A,20H 答: (1)程序段的功能是将此16位二进制数除2后取整(2)能用MOV代替程序段中的XCH语句而不改变程序的逻辑功能,如下: CLR C MOV A,21H RRC A MOV 21H,A MOV A,20H RRC A MOV 20H,A 两个程序段结果不相同。原程序执行后A
18、的内容为程序运行前A中内容,即此程序没有改变A中内容;MOV语句程序中A 的内容为原20H单元内容右移一位后的内容。3-11 分析以下程序段运行的结果。若将DA A指令取消,则结果会有什么不同? CLR C MOV 20H,#99H MOV A,20H ADD A,#01H DA A MOV 20H,A 答:结果为(20H)=00H,CY=1。若取消DA A指令,(20H)=9AH,CY=0。3-12 由于SJMP指令的转移范围是256B,而AJMP指令转移范围是2KB,所以在程序中SJMP指令都可以用AJMP指令来代替。”请问这种说法是否正确,为什么? 答:不正确。AJMP转移的目标地址必须
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课后 答案 霍孟友 主编
限制150内