单片机习题集(含答案)经典 联系客服

发布时间 : 星期日 文章单片机习题集(含答案)经典更新完毕开始阅读68ee0923ccbff121dd368355

存器SFR的分布和功能见教材P.24表2-3。

12、答:数据指针DPTR是16位的专用寄存器,它由两个8位的寄存器DPH(高8位)和DPL(低8位)组成。专门用来寄存片外RAM及扩展I/O口进行数据存取时的地址。编程时,既可以按16位寄存器来使用,也可以按两个8位寄存器来使用(即高位字节寄存器DPH和低位字节寄存器DPL)。

DPTR主要是用来保存16位地址,当对64KB外部数据存储器寻址时,可作为间址寄存器使用。

13、答:程序状态字PSW是8位寄存器,用于存放程序运行的状态信息,PSW中各位状态通常是在指令执行的过程中自动形成的,但也可以由用户根据需要采用传送指令加以改变。各个标志位的意义如下:

PSW.7(Cy):进位标志位。 PSW.6(AC):辅助进位标志位,又称为半进位标志位。 PSW.5(F0):用户标志位。 PSW.4、PSW.3(RS1和 RS0):寄存器组选择位。 PSW.2(OV):溢出标志位。 PSW.1(空缺位):此位未定义。 PSW.0(P):奇偶校验位

14、答:开机复位后,CPU使用的是第0组工作寄存器。它们的地址是00H-07H。CPU通过对程序状态字PSW中RS1和RS0的设置来确定和改变当前工作寄存器组。 15、答:8051片内数据存储器有256B寻址空间。存储器空间的地址范围为:00H—-FFH

在这个存储器空间又可分为:

基本的数据存储区:00H—-7FH,可划分为工作寄存器、位寻址区、堆栈与数据缓冲区。

16、答:片内RAM低128单元划分及主要功能如下:

(1)工作寄存器组(00H——1FH)

这是一个用寄存器直接寻址的区域,内部数据RAM区的0—31,共32个单元。它是4个通用工作寄存器组,每个组包含8个8位寄存器,编号为R0——R7。

(2)位寻址区(20H——2FH)

16个字节单元,共包含128位,这16个字节单元既可以进行字节寻址,又可以实现位寻址。主要用于位寻址。

(3)堆栈与数据缓冲区(30H——7FH) 用于设置堆栈、存储数据。

17、答:程序存储器通过EA/Vpp引脚选择。若EA=0,则允许使用片内ROM;若EA=1则允许使用片外ROM。 数据存储器通过指令区分:访问片内RAM采用MOV指令,访问片外RAM采用MOVX指令。

18、答:时钟周期又称为振荡周期,由单片机内部振荡电路OSC产生,定义为OSC时钟频率的倒数。时钟周期又称为节拍(用P表示)。时钟周期是时序中的最小单位。一个状态有两个节拍,

机器周期定义为实现特定功能所需的时间。MCS-51的机器周期由12个时钟周期构成。 执行一条指令所需要的时间称为指令周期,指令周期是时序中的最大单位。由于机器执行不同指令所需的时间不同,因此不同指令所包含的机器周期数也不尽相同。MCS-51的指令可能包括1~4个不等的机器周期。 当MCS-51的主频为12MHz时,一个机器周期为1?s。执行一条指令需要的最长时间为4?s。 19、答:8051单片机复位后机器的初始状态,即各寄存器的状态:PC之外,复位操作还对其它一些特殊功能寄存器有影响,它们的复位状态如下: 寄存器 复位时内容 寄存器 复位时内容 PC ACC

0000H 00H TCON TL0 0×000000B 00H

B PSW SP DPTR P0—P3 00H 00H 07H 0000H FFH TH0 TH1 TH1 SCON SBUF 00H 00H 00H 00H 不确定 TMOD ××000000B PCON 0×××0000B 单片机复位方法有:上电自动复位,按键电平复位和外部脉冲三种方式 20、答:

单片机一旦响应中断请求, 就由硬件完成以下功能:

 (1) 根据响应的中断源的中断优先级, 使相应的优先级状态触发器置1;

