单片机原理及应用习题答案第三版.docx
《单片机原理及应用习题答案第三版.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用习题答案第三版.docx(26页珍藏版)》请在冰点文库上搜索。
单片机原理及应用习题答案第三版
第一章习题参考答案
1-1:
何谓单片机与通用微机相比,两者在结构上有何异同
答:
将构成计算机的基本单元电路如微处理器(CPU)、存储器、I/O接口电路和相
应实时控制器件等电路集成在一块芯片上,称其为单片微型计算机,简称单片机。
单片机与通用微机相比在结构上的异同:
(1)两者都有CPU但通用微机的CPU主要面向数据处理,其发展主要围绕数据处
理功能、计算速度和精度的进一步提高。
例如,现今微机的CPU都支持浮点运算,
采用流水线作业,并行处理、多级高速缓冲(Cache)技术等。
CPU的主频达到数百
兆赫兹(MHz),字长普遍达到32位。
单片机主要面向控制,控制中的数据类型及
数据处理相对简单,所以单片机的数据处理功能比通用微机相对要弱一些,计算
速度和精度也相对要低一些。
例如,现在的单片机产品的
CPU大多不支持浮点运
算,CPU还采用串行工作方式,其振荡频率大多在百兆赫兹范围内
;在一些简单应
用系统中采用4位字长的CPU在中、小规模应用场合广泛采用
8位字长单片机,
在一些复杂的中、大规模的应用系统中才采用16位字长单片机,
32位单片机产品
目前应用得还不多。
(2)两者都有存储器,但通用微机中存储器组织结构主要针对增大存储容量和CPU
对数据的存取速度。
现今微机的内存容量达到了数百兆字节
(MB),存储体系采用
多体、并读技术和段、页等多种管理模式。
单片机中存储器的组织结构比较简单,
存储器芯片直接挂接在单片机的总线上,CPU对存储器的读写按直接物理地址来寻
址存储器单元,存储器的寻址空间一般都为
64KB。
(3)两者都有I/O接口,但通用微机中I/O接口主要考虑标准外设(如CRT标准
键盘、鼠标、打印机、硬盘、光盘等)。
用户通过标准总线连接外设,能达到即插
即用。
单片机应用系统的外设都是非标准的,且千差万别,种类很多。
单片机的
用户对外设的连接要设计
I/O接口实际上是向用户提供的与外设连接的物理界面。
具体的接口电路,需有熟练的接口电路设计技术。
另外,单片机的微处理器(CPU)、存储器、I/O接口电路集成在一块芯片上,而通用微机的微处理器(CPU)、存储器、I/O接口电路一般都是独立的芯片
1-4IAP、ISP的含义是什么
ISP:
InSystemProgramable,即在系统编程。
用户可以通过下载线以特定
内部存储器做修改。
IAP:
InApplicationProgramable,即在应用编程。
用户可以通过下载线对
单片机进行在线编程,用户程序也可以自己对内部存储器重新修改。
1-651单片机与通用微机相比,结构上有哪些主要特点
ROM后者为
单片机的程序存储器和数据存储器是严格区分的,前者为
RAM;
采用面向控制的指令系统,位处理能力强;
I/O引脚通常是多功能的;
产品系列齐全,功能扩展性强;功能是通用的,像一般微处理机那样可广泛地应用在各个方面。
1-751单片机有哪些主要系列产品
(1)Intel公司的MCS-51系列单片机:
功能比较强、价格比较低、较早应用
的单片机。
此系列三种基本产品是:
8031/8051/8751;
(2)ATME公司的89系列单片机:
内含Flash存储器,幵发过程中可以容易
地进行程序修改。
有8位Flash子系列、ISP_Flash子系列、I2C_Flash
子系列;
Flash技术和小扇区结
(3)SST公司的SST89系列单片机:
具有独特的超级
构设计,采用IAP和ISP技术;
(4)PHILIPS公司的增强型80C51系列单片机:
其产品类型较完整,包括通
用型、Flash型、OTP型和低成本型,主要产品系列包括P80、P87、P89
LPC76LPC900等。
第二章习题参考答案
2-151单片机内部包含哪些主要逻辑功能部件
一个8位微处理器CPU。
256B数据存储器RAM和特殊功能寄存器SFR
4K程序存储器ROM。
两个定时/计数器,用以对外部事件进行计数,也可用作定时器。
四个8位可编程的I/O(输入/输出)并行端口,每个端口既可做输入,也可做输出。
6)一个串行端口,用于数据的串行通信
7)1个可管理5个中断源、2级优先嵌套的中断管理系统;。
8)片内振荡器及时钟发生器。
2-2MCS-51引脚中有多少I/O总线它们和单片机对外的地址总线和数据总线有什
么关系地址总线和数据总线各是几位
32条I/O口线,分为4组,每组8条,称为P0〜P3口,P0口有8位和的低8
位,P2口有的高8位,因此单片机的位是16位,寻址空间为64KB,位宽为8位。
同时在P3口还R/W控制。
I/O口线的总数与地址总线和没有多大联系,只是说地址总线和数据总线需要占用一定的端口。
像AT89C20只有15条I/O口线(没有引出,作为内部使用),分为口(8位)和P3口(7位),没有所谓的地址总线和
数据总线,并且P1口并不完整,因为和被占用了。
2-351单片机的EA,ALE,PSEN信号各自功能是什么
EA:
为片外程序存储器选用端,该引脚有效(低电平)时,只选用片外程序存储器,
否则单片机上电或复位后选用片内程序存储器。
ALE地址锁存有效信号输出在访问片外程序存储器期间,ALE以每机器周期两次进
行信号输出,其下降沿用于控制锁存P0输出的低8位地址;在不访问片外程
序存储器期间,ALE端仍以上述频率(振荡频率fosc的1/6)出现,可作为对外输出的时钟脉冲或用于定时目的
PSEN片外程序存储器读选通信号输出端,低电平有效。
2-451系列单片机有哪些信号需要芯片引脚的第二功能方式提供
:
RxD串行口输入端
:
TxD串行口输出端
:
WR外部数据存数器写选通信信号输出端,低电平有效
:
RD外部数据存数器读选通信信号输出端,低电平有效
2-551系列单片机的程序状态字PSW中存放什么信息其中的OV标志位在什么情
况下被置位置位是表示什么意思
•PSW是一个8位标志寄存器,它保存指令执行结果的特征信息,以供程序查询和判别。
•1)做加法时,最高位,次高位之一有进位则0V被置位
2)做减法时,最高位,次高位之一借位则0V被置位
3)执行乘法指令MULAB积大于255,OV=1
4)执行除法指令DIVAB,如果B中所放除数为0,0V=1
•0V=1,置位反映运算结果超出了累加器的数值范围2-9片内RAM氐128单元划分为哪几个区域应用中怎么样合理有效的使用
•工作寄存器区,位寻址区,数据缓冲区
①工作寄存器区用于临时寄存8位信息,分成4组,每组有8个寄存器,每次只
②位寻址区(20H〜2FH,这16个单元的每一位都赋予了一个位地址,位地址范围为00H〜7FH位寻址区的每一位都可能当作软件触发器,由程序直接进行位处理。
③由于工作寄存器区,位寻址区,数据缓冲区统一编址,使用同样的指令访问,因此这三个区既有自己独特的功能,又可统一调度使用,前两个已未使用的单元也可作为一般的用户RAM单元。
2-1051系列单片机的堆栈与通用微机中的堆栈有何异同在程序设计时,为什么要对堆栈指针SP重新赋值
•堆栈是按先进后出或后进先出的远侧进行读/写的特殊RAM区域
51单片机的堆栈区时不固定的,可设置在内部RAM勺任意区域内
•当数据压入堆栈时,SP的内容自动加1,作为本次进栈的指针,然后再存取数
即堆栈初始位置位于
6MHZ时,一条双周期
位时,SP的初值为07H,堆栈实际上从08H幵始堆放信息,工作寄存器区域内,所以要重新赋值
2-13什么是时钟周期,机器周期和指令周期当振荡频率为指令的执行时间是多少
6MHZ时,一条双周期指令周期时间为4us2-14定时器/计数器定时与计数的内部工作有何异同
•定时工作模式和技术工作模式的工作原理相同,只是计数脉冲来源有所不同:
处于计数器工作模式时,加法计数器对芯片端子T0或T1上的输入脉冲计数;处于定时器工作模式时,加法计数器对内部机器周期脉冲计数。
2-15定时器/计数器有四种工作方式,它们的定时与计数范围各是多少使用中怎
样选择工作方式
2-16定时器/计数器的门控方式与非门控方式有何不同使用中怎么样选择哪种工作方式初值应设置为多少(十六进制)•GATE门控位,用于控制定时器/计数器的启动是否受外部中断请求
信号的影响。
数器1的启动受芯片引脚INT1控制
INT1无关,一般情况下
CPU响应中断后可自
GATE=0则定时器/计数器的启动与引脚INTO、
GATE=02-1851单片机的五个中断源中哪几个中断源在动撤除中断请求,哪几个不能撤除中断请求CPU不能撤除中断请求的中
断源时,用户应采取什么措施•可自动撤除:
计数器TO'TI的溢出中断
不可自动撤除:
电平触发的外部中断;发送接收中断•1)电平触发的外部中断:
由于CPU对INTx引脚没有控制作用,也没
有相应的中断请求标志位,因此需要外接电路来撤除中断请求信号。
2)串行口的发送/接收中断:
当串行口发送完或接收完一帧信息时,
SCON勺TI,RI向CPU申请中断,响应中断后,接口电路不能自动将TI
或RT清0,用户需采用软件方法将TI或RT清0,来撤除中断请求信号2-21使单片机复位有几种方式复位后单片机的初始状态如何•上电复位,按钮复位•(PC)=0000H:
程序的初始入口地址为0000H
(PSW)=00H:
由于RS1=0,RS0()=0,复位后单片机选择工作寄存器0组
(SF)=07H:
复位后堆栈早起片内RAM勺08H单元处建立
TH1、TL0、TH0TL0:
他们的内容为00H,定时器/计数器的初值为0
(TMOD=00H:
复位后定时器/计数器T0、T1定时器方式0,非门控方
(TCON=00H:
复位后定时器/计数器T0、T1停止工作,外部中断0、
1为电平触发方式
(T2CON)=00H:
复位后定时器/计数器T2停止工作
(SCON=004复位后串行口工作在移位寄存器方式,且禁止串行口
接收
(IE)=00H:
复位后屏蔽所有中断
(IP)=00H:
复位后所有中断源都直指为低优先级
P0〜P3:
锁存器都是全1状态,说明复位后4个并行接口设置为输入
2-2351单片机串行口有几种工作方式这几种工作方式有何不同各用于什么场合•有4种工作方式:
方式0、方式1、方式2、方式3
工作方式:
方式0移位寄存器方式;方式1、方式2、方式3都是异步通信方式场合:
方式0不用于通信,而是通过外接移位寄存器芯片实现扩展I/O
口的功能;方式1用于双机通信;方式2、3主要用于多机通信,也可用于双机通信
第三章参考答案
3-1何谓寻址方式51单片机有哪几种寻址方式这几种方式是如何寻
址的•所谓寻址方式,就是CPU执行那个一条指令时怎样找到该指令所要求的操作数的方式。
•1)立即寻址:
操作数直接出现在指令中,紧跟在操作码的后面,作
为指令的一部分与操作码一起存放在程序存储器中,可以立即得到并执行,例如:
MOVA,#30H指令中30H就是立即数。
这一条指令的功能
是执行将立即数30H传送到累加器A中的操作。
2)寄存器寻址:
操作数放在寄存器中,在指令中直接以寄存器的名字来表示操作数的地址。
例如MOVA,R0,即将R(寄存器的内容送到累加
器A中。
3)寄存器间接寻址方式:
由指令指出某一寄存器的内容作为操作数地址的寻址方法,例如:
MOVA@R1将以工作寄存器R1中的内容为地址
的片内RAM单元的数据传送到A中去。
4)直接寻址:
指令中直接给出操作数所在的存储器地址,以供取数或存数的寻址方式称为直接寻址。
例如:
MOVA40H指令中的源操作数
就是直接寻址,40H为操作数的地址。
该指令的功能是把片内RAM地址
为40H单元的内容送到A中
5)变址寻址:
基地址寄存器加变址寄存器间接寻址6)相对寻址:
相对寻址是以当前程序计数器PC值加上指令中给出的偏
移量rel,而构成实际操作数地址的寻址方法。
它用于访问程序存储器,常出现在相对转移指令中。
7)位寻址:
位寻址是在位操作指令中直接给出位操作数的地址,可以
的93位进行寻址。
3-2访问片内、片外程序存储器有哪几种寻址方式•采用基址寄存器加变址寄存器间接寻址方式
MOVCA,@A+DPTRMOVCA,@A+PC3-3访问片内RAM单元和特殊功能寄存器各有哪几种寻址方式•访问片内RAMt:
立即寻址,寄存器寻址,寄存器间接寻址,直接寻
•特殊功能有:
直接寻址
3-4若要完成以下的数据传送,应如何用51的指令来完成。
R0的内容送到R1中。
MOVA,R1
MOVR0,A
2)
外部RAM的20H单元内容送R0,送内部RAM的20H单元。
MOVDPTR,#0020H
MOVXA,@DPTR
MOVR0,A
•1)前者为立即寻址,将立即数24H单元的内容送到A中;后者为直
接寻址,将24H单元的片内RAM内容送到A中。
2)前者为直接寻址,将R0单元的内容送到A中,后者为寄存器间接寻址,将R0中的内容为地址的片内RAM单元的数据送到A中。
3)前者为寄存器间接寻址,将R0中的内容为地址的片内RAM单元的
数据送到A;后者为寄存器间接寻址,将R0中的内容为地址的片外RAM
单元的数据送到A中。
4)用R1做地址指针可寻址片内RAM勺256个单元,但能访问SFR块,
也可8位地址访问片外RAM的低256个地址单元(00〜ffH);用DPTR
做地址指针,用于访问片外RAM勺64KB范围(0000〜ffffH)(16位)。
SUBBA,
30H
(A)=D5H,(PSW)=85H
SUBBA,
#30H
(A)=4AH,(PSW)=01H
INC@R0
(A)=7AH,(PSW)=80H;
MULAB
11)
12)
3-6已知(A)=7AH,(B)=02H,(R0)=30H,(30H)=A5H,(PSW)
1)XCHA,
R0
(A)=30H,(PSW)=00H
2)XCHA,
30H
(A)=A5H,(PSW)=00H
3)XCHA,
@R0
(A)=A5H,(PSW)=00H
4)XCHDA,
@R0
(A)=75H,(PSW)=01H
5)SWAPA
(A)=A7H,(PSW)=01H
6)ADDA,
R0(
A)=AAH,(PSW)=00H
7)ADDA,
30H
(A)=1FH,(PSW)=81H
8)ADDA,
#30H
(A)=AAH,(PSW)=00H
9)ADDCA,
30H
(A)=20H,(PSW)=01H
10)
(R0)=7AH,
=80H,写出以下各条指令执行后A和PSW勺内容。
14)DIVAB3-7已知(A)=02H,(R1)=7FH,(DPTR)=2FFCH,(SP)=30H,
片内RAM(7FH)=70H,片外RAM(2FFEH=114RO(2FFEH=64H,
试分别写出以下指令执行后目标单元的结果。
•1)(2FFEH)=02H
2)(A)=70H
3)(A)=(02H+2FFCH)=(2FFEH)=64H
4)(31H)=02H
3-9DAA指令有什么作用怎样使用
这条指令是进行BCD码运算时,跟在ADD或ADDC指令之后,将相
加后存放在累加器中的结果进行修正。
修正的条件和方法为:
+06HK(A0〜3);
+06HK(A4〜7)。
若(A0〜3)>9或(AC)=1,贝9(A0〜3)
若(A4〜7)>9或(CY)=1,贝9(A4〜7)
位,则应加66H修正。
3-9设(A)=834,(R0)=174(17H)=344,分析当执行下面的每条指
令后目标单元的内容,及4条指令组成的程序段执行后A的内容是什么
ORL
17H,A
;或
XRL
A,@R0
;异或
CPL
A
;取反
ANL
A,#17H
=00000011
ORL
17H,A
00110100
或00000011=00110111
XRL
A,@R0
00110111
异或00000011=00110100
CPL
A
~A11001000
CBH
3-10
请写出达到下列要求的逻辑操作的指令,要求不得改变未涉及位
的内容
SETB;
ANLA,#0FH;
ORLA,#00001100B3-11指令LJIMPaddr16与AJMPaddr11的区别是什么
LJIMPaddr16是长转移,LCALL的作用就是将addr16直接赋给PC
AJMPaddr11,在当前PC的2KB范围跳转(因为addr11就是2KB),
3-12试说明指令CJNE@R,1#7AH,10H的作用。
若本条指令地址为2500H,其转移地址是多少
当前地址2500H。
执行该指令后PC为2503H,加上10H后,目标地址是2513H。
ORG2000H
;起始地址为
2000H
MOVSP,#40H
;(SP)=40H
MOVA,#30H
;(A)=30H
LCALL2500H
;调用2500H子程序
ADDA,#10H
;(A)<—(A)
+10,
MOVB,A
;(B)=40H
HERE:
SJMPHERE
(A)=40H
令的作用。
RET
3-14已知二1,=0,C=1,FIRST=1000H,SEC0ND=1020,试写出
F列指令的执行结果。
MOV26HC1
CLR0
FIRST:
JCSECOND
3-15经汇编后,下列各条语句标号将是什么值
ORG2000H
TABLE:
DS5
WOR:
DDB15,20,25,30(2005H)=15,
FANG:
EQU1000HFANG=1000H
BEGIN:
MOVA,R03-16设fosc=12MHZ,定时器/计数器0的初始化程序和中断服务程序如下:
MOVTH0,#0DH
MOVTL0,#0D0H
MOVTMOD,#01H
SETBTR0
;中断服务程序
RETI
相应的定时时间或计数值是多少
3)
为什么在中断服务程序中药重置定时器/计数器的初值
•1)方式1
2)定时时间为:
fosc=12MHZTcy=1us
T=N*Tcy
=(65536-x)*Tcy
计数值为:
N=216-x=65536-x
3)定时器T0的溢出对外无脉冲信号,重置定时器/计数器的初值
可以再形成计数脉冲
3-18设有100个有符号数,连续存放在以2000H为首地址的存储区中,
试编程统计其中正数、负数、零的个数。
ZEROEQU20H;零的统计
NEGETIVEEQU21H;负数的统计
POSITIVEEQU22H;正数的统计
COUNTEQU100;比较个数
ORG0000H
LJMPMAIN
ORG0040H
MOVZERO,#0
MOVNEGETIVE,#0
MOVPOSITIVE,#0
MOVR2,#0
MOVDPTR,#2000H
LOOP:
MOVXA,@DPTR
CJNEA,#0,NONZERO
INCZERO
AJMPNEXT
NONZERO:
JCNEG
INCPOSITIVE
AJMPNEXT
NEG:
INCNEGETIVE
NEXT:
INCDPTR
INCR2
CJNER2,#COUNT,LOOP
SJMP$
2400波
最高位用于奇偶校验,采用偶校验方式,要求发送的波特率为特,时钟频率osc=12MHz试编写串行口发送子程序。
单片机采用12MHz晶振;设串行口工作于方式1;定时器/计数器
T1用作波特率发生器,工作于方式2;PCON中的SMO位为1;发送的
波特率要求为2400。
定时器/计数器T1初值计算:
根据公式波特率=2sm。
妝溢出率/32有
溢出率=2400X16=38400
溢出周期=1/溢出率=26Us(此为定时器/计数器的定时值)
定时器初值=256-26=230=E6H
根据要求确定定时器/计数器的TMO呼的方式控制字为20H,
串行口SCON中的控制字为40H,PCON空制字为80H。
则相应的发送程
序如下:
TSTART:
MOVTMO,D#20H
;置定时器/计数器T1工作于方式
2定时
MOVPCON,#80H
MOVTL1
#0E6H
;定时器/计数器T1置初值
MOVTH1
#E6H
;定时器/计数器T1置重装数
MOVSCON
#40H
;置串行口工作于方式1
MOVR0
#30H
;R0作地址指针,指向数据块
首址
MOVR7
#10
;R7作循环计数器,置以
发送=字节数
SETBTR1
;启动定时器/计数器
T1
LOOP:
MOVA,
@R0
;取待发送的一个字节
MOVC
P
;取奇偶标志,奇为1,偶为
0
MOV,
C
;给发送的ASCII码最高位加偶
校验位
MOVSBUF
A
;启动串行口发送
WAIT:
JNBTI
WAIT;
等待发送完毕
CLRTI
;清TI标志,为下一个字
节发送作准备
INCR0
;指向数据块下一个待发
送字节的地址
DJINZR7
,LOOP
;循环发送,直到数据块发送完毕
第四章参考答案
4-1何谓单片机的最小系统★所谓最小系统,是指一个真正可用的单片机最小配置系统。
对于片内带有程序存储器的单片机,只要在芯片上对外接时钟电路和复位电路就能达到真正可用,就是最小系统。
对于片外不带有程序存储器的单片机,除了在芯片上外接时钟电路和复位电路外,还需外接程序存储器,才能构成一个最小系统。
4-5什么是完全译码