单片机原理与应用第三版张毅刚16章全Word文档下载推荐.docx
《单片机原理与应用第三版张毅刚16章全Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机原理与应用第三版张毅刚16章全Word文档下载推荐.docx(27页珍藏版)》请在冰豆网上搜索。
![单片机原理与应用第三版张毅刚16章全Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2023-1/2/1402148b-31e8-40d8-8250-2429668be8d5/1402148b-31e8-40d8-8250-2429668be8d51.gif)
6.单片机可分为商用、工业用、汽车用以及军用产品,它们的使用温度范围各为多少?
商用:
温度范围为0〜+70C;
工业用:
温度范围为-40〜+85C;
汽车用:
温度范围
为-40〜+125C;
军用:
温度范围为-55〜+150C。
7.解释什么是单片机的在系统编程(ISP)与在线应用编程(IAP)。
单片机的在系统编程ISP(InSystemProgram),也称在线编程,只需一条与PC机
USB口或串口相连的ISP下载线,就可把仿真调试通过的程序代码从PC机在线写入单片机的
Flash存储器内,省去了编程器。
在线应用编程(IAP)就是可将单片机的闪存内的应用程序
在线修改升级。
8.什么是“嵌入式系统”?
系统中嵌入了单片机作为控制器,是否可称其为“嵌入式系统”?
广义上讲,凡是系统中嵌入了"
嵌入式处理器”,如单片机、DSP、嵌入式微处理器,
都称其为“嵌入式系统”。
但多数人把"
嵌入”嵌入式微处理器的系统,称为“嵌入式系统”。
目前“嵌入式系统”还没有一个严格和权威的定义。
目前人们所说的“嵌入式系统”,多指后者。
9.嵌入式处理器家族中的单片机、DSP、嵌入式微处理器各有何特点?
它们的应用领域有何
不同?
单片机体积小、价格低且易于掌握和普及,很容易嵌入到各种通用目的的系统中,
实现各种方式的检测和控制。
单片机在嵌入式处理器市场占有率最高,最大特点是价格低,体积小,应用广泛
FFT、频谱分析等)
DSP是一种非常擅长于高速实现各种数字信号处理运算(如数字滤波、
DSP的长处所在
的嵌入式处理器。
能够高速完成各种复杂的数字信号处理算法。
广泛地用于通讯、网络通信、数字图像处理,电机控制系统,生物信息识别终端,实时语音压解系统等。
这类智能化算法
亠般都是运算量较大,特别是向量运算、指针线性寻址等较多,而这正是
与单片机相比,DSP具有的实现高速运算的硬件结构及指令和多总线,DSP处理的算法的复杂
度和大的数据处理流量以及片内集成的多种功能部件更是单片机不可企及的。
嵌入式微处理器的基础是通用计算机中的CPU,地址总线数目较多,能扩展容量较大的存
储器,所以可配置实时多任务操作系统(RTOS)。
RTOS能够处理复杂的系统管理任务和处理工
作。
因此,广泛地应用在移动计算平台、媒体手机、工业控制和商业领域(例如,智能工控设备、ATM机等)、电子商务平台、信息家电(机顶盒、数字电视)以及军事上的应用。
思考题及习题2参考答案
亠、填空
9.在AT89S52单片机中,如果采用6MHz晶振,一个机器周期为。
2®
10.AT89S52单片机的机器周期等于个时钟振荡周期。
12
11.内部RAM中,位地址为40H、88H的位,该位所在字节的字节地址分别为
和。
28H,88H
12.片内字节地址为2AH单元最低位的位地址是;
片内字节地址为A8H单元的最低
位的位地址为。
50H,A8H
13.若A中的内容为63H,那么,P标志位的值为。
14.AT89S52单片机复位后,R4所对应的存储单元的地址为,因上电时PSW=
这时当前的工作寄存器区是组工作寄存器区。
04H,00H,0。
15.内部RAM中,可作为工作寄存器区的单元地址为H〜H。
00H,1FH
16.通过堆栈操作实现子程序调用时,首先要把的内容入栈,以进行断点保护。
调
用子程序返回指令时,再进行出栈保护,把保护的断点送回到,先弹出的是原来
中的内容。
PC,PC,PCH
17.AT89S52单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为AT89S52单
片机的PC是16位的,因此其寻址的范围为KB。
64
18.AT89S52单片机复位时,P0〜P3口的各引脚为电平。
高
19.AT89S52单片机使用片外振荡器作为时钟信号时,引脚XTAL1接,引脚XTAL2
的接法是。
片外振荡器的输出信号,悬空
20.AT89S52单片机复位时,堆栈指针SP中的内容为,程序指针PC中的内容为
。
07H,0000H
二、单选
10.程序在运行中,当前PC的值是。
B•当前正在执行指令的地址。
D•控制器中指令寄存器的地址。
•单片机的主频越高,其运算速度越快。
A•当前正在执行指令的前一条指令的地址
C•当前正在执行指令的下一条指令的首地址
11.判断下列哪一种说法是正确的?
A•PC是一个可寻址的寄存器B
C.AT89S52单片机中的一个机器周期为1e
D.特殊功能寄存器SP内存放的是堆栈栈顶单元的内容
二、判断对错
5.使用AT89S52单片机且引脚EA=1时,仍可外扩64KB的程序存储器。
错
6.区分片外程序存储器和片外数据存储器的最可靠的方法是看其位于地址范围的低端还是高端。
7.在AT89S52单片机中,为使准双向的I/O口工作在输入方式,必须事先预置为1。
8.PC可以看成是程序存储器的地址指针。
9.AT89S52单片机中特殊功能寄存器(SFR)使用片内RAM的部份字节地址。
10.片内RAM的位寻址区,只能供位寻址使用,而不能进行字节寻址。
11.AT89S52单片机共有32个特殊功能寄存器,它们的位都是可以用软件设置的,因此,都是可以位寻址的。
12.堆栈区是单片机内部的一个特殊区域,与RAM无关。
21.AT89S52单片机进入空闲模式,CPU停止工作。
片内的外围电路(如中断系统、串行口和
定时器)仍将继续工作。
22.AT89S52单片机不论是进入空闲模式还是掉电运行模式后,片内RAM和SFR中的内容均
保持原来的状态。
23.AT89S52单片机进入掉电运行模式,CPU和片内的外围电路(如中断系统、串行口和定时
器)均停止工作。
24.AT89S52单片机的掉电运行模式可采用响应中断方式来退出。
12.AT89S52单片机片内都集成了哪些功能部件?
集成了如下部件:
1个微处理器(CPU);
256个数据存储器(RAM)单元;
8KFlash程序存储器;
4个8位可编程并行I/O口(P0口、P1口、P2口、P3口);
1个全双工串行口;
3个16位定时器/计数器;
1
个看门狗定时器;
一个中断系统,6个中断源,2个优先级;
32个特殊功能寄存器(SFR)。
13.AT89S52的64KB程序存储器空间有6个单元地址对应AT89S52单片机6个中断源的中断入口地址,请写出这些单元的入口地址及对应的中断源。
见下表
表AT89S52各中断源的中断入口地址
中断源
入口地址
外部中断0
0003H
定时器/计数器T0
000BH
外部中断1
0013H
定时器/计数器T1
001BH
串行口
0023H
定时器/计数器T2
002BH
14.说明AT89S52单片机的EA引脚接高电平或低电平的区别。
当EA脚为高电平时,单片机读片内程序存储器(8K字节Flash)中的内容,但在PC值超过0FFFH(即超出4K字节地址范围)时,将自动转向读外部程序存储器内的程序;
当EA脚为
低电平时,单片机只对外部程序存储器的地址为0000H〜FFFFH中的内容进行读操作,单片机
不理会片内的8K字节的Flash程序存储器。
25.AT89S52单片机有哪两种低功耗节电模式?
说明两种低功耗节电模式的异同。
AT89S52单片机有两种低功耗节电工作模式:
空闲模式(idlemode)和掉电模式(powerdownmode)。
空闲模式下,虽然振荡器仍然运行,但是CPU进入空闲状态。
此时,片内所有外围电路
(中断系统、串行口和定时器)仍继续工作,SP、PC、PSW、A、P0〜P3端口等所有其他寄存
器,以及内部RAM和SFR中的内容均保持进入空闲模式前的状态。
因为CPU耗电量通常要占
芯片耗电的80%〜90%,因此CPU停止工作则会大大降低功耗。
掉电模式下,振荡器停止工作。
由于没有了时钟信号,内部的所有部件均停止工作,但
片内的RAM和SFR的原来内容都被保留,有关端口的输出状态值都保存在对应的特殊功能寄存器中。
26.AT89S52单片机运行时程序出现“跑飞”或陷入“死循环’时,说明如何利用看门狗来摆
脱困境的工作原理。
可采用看门狗定时器。
工作原理如下:
“看门狗”技术就是使用一个“看门狗”定时器来对系统时钟不断计数,监视程序的运行。
当看门狗定时器启动运行后,为防止看门狗定时器的不必要溢出而引起单片机的非正常的复位,应定期地把看门狗定时器清0,以保证看门狗定时器不溢出。
当由于干扰,使单片机程序“跑飞”或陷入“死循环”时,单片机也就不能正常运行程
序来定时地把看门狗定时器清0,当看门狗定时器计满溢出时,将在AT89S52的RST引脚上
输出一个正脉冲(宽度为98个时钟周期),使单片机复位,在系统的复位入口0000H处重新
开始执行主程序,从而使程序摆脱“跑飞”或“死循环”状态,让单片机归复于正常的工作
状态。
第3章思考题及习题3参考答案
15.访问SFR,只能使寻址方式。
直接。
16.指令格式是由和组成,也可仅由组成。
操作码,操作数,操
作码。
17.
在基址加变址寻址方式中,以
址寄存器。
A,PC,DPTR
27.假定累加器A中的内容为30H,执行指令
1000H:
MOVCA@A+PC
后,把程序存储器单元的内容送入累加器A中。
1031H
28.在AT89S52中,PC和DPTR都用于提供地址,但PC是为访问存储器提供地址,
而DPTR是为访问存储器提供地址。
程序,数据
29.在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操
作数的。
地址
30.下列程序段的功能是。
A的内容与B的内容互换。
PUSHAcc
PUSHB
POPAcc
POPB
31.已知程序执行前有(A)=02H,(SP)=52H,(51H)=FFH,(52H)=FFH。
下述程序执行后,
(A)=,(SP)=,(51H)=,(52H)=,(PC)=。
POPDPH
POPDPL
MOVDPTR,#4000H
RLA
MOVB,A
MOVCA,@A+DPTR
MOVA,B
INCA
RET
ORG4000H
DB10H,80H,30H,50H,30H,50H
(A)=50H,(SP)=50H,(51H)=30H,(52H)=50H,(PC)=5030H
32.假定(A)=83H,(R0)=17H,(17H)=34H,执行以下指令后,(A)=。
ANL
A,#17H
ORL
17H,A
XRL
A,@R0
CPL
A
(A)=0CBH
33.假设(A)=55H,(R3)=0AAH,在执行指令“ANLA,R3”后,(A)=
(R3)=。
(A)=00H,(R3)=0AAH。
34.如果(DPTR)=507BH,(SP)=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后,
(DPH)
=,(DPL)=
(SP)=
POP
DPH
DPL
SP
(DPH)=3CH,(DPL)
=5FH,(SP)=50H
35.假定,(SP)=60H,(A)=30H,(B)=70H,执行下列指令后,SP的内容为,61H单
元的内容为,62H单元的内容为。
(SP)=62H,(61H)=30H,(62H)=70H。
18.判断以下指令的正误。
(1)MOV28H,@R2
(2)DECDPTR;
(3)INCDPTR;
(4)CLRR0;
(5)CPLR5
(6)MOVR0,R1;
(7)PHSHDPTR;
(8)MOVF0,C;
(9)MOVF0,Acc.3;
(10)MOVXA@R1(11)MOVC30H;
(12)RLCR0
(1)错
(2)错(3)对(4)错(5)错(6)错(7)错(8)对(9)错(10)对(11)对(12)错。
19.判断下列说法是否正确。
A.立即数寻址方式是被操作的数据本身就在指令中,而不是它的地址在指令中。
B.指令周期是执行一条指令的时间。
C.指令中直接给出的操作数称为直接寻址。
D.内部寄存器Rn(n=0~7)可作为间接寻址寄存器。
A.对;
B.对;
C.错;
D.错。
20.以下指令中,属于单纯读引脚的指令是()。
A.MOVP1,A;
B.ORLP1,#0FH;
C.MOVC,P1.5;
D.ANLP1,#0FH
Co
三、单选
36.
程序在运行中,当前PC的值是
C
37.判断下列哪一种说法是正确的?
C.AT89S52单片机中的一个机器周期为
D.特殊功能寄存器SP内存放的是堆栈栈顶单元的内容。
38.
对程序存储器的读操作,只能使用(
Do
21.
四、程序分析与编程
下列程序段经汇编后,从1000H开始的各有关存储单元的内容是什么?
ORG
1000H
TAB1
EQU1234H
TAB2
EQU3000H
DB
"
MAIN"
DW
TAB1,TAB
70H
参考程序如下:
MOV
A,
45H
#0FH
A
23.
已知程序执行前有A=02H,SP=42H,41H)=FFH,(42H)=FFH。
下述程序执行后,A=();
MOVDPTR,#3000H
MOVB,A
MOVCA@A+DPTR
MOVA,B
MOVCA,@A+DPTR
ORG3000H
DB10H,80H,30H,80H,50H,80H
(A)=80H,(SP)=40H,(41H)=50H,(42H)=80H,(PC)=8050H
39.编写程序,查找在内部RAM的30H〜50H单元中是否有0AAH这一数据。
若有,则将51H单
元置为“01H”;
若未找到,则将51H单元置为“00H”。
参考程序如下:
START:
R0,#30H
R2,#20H
LOOP:
A,@R0
CJNE
A,#0AAH,NEXT
51H,#01H
LJMP
EXIT
NEXT:
INC
R0
DJNZ
R2,LOOP
51H,#00H
EXIT:
40.写出完成如下要求的程序段,但是不能改变未涉及位的内容。
A.把ACC.3,ACC.4,ACC.5禾口ACC.6清“0”。
B.把累加器A的中间4位清“0”。
C.把ACC.2和ACC.3置“1”。
A.ANLA,#87H
B.ANLA,#0C3H
C.ORLA,#0CH
41.若SP=60H,标号LABEL所在的地址为3456H。
LCALL指令的地址为2000H,执行如下指令:
2000HLCALLLABEL
后
(1)堆栈指针SP和堆栈内容发生了什么变化?
(2)PC的值等于什么?
(3)如果将指令LCALL直接换成ACALL是否可以?
(4)如果换成ACALL指令,可调用的地址范围是
什么?
(61H)=PC的低字节=03H
(62H)=PC的高字节=20H
(1)SP=SP+仁61H
SP=SP+1=62H
(2)PC=3456H
(3)不可以
(4)2KB=2048Byte
42.
试编写程序,查找在内部
RAM的20H〜40H单元中出现“00H”这一数据的次数,并将查找
到的结果存入41H单元
41H,#0
R0,#20H
R2,#20H
LOOP:
JNZ
NEXT
41H
NEXT:
R2,LOOP
原来的程序:
0100H
D50ms:
R7,#200
;
执行时间1
yS
D1:
R6,#125
D2:
R6,D2
指令执行1
次为
2ys,总计125X2=250
R7,D1
指令执行时间
2
e,本循环体执行200次
可对程序做如下修改:
程序修改后的延时时间为:
1+(1+123*2+1+2)*200+2=50003g=50.003ms
44.借助表3-2,对如下指令代码(十六进制)进行手工反汇编
FFH,C0H,E0H,E5H,F0H,F0H
PUSH
MOVX
R7,A
Acc
A,B
@DPTRA
五、简答
45.说明伪指令的作用。
“伪”的含义是什么?
常用伪指令有哪些?
其功能如何?
伪指令是程序员发给汇编程序的命令,只有在汇编前的源程序中才有伪指令,即在
汇编过程中的用来控制汇编过程的命令。
所谓“伪”是体现在汇编后,伪指令没有相应的机
器代码产生。
常用伪指令及功能如下:
ORG(ORiGin)汇编起始地址命令;
END(ENDofassembly)汇编终止命令;
EQU(EQUate)
标号赋值命令;
DB(DefineByte)定义数据字节命令;
DW(DefineWord)定义数据字命令;
DS(DefineStorage)定义存储区命令;
BIT位定义命令
46.解释下列术语:
手工汇编、机器汇编、反汇编
手工汇编:
通过查指令的机器代码表(表3-2),逐个把助记符指令“翻译”成机器代码,
再进行调试和运行。
这种人工查表"
翻译"
指令的方法称为“手工汇编”。
机器汇编:
借助于微型计算机上的软件(汇编程序)来代替手工汇编。
通过在微机上运行
汇编程序,把汇编语言源程序翻译成机器代码。
反汇编:
将二进制的机器码程序翻译成汇编语言源程序的过程称为“反汇编”。
47.设计子程序时应注意哪些问题?
编写子程序时应注意以下问题:
子程序的第一条指令前必须有标号。
主程序调用子程序,有如下两条子程序调用指令:
1绝对调用指令ACALLaddr11。
被调用的子程序的首地址与绝对调用指令的下一条指
令的高5位地址相同,即只能在同一个2KB区内。
2长调用指令LCALLaddr16。
addr16为直接调用的目的地址,被调用的子程序可放置在64KB程序存储器区的任意位置。
子程序结构中必须用到堆栈,用来保护断点和现场保护。
子程序返回时,必须以RET指令结束。
子程序可以嵌套,但要注意堆栈的冲突
48.为什么对基本型的8051子系列单片机,其寄存器间接寻址方式(例如MOVA@R)中,规定R0或R1的内容不能超过7FH?
而对增强型的8052子系列单片机,R0或R1的内容
就不受限制?
基本型的8051子系列单片机,由于其片内RAM的地址范围为00H〜7FH,而80H〜FFH
为特殊功能寄存器区,而对特殊功能寄存器寻址,只能使用直接寻址方式。
对片内RAM寻址,
当使用寄存器间接寻址是采用R0或R1作为间接寻址的,因此R0或R1的内容不能超过7FH
增强型的8052子系列单片机,片内RAM的地址范围为00H〜FFH,因此作为间接寻址寄存
器的R0或R1的内容就不受限制