(2) 执行硬件中断服务子程序调用, 并把当前程序计数器PC的内容压入堆栈,保护断点,寻找中断源; 

(3) 清除相应的中断请求标志位(串行口中断请求标志RI和TI除外); 

(4) 把被响应的中断源所对应的中断服务程序的入口地址(中断矢量)送入PC, 从而转入相应的中断服务程序。

(5)中断返回,程序返回断点处继续执行。 21、答:

(1)由中断源提出中断请求,由中断控制允许控制决定是否响应中断,如果允许响应中断,则CPU按设定好的优先级的顺序响应中断。如果是同一优先级的中断,则按单片机内部的自然优先级顺序(外部中断0→定时器0中断→外部中断l→定时器1中断→串行接口中断)响应中断。

CPU响应中断请求后,就立即转入执行中断服务程序。保护断点、寻找中断源、中断处理、中断返回,程序返回断点处继续执行。

(2)由中断允许寄存器IE控制开放和禁止中断。欲开放某一中断,则应先开放总中断允许(EA置1),然后开放相应中断的中断允许(相应位置1);若要要禁止中断,则EA置O即可。

(3)由中断优先级控制寄存器IP控制中断优先级,相应位置1,则设为高级中断,置0则为低级。其中:PS为串行中断优先级,PTl(0)为定时中断1(0)优先级,PXl(0)外部中断1(0)优先级。 22、答:

(1)有中断源发出中断请求。

(2)中断总允许控制位EA=l, CPU开放总中断。

(3)申请中断的中断源的中断允许位为1,即该中断没有被屏蔽。 (4)无同级或更高级中断正在服务。 (5)当前指令周期已经结束。

(6)若现行指令为RETI或访问IE或IP指令时,读指令以及紧接着的另一条指令已执行完毕。

满足以上条件,则CPU响应响应中断元的中断请求。

23、答:80C51单片机有4个I/O端口,每个端口都是8位双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0~P3)、一个输入驱动器和输入缓冲器。通常把4个端口称为P0~P3。在无片外扩展的存储器的系统中,这4个端口的每一位都可以作为双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线

24、答:中断是指CPU暂时中止其正在执行的程序,转去执行请求中断的那个外围设备或事件的服务程序,等处理完后再返回执行原来中止的程序。

MCS-51有5个中断源,其中断源与中断入口地址分别为:

INT0 T0

0003H 000BH

INT1 T1

0013H 001BH

串行口 0023H

中断入口地址与中断服务子程序的入口地址是有区别的,中断入口地址如上,而中断服务子程序的入口地址就是中断服务子程序名称所在的地址即中断服务子程序第一句所在的地址。

第三章 MCS-51单片机的指令系统与程序设计

3-1选择题

1B ;2B;3D;4D ;5B;6C; 7 A;8 C;9D;10B;11B;12B;13D;14D;15A ;16

3-2 判断题

1×;2×;3×;4√;5√;6×;7×;8×;9×;10√;11×;12×;13×;14×;15×16×;17 ×;18×;19√

3-3 填空题

1、 清零

2、 SP 、 寄存器间接寻址 、 B 、 寄存器寻址 3、 23H 、 3412H 4、 操作码 、 操作数 5、 立即数寻址 、 直接寻址 、 寄存器寻址、 寄存器间接寻址、 变址寻址 、 相对寻址、 位寻址 6、 变址 7、 清零 。 8、 0F 9、11000000 10、 后进先出

3-4 问答题与编程题

1、答: MCS-51单片机指令系统按功能可分为5类:

(1)数据传送指令 (2)算术运算指令

(3)逻辑运算和移位指令 (4)控制转移指令

(5)位操作指令

2、答:寻址方式:寻址方式就是寻找指令中操作数或操作数所在地址的方式。也就是如何找到存放操作数的地址,把操作数提取出来的方法。

MCS-51单片机的指令系统提供了七种寻址方式,其对应的寻址范围如下表:

