单片机原理及应用课后习题答案解析Word格式.docx
- 文档编号:18086059
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:41
- 大小:157.65KB
单片机原理及应用课后习题答案解析Word格式.docx
《单片机原理及应用课后习题答案解析Word格式.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用课后习题答案解析Word格式.docx(41页珍藏版)》请在冰豆网上搜索。
指令周期是CPU每取出并执行一条指令所需的全部时间;
机器周期是CPU完成一个根本操作所需要的时间。
时钟周期是指计算机主时钟的周期时间。
3.堆栈的作用是什么?
在程序设计时,为什么要对堆栈指针SP重新赋值?
堆栈是一个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场;
堆栈指针SP复位后指向07H单元,00H-1FH为工作存放器区,20H-2FH为位寻址区,这些单元有其他功能,因此在程序设计时,需要对SP重新赋值。
4.单片机复位有几种方法?
1、上电复位2、按键复位3、看门狗复位4、软件复位
5.AT89S51单片机运行出错或程序陷入死循环时,如何摆脱困境?
可以采用复位键进展复位,使单片机初始化,也可以在软件中使用看门狗。
6.AT89S51单片机P0~P3口的驱动能力如何?
如果想获得较大的驱动能力,采用低电平输出还是高电平输出?
P0口每位可驱动8个LSTTL输入,而口的每一位的驱动能力,只有P0口的一半。
当P0口的*位为高电平时,可提供400μA的电流;
当P0口的*位为低电平〔0.45V〕时,可提供3.2mA的灌电流,如低电平允许提高,灌电流可相应加大。
所以,任何一个口要想获得较大的驱动能力,只能用低电平输出。
7.AT89S51单片机部RAM低128单元划分为几个局部?
每局部有什么特点?
工作存放器区、位寻址区、用户RAM区。
每局部特点如下:
00H-1FH为工作存放器区,共32个单元,被分为4组,每组有八个存放器〔R0-R7〕。
任意时刻,CPU只能使用一组存放器,当前正在使用的存放器组被称为当前存放器。
在程序运行过程中如果不使用的存放器也可以作为RAM使用。
20H-2FH为位寻址区,共16个单元。
这16个单元可以作为字节单元使用,同时这16个单元的每一位也可以单独使用,即位寻址。
30H-7FH为用户RAM区,用于存放各种数据、中间结果,起到数据缓冲的作用。
在实际使用中,常需要把堆栈设在用户RAM中。
8.AT89S51单片机的片都包含了哪些功能部件?
各个功能部件主要的功能是什么?
1个微处理器〔CPU〕;
128个数据存储器〔RAM〕单元;
4KBFlash程序存储器;
4个8位可编程并行I/O口;
1个全双工串行口;
2个16位定时器/计数器;
1个看门狗定时器;
1个中断系统,5个中断源,2个优先级;
26个特殊功能存放器〔SFR〕;
1个看门狗定时器。
9.程序存储器的空间中,有5个特殊单元,分别对应AT89S51单片机5个中断源的入口地址,写出这些单元的地址及对应的中断源。
中断源
中断入口地址
外部中断0
0003H
定时/计数器0溢出中断
000BH
外部中断1
0013H
定时/计数器1溢出中断
001BH
串行中断
0023H
10.AT89S51单片机有几个存储器空间?
画出它的存储器构造图。
AT89S51单片机的有3个存储器空间,即片片外统一编制的程序存储器,片数据存储器和片外数据存储器。
11.什么是空闲方式?
怎样进入和退出空闲方式?
空闲方式:
CPU处于休眠的状态,而片所有其他外围设备保持工作状态,即振荡器保持工作,时钟脉冲继续输出到中断、串行口、定时器等功能部件,使它们继续工作,但时钟脉冲不再送到CPU,因而CPU停顿工作。
进入:
每当CPU执行一条将IDL位置1的指令,就使它进入空闲方式,CPU即停顿工作,进入空闲方式。
退出:
两种:
一是被允许的中断源请求中断时,由部的硬件电路清0IDL位,终止空闲方式;
另一种方式是硬件复位。
RST引脚上的复位信号直接将IDL为清0,从而使单片机退出空闲方式。
12.什么是掉电方式?
怎样进入和退出掉电方式?
掉电:
振荡器停顿工作,单片机部所有的功能部件全部停顿工作。
CPU执行一条将PD位置1的指令,就使单片机进入掉电方式。
唯一的方法是硬件复位,复位后单片机部特殊功能存放器的容被初始化,PCON=0,从而退出掉电方式。
13.AT89S51单片机的控制信号引脚有哪些?
说出其功能。
RST(9脚):
复位信号输入端,高电平有效。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
ALE(30脚):
地址锁存控制信号。
当外部程序存储器或数据存储器时,ALE输出脉冲用于锁存低8位地址。
(29脚):
程序储存允许输出端,是外部程序存储器的读选通信号,低电平有效。
当AT89S51从外部程序存储器取指令时,每个机器周期两次
有效,即输出两个脉冲。
当外部数据存储器,不会出现两次有效的
信号。
(31脚):
当
信号为低电平时,对ROM的读操作限定在外部程序存储器;
而当
信号为高电平时,则对ROM的读操作是从部程序存储器开场,并可延续至外部程序存储器。
四、设计一个电路,使单片机的P0口能驱动8只发光二极管。
思考题与习题3
1.假定外部数据存储器3000H单元的容为50H,执行以下指令后,累加器A中的容为50H。
MOVDPTR,#3000H
MOV*A,DPTR
2.假定累加器A中的容为30H,DPTR中的容为2000H,执行指令:
MOVCA,A+DPTR
后,把程序存储器2030H单元的容送入累加器A中。
3.(30H)=21H,(31H)=04H,说明以下程序的功能,执行后(30H)=04H,(31H)=21H。
PUSH30H
PUSH31H
POP30H
POP31H
4.程序执行前,在AT89S51单片机片RAM中,〔A〕=33H,〔R0〕=28H,〔28H〕=0BCH,写出执行如下程序后,〔A〕=63H。
ANLA,#60H
ORL28H,A
*RLA,R0
CPLA
5.对程序存储器的读操作使用的指令MOVC指令。
6.对外部数据存储器的读操作使用的指令MOV*指令。
7.执行如下三条指令后,20H单元的容是0FH
M
O
V
R
0,#20H
40H,#0
F
H
﹫R
0,40H
二、判断
判断以下指令的正误。
(1)MOVR1,R2×
(2)MOV20H,R3×
(3)DECDPTR×
(4)INCDPTR√
(5)MOV*A,R1√
(6)MOVCA,DPTR×
(7)PUSHDPTR×
(8)CLRR1×
(9)MOV20H,30H√
(10)MOVF0,C√
(11)CPLR7×
(12)RCA×
三、简答
1.MCS-51共有哪几种寻址方式?
试举例说明。
(1)存放器寻址方式MOVA,R2
(2)直接寻址方式MOVA,30H
(3)存放器间接寻址方式MOVA,R0
(4)立即寻址MOVA,#20H
(5)变址寻址MOVCA,A+DPTR
(6)相对寻址SJMPrel
(7)位寻址MOVC,0D5H;
2.MCS-51指令按功能可以分为哪几类?
每类指令的作用是什么?
数据传送类指令〔28条〕;
数据传送是指将源地址单元中的数据传送到目的地址单元中,且源地址单元中的数据保持不变,或者源地址单元中的数据与目的地址单元中的数据互换。
算术运算类指令〔24条〕;
这类指令中,大多数都要用累加器A来存放源操作数,另一个操作数是工作存放器Rn、片RAM单元或立即数。
执行指令时,CPU总是将源操作数与累加器A中的操作数进展相应操作,然后将结果保存在累加器A中,同时会影响程序状态字PSW中的溢出标志OV、进位标志CY、辅助进位标志AC和奇偶标志位P。
逻辑运算及移位类指令〔25条〕;
在这类指令中,仅当目的操作数为累加器A时对奇偶标志位P有影响,其余指令均不影响PSW的状态。
控制转移类指令〔17条〕;
位操作类指令〔17条〕。
MCS-51系列单片机的硬件构造中有一个位处理器,对位地址空间具有丰富的位操作指令。
由于位操作数是"
位〞,取值只能是0或1,故又称为布尔操作指令。
3.SFR,可使用哪些寻址方式?
存放器寻址,直接寻址,位寻址
4.执行指令:
MOVA,R0;
在程序状态字PSW中⑴RS1=0,RS0=0;
⑵RS1=1,RS0=0的两种情况下,上述指令执行结果有何不同?
RS1=0,RS0=0时,是将部RAM00H单元中的容传送给累加器A,RS1=1,RS0=0时,是将部RAM10H单元中的容传送给累加器A
4.SJMP〔短转移〕指令和LJMP〔长对转移〕指令的目的地址的围各是多少?
SJMP指令的目的地址围是-128B~+127B;
LJMP指令的目的地址围是64KB。
5.指令和C指令的区别是什么?
6.答:
这类指令是判断直接寻址位是否为"
1〞或为"
0〞,当条件满足时转移,否则继续顺序执行。
而C指令当条件满足时,指令执行后同时将该位清"
0〞。
7.指出以下每条指令的寻址方式。
〔1〕MOVA,40H;
直接寻址
〔2〕MOV30H,#00H;
立即寻址
〔3〕SJMPLOOP;
相对寻址
〔4〕MOVCA,A+DPTR;
变址寻址
〔5〕MOV*A,R0;
存放器寻址
〔6〕MOVC,20H;
位寻址
〔7〕MOV20H,R3;
〔8〕MOV31H,20H;
8.程序执行前,在AT89S51单片机片RAM(10H)=20H,(20H)=33H,(33H)=45H,(45H)=56H,〔P1〕=30H。
分析以下程序按顺序执行每条指令后的结果。
MOVA,33H;
〔A〕=45H
MOVR1,A;
〔R1〕=45H
MOVR1,#0FFH;
〔45H〕0FFH
MOV45H,33H;
〔45H〕=45H
MOVR0,#10H;
〔R0〕=10H
MOVA,R0;
〔A〕=20H
MOVP1,#0FFH;
〔P1〕=0FFH
MOVA,P1;
;
〔P1〕=30H
MOV20H,A;
〔20H〕=30H
9.程序执行前,在AT89S51单片机片RAM中,(A)=85H,(R0)=20H,(20H)=0AFH,(Cy)=1,(21H)=0FFH。
写出以下指令独立执行后存放器和存储单元的容,假设该指令影响标志位,写出CY、AC、OV和P的值。
ADDA,R0;
CY=1,AC=1,OV=1,P=1,〔A〕=34H
ADDCA,21H;
CY=1,AC=1,P=1,OV=0,〔A〕=85H
SWAPA;
〔A〕=58H,P=1
SUBBA,#50H;
CY=0,AC=0,P=1,OV=1,〔A〕=34H
DECR0;
R0=1FH
*CHDA,R0;
〔A〕=8FH,〔20H〕=0A5H,P=1
10.写出完成如下要求的指令,但是不能改变未涉及位的容。
〔1〕把ACC.3,ACC.4,ACC.5和ACC.6置"
1〞。
ORLA,#01111000B
〔2〕把累加器A的中间4位清"
ANLA,#11000011B
〔3〕将部数据存储器10H单元中的数据的高2位,低3位清"
ANL10H,#00111000B
〔4〕将部数据存储器50H单元中的数据所有位取反。
*RL50H,#11111111B
〔5〕将部数据存储器40H单元中的数据高4位取反。
*RL40H,#11110000B
〔6〕将部数据存储器10H单元中的数据低3位置"
ORL10H,#00000111B
11.分析执行以下指令序列所实现的逻辑运算式
MOV
C,P1.0
ANL
C,/P1.1
MOV20H,C
MOV
C,/P1.0
ANL
C,P1.1
ORLC,20H
MOV
P3.0,C
P3.0=(P1.0∧/P1.1)∨(/P1.0∧P1.1)
思考题与习题4
一、简答题
1.什么是汇编语言源程序、汇编、汇编程序?
(1)使用汇编语言编写的程序称为汇编语言源程序。
(2)汇编语言程序不能直接在计算机上运行,需要将它翻译成机器语言程序,也就是目标代码程序,这个翻译过程称为汇编。
(3)完成汇编任务的程序成为汇编程序。
2.什么叫伪指令,有什么作用?
所谓伪指令是告诉汇编程序应该如何完成汇编工作,只有在汇编前的源程序中才有伪指令,而在汇编后没有机器代码产生。
伪指令具有控制汇编程序的输入输出、定义数据和符号、条件汇编、分配存储空间等功能。
二、编程题
1.在外部RAM3000H单元中有一个8位二进制数,试编程将该数的低四位屏蔽掉,并送给外部RAM3001H单元中。
MOVDPTR,#3000H
MOV*A,DPTR
ANLA,#0F0H
INCDPTR
MOV*DPTR,A
2.
,试编写延时20ms和1s的程序
DELAY20MS:
MOVR6,#100;
延时20ms
D1:
MOVR7,#98
nop
D2:
DJNZR7,D2
DJNZR6,D1
RET
END
DELAY1S:
MOVR7,#250
DEL1:
MOVR6,#200
DEL2:
MOVR5,#98
DEL3:
DJNZR5,DEL3
NOP
DJNZR6,DEL2
DJNZR7,DEL1
RET
END
3.用查表的方法求0~6之间的整数的立方。
整数存在部RAM30H单元中,查表结果回存30H单元。
MOVDPTR,#tab
MOVA,30H
MOVCA,A+DPTR
MOV30H,A
Ret
ORG1000H
TAB:
DB00H,01H,08H,1BH,40H,7DH,0D8H
4.假设有3个无符号数*、y、z分别在部存储器40H、41H、42H单元中,试编写一个程序,实现*≥y时,*+z的结果存放在43H、44H单元中;
当*<y时,y+z的结果存放入43H、44H单元中。
MOVA,40H
CLRC
SUBBA,41H;
相减比拟大小
JCL1
MOVA,40H;
*>
=y
SJMPL2
L1:
MOVA,41H;
*<
y
L2:
ADDA,42H
MOV43H,A
MOVA,#0;
保存进位到44H单元
ADDCA,#0
MOV44H,A
5.在部RAM的BLOCK开场的单元中有一无符号数据块,数据块长度存人LEN单元。
试编程求其中的最小的数并存入MINI单元。
MOVR2,#11H;
要比拟的数据字节数
MOVR1,#BLOCK;
置数据块的首地址
DECLEN
MOVA,R1
LOOP:
MOVMINI,A
INCR1
CLRC
SUBBA,R1;
两个数比拟
JCLOOP1;
C=1,A中的数小,跳转到LOOP1
MOVA,R1;
C=1,则把小数送给A
SJMPLOOP2
LOOP1:
MOVA,MINI
LOOP2:
DJNZR2,LOOP;
比拟是否完毕
MOV50H,A;
把大数存入50H单元
RET
6.在外部RAM3000H起始的单元中存放一组有符号数,字节个数存在部RAM20H单元中。
统计其于0、等于0和小于0的数的数目,并把统计结果存放在部RAM21H、22H和23H单元中。
MOVDPTR,#3000H;
设置首地址
MOV22H,#0;
清零
MOV23H,#0
MOV24H,#0
L2:
MOV*A,DPTR;
取数据
JNZL1
INC22H;
为0
SJMPNE*T
ACC.7,FU
INC21H;
正数
FU:
INC23H;
负数
NE*T:
DJNZ20H,L2
7.查找部RAM20H~40H单元中是否有0FFH这一数据,如果有,将PSW中的F0位置1,没有则将其清零。
MOVR0,#20H
MOVR1,#21H
CLRF0
NE*T:
MOVA,R0
CJNEA,#0FFH,L1
SETBF0
SJMPL2
L1:
INCR0
DJNZR1,NE*T
L2:
8.在片RAM的30H单元开场,相继存放5个无符号数,请使用冒泡法编写程序,使这组数据按照从小到大顺序排列。
MAIN:
MOVR0,#30H;
数据存储区首单元地址
MOVR7.#04H;
各次冒泡比拟次数
CLRF0;
互换标志清"
0〞
MOVA,R0;
取前数
MOVR2,A;
存前数
INCR0
MOVA,R0;
取后数
CLRC
SUBBA,R2;
比拟大小
JNCLOOP1
SETBF0;
互换,置标志位
MOVA,R2;
互换数据
*CHA,R0
DECR0
MOVA,R0
DJNZR7,LOOP;
进展下一次比拟
F0,MAIN;
进展下一轮冒泡
SJMP$;
排序完毕
思考题与习题5
1.AT89S51单片机的五个中断源的中断入口地址分别是
:
0013H
001BHT0:
0000BHT1:
000BH;
串行口:
0023H。
2.AT89S51单片机中断系统中共有
、
、T0、T1、串行口五个中断源,其中优先权最高的是
,优先级最低的是串行口。
3.在CPU未执行同级或更高优先级中断效劳程序的条件下,中断响应等待时间最少需要3个机器周期。
4.AT89S51单片机的堆栈区只可设置在部RAM30H-7FH
,堆栈存放器SP是8位存放器。
5.假设〔IP〕=00010100B,则中断优先级最高者为
,最低者为T1。
6.对中断进展查询时,查询的中断标志位共有IE0、TF0、IE1、TF1、RI和TI六个中断标志位。
7.AT89S51单片机部有16位加1定时器/计数器,可通过编程决定它们的工作方式,其中可进展13位定时器/计数器的是方式是方式0。
8.处理定时器/计数器的溢出请求有两种方法,分别是中断方式和查询方式。
使用中断方式时,必须___开中断___;
使用查询方式时,必须___关中断____。
9.假定定时器1工作在方式2,单片机的振荡频率为6MHz,则最大的定时时间为512us
。
1.CPU响应中断后,能自动去除中断请求"
1〞标志的有〔C〕。
A.
/
采用电平触发方式B.
采用两边触发方式
C.定时/计数器T0/T1中断D.串行口中断TI/RI
2.AT89S51五个中断源中,属外部中断的有〔AB〕。
B.
C.T0D.T1E.TIF.RI
3.按以下中断优先顺序排列,有可能实现的有〔B〕。
A.T1、T0、
、串行口B.
、T1、T0、
、串行口
C.
、串行口、T0、T1D.
、串行口、T0、
、T1
4.各中断源发出的中断申请信号,都会标记在AT89S51系统中的〔B
〕中。
A.TMOD
B.TCON/SCON
C.IE
D.IP
5.外中断初始化的容不包括:
(A)
A.设置中断响应方式
B.设置外中断允许
C.设置中断总允许
D.设置中断触发方式
6.在AT89S51单片机中,需要软件实现中断撤销的是:
(D)
A.定时中断B.脉冲触发的外部中断
C.电平触发的外部中断D.串行口中断
7.在以下存放器中,与定时器/计数器控制无关的是:
(B)
A.TCON
B.SCONC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 应用 课后 习题 答案 解析
![提示](https://static.bdocx.com/images/bang_tan.gif)