单片机教材思考题解答.docx
《单片机教材思考题解答.docx》由会员分享,可在线阅读,更多相关《单片机教材思考题解答.docx(28页珍藏版)》请在冰豆网上搜索。
单片机教材思考题解答
第1单元概述
1.1计算机发展概述
计算机的发展经历了哪五个阶段?
答:
第一代逻辑元件采用电子管,存储器采用磁鼓和磁芯的计算机;第二代辑元件采用晶体管,主存储器仍用磁芯,外存储器已开始用磁盘的计算机;第三代逻辑元件开始采用中小规模集成电路,主存储器仍用磁芯的计算机;第四代采用中、大及超大规模集成电路,主存储器采用半导体存储器的计算机;第五代人工智能计算机(目前仍处于研究之中)。
1.2单片型计算机简介
1.从结构功能分析单片机的发展趋势。
答:
单片机发展的趋势将会朝着不断提高容量、性能、集成度、降低价格等方面发展;在内部结构上将会由RISC(reducedinstructionsetcomputer)结构取代传统的CISC(complexinstructionsetcomputer)结构的单片机。
2.P89C5X系列单片机的特点以及系统结构。
特点如下:
CPU仍然采用80C51中心处理单元,程序存储器为FLASH存储器,RAM可扩展到64K字节,CPU速度最高可达33MHz,采用4个中断优先级结构,相比80C51更灵活,具有6个中断源,80C51增加了1个中断源,具有4个8位I/O口,采用全双工增强型串行口,具有帧数据错误检测和自动地址识别功能,电源具有低功耗方式,具有可编程时钟输出功能,采用双DPTR寄存器,具备低EMI(禁止ALE)模式,具有3个16位定时器,相对80C51性价比更高,外部中断可以从掉电模式中唤醒。
系统结构:
P89C5x系列单片机具有128字节( P89C51)或256字节( P89C52/54/58)RAM、32条I/O口线、3个16位定时/计数器、6中断源、4中断优先级结构、1个串行I/O口(可用于多机通信、I/O扩展或全双工UART)以及片内振荡器和时钟电路。
1.3单片机应用系统的开发过程
如何进行单片机应用系统的开发?
答:
系统方案设计、硬件方案设计、软件编程、仿真调试及实际运行。
第2单元P89C5x单片机的结构及原理
2.1P89C5x单片机结构
1.请举出P89C5X系列单片机的型号。
答:
P89C5x系列单片机的型号有P89C51、P89C52、P89C54和P89C58这4种。
2.简要说明P89C5X单片机的内部结构。
答:
P89C5X单片机由中央处理器(CPU)、内部RAM、内部ROM、定时/计数器、并行I/O口、串行口、中断控制系统等部分通过片内总线连接组成。
3.简要说明P89C5X单片机的引脚功能。
答:
引脚功能如下:
P0.0~P0.7:
P0端口8位三态双向I/O口线,它分时作为低8位地址线和8位数据线。
在不访问外部存储器时,作为通用I/O口,传送输入输出数据。
P0端口能以吸收电流的方式驱动负载,一般情况下是作为扩展时候的地址数据总线使用的。
P1.0~P1.7:
P1端口8位带内部上拉电阻的准双向I/O口线。
对P1口写1时,P1口被内部上拉电阻上拉为高电平,可以用作输入口;当作为输入口时,因为内部上拉电阻的存在,P1端口被外部拉低的引脚,而输出电流。
其中P1.0、P1.1兼有特殊功能(T2/P1.0为外部计数输入/时钟输出,T2EX/P1.1为T2的重装/捕捉/方向控制)。
P2.0~P2.7:
P2端口8位带内部上拉电阻的准双向I/O口线。
可作为一般I/O端口,在扩展容量时可作为高8位地址线。
P3.0~P3.7:
P3端口8位带内部上拉电阻的准双向I/O口线。
第一功能是普通的I/O端口,向P3口写1时,P3口被内部上拉为高电平,并且用作输入口;当作为输入脚时,因为内部上拉电阻的存在,P3端口引脚被外部拉低,而输出电流。
第二功能作为控制口使用。
P3端口的第二功能如表2-3所示。
ALE/
:
地址锁存控制/编程脉冲输入信号。
在系统扩展访问外部存储时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。
此外,由于ALE是以晶振1/6的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。
ALE可以通过设置SFR的auxlilary.0设置禁止ALE,设置后ALE,只能在MOVX指令时被激活。
:
外部程序存储器读选通信号。
用于访问外部程序存储。
在读外部ROM时,
有效(低电平)每个机器周期出现2次,以实现外部ROM单元的读操作。
在访问外部数据器
有效,访问内部程序时
无效。
/VPP访问程序存储控制信号/可编程电压输入端。
当
信号为低电平时,对ROM的读操作限定在外部程序存储器;当
信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。
该引脚在编程时接12V编程电压Vpp。
RST:
复位信号。
当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作。
XTAL1和XTAL2:
外接晶体引线端。
当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。
VSS:
地线。
Vcc:
+5V电源。
提供掉电\空闲\正常电压3种模式
4.列举常见的第二功能引脚。
答:
p1端口的第二功能:
T2(P1.0)和T2EX(P1.1);P3端口的第二功能;EPROM存储器程序固化所需要的信号,即:
ALE/
:
编程脉冲,(
/VPP):
编程电压;备用电源引入RST/VPD。
2.2P89C5x单片机的存储器结构
本节思考题
1.P89C5x系列单片机的存储器有哪两类,各型号单片机,存储器空间有哪些不同?
答:
程序存储器(ROM)和数据存储器(RAM)。
P89C51片内有4KB的FLASHEPROM,89C52/54/58片内分别有8K/16K/32K的EPROM,89C51RC+片内有32K的EPROM,89C51RD+片内有64K的EPROM。
其中P89C51存储地址为00H-7FH(即128B),P89C52/54/58的存储地址为00H-0FFH(即256B)。
2.请说明P89C51单片机的程序存储器结构。
答:
P89C51片内有4KB的FLASHEPROM,P89C51的片外最多能扩展64KB程序存储器,片内外的EPROM是统一编址的。
0000H~0002H为复位后PC所在位置;0003H~0032H6个中断源的中断地址区。
P89C51的程序存储器结构如图图2-4所示。
3.请说明P89C51单片机的数据存储器地址空间配置情况。
P89C51的内部数据存储器RAM共128单元(单元地址00H~7FH)。
按其用途划分为寄存器区.位寻址区和用户RAM区三个区域。
表2-5为RAM128单元的配置情况。
4.P89C51单片机的专用寄存器有哪些?
答:
详见表2-9P89C5x专用寄存器SFR
2.3P89C5x单片机的I/O口
1.单片机的并行I/O口有哪几个,它们都包含哪些器件?
答:
共有4个8位的并行I/O口,分别记作P0、P1、P2、P3。
各个I/O端口由数据输出锁存器、三态数据输入缓冲器、数据输出的驱动电路和输出控制电路、多路转接电路MUX、上拉电阻、与非门等组成。
2.单片机的并行I/O口在功能上有什么不同?
答:
P0端口既可以作为通用的I/O口进行数据的输入/输出,也可以作为单片机系统的低8位地址/数据线使用。
P1端口为准双向I/O端口,可作为通用I/O口使用,又能使用第二功能复用,具体功能可见表2-2。
P2端口可以作为通用I/O口使用,P2端口又能作为高8位地址线使用。
P3端口是一个准双向的I/O端口,作为通用I/O口使用,又能使用第二功能复用,第二功能见表2-3。
2.4单片机的工作方式及时序
1.单片机的工作方式有哪两种?
复位后各寄存器的状态如何?
答:
P89C5x单片机的工作方式有:
复位方式、程序执行方式、低功耗方式以及在线仿真方式。
复位后各寄存器的状态见表2-10所示。
2.简述单片机的程序执行方式。
答:
程序执行的方式是单片机的基本工作方式,有单步执行和连续执行两种。
3.单片机的低功耗方式有哪几种?
答:
低功耗方式就是减少单片机的功耗的一种工作方式。
该方式可分为待机模式和掉电模式。
4.简述单片机的内部时钟电路和外部时钟电路的不同。
答:
在P89C5x芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。
而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,即单片机的内部时钟电路,如图2-10所示。
引入惟一的公用外部脉冲信号作为各单片机的振荡脉冲,外部的脉冲信号是经XTAL2引脚注入,其连接如图2-11所示。
5.简述节拍与状态、机器周期、指令周期之间的关系。
答:
单片机的时序定时单位共有4个,从小到大依次是:
节拍、状态、机器周期和指令周期。
关系:
一个状态就包含两个节拍;一个机器周期总共有12个节拍,分别记作S1P1、S1P2、…、S6P2;指令周期由若干个机器周期组成。
2.5单片机Flash存储器的编程及加密方法
1.说明P89C51单片机Flash存储器编程方法。
答:
编程时,可采用4-20MHz的时钟振荡器,P89C51编程方法如下:
(1)在地址线上加上要编程单元的地址信号。
(2)在数据线上加上要写入的数据字节。
(3)激活相应的控制信号。
(4)在高电压编程方式时,将
/Vpp端加上+12V编程电压。
(5)每对Flash存储阵列写入一个字节或每写入一个程序加密位,加上一个ALE/
编程脉冲。
改变编程单元的地址和写入的数据,重复1—5步骤,直到全部文件编程结束。
2.简述单片机加密的方法。
答:
P89C5x有3个可编程保密锁位和片内的代码、数据。
它是独立保密锁位,LB3包含LB1保密位。
编程时的顺序先LB1再LB2最后是LB3。
详见表2-14和2-15。
第3单元P89C5x单片机的指令系统及编程举例
3.1指令系统简介
1.单片机的指令由哪几部分构成?
答:
指令系统第1部分为标号,第2部分为操作码,第3部分为操作数,第4部分为注释。
2.单片机的指令分为哪几类?
答:
(1)按功能可分为5类:
数据传送类指令(共29条)
算数运算类指令(共24条)
逻辑运算及移位类指令(共24条)
控制转移类指令(共17条)
布尔变量操作类指令(共17条)
(2)按字节数可以分为3类:
单字节指令(49条)
双字节指令(46条)
三字节指令(16条)
(3)按指令执行的时间可分为3类:
单机器周期指令(64条)
双机器周期指令(45条)
四机器周期指令(2条)
3.列举指令中常见的符号,并说明它们的功能
常有符号说明:
(1)Rn(n=1~7):
指当前选中的工作寄存器组R0~R7中的某个寄存器。
(2)Ri(i=0~1):
指当前选中的工作寄存器组中能用作间址寄存器的R0、R1。
(3)#data:
8位立即数。
(4)#data16:
16位立即数。
(5)direct:
片内RAM单元(包括SFR)的直接地址。
(6)addr11:
11位目的地址。
(7)addr16:
16位目的地址。
(8)rel:
补码形式表示的8位地址偏移量。
以下一条指令第一字节地址为基址,地址偏移量范围为−128~+127。
(9)bit:
片内RAM或SFR的直接寻址位地址。
(10)@:
间接寻址方式中,表示间址寄存器的符号。
(11)/:
位操作指令中,表示对该位先求反再参与操作,但不影响该位原值。
(12)C:
最高位进位或借位标志位或布尔处理器的累加器。
(13)(×):
表示由×所指地址单元或寄存器中的内容。
(14)((×)):
表示以×所指地址单元或寄存器中的内容为地址的存储单元中的内容。
(15)→:
数据传送方向。
3.2P89C5x单片机的寻址方式
1.单片机的寻址方式有哪几种?
答:
89C5x单片机的寻址方式有:
立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、基址加变址寻址、相对寻址、位寻址
2.立即数寻址和直接寻址有什么不同?
答:
立即数寻址操作数为8位或者16位的数据,用符号“#”表示标示,以区别直接地址。
直接寻址是把存放操作数的内存单元的地址直接写在指令中
3.寄存器寻址、寄存器间接寻址以及基址加变址寻址有什么区别?
答:
寄存器寻址是指将操作数存放于寄存器中。
寄存器包括工作寄存器R0~R7、累加器A、通用寄存器B、地址寄存器DPTR等。
寄存器间接寻址把指令中指定的寄存器的内容作为的地址,从该地址取操作数。
用于寄存器间接寻址的寄存器有R0、R1和DPTR,
基址加变址寻址以某个寄存器的内容为基地址,然后在这个基地址的基础上加上地址偏移量而形成的真正的操作数地址。
单片机以DPTR和PC作为基址地址,累加器A是变址寄存器。
该类寻址方式主要用于查表操作。
4.什么是相对寻址,通常在实际中是怎么使用的?
答:
相对寻址指将程序计数器PC的当前值(执行完这条相对转移指令后的下一条指令的地址)为基准,将指令的偏移量相加,其结果作为指令的转移地址。
转移量可以为正或负值,转移的范围是-128~127。
通常在实际中,转移的地址,并没有使用偏移量,而是在程序中使用标号的方式。
3.3指令系统
1.数据传送类指令有哪几类?
答:
内部8位数据传送指令、16位数据传送指令、外部数据传送指令、交换和查表类指令、
2.算数运算类指令有哪几类?
答:
加法指令、减法指令、自加“1”指令、自减“1”指令、十进制调整指令、乘法指令、除法指令
3.逻辑运算类指令有哪几类?
答:
逻辑与指令、逻辑或指令、逻辑异或指令、累加器A清0和取反指令、循环移位指令
4.控制转移类指令有哪几类?
答:
无条件转移指令、条件转移指令、调用和返回指令、空操作指令
5.位操作类指令有哪几类?
答:
位传送指令、位置位和位清0指令、位运算指令、位转移指令、判CY标志指令。
3.4伪指令
1.常用的伪指令有哪几种,它们分别有哪些功能?
答:
[标号:
]ORG地址表达式。
功能:
规定程序块或数据块存放的起始位置。
[标号:
]END。
功能:
汇编语言源程序结束标志,用于整个汇编语言程序的末尾处。
符号名EQU表达式(符号名=表达式)。
功能:
将表达式的值或某个特定汇编符号定义为一个指定的符号名,只能定义单字节数据,并且必须遵循先定义后使用的原则,因此该语句通常放在源程序的开头部分。
[标号:
]DB字节数据表。
功能:
字节数据表可以是多个字节数据、字符串或表达式,它表示将字节数据表中的数据从左到右依次存放在指定地址单元。
[标号:
]DW字数据表。
功能:
与DB类似,但DW定义的数据项为字,包括两个字节,存放时高位在前,低位在后。
[标号:
]DS表达式。
功能:
从指定的地址开始,保留多少个存储单元作为备用的空间。
[标号:
]BIT位地址。
功能:
将位地址赋予标号,使标号在程序中可以作为位地址来使用。
3.5汇编语言程序设计基础
1.分支程序的两种结构有什么区别?
答:
分支程序结构有双分支和多分支两种,多分支程序是指经过某个条件判断之后,程序有多个流向(三个以上)。
多分支程序也叫散转程序。
2.什么是循序程序结构,它有什么特点?
答:
在程序中,多次重复执行的某一段程序,可以采用循环程序的方式来缩短程序代码,减少程序占用的空间,达到优化程序结构的目的。
循环程序就是指利用散转指令反复转向多次需要重复使用的程序段。
循环程序本质上是分支程序的一种特殊形式,凡是分支程序可以使用的转移指令,循环程序一般都可以使用,并且由于循环程序在程序设计中的重要性,单片机指令系统还专门提供了循环控制指令,如DJNZ等。
3.子程序有什么优点?
答:
在程序中,子程序能将多次使用相同的一个程序段,定义为子程序,这样可节约资源,缩短程序所占篇幅。
4.查表程序的用途?
请举例说明。
答:
一些复杂的运算,若采用编程的方式来实现,会导致程序过于复杂,可以采用查表的方法,把运算可能产生的结果预先按照一定的规律编成表格,存放在ROM中,当程序要使用这些结果的时候,可以根据输入的参数值,从表中调出结果。
采用查表的方法可以使运算步骤减少,程序更加简洁,执行的速度也能大大提高。
例子请参看【例3-20】在程序中定义一个0~9的平方表,利用查表指令找出累加器A=04H的平方值。
5.设计单片机晶振为12MHz,请思考1s的延时程序怎么编写。
程序段如下:
DELAY:
MOVR0,#50;延时1s的循环次数
DEL2:
MOVR1,#10;延时10ms的循环次数
DEL1:
MOVR2,#7DH;延时1ms的循环次数(125次)
DEL0:
NOP
NOP
DJNZR2,DEL0
DJNZR1,DEL1
DJNZR0,DEL2
第4单元P89C5x单片机的中断系统及定时/计数器
4.1P89C5x中断系统
1.什么是中断?
有何特点?
答:
中断是通过硬件来改变CPU的运行方向的。
单片机在执行程序的过程中,当CPU运行当前程序时,CPU之外的其它硬件(例如定时器、串行口等)会出现某些特殊情况,这些特殊情况会以一定的方式向CPU发出中断请求信号,要求CPU暂时中断当前程序的执行而转去执行相应的处理程序,待处理程序执行完毕后,再继续执行原来被中断的程序。
这种程序在执行过程中由于外界的原因而被中间打断的情况称为“中断”。
中断的特点:
分时操作、实时处理、故障处理
2.简述中断的控制过程。
系统的中断处理有以下几个步骤:
1)中断响应的条件
2)中断响应的过程
3)关闭中断
4)保护现场
5)打开中断
6)中断服务程序
7)中断服务程序
8)恢复现场
9)打开中断
10)恢复断点
3.和中断相关的寄存器有哪几个?
简述这些寄存器每位的功能。
1)IE中断允许控制寄存器
IE.7(EA):
总中断允许控制位。
EA=1,开放所有中断,各中断源的允许和禁止可通过相应的中断允许位单独加以控制;EA=0,禁止所有中断。
IE.5(ET2):
定时器2中断允许位。
ET2=1,允许定时器2中断;ET2=0,禁止定时器2中断。
IE.4(ES):
串行口中断允许位。
ES=1,允许串行口中断;ES=0,禁止串行口中断。
IE.3(ET1):
定时器1中断允许位。
ET1=1,允许定时器1中断;ET1=0,禁止定时器1中断。
IE.2(EX1):
外部中断1(
)中断允许位。
EX1=1,允许外部中断1中断;EX1=0,禁止外部中断1中断。
IE.1(ET0):
定时器0中断允许位。
ET0=1,允许定时器0中断;ET0=0,禁止定时器0中断。
IE.0(EX0):
外部中断0(
)中断允许位。
EX0=1,允许外部中断0中断;EX0=0,禁止外部中断0中断。
2)IP中断优先级寄存器
IP.5(PT2):
定时器2中断优先控制位。
IP.4(PS):
串行口中断优先控制位。
IP.3(PT1):
定时器1中断优先控制位。
IP.2(PX1):
外部中断1中断优先控制位。
IP.1(PT0):
定时器0中断优先控制位。
IP.0(PX0):
外部中断0中断优先控制位。
3)IPH中断优先高级寄存器(高字节)
IPH.5(PT2H):
定时器2中断优先控制高位。
IPH.4(PSH):
串行口中断优先控制高位。
IPH.3(PT1H):
定时器1中断优先控制高位。
IPH.2(PX1H):
外部中断1中断优先控制高位。
IPH.1(PT0H):
定时器0中断优先控制高位。
IPH.0(PX0H):
外部中断0中断优先控制高位。
4.什么是中断的嵌套?
使用时需要注意什么?
当CPU响应某一中断时,若有优先权高的中断源发出中断请求,则CPU会中断正在进行的中断服务程序,并保留这个程序的断点,响应高级中断。
高级中断处理结束以后,再继续进行被中断的中断服务程序,这个过程称为中断嵌套。
如果发出新的中断请求的中断源的优先权级别与正在处理的中断源同级或更低,则CPU不会响应这个中断请求,直至正在处理的中断服务程序执行完以后才能去处理新的中断请求。
5.外部中断源如何扩展?
P89C5x系列单片机有三个定时器,如在某些应用中不被使用,则它们的中断可作为外部中断请求使用。
此时,可将定时器设置成计数方式,计数初值可设为满量程,则当它们的计数输入端T0(P3.4),T1(P3.5)或T2(P1.0)引脚发生负跳变时,计数器将加1产生溢出中断。
利用此特性,可把T0,T1或T2脚作为外部中断请求输入线,把计数器的溢出中断作为外部中断请求标志。
4.2P89C5x单片机定时/计数器
1.P89C5x单片机有几个定时/计数器?
它的内部结构如何?
P89C5x单片机提供了3个16位的可编程定时/计数器,分别是定时/计数器0(T0),定时/计数器1(T1),定时/计数器2(T2)。
它们可以都可以用于定时或对外部脉冲计数,其中T0和T1与标准80C51一样的,P89C5x新增了还有T2。
P89C5x的定时/计数器由T0、T1、T2、定时器方式寄存器TMOD、定时器控制寄存器TCON、T2方式寄存器T2MOD、T2控制寄存器T2CON、T2捕获寄存器RCAP2H/RCAP2L组成。
2.定时/计数器相关的寄存器有哪些?
简述它们每位的功能。
定时/计数器T0、T1的初始化通过定时/计数器的方式寄存器TMOD和控制寄存器TCON来完成。
定时/计数器T2的初始化通过定时/计数器的方式寄存器T2MOD和控制寄存器T2CON来完成。
(1)定时/计数器T0、T1的方式寄存器TMOD
1)GATE:
门控位。
2)C/
:
功能选择位。
3)M1和M0:
T0、T1的工作方式选择位
(2)定时/计数器T0、T1的控制寄存器TCON
1)TCON.7(TF1):
T1溢出标志位。
2)TCON.6(TR1):
T1运行控制位。
3)TCON.5(TF0):
T0溢出标志位。
4)TCON.4(TR0):
T0运行控制位。
5)TCON.3(IE1):
外部中断(
)请求标志位。
6)TCON.2(IT1):
外部中断1触发方式选择位。
7)TCON.1(IE0):
外部中断0(
)请求标志位。
8)TCON.0(IT0):
外部中断0触发方式选择位。
(3)定时/计数器T2的方式寄存器T2MOD
1)T2MOD.1(T2OE):
T2输出允许位。
2)T2MOD.0(DCEN):
向下计数允许位。
(4)定时/计数器T2的控制寄存器T2CON
1)T2CON.7(TF2):
T2溢出标志位。
2)T2CON.6(EXF2):
T2外部标志位。
3)T2CON.5(RCLK):
串行口接受时钟选择标志位。
4)T2CON.4(TCLK):
串行口发送时钟选择标志位。
5)T2CON.3( EXEN2):
T2外部允许控制位。
6)T2CON.2( TR2):
T2运行控制位。
7)T2CON.1(C/
):
T2的定时器/计数器方式选择位。
8)T2CON.0( CP/
):
T2的方式选择位。
3.T0、T1的工作方式有哪几种?
分别介绍每种工作方式的特点。
T0、T1工作于方式0时,它是一个13位定时/计数器。
T0的结构和操作与T1完全相同。
T0、T1工作于方式1时,它是一个16位定时/