单片机原理课后习题参考答案

上传人:我*** 文档编号:130720497 上传时间:2020-04-30 格式:DOC 页数:18 大小:360.50KB
返回 下载 相关 举报
单片机原理课后习题参考答案_第1页
第1页 / 共18页
单片机原理课后习题参考答案_第2页
第2页 / 共18页
单片机原理课后习题参考答案_第3页
第3页 / 共18页
单片机原理课后习题参考答案_第4页
第4页 / 共18页
单片机原理课后习题参考答案_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《单片机原理课后习题参考答案》由会员分享,可在线阅读,更多相关《单片机原理课后习题参考答案(18页珍藏版)》请在金锄头文库上搜索。

1、第2章 部分习题参考解答1、 试述MCS-51单片机内部有哪些主要逻辑部件并说出其功能,画出片内结构图。MCS-51单片机的内部除包含CPU外,还包含程序存储器、数据存储器、定时器/计数器、并行I/O接口、串行I/O接口、总线控制逻辑和中断控制逻辑等逻辑部件,其结构框图如图所示:其中,CPU是单片机的最核心部分,它是整个单片机的控制和指挥中心,完成所有的计算和控制任务。振荡器和时序逻辑,产生CPU工作所需要的内部时钟。中断控制逻辑用来应付一些临时到达的突发事件,并能保证当有多个突发事件发生时,CPU能够有序地为这些事件进行服务,所有突发事件服务完成后CPU还能继续以前的工作。并行I/O接口和串

2、行I/O接口作为CPU与外部设备通信的信息传输通道。程序存储器用于存放单片机的程序。数据存储器用于存放内部待处理的数据和处理后的结果。定时器/计数器主要是完成对外部输入脉冲的计数或者根据内部的时钟及定时设置,周期性的产生定时信号。64K总线控制逻辑,用于产生外部64KB存储空间的有关读写控制信号。2、 MCS-51单片机有4个8位并行口(P0、P1、P2、P3),哪个口可作为地址/数据利用总线?P0口可作为地址/数据复用总线口。3、 P0口作为通用I/O口使用时,在输出状态下应注意什么?在输入状态下应注意什么?P0口作为通用I/O口使用时,输出级是漏极开路的,因此在输出状态下外部应加上拉电阻。

3、在输入状态下应先向端口锁存器写入1,这样引脚便处于悬浮状态,可作高阻抗输入。5、 MCS-51单片机的最大寻址空间是多少?为什么?MCS-51单片机,程序存储器空间采用片内、片外统一编址的方式,共有64KB,地址范围为 000OHFFFFH。片内有256字节数据存储器地址空间,地址范围为 00HFFH。片外数据存储器空间有64KB,其地址范围也是 000OHFFFFH。7、 MCS-51单片机片内低128字节的RAM中,分了几个基本区域?说出这些区域的名称。MCS-51系列单片机片内低128字节的RAM包含:工作寄存器区(00H: 1FH)、可位寻址区(20H: 2FH)、通用RAM区(30H

4、: 7FH)3个组成部分。8、 片内和片外数据存储器地址重叠的区域是哪些地址?片内与片外数据存储器空间的低地址部分(000OHOOFFH)是重叠的,MCS51单片机有MOV和MOVX两种指令,用以区分片内、片外RAM空间,当使用MOV指令时,访问的是片内区域,当使用MOVX指令时,访问的是片外区域。9、 访问程序存储器的片外空间,是通过什么方式实现的?程序存储器空间的片内、片外选择通过单片机的引脚来实现,当接低电平时,程序存储器空间的64KB全部由片外实现,当接高电平时,程序存储器空间的前4KB(MCS-52是8KB)由片内实现,对于片内没有的高地址空间部分单元,不管引脚接的是高电平还是低电平

5、都由片外实现。片外程序存储器空间和片外数据存储器空间,采用的外部地址总线和数据总线是相同的,不同的是控制总线,程序存储空间的读信号,而数据存储空间的读信号为。10、说出程序状态字寄存器(PSW)各位的含义。PSW的位结构如下表所示。D7D6D5D4D3D2D1D0CyACF0RS1RS0OV-P其中,各位的含义如下: Cy:高位进位标志位,当ALU的算术运算过程中有进位或借位时,Cy=1;否则,Cy=0。同时,该位还可以用作位累加器,这时一般只用“C”表示。 AC:辅助进位标志,当ALU的算术运算过程中低4位向高4位有进位或借位时,AC=1;否则,AC=0。该位常用于BCD码的调整。 F0:用

6、户标志位。 RS1、RS0:选择工作寄存器组位,用于选择内部数据存储器区内4组工作寄存器中的某一组。具体选择情况见寄存器介绍部分。 OV:溢出标志位,当ALU的算术运算过程中有溢出时,OV =1;否则,OV =0。 P:奇偶校验标志位,根据累加器ACC中1的个数由硬件置位或清除,当累加器ACC中有奇数个1时P=1;否则,P=0。 PSW.1:保留位,无定义。11、在MCS-51单片机的工作时序中,一个机器周期包含几个状态周期、几个振荡周期?一个机器周期包含6个状态周期、12个振荡周期。12、单片机复位后,程序计数器PC指向哪个地址?PC0000H第3章 部分习题参考解答1、写出MCS-51单片

7、机汇编指令的指令格式,并简单举例。MCS-51单片机的汇编指令格式如下: 标号: 操作码 目的操作数,源操作数 ;注释操作码表示该指令所实现的操作功能,一般由25个英文字母表示。例如ORL,ADD,LCALL等。操作数表示参与操作的数据来源和目的单元。操作数可以是一个立即数,也可以是一个内存单元或者是一个寄存器单元。操作码和第一个操作数之间一般用一个或几个空格隔开,而操作数与操作数之间用逗号隔开。操作数可以有1个,2个,个或没有。如果需要对指令进行注释说明的话,在最后一个操作数后加一个分号,分号后面是注释。如: MOV A , 60H ; (60H)A标号由18个字母或数字构成,以字母开头以“