寻址方式 使用的变量 寻址范围 立即寻址 程序存储器 内部RAM低128个字节; 直接寻址 特殊功能寄存器SFR 寄存器寻址 R0~R7;A、B、DPTR、C @R0、@R1、SP 内部RAM、堆栈指针SP 寄存器间接寻址 @R0、@R1、@DPTR 外部RAM 变址寻址 @A+PC、@A+DPTR 程序存储器 相对寻址 PC+偏移量 程序存储器 内部RAM低128B位寻址区 位寻址 可位寻址的特殊功能寄存器位

3、答:堆栈是存储器中的特殊群体。在内RAM中专门辟出一个连续存储区,用来暂时存

放子程序断口地址、中断断口地址和其他需要保存的数据。

堆栈操作无论是存入或取出数据,均只能依次存人或依次取出,不能越位,必须遵循“先进后出\、“后进先出”的原则。

堆栈指针SP指出栈顶存储单元的地址。

4、答:汇编:汇编语言源程序在交付计算机执行之前,需要先翻译成目标程序,这个翻译过程叫汇编。

汇编语言:是用助记符替代机器语言中的操作码,用16进制数替代二进制代码。特点是比较直观,易于记忆和检查,可读性较好。但是计算机执行时,必须将汇编语言翻译成机器语言,不同的微处理器有不同的汇编语言。

5、答:指令周期:指执行一条指令所占用的全部时间。通常一个指令周期含1~4个机器周期。

6、答:指令:人为输入计算机,由计算机识别并执行一步步操作的命令的形式称为指令。

程序:一系列指令的有序集合称为程序。

程序在计算机中是按序执行的,CPU通过程序计数器PC控制程序的执行顺序,一般情况下程序是按序执行的,当执行转移、调用、返回等指令时,程序转移到相应的目的地址处执行。CPU根据程序计数器PC中的地址将欲执行指令的指令码从存储器中取出,存放在IR中,ID对IR中的指令码进行译码,定时控制逻辑在OSC配合下对ID译码后的信号进行分时,产生执行本条指令所需的全部信号,完成本条指令的执行。

7、答:两数运算的结果若没有超出字长的表示范围,则由此产生的进位是自然进位;若两数的运算结果超出了字长的表示范围(即结果不合理),则称为溢出。例如将正数3FH和负数D0H相加,其结果不会超出8位字长的表示范围,所以其结果10FH中的进位是正常进位(也就是模)。但是,若正数3FH与正数70H相加,其结果为AFH,最高位为\,成了负数的含义,这就不合理了,这种情况称为溢出。

8、答:这条指令是在进行BCD码加法运算时,跟在“ADD”和“ADDC”指令之后,用来对BCD码的加法运算结果自动进行修正的,使其仍为BCD码表达形式。

在计算机中,遇到十进制调整指令时,中间结果的修正是由ALU硬件中的十进制修正电路自动进行的。用户不必考虑何时该加“6”,使用时只需在上述加法指令后面紧跟一条“DA A”指令即可。

9、答: 虽然内部RAM位寻址区的位地址范围00H~7FH与低128个单元的单元地址范围00H~7FH形式完全相同,但是在应用中可以通过指令的类型区分单元地址和位地址。 位寻址的操作只适用于下列位指令,而直接寻址操作对这些指令是无效的。

MOV C,bit MOV bit,C CLR bit SETB bit CPL bit ANL C,bit ANLC,/bit JB bit,rel JNB bit,rel

10、答: 在实际应用中,可从寻址范围和指令长度两个方面来选择长跳转指令LJMP和短跳转指令AJMP、长调用指令LCALL和短调用指令ACALL。

长跳转LJMP在64KB范围内转移,而短跳转AJMP只能在2KB空间转移。长调用LCALL调用位于64KB程序空间的子程序,而短调用ACALL调用位于2KB程序空间范围的子程序。AJMP、ACALL指令代码长度为2个字节;LJMP、LCALL指令代码长度为3个字节。 11、答: 指令的转移范围不同。

SJMP是256B范围内的相对转移指令,AJMP是2KB范围内的无条件短跳转指令,LJMP是64KB范围内的无条件长跳转指令。 12、答: 指令的转移范围不同。