1、单片机原理及应用( C 语言版)思考题与习题答案第 1 章 单片机概述1什么是单片机?答:将中央处理器(Central Processing Unit,CPU) 、随机存储器、只读存储器、中断系统、定时器/计数器以及 I/O 接口电路等微型计算机的主要部件集成在一块芯片上,使其具有计算机的基本功能,就叫做单片微型计算机(Single Chip Micro Computer,SCMC) ,简称单片机。由于单片机的指令功能是按照工业控制的要求设计,所以单片机又称为微控制器(Micro Controller Unit,MCU ) 。2单片机有哪些特点?答: (1)单片机的存储器 ROM 和 RAM
2、是严格区分的。ROM称为程序存储器,只存放程序、固定常数及数据表格。RAM 则为数据存储器,用作工作区及存放用户数据。(2)采用面向控制的指令系统。(3)单片机的 I/O 引脚通常是多功能的。(4)单片机的外部扩展能力强。(5)单片机体积小,成本低,运用灵活,易于产品化。(6)面向控制,能有针对性地解决从简单到复杂的各类控制任务,因而能获得最佳的性能价格比。(7)抗干扰能力强,适用温度范围宽。(8)可以方便地实现多机和分布式控制,使整个控制系统的效率和可靠性大为提高。3单片机的应用有哪些?答: (1)工业控制。单片机可以构成各种工业控制系统、数据采集系统等。如数控机床、自动生产线控制、电机控制
3、、测控系统等。(2)仪器仪表。如智能仪表、医疗器械、数字示波器等。(3)计算机外部设备与智能接口。如图形终端机、传真机、复印机、打印机、绘图仪、磁盘/磁带机、智能终端机等。(4)商用产品。如自动售货机、电子收款机、电子秤等。(5)家用电器。如微波炉、电视机、空调、洗衣机、录像机、音响设备等。(6)消费类电子产品。(7)通讯设备和网络设备。(8)儿童智能玩具。(9)汽车、建筑机械、飞机等大型机械设备。(10)智能楼宇设备。(11)交通控制设备。4常见的单片机有哪些类型?答: 1AVR 单片机;2Motorola 单片机; 3MicroChip 单片机;4Scenix 单片机; 5EPSON 单片
4、机;7GMS90 单片机;8华邦单片机9Zilog 单片机;10NS 单片机;11AX1001 单片机第 2 章 MCS-51 单片机结构与原理1MCS-51 单片机内部包含哪些主要逻辑功能部件?答:(1)1 个 8 位的微处理器 CPU。(2)8KB 的片内程序存储器 Flash ROM(51 子系列的 Flash ROM为 4KB) ,用于烧录运行的程序、常数数据。(3)256B 的片内数据存储器 RAM(51 子系列的 RAM 为 128B) ,在程序运行时可以随时写入数据和读出,用于存放函数相互传递的数据、接收的外部数据、中间结果、最后结果以及显示的数据等。(4)3 个 16 位的定时
5、器/计数器(51 子系列仅有 2 个定时器) ,每个定时器/计数器可以设置为计数方式,用于对外部事件信号进行计数,也可以设置为定时方式,满足各种定时要求。(5)有一个管理 6 个中断源(51 子系列 1 是 5 个中断源) 、两个优先级的中断控制器。(6)4 个 8 位并行 I/O 端,每个端口既可以用作输入,也可以用于输出。(7)一个全双工的 UART(通用异步接收发送器)串行 I/O 口,用于单片机之间的串行通信,或者单片机与 PC 机、其它设备、其它芯片之间的串行通信。(8)片内振荡电路和时钟发生器,只需外面接上一晶振或输入振荡信号就可产生单片机所需要的各种时钟信号。(9)有一个可寻址
6、64KB 外部数据存储器、还可以寻址 64KB 外部程序存储器的三总线的控制电路。2MCS-51 单片机的 引脚有何功能?信号为何种电平?EA答: 为片外程序存储器选择输入端。该引脚为低电平时,使用EA片外程序存储器,为高电平时,使用片内程序存储器。3MCS-51 单片机的 ALE 引脚有何功能?信号波形是什么?答: ALE 为地址锁存信号,每个机器周期输出两个正脉冲。在访问片外存储器时,下降沿用于控制外接的地址锁存器锁存从 P0 口输出的低 8 位地址。在没有接外部存储器时,可以将该引脚的输出作为时钟信号使用。4MCS-51 单片机的存储器分为哪几个空间?如何区分不同空间的寻址?答: MCS
7、-51 单片机有 4 个存储空间,它们是片内程序存储器和数据存储器,在片外可以扩展的程序存储器和数据存储器。这 4 个存储空间可以分成三类:片内数据存储空间(256B 的 RAM 和 128B的特殊功能寄存器) 、片外数据存储空间(64KB) 、片内和片外统一编址的程序存储空间(64KB) 。不同的存储空间,它们有各自的寻址方式和访问指令。片内数据存储空间用 MOV 指令访问。片外数据存储空间用 MOVX 指令访问。片内和片外统一编址的程序存储空间用 MOVC 指令访问。5简述 MCS-51 单片机片内 RAM 的空间分配。内部 RAM 低128 字节分为哪几个主要部分?各部分主要功能是什么?
8、答: 片内数据存储器按照寻址方式,可以分为三个部分:低 128字节数据区,高 128 字节数据区间,特殊功能寄存器区。低 128 字节数据区分为三个区域:工作寄存器区,位寻找区和通用数据区。工作寄存器区 4 组工作寄存器;位寻找区既可以做位操作,也可以字节操作;通用数据区用于堆栈和存放程序运行时的数据和中间结果。6简述 MCS-51 单片机布尔处理器存储空间分配,片内 RAM包含哪些可以位寻址的单元。位地址 7DH 与字节地址 7DH 如何区别?位地址 7DH 具体在片内 RAM 中的什么位置?答:低 128 字节数据区的位寻找区和高 128 字节数据区的某些可位寻址的特殊功能寄存器。位地址
9、7DH 与字节地址 7DH 可通过不同的指令来区别,位地址 7DH 用位寻址指令来访问,字节地址 7DH用字节寻址指令来访问,位地址 7DH 在低 128 字节数据区的位寻找区的 2FH 字节。7MCS-51 单片机的程序状态寄存器 PSW 的作用是什么?常用标志有哪些位?作用是什么?答:PSW 是一个 8 位寄存器,用于设定 CPU 的状态和指示指令执行后的状态。CY( PSW.7):进位标志。在执行加减运算指令时,如果运算结果的最高位(D7)发生了进位或借位,则 CY 由硬件自动置 1。AC( PSW.6):半进位标志位,也称为辅助标志位。在执行加减运算指令时,如果运算结果的低半字节(D3
10、)发生了向高半字节进位或借位,则 AC 由硬件自动置 1。F0、F1(PSW.5 和 PSW.1):用户标志位。用户可以根据需要对 F0、F1 赋予一定的含义,由用户置 1 和清 0,作为软件标志。RS1、RS0(PSW.4 和 PSW.3):工作寄存器组选择控制位。通过对这两位设定,可以从 4 个工作寄存器组中选择一组作为当前工作寄存器。OV(PSW.2):溢出标志位,有两种情况影响该位。一是执行加减运算时,如果 D7 或 D6 任一位,并且只一位发生了进位或借位,则 OV 自动置 1, P(PSW.0):奇偶标志位。每条指令执行完后,该位都会指示当前累加器 A 中 1 的个数。如果 A 中
11、有奇数个 1,则 P 自动置 1。8MCS-51 单片机复位后,CPU 使用哪组工作寄存器?它们的地址是什么?用户如何改变当前工作寄存器组?答: MCS-51 单片机复位后, CPU 使用 0 组工作寄存器。它们的地址是 00H07H。通过程序状态字 PSW 中的 RS1、RS0 标志位改变当前工作寄存器组。9什么叫堆栈?堆栈指针 SP 的作用是什么?答: 堆栈是在 RAM 专门开辟的一个特殊用途的存储区。堆栈是按照“先进后出 ”(即先进入堆栈的数据后移出堆栈)的原则存取数据。堆栈指针 SP 是一个 8 位寄存器,其值为栈顶的地址,即指向栈顶,SP 为访问堆栈的间址寄存器。10PC 与 DPT
12、R 各有哪些特点?有何异同?答: PC 与 DPTR 都是 16 位的寄存器。PC 由两个 8 位的计数器PCH 和 PCL 组成。PC 实际是程序的字节地址计数器,它的内容是将要执行的下一条指令的地址,具有自加 1 功能。改变 PC 的内容就可以改变程序执行的方向。DPTR 的高字节寄存器用 DPH 表示,低字节寄存器用 DPL 表示。DPTR 既可以作为一个 16 位寄存器使用,也可以作为两个独立的 8 位寄存器使用。DPTR 主要用于存放16 位地址,以便对 64KB 的片外 RAM 和 64KB 的程序存储空间作间接访问。11测试哪个引脚,可以快捷地判断单片机是否正在工作?答: 若要检
13、查单片机是否工作,可以使用示波器查看 ALE 引脚是否有脉冲信号输出。12读端口锁存器和“读引脚”有何不同?各使用哪些指令?答: 一种是读取锁存器原来的输出值,另一种情况是打开端口的缓冲器读取引脚上的信号,读端口锁存器,用 MOV A,Pi 指令。 “读引脚”,要先用 MOV Pi,#0FFH 对相应端口写 FFH,使输出场效应管T 截止,才能够正确输入,再用 MOV A,Pi 指令。13MCS-51 单片机的 P0P3 口结构有何不同?用作通用 I/O口输入数据时应注意什么?答: P2 口是一个双功能口,一是通用 I/O 口,二是以总线方式访问外部存储器时作为高 8 位地址口。其端口某一位的
14、结构如图 2-11所示,对比图 2-10 知,与 P1 口的结构类似,驱动部分基本上与 P1口相同,但比 P1 口多了一个多路切换开关 MUX 和反相器 3。P3 口是一个多功能口,其某一位的结构见图 2-12。与 P1 口的结构相比不难看出,P3 口与 P1 口的差别在于多了 “与非门”3 和缓冲器 4。正是这两个部分,使得 P3 口除了具有 P1 口的准双向 I/O 口的功能之外,还可以使用各引脚所具有的第 2 功能。P0 多了一路总线输出(地址/数据) 、总线输出控制电路(反相器 3 和与门 4) 、两路输出切换开关 MUX 及开关控制 C,并且把上拉电阻换成了场效应管 T1,以增加总线
15、的驱动能力。用作通用 I/O 口输入数据时应注意要先用 MOV Pi,#0FFH 对相应端口写 FFH,使输出场效应管 T 截止,才能够正确输入。14P0 口用作通用 I/O 口输出数据时应注意什么?答: P0 口与其它端口不同,它的输出级无上拉电阻。当把它用作通用 I/O 口时,输出级是开漏电路,故用其输出去驱动 NMOS 输入时外接上拉电阻,这时每一位输出可以驱动 4 个 LS 型 TTL 负载。用作输入时,应先向端口锁存器写 1。15什么叫时钟周期?什么叫机器周期?什么叫指令周期?时钟周期、机器周期与振荡周期之间有什么关系?答: 时钟周期即振荡周期:为晶振的振荡周期,是最小的时序单位。状
16、态周期:是振荡频率 2 分频后的时钟周期。显然,一个状态周期包含 2 个振荡周期。机器周期(MC): 1 个机器周期由 6 个状态周期、即 12 个振荡周期组成,是量度指令执行时间的单位。指令周期:是执行一条指令所需要的时间。一个指令周期由 14 个机器周期组成。16MCS-51 单片机常用的复位电路有哪些?复位后机器的初始状态如何?答: 复位电路有两种方式:上电自动复位电路和手动复位电路。复位后,程序计数器 PC 变为 0000H,使单片机从程序存储器地址0000H 单元开始执行。除 P0P3 为 FFH; SP 为 07H;SBUF 为不确定。大部分特殊功能寄存器清零。17MCS-51 单片机有几种低功耗工作方式?如何实现,又如何