8、:”结尾,标号可有可无,它仅仅代表了该指令所在的地址,便于源程序编写过程中使用该地址。2、指出下面程序每个语句的寻址方式。目的操作数原操作数MOV A,P1寄存器寻址直接寻址MOV A,#40H寄存器寻址立即寻址MOV 80H,A直接寻址寄存器寻址MOV A,R5寄存器寻址寄存器寻址MOV R0,A寄存器间接寻址寄存器寻址MOVX A,DPTR寄存器寻址寄存器间接寻址MOVC A,A+DPTR寄存器寻址基址变址寻址MOV 74H,#80H直接寻址立即寻址3、写出下面程序被执行后,各数据存储器地址中的内容。MOV 40H,#33HMOV 41H,#44HMOV A,40HMOV 50H,AMOV

9、 A,41HMOV 51H,A(40H)33H,(41H)44H,(50H)33H,(51H)44H4、设置堆栈指针SP中内容为60H,编写程序,将上题中数据存储器50H、51H的内容压栈后,分别将栈内数据弹出到DPTR寄存器中。MOVSP, #60HPUSH 50HPUSH 51HPOP DPLPOP DPH5、访问片内、外数据存储器,都用什么指令?访问片内数据存储器的数据传送指令用MOV,访问片外数据存储器的数据传送指令用MOVX。6、下面的指令语句对吗?为什么?MOV R0,#0400H;不对,R0是8位寄存器源操作数超过了8位MOV 100H,A;不对,片内数据存储器用8位地址访问,目

10、的操作数的地址超过了8位。MOV R2,A;不对,能够用于间接寻址的只能是R0或R1MOVX R1,A;对,R1做为间址寄存器来提供寻址存储器的低8位,高8位由P2提供7、查表指令MOVC A,A+DPTR 所查的表数据是在程序存储区还是数据存储区?程序存储区。9、使用位操作指令完成下列操作。 将P1.1置“1”。SETBP1.1 将ACC.7置“1”。SETBACC.710、编写程序,将40H为首的8个单元内容,依次反序送入到60H为首的8个单元中去。 MOVR0,#47H;40H开始的8字节数据中最后一个单元的地址 MOVR1,#60H MOVR2,#8LOOP:MOVA,R0 MOV R

11、1,A DECR0 INCR1 DJNZR2,LOOP SJMP$11、两个四位压缩类型BCD码数,被加数放在30H和31H内存单元中,加数放在32H和33H内存单元中,所求的和放在34H和35H中。位数排列按高位在低地址,低位在高地址的顺序,编写此加法程序。MOVPSW,#00H;取0组工作寄存器MOV R0,#31HMOV R1,#33HSETB RS0;取1组工作寄存器MOV R0,#35HCLR RS0MOV R2,#02HCLR C;清除进位标志,准备进行带进位加LOOP:MOV A,R0ADDC A,R1DA ASETB RS0;取1组工作寄存器MOV R0,ADEC R0CLR

12、RS0;恢复0组工作寄存器DEC R0DEC R1DJNZ R2,LOOPSJMP $13、写出ACALL和LCALL两个调用指令的调用范围,试写出这两条指令执行时,CPU的操作过程。ACALL的调用范围是包括调用指令下一条指令的第一个字节所在的2KB范围的程序存储器空间。ACALL调用指令的执行过程是:PC加2(本指令代码为两个字节)获得下一条指令的地址,并把该断点地址(当前的PC值)入栈,然后将断点地址的高五位与11位目标地址(指令代码第一字节的高3位,以及第二字节的八位)连接构成16位的子程序入口地址,使程序转向子程序。调用子程序的入口地址和ACALL指令的下一条指令的地址,其高五位必须

13、相同。因此子程序的入口地址和ACALL指令下一条指令的第一个字节必须在同一个2KB范围的程序存储器空间内。LCALL调用指令的目标地址以16位给出,允许子程序放在64KB空间的任何地方。指令的执行过程是把PC加上本指令代码数(三个字节)获得下一条指令的地址,并把该断点地址入栈(断点地址保护),接着将被调子程序的入口地址(16位目标地址)装入PC,然后从该入口地址开始执行子程序。14、分析下列程序,说出此程序完成什么样的功能。 MOV P1,#0FFH LOOP: MOV R7,#03H;该指令1个机器周期1 LOOP1:MOV R6,#0FFH;该指令1个机器周期2DJNZ R6,$;该指令2

14、个机器周期3DJNZ R7,LOOP1;该指令2个机器周期4CPL P1.0;该指令1个机器周期5JMP LOOP;该指令2个机器周期6END该程序的功能是从P1.0引脚输出连续方波,方波的周期为(11(122325524)31526)2个机器周期15、试编写程序,完成对十个数从大到小的排序(建议用气泡排序法)。十个源字节数据放在30H为首的内存区域,排序后的目标数据放在50H为首的区域。如果不破坏30H开始存放的源字节数据,可以把从30H开始的数据先传送到50H开始的数据区,然后对50H开始的数据进行排序。如果不需考虑30H开始存放的数据使用后的顺序,则可先对30H开始存放的数据进行排序,然后再传送到50H开始的数据区中。现根据第1种情况进行编程。MOV R0,#30HMOV R1,#50HMOV R2,#10LOP1:MOV A,R0MOV R1,AINC R0INC R1DJNZ R2,LOP1MOV R2,#9LOP4:MOV R0,#50HMOV R

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 事务文书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号