资源描述
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。
第 1 页
.com
第一章 单片机概述
1.2 除了单片机这一名称之外, 单片机还可称为( 微控制器) 和( 嵌入式控制器) 。
1.3 单片机与普通计算机的不同之处在于其将( 微处理器) 、 ( 存储器) 和( 各种输入输出接
口) 三部分集成于一块芯片上。
4、 单片机的发展大致分为哪几个阶段?
答: 单片机的发展历史可分为四个阶段:
第一阶段( 1974年----1976年) : 单片机初级阶段。
第二阶段( 1976年----1978年) : 低性能单片机阶段。
第三阶段( 1978年----现在) : 高性能单片机阶段。
第四阶段( 1982年----现在) : 8位单片机巩固发展及 16位单片机、 32位单片机推出阶段
1.5 单片机根据其基本操作处理的位数可分为哪几种类型?
答: 单片机根据其基本操作处理的位数可分为: 1 位单片机、 4 位单片机、 8 位单片机、 16
位单片机和 32位单片机。
1.6 MCS-51系列单片机的基本芯片分别为哪几种? 它们的差别是什么?
答: 基本芯片为 8031、 8051、 8751。
8031内部包括 1个 8位 cpu、 128BRAM, 21个特殊功能寄存器( SFR) 、 4个 8位并行
I/O口、 1个全双工串行口, 2个 16位定时器/计数器, 但片内无程序存储器, 需外扩 EPROM
芯片。
8051是在 8031的基础上, 片内又集成有 4KBROM, 作为程序存储器, 是 1个程序不超
过 4KB的小系统。
8751是在 8031的基础上, 增加了 4KB的 EPROM, 它构成了 1个程序小于 4KB的小系
统。用户能够将程序固化在 EPROM中, 能够重复修改程序。
1.7 MCS-51系列单片机与 80C51系列单片机的异同点是什么?
答: 共同点为它们的指令系统相互兼容。不同点在于 MCS-51是基本型, 而 80C51采用 CMOS
工艺, 功耗很低, 有两种掉电工作方式, 一种是 CPU 停止工作, 其它部分仍继续工作; 另
一种是, 除片内 RAM继续保持数据外, 其它部分都停止工作。
1.8 8051与 8751的区别是( C)
( A) 内部数据存储单元数目的不同
( C) 内部程序存储器的类型不同
( B) 内部数据存储器的类型不同
( D) 内部的寄存器的数目不同
.com
第 1 页
第 2 页
.com
1.9 在家用电器中使用单片机应属于微型计算机的( B)
( A) 辅助设计应用 ( B) 测量、 控制应用 ( C) 数值计算应用 ( D) 数据处理应用
1.10 说明单片机主要应用在哪些领域?
答: 单片机主要运用领域为: 工业自动化; 智能仪器仪表; 消费类电子产品; 通信方面; 武
器装备; 终端及外部设备控制; 多机分布式系统。
第二章 MCS-51单片机的硬件结构
2.1 MCS-51单片机的片内都集成了哪些功能部件? 各个功能部件的最主要的功能是什么?
答: 功能部件如下: 微处理器( CPU) ; 数据存储器( RAM) ; 程序存储器( ROM/EPROM,
8031没有此部件) , 4个 8位并行 I/O口( P0口、 P1口、 P2口、 P3口) ; 1个全双工的串行
口; 2个 16位定时器/计数器; 中断系统; 21个特殊功能寄存器( SFR) 。
各部件功能: CPU( 微处理器) 包括了运算器和控制器两大部分, 还增加了面向控制的处
理功能, 不但可处理字节数据, 还能够进行位变量的处理; 数据存储器( RAM) 片内为 128B
( 52系列的为 256B) , 片外最多可外扩 64KB。数据存储器来存储单片机运行期间的工作变
量、 运算的中间结果、 数据暂存和缓冲、 标志位等; 程序存储器( ROM/EPROM) 用来存储
程序; 中断系统具有 5个中断源, 2级中断优先权; 定时器/计数器用作精确的定时, 或对外
部事件进行计数; 串行口可用来进行串行通信, 扩展并行 I/O口, 还能够与多个单片机相连
构成多机系统, 从而使单片机的功能更强且应用更广; 特殊功能寄存器用于 CPU 对片内各
功能部件进行管理、 控制、 监视。
2.2 说明 MCS-51单片机的引脚 EA的作用, 该引脚接高电平和接低电平时各有何种功能?
答: 当该引脚为高电平时, 单片机访问片内程序存储器, 但在 PC( 程序计数器) 值超过 0FFFH
( 对于 8051、 8751) 时, 即超出片内程序存储器的 4KB地址范围时, 将自动转向执行外部
程序存储器内的程序。
当该引脚为低电平时, 单片机则只访问外部程序存储器, 不论是否有内部程序存储器。
对于 8031来说, 因其无内部程序存储器, 因此该引脚必须接地, 这样只能选择外部程序存
储器。
2.3 MCS-51的时钟振荡周期和机器周期之间有何关系?
答: 每 12个时钟周期为 1个机器周期。
.com
第 2 页
第 3 页
.com
2.4在 MCS-51 单片机中, 如果采用 6 MHZ 晶振, 1个机器周期为( 2微秒) 。
2.5程序存储器的空间里, 有 5个单元是特殊的, 这 5个单元对应 MCS-51单片机 5个中断
源的中断入口地址, 请写出这些单元的地址以及对应的中断源。
答: 中断源
外部中断 0
入口地址
0003H
000BH
0013H
001BH
0023H
定时器 0( T0)
外部中断 1
定时器 1( T1)
串行口
2.6 内部 RAM中, 位地址为 30H的位, 该位所在字节的字节地址为( 26H) 。
2.7 若 A中的内容为 63H, 那么, P标志位的值为( 0) 。
2.8 判断下列说法是否正确:
( A) 8031的 CPU是由 RAM和 EPROM所组成。
( 错)
( B) 区分片外程序存储器和片外数据存储器的最可靠的方法是看其位于地址范围的低端还
是高端。 ( 错)
( C) 在 MCS-51 中, 为使准双向的 I/O 口工作在输入方式, 必须保证它被事先预置为 1。
( 对)
( D) PC能够看成是程序存储器的地址指针。
8031单片机复位后, R4所对应的存储单元的地址为( 04H) , 因上电时 PSW=( 00H) 。
这时当前的工作寄存器区是( 0) 组工作寄存器区。
( 对)
2.9
2.10 什么是机器周期? 1个机器周期的时序是如何来划分的? 如果采用 12MHZ晶振, 1个
机器周期为多长时间?
答: CPU 完成一个基本操作所需要的时间称为机器周期。时序划分: 一个机器周期包括 12
个时钟周期, 分为 6个状态; S1-S6。每个状态又分为 2拍; P1和 P2。因此, 1个机器周期
中的 12个时钟周期表示为: S1P1、 S1P2、 S2P1、 S2P2、 …、 S6P2。如果采用 12MHZ晶振,
1个机器周期为 1μs。
2.11判断以下有关 PC和 DPTR的结论是否正确?
( A) DPTR是能够访问的, 而 PC不能访问。
( B) 它们都是 16位的寄存器。
( 错)
( 对)
( 对)
( C) 它们都具有加 1的功能。
.com
第 3 页
第 4 页
.com
( D) DPTR能够分为 2个 8位寄存器使用, 但 PC不能。
( 对)
12、 内部 RAM中, 哪些单元可作为工作寄存器区, 哪些单元能够进行位寻址? 写出它们的
字节地址。
答: 地址为 00H-1FH的 32个单元是 4组通用工作寄存器区, 每个区包括 8个 8位工作寄存
器, 编号为 R0-R7。字节地址为 20H-2FH的 16个单元可进行 128位的位寻址, 这些单元构
成了 1位处理机的存储器空间。位地址范围是 00H-7FH。
2.13使用 8031单片机时, 需将 EA引脚接( 低) 电平, 因为其片内无( 程序) 存储器。
2.14片内 RAM低 128个单元划分为哪 3个主要部分? 各部分的主要功能是什么?
答: 字节地址为 00H-1FH的 32个单元是 4组通用工作寄存器区, 每个区包括 8个 8位工作
寄存器, 编号为 R0-R7。能够经过改变 PSW中的 RS1、 RS0来切换当前的工作寄存器区,
这种功能给软件设计带来极大的方便, 特别是在中断嵌套时, 为实现工作寄存器现场内容保
护提供了方便; 字节地址为 20H-2FH的 16个单元可进行工 128位的位寻址, 这些单元构成
了 1 位处理机的存储器空间; 字节地址为 30H-7FH 的单元为用户 RAM 区, 只能进行字节
寻址。用于作为数据缓冲区以及堆栈区。
2.15 判断下列说法是否正确
( A) 程序计数器 PC不能为用户编程时直接使用, 因为它没有地址。
( 对)
( B) 内部 RAM的位寻址区, 只能供位寻址使用, 而不能供字节寻址使用。 ( 错)
( C) 8031共有 21个特殊功能寄存器, 它们的位都是可用软件设置的, 因此, 是能够进行
位寻址的。
( 错)
2.16
PC的值是: ( C)
( A) 当前正在执行指令的前一条指令的地址
( B) 当前正在执行指令的地址
( C) 当前正在执行指令的下一条指令的地址
( D) 控制器中指令寄存器的地址
2.17 经过堆栈操作实现子程序调用, 首先就要把( PC) 的内容入栈, 以进行断点保护。调
用返回时, 再进行出栈保护, 把保护的断点送回到( PC) 。
2.18 写出 P3口各引脚的第二功能。
答: 口引脚
第二功能定义
P3.0
P3.1
串行输入口
串行输出口
.com
第 4 页
第 5 页
.com
P3.2
外部中断 0
P3.3
P3.4
P3.5
P3.6
P3.7
外部中断 1
定时器 0外部计数输入
定时器 1外部计数输入
外部数据存储器写选通
外部数据存储器读选通
2.19 MCS-51 单片机程序存储器的寻址范围是由程序计数器 PC 的位数所决定的, 因为
MCS-51的 PC是 16位的, 因此其寻址的范围为( 64) KB。
2.20 当 MCS----51单片机运行出错或程序陷入死循环时, 如何来摆脱困境?
答: 可经过复位来解决。
2.21 判断下列说法是否正确?
( A) PC是 1个不可寻址的特殊功能寄存器
( B) 单片机的主频越高, 其运算速度越快
( 对)
( 对)
( 错)
( C) 在 MCS----51单片机中, 1个机器周期等于 1微秒
( D) 特殊功能寄存器 SP内装的是栈顶首地址单元的内容 ( 错)
2.22 如果手中仅有一台示波器, 可经过观察哪个引脚的状态, 来大致判断 MCS----51 单片
机正在工作?
答: ALE 引脚。
第三章 MCS-51的指令系统
3.1 判断以下指令的正误:
( 1)
MOV
28H, @R2 (2) DEC
(6) MOV R0,R1 (7) PUSH
(11) MOV C,30H
DPTR
(3) INC
DPTR
(8)
(4) CLR
MOV
R0
(5) CPL
R5
DPTR
F0,C
(9)MOV
F0,Acc.3
(10)MOVX
A,@R1
(12)RLC
R0
答: ( 3) 、 ( 8) 、 ( 10) 、 ( 11) 对, 其余错。
3.2 判断下列说法是否正确。
( A) 立即寻址方式是被操作的数据本身在指令中, 而不是它的地址在指令中。( √)
( B) 指令周期是执行一条指令的时间。
( √)
( ×)
( C) 指令中直接给出的操作数称为直接寻址。
3.3在基址加变址寻址方式中, 以( A) 作变址寄存器, 以( DPTR) 或( PC) 作基址寄存器
.com
第 5 页
第 6 页
.com
3.4 MCS-51共有哪几种寻址方式? 各有什么特点?
答: 共有 7种寻址方式。
( 1) 寄存器寻址方式 操作数在寄存器中, 因此指定了寄存器就能得到操作数。
( 2) 直接寻址方式
指令中操作数直接以单元地址的形式给出, 该单元地址中的内容就
是操作数。
( 3) 寄存器间接寻址方式 寄存器中存放的是操作数的地址, 即先从寄存器中找到操作
数的地址, 再按该地址找到操作数。
( 4) 立即寻址方式 操作数在指令中直接给出, 但需在操作数前面加前缀标志”#”。
( 5) 基址寄存器加变址寄存器间接寻址方式 以 DPTR 或 PC 作基址寄存器, 以累加器
A作为变址寄存器, 并以两者内容相加形成的 16位地址作为操作数的地址, 以达到访问数
据表格的目的。
( 6) 位寻址方式
位寻址指令中能够直接使用位地址。
( 7) 相对寻址方式 在相对寻址的转移指令中, 给出了地址偏移量, 以”rel”表示, 即
把 PC的当前值加上偏移量就构成了程序转移的目的地址。
3.5 MCS-51指令按功能能够分为哪几类?
答: MCS-51 指令系统按功能分为: 数据传送类( 28 条) ; 算术操作类( 24 条) ; 逻辑运算
类( 25条) ; 控制转移类( 17条) ; 位操作类( 17条) 。
3.6 访问 SFR, 可使用哪些寻址方式?
答: 一般采用直接寻址, 对于 SFR中字节地址能被 8整除的 SFR能够使用位寻址, 对于 SFR
中的 A、 B、 DPTR寄存器能够采用寄存器寻址。
3.7 指令格式是由( 操作码) 和( 操作数) 所组成, 也可能仅由( 操作码) 组成。
3.8 假定累加器 A中的内容为 30H, 执行指令:
1000H: MOVC
A, @A+PC
后, 把程序存储器( 1031H) 单元的内容送入累加器中
3.9 在 MCS----51中, PC和 DPTR都用于提供地址, 但 PC是为访问( 程序) 存储器提供地
址, 而 DPTR是为访问( 数据) 存储器提供地址。
3.10 在寄存器间接寻址方式中, 其”间接”体现在指令中寄存器的内容不是操作数, 而是
操作数的( 地址) 。
3.11 该程序段的功能是什么?
PUSH
A
.com
第 6 页
第 7 页
.com
PUSH
POP
B
A
POP
B
答: 功能是 A、 B内容互换
3.12 已知程序执行前有 A=02H, SP=52H, ( 51H) =FFH, ( 52H) =FFH。下列程序执行后:
POP
DPH
DPL
POP
MOV
RL
DPTR,#4000H
A
MOV
MOVC
PUSH
MOV
INC
B,A
A,@A+DPTR
A
A,B
A
MOVC
PUSH
RET
A,@A+DPTR
A
ORG
DB
4000H
10H,80H,30H,50H,30H,50H
A=50H
SP=50H
( 51H) =30H ( 52H) =50H
PC=5030H
3.13 写出完成如下要求的指令, 可是不能改变未涉及位的内容。
( A) 把 Acc.3, Acc.4, Acc.5和 Acc.6清 0。
解: ANL A, #87H
( B) 把累加器 A的中间 4位清 0。
解: ANL A, #C3H
( C) 使 Acc.2和 Acc.3置 1。
解: ORL A, #0CH
3.14 假定 A=83H, ( R0) =17H, ( 17H) =34H, 执行以下指令:
ANL
ORL
XRL
CPL
A, #17H
17H, A
A, @R0
A
后, A的内容为( 0CBH)
3.15 假设 A=55H, R3=0AAH, 在执行指令后 ANL A, R3后, A=( 00H) , R3=( 0AAH)
3.16 如果 DPTR=507BH, SP=32H, ( 30H) =50H, ( 31H) =5FH, ( 32H) =3CH, 则执行下
列指令后:
POP
DPH
.com
第 7 页
第 8 页
.com
POP
POP
DPL
SP
则: DPH=( 3CH)
DPL=( 5FH)
SP=( 4FH)
3.17 假定 SP=60H, A=30H, B=70H, 执行下列指令:
PUSH
PUSH
A
B
后, SP的内容为( 62H) , 61H单元的内容为( 30H) , 62H单元的内容为( 70H) 。
3.18借助本书中的指令表: 表 3-3~表 3-7对如下的指令代码( 16进制) 进行手工反汇编。
FF
C0
E0
E5
F0
F0
解: 查表可知
FF
C0
E5
F0
MOV
R7, A
E0
F0
PUSH
MOV
0E0H
A, 0F0H
@DPTR, A
MOVX
第四章 MCS-51汇编语言程序设计
4.1 用于程序设计的语言分为哪几种? 它们各有什么特点?
答: 用于程序设计的语言基本上分为三种: 机器语言、 汇编语言和高级语言。
( 1) 机器语言: 在单片机中, 用二进制代码表示的指令、 数字和符号简称为机器语言, 直
接用机器语言编写的程序称为机器语言程序。用机器语言编写的程序, 不易看懂, 不便于记
忆, 且容易出错。( 2) 汇编语言具有如下特点: A、 汇编语言是面向机器的语言, 程序设计
人员必须对 MCS----51单片机的硬件有相当深入的了解。B、 助记符指令和机器指令一一对
应, 因此用汇编语言编写的程序效率高, 占用的存储空间小, 运行速度快, 因此用汇编语言
能编写出最优化的程序。C、 汇编语言程序能直接管理和控制硬件设备( 功能部件) , 它能
处理中断, 也能直接访问存储器及 I/O接口电路。( 3) 高级语言: 高级语言不受具体机器的
限制, 都是参照一些数学语言而设计的, 使用了许多数学公式和数学计算上的习惯用语, 非
常擅长于科学计算。计算机不能直接识别和执行高级语言, 需要将其”翻译”成机器语言才
能识别和执行。
4.3 解释下列术语: ”手工汇编”、 ”机器汇编”、 ”交叉汇编”以及”反汇编”。
答、 手工汇编: 一般把人工查表翻译指令的方法称为”手工汇编”。机器汇编: 机器汇编实
际上是经过执行汇编程序来对源程序进行汇编的。交叉汇编: 由于使用微型计算机完成了汇
.com
第 8 页
第 9 页
.com
编, 而汇编后得到的机器代码却是在另一台计算机( 这里是单片机) 上运行, 称这种机器汇
编为”交叉汇编”。反汇编: 有时, 在分析现成产品的 ROM/EPROM中的程序时, 要将二进
制数的机器代码语言程序翻译成汇编语言源程序, 该过程称为反汇编。
4.4 下列程序段经汇编后, 从 1000H开始的各有关存储单元的内容将是什么?
ORG
TAB1
TAB2
DB
1000H
EQU
1234H
3000H
EQU
”MAIN”
DW
TAB1, TAB2, 70H
答: ( 1000H) =‘M’( 1001H) =‘A’( 1002H) =‘I’( 1003H) =‘N’( 1004H) =34H
( 1005H) =12H ( 1006H) =00H ( 1007H) =30H ( 1008H) =70H ( 1009H) =00H
4.5 设计子程序时注意哪些问题?
答: 在编写子程序时应注意以下问题:
( 1) 子程序的第一条指令的地址称为子程序的入口地址。该指令前必须有标号。
( 2) 主程序调用子程序, 是经过主程序或调用程序中的调用指令来实现的。
( 3) 注意设置堆栈指针和现场保护, 因调用子程序时, 要把断点压入堆栈, 子程序返回执
行 RET指令时再把断点弹出堆栈送入 PC指针, 因此子程序结构中必须用堆栈。
( 4) 子程序返回主程序时, 最后一条指令必须是 RET指令, 它的功能是在执行调用指令时,
把自动压入堆栈中的断点地址弹出送入 PC指针中, 从而实现子程序返回主程序断点处继续
执行主程序。
( 5) 子程序能够嵌套, 即主程序能够调用子程序, 子程序又能够调用另外的子程序, 一般
情况下可允许嵌套 8层。
( 6) 在子程序调用时, 还要注意参数传递的问题。
4.6 试编写 1个程序, 将内部 RAM中 45H单元的高 4位清 0, 低 4位置 1。
解:
MOV
ANL
ORL
A, 45H
A, #0FH
A, #0FH
4.7 已知程序执行前有 A=02H, SP=42H, ( 41H) =FFH, ( 42H) =FFH。下述程序执行后,
POP
DPH
DPL
POP
MOV
RL
DPTR,#3000H
A
MOV
MOVC
B,A
A,@A+DPTR
.com
第 9 页
第 10 页
.com
PUSH
MOV
INC
A
A,B
A
MOVC
PUSH
ORG
DB
A,@A+DPTR
A
3000H
10H,80H,30H,80H,50H,80H
A=80H
SP=40H ( 41H) =50H ( 42H) =80H PC=8050H。
4.8 计算下面子程序中指令的偏移量和程序执行的时间( 晶振频率为 12MHZ) 。
7B0F
7CFF
8B90
DC
MOV
MOV
MOV
DJNZ
DJNZ
RET
R3,#15
R4,#255
P1,R3
; 1个机器周期
; 1个机器周期
; 2个机器周期
; 2个机器周期
; 2个机器周期
; 2个机器周期
DL1:
DL2:
R4,DL2
R3,DL
DB
22
解: 程序执行的时间为 15.346μs。
4.9 假定 A=83H, ( R0) =17H, ( 17H) =34H, 执行以下指令:
ANL
ORL
XRL
CPL
A, #17H
17H, A
A, @R0
A
后, A的内容为( 0CBH)
4.10 试编写程序, 查找在内部 RAM的 30H~50H单元中是否有 0AAH这一数据。若有, 则
将 51H单元置为”01H”; 若未找到, 则将 51H单元置为”00H”。
ORG
MOV
MOV
MOV
CJNE
MOV
SJMP
INC
0000H
R0,#30H
R2,#21H
A,@R0
LOOP:
A,#0AAH,NOT
51H,#01H
DEND
NOT:
R0
DJNZ
MOV
SJMP
R2,LOOP
51H,#00H
DEND
DEND:
4.11 试编写程序, 查找在内部 RAM 的 20H~40H 单元中出现”00H”这一数据的次数。并
将查找到的结果存入 41H单元。
ORG
MOV
MOV
0000H
R0,#20H
R2,#21H
.com
第 10 页
第 11 页
.com
MOV
MOV
CJNE
INC
41H,#00H
LOOP:
NOTE:
A,@R0
A,#00H,NOTE
41H
INC
R0
DJNZ
END
R2,LOOP
4.12 若 SP=60H, 标号 LABEL所在的地址为 3456H。LCALL指令的地址为 H, 执行
如下指令: H LCALL LABEL后, 堆栈指针 SP和堆栈内容发生了什么变化? PC
的值等于什么? 如果将指令 LCALL直接换成 ACLAA是否能够? 如果换成 ACALL指令,
可调用的地址范围是什么?
答: 堆栈指针 SP 的内容为 62H, 堆栈内容( 61H) =03H, ( 62H) =20H; PC 值为 3456H,
不能将 LCALL换为 ACALL, 因为 LCALL可调用 64KB范围内的子程序, 而 ACALL所调
用的子程序地址必须与 ACALL 指令下一条指令的第一个字节在同一个 2KB 区内(即 16 位
地址中的高 5位地址相同。如果换为 ACALL, 可调用的地址范围为 H-27FFH。
第五章 MCS-51的中断系统
5.1 什么是中断系统?
答: 能够实现中断处理功能的部件称为中断系统。
5.3 什么是中断源? MCS-51有哪些中断源? 各有什么特点?
答: 产生中断的请求源称为中断源。MCS----51中断系统共有 5个中断请求源: ( 1) 外部中
断请求 0, 中断请求标志为 IE0。( 2) 外部中断请求 1, 中断请求标志为 IE1。( 3) 定时器/
计数器 T0溢出中断请求, 中断请求标志为 TF0。( 4) 定时器/计数器 T1溢出中断请求, 中
断请求标志为 TF1。( 5) 串行口中断请求, 中断请求标志为 TI或 RI。特点: 2个外部中断
源, 3个内部中断源。
5.4外部中断 1所对应的中断入口地址为( 0013H) 。
5.5下列说法错误的是: ( A, B, C)
( A) 各中断源发出的中断请求信号, 都会标记在 MCS-51系统的 IE寄存器中。
( B) 各中断源发出的中断请求信号, 都会标记在 MCS-51系统的 TMOD寄存器中。
( C) 各中断源发出的中断请求信号, 都会标记在 MCS-51系统的 IP寄存器中。
( D) 各中断源发出的中断请求信号, 都会标记在 MCS-51系统的 TCON和 SCON寄存器中。
.com
第 11 页
第 12 页
.com
5.6 MCS-51单片机响应外部中断的典型时间是多少? 在哪些情况下, CPU将推迟对外部中
断请求的响应?
答: 典型时间是 3-8个机器周期。在下列三种情况下, CPU将推迟对外部中断请求的响应:
( 1) CPU正在处理同级的或更高级优先级的中断
( 2) 所查询的机器周期不是当前所正在执行指令的最后一个机器周期
( 3) 正在执行的指令是 RETI或是访问 IE或 IP的指令。
5.7 中断查询确认后, 在下列各种 8031单片机运行情况中, 能立即进行响应的是( D)
( A) 当前正在进行高优先级中断处理
( B) 当前正在执行 RETI指令
( C) 当前指令是 DIV指令, 且正处于取指令的机器周期
( D) 当前指令是 MOV A, R3
5.8
8031单片机响应中断后, 产生长调用指令 LCALL, 执行指令的过程包括: 首先把( PC)
的内容压入堆栈, 以进行断点保护, 然后把长调用指令的 16 位地址送( PC) , 使程序执行
转向( 响应中断请求的中断入口的地址) 中的中断地址区。
5.9 编写出外部中断 1为跳沿触发的中断初始化程序。
ORG
0000H
MAIN
0013H
PINT1
0100H
IT1
AJMP
ORG
AJMP
ORG
MAIN:
SETB
SETB
SETB
AJMP
RETI
END
EX1
EA
HERE:
PINT1:
HERE
5.10 在 MCS-51中, 需要外加电路实现中断撤除的是( D)
( A) 定时中断
( B) 脉冲方式的外部中断
( C) 外部串行中断
( D) 电平方式的外部中断
5.11 MCS-51有哪几种扩展外部中断源的方法?
答: 扩展外部中断源的方法有: 定时器/计数器作为外部中断源的使用方法; 中断和查询结
.com
第 12 页
第 13 页
.com
合的方法。
5.12 下列说法正确的是( C D)
( A) 同一级别的中断请求按时间的先后顺序顺序响应。
( B) 同一时间同一级别的多中断请求, 将形成阻塞, 系统无法响应。
( C) 低优先级中断请求不能中断高优先级中断请求, 可是高优先级中断请求能中断低优先
级中断请求
( D) 同级中断不能嵌套。
5.13 中断服务子程序返回指令 RETI和普通子程序返回指令 RET有什么区别?
答: 两者的区别在于, RETI清除了中断响应时, 被置 1的 MCS-51内部中断优先级寄存器
的优先级状态。
5.14 某系统有 3个外部中断源 1、 2、 3, 当某一中断源变为低电平时, 便要求 CPU进行处
理, 它们的优先处理次序由高到低依次为 3、 2、 1, 中断处理程序的入口地址分别为 1000H,
1100H, 1200H。试编写主程序及中断服务程序( 转至相应的中断处理程序的入口即可) 。
ORG
AJMP
ORG
LJMP
ORG
SETB
SETB
SETB
SJMP
PUSH
PUSH
JNB
0000H
MAIN
0003H
PINT0
0100H
IT0
MAIN:
EX0
EA
HERE:
PINT0:
HERE
PSW
A
P1.3,IR3
P1.2,IR2
P1.1,IR1
JNB
JNB
PINTIR: POP
POP
A
PSW
RETI
IR3:
IR2:
IR1:
LJMP
LJMP
LJMP
ORG
IR3INT
IR2INT
IR1INT
1000H
IR3INT: LJMP
ORG
PINTIR
1100H
IR2INT: LJMP
ORG
PINTIR
1200H
.com
第 13 页
第 14 页
.com
IR1INT: LJMP
PINTIR
END
第六章 MCS-51的定时器/计数器
6.1 如果采用的晶振的频率为 3MHZ, 定时器/计数器工作在方式 0、 1、 2下, 其最大的定时
时间各为多少?
答: 方式 0 213*4us=32.768
方式 1 216*4us=262.144
方式 2 28*4us=1.024
6.2 定时器/计数器用作定时器时, 其计数脉冲由谁提供? 定时时间与哪些因素有关?
答: 定时器/计数器被选定为定时器工作模式时, 计数输入信号是内部时钟脉冲, 每个机器
周期产生 1个脉冲使计数器增 1, 因此, 定时器/计数器的输入脉冲的周期与机器周期一样,
为时钟振荡频率的 1/2。
6.3 定时器/计数器作计数器使用时, 对外界计数频率有何限制?
答: 定时器/计数器用作计数器时, 计数脉冲来自相应的外部输入引脚 T0 或 T1。对外界计
数频率要求为其最高频率为系统振荡频率的 1/24。
6.4 采用定时器/计数器 T0对外部脉冲进行计数, 每计数 100个脉冲后, T0转为定时工作方
式。定时 1ms后, 又转为计数方式, 如此循环不止。假定 MCS---51单片机的晶体震荡器的
频率为 6MHZ, 请使用方式 1实现, 要求编写出程序。
ORG
AJMP
ORG
LJMP
ORG
MOV
MOV
MOV
CLR
0000H
MAIN
000BH
PT0J
0100H
MAIN:
TMOD,#05H;00000001
TH0,#0FFH;X=65436
TL0,#9CH
F0
SETB
SETB
SETB
AJMP
JB
TR0
ET0
EA
HERE:
PT0J:
HERE
F0,PT0D
MOV
MOV
MOV
SETB
TMOD,#01H;00000001
TH0,#0FEH;X=65036
TL0,#0CH
F0
.com
第 14 页
第 15 页
.com
RETI
CLR
PT0D:
F0
MOV
MOV
MOV
RETI
END
TMOD,#05H
TH0,#0FFH
TL0,#9CH
6.5 定时器/计数器的工作方式 2有什么特点? 适用于哪些应用场合?
答: 工作方式 2 为自动恢复初值的( 初值自动装入) 8 位定时器/计数器, TLX 作为常数缓
冲器, 当 TLX计数溢出时, 在置 1溢出标志 TFX的同时, 还自动的将 THX中的初值送至
TLX, 使 TLX从初值开始重新计数( X=0, 1) 。
6.6 编写程序, 要求使用 T0, 采用方式 2定时, 在 P1。0输出周期为 400微秒, 占空比为 1:
10的矩形脉冲。
ORG
AJMP
ORG
AJMP
ORG
MOV
MOV
MOV
MOV
SETB
SETB
SETB
SETB
SJMP
CJNE
SETB
MOV
RETI
CLR
0000H
MAIN
000BH
PT0
0100H
MAIN:
R2,#00H
TMOD,#02H
TH0,#0ECH;X=236
TL0,#0ECH
P1.0
TR0
ET0
EA
HERE:
PT0:
HERE
R2,#09H,PT01
P1.0
R2,#00H
PT01:
P1.0
R2
INC
RETI
END
6.7 一个定时器的定时时间有限, 如何实现两个定时器的串行定时, 来实现较长时间的定
时?
答: 第一个定时溢出启动第二个定时计数, 实行串行定时
6.8 当定时器 T0用于方式 3时, 应该如何控制定时器 T1的启动和关闭?
答: 控制信号 C/T和 M1 M0。
.com
第 15 页
第 16 页
.com
6.9 定时器/计数器测量某正脉冲的宽度, 采用何种方式可得到最大量程? 若时钟频率为
6MHZ, 求允许测量的最大脉冲宽度是多少?
答: 上升沿从 0开始计数, 计满回到下降沿。最大脉冲宽度 Tw=131.072us
6.10编写一段程序, 功能要求为: 当 P1.0引脚的电平正跳变时, 对 P1.1的输入脉冲进行计
数; 当 P1.2 引脚的电平负跳变时, 停止计数, 并将计数值写入 R0、 R1(
展开阅读全文