单片机原理及接口技术习题解析全_第1页
单片机原理及接口技术习题解析全_第2页
单片机原理及接口技术习题解析全_第3页
单片机原理及接口技术习题解析全_第4页
单片机原理及接口技术习题解析全_第5页
已阅读5页,还剩50页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机原理及接口技术课后习题答案(第四版)李朝青

第一章

I.什么是微处理器(CPU)、微机和单片机?

答微处理器自身不是计算机,但它是小型计算机或微机的控制和处理部分。

微机则是具有完整运算及控制功能H勺计算机,除了微处理器外还包括存储器、

接口适配器以及输入输出设备等。

单片机是将微处理器、一定容量的RAM、ROM以及I/O口、定期器等电路集成

在一块芯片上,构成的单片微型计算机。

2.单片机具有哪些特点

(1)片内存储容量越来越大。

(2抗干扰性好,可靠性高。

(3)芯片引线齐全,轻易扩展。

(4)运行速度高,控制功能强。

(5)单片机内部日勺数据信息保留时间很长,有日勺芯片可以到达123年以上。

3.微型计算机怎样执行一种程序?

答:通过CPU指令,提到内存当中,再逐一执行。

4.微型计算机由那儿部分构成?

微处理潜,存储潜,接口适配器(即I/O接口),I/O设备

第二章

1.89C51单片机内包括哪些重要逻辑功能部件?

答:80C51系列单片机在片内集成了如下重要逻辑功能部件:

(DCPU(中央处理器):8位

⑵片内RAM:128B

(3)特殊功能寄存器:21个

(4)程序存储器:4KB

(5)并行井0口:8位,4个

(6)串行接口:全双工,1个

(7)定期器/计数器:16位,2个

(8)片内时钟电路:1个

2.89C51的EA端有何月途?

答:/EA端接高电平时,CPU只访问片内flash并执行内部程序,存储器。/EA

端接低电平时,CPU只访问外部ROM,并执行片外程序存储器中的指令。/EA端

保持高电平时,CPU执行内部存储器中的指令。

3.89C51的存储器分哪几种空间?怎样区别不一样空间的寻址?

答:ROM(片内ROM和片外ROM统一编址)(使用MOVC)(数据传送指令)(16bits

地址)(64KB)

片外RAM(MOVX)(16bits地址)(64KB)

片内RAM(MOV)(8bits地址)(256B)

4.简述89C51片内RAM的空间分派。

答:片内RAM有256B

低128B是真正的RAM区

高128B是SFR(特殊功能寄存器)区

5.简述布尔处理存储器的空间分派,片内RAM中包括哪些可位寻址单元。

答:片内RAM区从OOffFFH(256B)

其中20『2FH(字节地址)是位寻址区

对应的位地址是OOH~7FH

6.怎样简捷地判断89c51正在工作?

答:用示波器观测8051MJXTAL2端与否有脉冲信号输出(判断震荡电路工作与

否正常?)

ALE(地址锁存容许)(AddressLatchEnable)输出是fosc/、J6分频

用示波器观测ALE与否有脉冲输出(判断8051芯片的好坏?)

观测PSEN(判断8051可以到EPROM或ROM中读取指令码?)

由于/PSEN接外部EPROM(ROM)的/OE端子

0E=0utputEnable(输出容许)

7.89c51怎样确定和变化目前工作寄存器组?

答:PSW(程序状态字)(ProgramStatusWord)中的RS1和RSO

可以给出4中组合

用来从4组工作寄存器组中进行选择

PSW属于SFR(SpecialFunctionRegister)(特殊功能寄存器)

8.89C51P0口用作通用I/O口输入时,若通过TTL“0C”门输入数据,应注意

什么?为何?

答:应当要接一种上拉电阻

9.读端口锁存器和“读引脚”有何不一样?各使用哪种指令?

答:读锁存器(ANLPO.A)就是相称于从存储器中拿数据,而读引脚是从外部拿

数据(如MOVA,P1这条指令就是读引脚的,意思就是把端口pl输入数据送给A)

传送类MOV,判位转移JB、JNB、这些都属于读引脚,平时试验时常常用这

些指令于外部通信,判断外部键盘等;字节互换XCH、XCHD算术及逻辑运算ORL、

CPL、ANL、ADD、A加C、SUBB、INC、DEC控制转移CJNE、DJNZ都属于读锁存器。

10.89C51P0〜P3口构造有何不一样?用作通用I/O口输入数据时,应注意什

么?

答:P0口内部没有上拉电阻,可以用做16位地址的低8位;

P3有第二功能:

P2口可以用做16位地址的高8位;

需要上拉电阻。0C门电路无法输出高下电平,只有靠上拉电阻才能实现

11.89c51单片机『、JEA信号有何功能?在使用8031时,EA信号引脚应怎样处

理?

答:(D80C51单片机/JEA信号的功能

EA为片外程序存储器访问容许信号,低电平有效;在编程时,其上施加21V

的编程电压

EA引脚接高电平时,程序从片内程序存储器开始执行,即访问片内存储

器;EA引脚接低电平时,迫使系统所有执行片外程序存储器程序。

(2)在使用80C31时,EA信号引脚H勺处理措施

由于80c31没有片内的程序存储器,因此在使用它时必然要有外部的程序存

储器,EA信号引脚应接低电平。

12.89C51单片机有哪些信号需要芯片引脚以第2功能口勺方式提供?

答:第一功能第二功能

串行口:

P3.0RXD(串行输入口)

P3.1TXD(串行输出口)

中断:

P3.2INTO外部中断0

P3.3INT1外部中断1

定期器/计数器(TO、T1):

P3.4TO(定期器/计数器0的外部输入)

P3.5T1(定期器/计数器1的外部输入)

数据存储器选通:

P3.6WR(外部存储器写选通,低电平有效,输出)

P3.7RD(外部存储器读选通,低电平有效,输出)

定期器/计数器(T2):

P1.0T2(定期器T2口勺计数端)

Pl.1T2EX(定期器T2的外部输入端)

13.内部RAM低128字节单元划分为哪3个重要部分?各部分重要功能是什么?

答:片内RAM低128单元的划分及重要功能:

(1)工作寄存器组喘OH~1FH)

这是一种用寄存器直接寻址日勺区域,内部数据RAM区的0、31(OOflFH),共

32个单元。它是4个通用工作寄存器组,每个组包括8个8位寄存器,编号为

R(fR7。

(2)位寻址区(20H~2FH)

从内部数据RAM区口勺32~47(20H~2FH)『、J16八字节单元,共包括128位,是

可位寻址的RAM区。这16个字节单元,既可进行字节寻址,又可实现位寻址。

(3)字节寻址区(30H~7FH)

从内部数据RAM区的48l27(30H~7FH),共80个字节单元,可以采用间接

字节寻址的措施访问。

14.使单片机复位有几种措施?复位后机器口勺初始状态怎样?

答:(1)单片机复位措施

单片机复位措施有:上电自动复位、按键手动复位和两种方式

(2)复位后的初始状态

复位后机器的初始状态,即各寄存器的状态:PC之外,复位操作还对其他某

些特殊功能寄存器有影响,它们的复位状态如题表2-1所例

15.开机复位后,CPU使用日勺是哪组工作寄存器?它们日勺地址是什么?CPU怎样确

定和变化目前工作寄存器组?

答:一般开机复位后都是选择第一组通用工作寄存器作为工作寄存器的,一共有

4组,分别为0.1.2.3持续位于00h到1FH地址,

然后在机器中有个程序状态字PSW,它的第四和第三位RSI,RSO是用来选择工

作寄存器组的,也许不一样机器地址稍有不一样。他们俩的值和寄存器组时关系:

RS1/RS00/00/11/01/1

使用的工作寄存器0123

地址00-0708-0F10-1718TF

写程序口勺时候就是通过定义程序状态字来选择使用不一样的寄存器组。也可以直

接对RS1和RSO赋值。

(最终一问同题7)

16.程序状态寄存器PSW的作用是什么?常用标志有哪些位?作用是什么?

答:PSW是一种SFR(特殊功能寄存器)

位于片内RAM的高128B

详细地址DOH(OOFCFFH)(片内RAM的编址)(8bits编址措施)

PSW二ProgramStatusWord(程序状态字)

PSW的常用标志位有哪些?

CY二Carry(进位标志位)

AC=AuxiliaryCarry(辅助进位标志位)(半进位标志位)

F0顾客标志位

RSI,RSO,用来选择目前工作寄存器组(R0~R7)(4选1)

0V=0verflow(溢出标志位)

P二Parity(奇偶校验位)

17.位地址7cH与字节地址7CH怎样区别?位地址7cH详细在片内RAM中的I什么

位置?

答:用不一样的寻址方式来加以辨别,即访问128个位地址用位寻址方式,访问

低128字节单元用字节寻址和间接寻址。

详细地址为2F的第五位,即为7C。

18.89C51单片机口勺时钟周期与振荡周期之间有什么关系?什么叫机器周期和指

令周期?

答:时钟信号口勺周期称为机器状态周期,是振荡周期口勺两倍。一种机器周期是指

CPU访问存储器一次所需的时间。指令周期是执行一条指令所需的时间。

19.一种机器周期的时序怎样划分?

答:一种机器周期二12个震荡周期二6个时钟周期(状态周期)

S1P1,S1P2,S2P1,S2P2,S3P1,S3P2,S4P1,S4P2,S5P1,S5P2,S6P1,

S6P2其中s=state(状态),p=phase(相位)

20.什么叫堆栈?堆栈指针SP的作用是什么?89c51单片机堆栈的容量不能超过

多少字节?

答:堆栈都是一种数据项按序排列的数据构造,只能在一端(称为栈顶(top))对

数据项进行插入和删除。要点:堆:次序随意栈:后进先出(Last-In/First-Out)

在调用子程序时需要保留调用函数的CPU寄存器PC指针,PC指针是被CALL

指令自动压入SP所指向的片内存储器,CPU寄存器要由顾客用PUSH指令自行保

留,因此SP的作用就是一种指针,当进行中断调用,子函数调用时将现场数据压

入SP所指向内存储器,SP自动增长1或2,当中断结束RETI,调用返回RET:POP

时将SP数据弹出,SP自动减1或,2

8051最大为128字节的片内存储器,

21.89C51有几种低功耗方式?怎样实现?

答:空闲方式和掉电方式

空闲方式和掉电方式是通过对SFR中日勺PCOM(地址87H)对应位置1而启动

的。

当CPU执行完置IDL=1(PCON.1)日勺指令后,系统进入空闲工作方式。这时,内

部时钟不向CPU提供,而只供应中断、串行口、定期器部分。CPUH勺内部状态维

持,即包括堆栈指针SP、程序计数器PC、程序状态字PSW、累加器ACC所有的

内容保持不变,端口状态也保持不变。ALE和PSEN保持逻辑高电平。

当CPU执行一条置PC0N.1位(PD)为1的指令后,系统进入掉电工作方式。在

这种工作方式下,内部振荡器停止工作。由于没有振荡时钟,因此,所有的功能

部件都停止工作。但内部RAM区和特殊功能寄存器日勺内容被保留,而端口的输出

状态值都保留在对应日勺SFR中,ALE和PSEN都为低电平。

22.PC与DPTR各有哪些特点?有何异同?

答:(1)程序计数器PC作为不可寻址寄存器日勺特点

程序计数器PC是中央控制器申最基本的J寄存器,是一种独立日勺计数器,寄

存着下一条将程序存储器中取出H勺指令的J地址。

程序计数器PC变化的轨迹决定程序的流程。程序计数器的宽度决定了程序

存储器可以

寻址的范围。

程序计数器PC的基本工作方式有:

①程序计数器PC自动加lo这是最基本的工作方式,也是这个专用寄存器

被称为计数

器口勺原因。

②执行条件或无条件转移指令时,程序计数器将被置入新的数值,程序的流

向发生变化。

变化的方式有下列几种:带符号的相对跳转SJMP、短跳转AJMP、长跳转LJMP及

JMP@A+DPTR等。

③在执行调用指令或响应中断时:

•PC的现行值,即下一条将要执行的指令的地址送入堆栈,加以保护;

・将子程序的入口地址或者中断矢量地址送入PC,程序流向发生变化,执

行子程序或中断服务程序;

•子程序或中断服务程序执行完毕,碰到返回指令RET或RETT时,将栈顶

的内容送到PC寄存器中,程序流程又返回到本来的地方,继续执行。

(2)地址指针DPTR口勺特点

地址指针DPTR的冷点是,它作为片外数据存储器寻址用日勺地址寄存器(间接

寻址)。

(3)地址指针DPTR与程序计数器PC的异同

①相似之处:

・两者都是与地址有关的、16位的寄存器。其中,PC与程序存储器的I地址

有关,而

DPTR与数据存储器的地址有关。

•作为地址寄存器使用时.,PC与DPTR都是通过P0和P2口(作为16位地址

总线)输

出啊。不过,PC的输出与ALE及PSEN有关;DPTR的输出,则与ALE、RD

及WR相联络。

②不一样之处:

•PC只能作为16位寄存器看待,由于有自动加1的功能,故又称为计数器:

DPTR可以作为16位寄存器看待,也可以作为两个8位寄存器看待。

•PC是不可以访问口勺,有自己独特的变化方式,它的变化轨迹决定了程序

执行的流程;

DPTR是可以访问的,如MOVDPTR,SXXXXH,INCDPTPo

23.89C51端口锁存器口勺“读一修改一写”操作与“读引脚”操作有何区别?

答:指令系统中有些指令读锁存器口勺值,有些指令则读引脚上的值。读锁存器指

令是从锁存器中读取一种值并进行处理,把处理后的值(原值或已修改后的值)

重新写入锁存器中。此类指令称为读-修改-写指令。

对于读-修改-写指令。直接读锁存港而不是读端口引脚,是由于从引脚上读

出日勺数据不一定能真正反应锁存器的状态。

第三章

1、指令:CPU根据人的意图来执行某种操作的命令

指令系统:一台计算机所能执行的所有指令集合

机器语言:用二进制编码表达,计算机能直接识别和执行的语言

汇编语言:用助记符、符号和数字来表达指令的程序语言

高级语言:独立于机器H勺,在编程时不需要电机器构造及其指令系统有深入

理解H勺通用性语言

2、见第1题

3、操作码[目的操作数][,源操作数]

4、

寻址方式寻址空间

立即数寻址程序存储器ROM

直接寻址片内RAM低128B、特殊功能寄存器

寄存器寻址工作寄存器R0-R7、A、B、C、DPTR

寄存器间接寻址片内RAM低128B、片外RAM

变址寻址程序存储器(@A+PC,@A+DPTR)

相对寻址程序存储器256B范围(PC+偏移量)

位寻址片内RAM日勺20H-2FH字节地址、部分SFR

5、要访问特殊功能寄存器和片外数据存储器,应采用哪些寻址方式?

答SFR:直接寻址,位寻址,寄存瑞寻址;片外RAM:寄存滞间接寻址

6、MOVA,40H;直接寻址(40H)-A

MOVRO,A;寄存器寻址(A)fRO

MOVPl,#0F0H;立即数寻址OFOfPl

MOV@RO,3OH;直接寻址(30H)—(RO)

MOVDPTR,#3848H;立即数寻址3848H-DPTR

MOV40H,38H;直接寻址(38H)f40H

MOVR0,30H;直接寻址(30H)-RO

MOVPO,RO;寄存器寻址(RO)fPO

MOV18H,#30H;立即数寻址30H-18H

MOVA,@R0;寄存器间接寻址((RO))-A

MOVP2,Pl;直接寻址(Pl)-P2

最终成果:(RO)=38H,(A)=40H,(PO)=38H,(Pl)=(P2)=OFOH,(DPTR)

=3848H,(18H)=30H,(30H)=38H,(38H)=40H,(40H)=40H,(48H)=38H

注意:一左边是内容,右边是单元

7、对89c51/S51片内RAM的高128字节的地址空间寻址要注意什么?

答用直接寻址,位寻址,寄存器寻址

8、指出下列指令日勺本质区别?

MOVA,DATA;直接寻址2字节1周期

MOVA,#DATA;立即数寻址2字节1周期

MOVDATA1.DATA2;直接寻址3字节2周期

MOV74H,#78H;立即数寻址3字节2周期

假如想查某一指令的机器码,字节数或周期数可查阅书本背面的附录A

9、

MOVA,@R0;((R0))=80H->A

MOV@R0,40H;(40H)=08H->(R0)

MOV40H,A;(A尸80f40H

MOVR0,#35H;35HfRO

最终成果:(RO)=35H(A)=80H,(32H)=08H,(40H)=80H

10、怎样访问SFR?

用直接寻址,位寻址,寄存器寻址

11、怎样访问片外RAM?

只能采用寄存器间接寻址(用MOVX指令)

12、怎样访问片内RAM?

低128字节:直接寻址,位寻址,寄存器间接寻址,寄存器寻址(R0~R7)

高128字节:直接寻址,位寻址,寄存器寻址

13、怎样访问片内外ROM?

采用变址寻址(用MOVC指令)

14、阐明十进制调整的原因和措施

答:压缩BCD码在进行加法运算时应逢十进一,而计算机只将其当作十六

进制数处理,此时得到H勺成果不对的。用DAA指令调整(加06H,60H,66H)

15、阐明89c51/S51的布尔处理机功能

答:用来进行位操作

16、ANLA,#17H;83HA17H=03H->A

ORL17H,A;34HV03H=37H->17H

XRLA,@R0;03H®37H=34H

CPLA;34H求反等于CBH

因此(A)=CBH

17、(1)SETBACC.O或SETBEOH;E0H是累加器口勺地址

(2)CLRACC.7

CLRACC.6

CLRACC.5

CLRACC.4

(3)CLRACC.6

CLRACC.5

CLRACC.4

CLRACC.3

18、MOV27H,R7

MOV26H,R6

MOV25H,R5

MOV24H,R4

MOV23H,R3

MOV22H,R2

MOV21H,

MOV20H,RO

19、MOV2FH,20

MOV2EH,21

MOV2DH,22

20、CLRC

MOVA,#5DH;被减数的低8位一A

MOVR2,#B4H;减数低8位一R2

SUBBA,R2:被减数减去减数,差fA

MOV30H,A;低8位成果-30H

MOVA,#6FH;被减数口勺高8位一A

MOVR2,#I3H;减数高8位一R2

SUBBA,R2;被减数减去减数,差一A

MOV31H,A;高8位成果一30H

注意:假如在你的程序中用到了进位位,在程序开始的时候要记得清0进位位

21、(1)A210

CJNEA,#0AH,L1;(A)与10比较,不等转与

LJMPLABEL;相等转LABEL

LI:JNCLABEL;(A)不小于10,转LABEL

或者:

CLRC

SUBBA,#()AH

JNCLABEL

(2)A>10

CJNEA,#OAH,LI;(A)与10比较,不等转LI

REI;相等结束

LI:JNCLABEL;(A)不小于10,转LABEL

RET;(A)不不小于]0,结束

或者:

CLRC

SUBBA,#OAH

JNCLI

RET

LI:JNZLABEL

RET

(3)AW10

CJNEA,#OAH,LI;(A)与10比较,不等转L1

L2:LJMPLABEL;相等转LABEL

LI:JCL2;(A)不不小于1(),转L2

RET

或者:

CLRC

SUBBA,#()AH

JCLABEL

JZLABEL

RET

22、(SP)=23H,(PC)二3412H

参看书上80页

23、(SP)=27H,(26H)=48H,(27H)=23H,(PC)=3456H

参看书上79页

24、不能。ACALL是短转指令,可调用的地址范围是2KB。

在看这个题的时候同步看一下AJMP指令。同步考虑调用指令ACALL和LCALL

指令和RET指令的关系。

25、MOVR2,#31H;数据块长度一R2

MOVRO,#20H;数据块首地址一RO

LOOP:MOVA,@R0;待查找的数据一A

CLRC;清进位位

SUBBA,#0AAH;待查找口勺数据是OAAH吗

JZLi;是,转LI

INCRO;不是,地址增1,指向下一种待查数据

DJNZR2,LOOP;数据块长度减1,不等于0,继续查找

MOV51H,#00H;等于0,未找到,00H-51H

RET

LI:MOV51H,#01H;找到,01H-51H

RET

26、MOVR2,#31H;数据块长度fR2

MOVRO,#20H数据块首地址一R0

LOOP:MOVA,@R0:待查找的数据一A

JNZL1;不为0,转L1

INC51H;为0,00H个数增1

LI:INCRO:地址增1,指向下一种待杳数据

DJNZR2,LOOP;数据块长度减1,不等于0,继续查找

RET

27、MOVDPTR,#SOURCE;源首地址一DPTR

MOVR0,#DIST;目口勺首地址fRO

LOOP:MOVXA,@DPTR;传送一种字符

MOV@R0,A

INCDPTR;指向下一种字符

INCRO

CJNEA,#24H,LOOP;传送日勺是"$”字符吗?不是,传送下一

种字符

RET

28、MOVA,R3;取该数高8位一A

ANLA,#8()H;取出该数符号判断

JZL1;是正数,转L1

MOVA,R4;是负数,将该数低8位一A

CPLA;低8位取反

ADDA,#01H;加1

MOVR4,A;低8位取反加1后一R4

MOVA,R3;将该数高8位fA

CPLA;高8位取反

ADDCA,#00H:加上低8位加1时也许产生的讲位

MOVR3,A;高8位取反加1后fR3

LI:RET

29、CLRC;清进位位C

MOVA,3IH;取该数低8位fA

RLCA;带进位位左移1位

MOV3IH,A;成果存回31H

MOVA,30H;取该数高8位fA

RLCA;带进位位左移1位

MOV30H,A;成果存回3()H

30、MOVR2,#()4H;字节长度一R2

MOVRO,#30H;一种加数首地址一RO

MOVRI,#40H;另一种加数首地址一RI

CLRC;清进位位

LOOP:MOVA,@R0;取一种加数

ADDCA,@R1;两个加数带进位位相加

DAA;十进制调整

MOV@R0,A;寄存成果

INCRO;指向下一种字节

INCRI

DJNZR2,LOOP;数据块长度减1,不等于0,继续查找

RET

31、MOVR2,#08H;数据块长度一R2

MOVRO,#30H;数据块目口勺地址一RO

MOVDPTR,#2023H;数据块源地址一DPTR

LOOP:MOVXA,@DPTR;传送一种数据

MOV@R0,A

INCDPTR;指向下一种数据

INCRO

DJNZR2,LOOP;数据块长度减1,没传送完,继续传送

RET

32、(1)MOVRO,OFH;2字节,2周期4字节4周期(差)

MOVB,R0;2字节,2周期

(2)MOVRO,#OFH;2字节,1周期4字节3周期(中)

MOVB,@R();2字节,2周期

(3)MOVB,#OFH;3字节,2周期3字节2周期(好)

33、(1)功能是将片内RAM中50H~51H单元清0。

(2)7A0A(大家可以看一下书上,对于立即数寻址的话,背面一种字节寄存

的是立即数)7850(第一种字节的后三位是寄存器,前一种条指令是010也就

是指的R2,在这里是R0,因此应当是78,后一种字节寄存H勺是立即数)DAFC

(这里波及到偏移量的计算,可以参照书上56页)

34、INC@R0:(7EH)=00H

INCRO:(RO)=7FH

INC@R0:(7FH)=39H

INCDPTR;(DPTR)=10FFH

INCDPTR;(DPTR)=1100H

INCDPTR;(DPTR)=1101H

35、解:(1000H)=53H(1001H)=54H(I002H)=41H

(1003H)=52H(1004H)=54H(I005H)=12H

(1006H)=34H(1007H)=30H(1008H)=00H

(1009H)=70H

36、MOVRO,#40H;40H-R0

MOVA,@R0;98H-A

INCRO;41H-R0

ADDA,@R0;98H+(41H)=47H-A

INCRO

MOV@R0,A;成果存入42H单元

CLRA;清A

ADDCA,#0;进位位存入A

INCRO

MOV@R0,A;进位位存入43H

功能:将40H,41H单元中口勺内容相加成果放在42H单元,进位放在43H单元,

(RO)=43H,(A)=1,(40H)=98H,(41H)=AFH,(42H)=47H,(43H)=01H

37、MOVA,61H:F2H^A

MOVB,#02H;02H-B

MULAB;F2HXO2H=E4H-A

ADDA,62H;积的低8位加上CCH-A

MOV63H,A;成果送62H

CLRA;清A

ADDCA,B;积的高8位加进位位一A

MOV64H,A;成果送64H

功能:将61H单元的内容乘2,低8位再加上62H单元的内容放入63H,将成果的

高8位放在64H单元。(A)=02H,(B)=01H,(61H)=F2H,(62H)=CCH,(63H)

=BOH,(64H)=02H

39、MOVA,XXH

ORLA,#80H

MOVXXH,A

40、(2)MOVA,XXH

MOVRO,A

XRLA,RO

第五章

1、什么是中断和中断系统?其重要功能是什么?

答:当CPU正在处理某件事情的时候,外部发生H勺某一件事件祈求CPU迅速去

处理,于是,CPU临时中断日前日勺工作,转去处理所发生口勺事件,中断服务处

理完该事件后来,再回到本来被终止的地方,继续本来的工作。这种过程称为中

断,实现这种功能的部件称为中断系统。

功能:(1)使计算机具有实时处理能力,能对外界异步发生的事件作出及时的

处理

(2)完全消除了CPU在查询方式中日勺等待现象,大大提高了CPU的工

作效率

(3)实现实时控制

2、试编写一段对中断系统初始化日勺程序,使之容许INTO,INTI,TO,串行口

中断,且使TO中断为高优先级中断。

解:MOVIE,#097H

MOVIR#02H

3、在单片机中,中断能实现哪些功能?

答:有三种功能:分时操作,实时处理,故障处理

4、89c51共有哪些中断源?对其中端祈求怎样进行控制?

答:(1)89c51有如下中断源

①:外部中断0祈求,低电平有效

②:外部中断1祈求,低电平有效

③TO:定期器、计数器0溢出中断祈求

@T1:定期器、计数器1溢出中断祈求

⑤TX/RX:串行接口中断祈求

(2)通过对特殊功能寄存器TCON、SCON、IE、IP的各位讲行置位或复位等

操作,可实现多种中断控制功能

5、什么是中断优先级?中断优先处理口勺原则是什么?

答:中断优先级是CPU对应中断的先后次序。原则:

(1)先响应优先级高的中断祈求,再响应优先级低口勺

(2)假如一种中断祈求已经被响应,同级口勺其他中断祈求将被严禁

(3)假如同级内多种祈求同步出现,则CPU通过内部硬件查询电路,按

查询次序确定应当响应哪个中断祈求

查询次序:外部中断0—定期器0中断一外部中断1一定期器1中断一串行接口中断

6、阐明外部中断祈求日勺查询和响应过程。

答:当CPU执行主程序第K条指令,外设向CPU发出中断祈求,CPU接到中

断祈求信号并在本条指令执行完后,中断主程序的执行并保留断点地址,然后转

去响应中断。CPU在每个S5P2期间次序采样每个中断源,CPU在下一种机器周

期S6期间按优先级次序查询中断标志,假如查询到某个中断标志为1,将在接下

来口勺机器周期S1期间按优先级进行中断处理,中断系统通过硬件自动将对应向

中断矢量地址装入PC,以便进入对应的中断服务程序。中断服务完毕后,CPU

返回到主程序第K+1条指令继续执行。

7、89C51在什么条件下可响应中断?

答:

(1)有中断源发出中断祈求

(2)中断中容许位EA=1.BPCPU开中断

(3)申请中断口勺中断源的中断容许位为1,即中断没有被屏蔽

(4)无同级或更高级中断正在服务

(5)目前指令周期已经结束

(6)若现行指令为RETI或访问IE或IP指令时,该指令以及紧接着的另

一条指令已执行完毕

8、简述89c51单片机的中断响应过程。

答:CPU在每个机器周期S5P2期间次序采样每个中断源,CPU在下一种机器周

期S6期间按优先级次序查询中断标志,如查询到某个中断标志为1,将在接下来

的机器周期S1期间按优先级进行中断处理,中断系统通过硬件自动将对应的中

断矢量地址装入PC,以便进入对应日勺中断服务程序。一旦响应中断,89c51首

先置位对应日勺中断“优先级生效”触发器,然后由硬件执行一条长调用指令,把

目前的JPC值压入堆栈,以保护断点,再将对应的中断服务的入口地址送入PC,

于是CPU接着从中断服务程序的入口处开始执行。对于有些中断源,CPU在响

应中断后会自动清除中断标志。

9、在89c51内存中,应怎样安排程序区?

答:主程序一般从0030H开始,主程序后一般是子程序及中断服务程序。在这个

大家还要清除各个中断的中断矢量地址。

10、试述中断的作用及中断的全过程。

答:作用:对外部异步发生的事件作出及时的处理

过程:中断祈求,中断响应,中断处理,中断返回

11、当正在执行某一种中断源的中断服务程序时,假如有新的中断祈求出现,试

问在什么状况下可响应新的中断祈求?在什么状况下不能响应新口勺中断祈求?

答:(1)符合如下6个条件可响应新的中断祈求:

a)有中断源发出中断祈求

b)中断容许位EA=1,即CPU开中断

c)申请中断口勺中断源口勺中断容许位为1,即中断没有被屏蔽

d)无同级或更高级中断正在被服务

e)目前的指令周期已结束

0若现行指令为RETI或访问IE或IP指令时,该指令以及紧接

着的另一条指令已被执行完

12、89c51单片机外部中断源有儿种触发中断祈求日勺措施?怎样实现中断祈求?

答:有两种方式:电平触发和边缘触发

电平触发方式:CPU在每个机器周期的S5P2期间采样外部中断引脚的瑜入

电平。若为低电平,使正1(正0)置“1”,申请中断;若为高电平,则lEl(IEO)

清零。

边缘触发方式:CPU在每个机器周期S5P2期间采样外部中断祈求引脚的输

入电平。假如在相继的两个机器周期采样过程中,一种机器周期采样到外部中断

祈求为高电平,接着下一种机器周期采样到外部中断祈求为低电平,则使

IE1QEO)置“1”申请中断;否则,lEl(IEO)置0。

13、89c51单片机有五个中断源,但只能设置两个中断优先级,因此,在中断优

先级安排上受到一定的限制J。试问如下几种中断优先次序的安排(级别由高到低)

与否也许:若也许,则应怎样设置中断源的中断级别:否则,请简述不也许的理

由。

(1)定期器0,定期器1,外中断0,外中断1,串行口中断。

可以,MOVIP,#OAH

(2)串行口中断,外中断0,定期器0,外中断1,定期器1。

可以,MOVIR#10H

(3)外中断0,定期器1,外中断1,定期器0,串行口中断。

不可以,只能设置一级高级优先级,假如将INTO,T1设置为高级,而T0级别

高于INT1.

(4)外中断0,外中断1,串行口中断,定期器(),定期器1。

可以,MOVIP,#15H

(5)串行口中断,定期器0,外中断0,外中断1,定期器1。

不可以

(6)外中断0,外中断1,定期器0,串行口中断,定期器1。

不可以

(7)外中断0,定期器1,定期器0,外中断1,串行口中断。

可以,MOVIP,#09H

14、89c51各中断源的中断标志是怎样产生『、J?又是怎样清0『、J?CPU响应中断

时,中断入口地址各是多少?

答:各中断标志的产生和清“0”如下:

(1)外部中断类

外部中断是由外部原因引起口勺,可以通过两个固定引脚,即外部中断。和外

部中断1输入信号。

外部中断0祈求信号,由P3.2脚输入。通过IT0来决定中断祈求信号是低电

平有效还是下跳变有效。一旦输入信号有效,则向CPU申请中断,并且使

IE0=lo硬件复位。

外部中断1祈求信号,功能与使用方法类似外部中断0

(2)定期中断类

定期中断是为满足定期或计数溢出处理需要而设置的。当定期器/计数器中

的计数构造发生计数溢出的,即表明定期时间到或计数值已满,这时就以计

数溢出信号作为中断祈求,去置位一种溢出标志位。这种中断祈求是在单片

机芯片内部发生的,无需在芯片上设置引入端,但在计数方式时,中断源可

以由外部引入。

TFO:定期器TO溢出中断祈求。当定期器TO产生溢出时,定期器TO祈求标

志TF()二1,祈求中断处理。使用中断时由硬件复位,在查询方式下可由软件

复位。

TF1:定期器T1溢出中断祈求。功能与使用方法类似定期器TO

(3)串行口中断类

串行口中断是为串行数据的传送需要而设置的。串行中断祈求也是在单片机

芯片内部发生的,但当串行口作为接受端时,必须有一完整的串行帧数据从

RI端引入芯片,才也许引起中断。

RI或TI:串行口中断祈求。当接受或发送一串帧数据时,使内部串行口中

断祈求标志RI或TI=1,并祈求中断。响应后必须软件复位。

CPU响应中断时,中断入口地址如下:

中断源入口地址

外部中断00003H

定期器TO中断OOOBH

外部中断10013H

定期器T1中断OO1BH

串行口中断0023H

15、中断响应时间与否为确定不变的?为何?

答:中断响应时间不是确定不变日勺。由于CPU不是在任何状况下对中断祈求都

予以响应的;此外,不一样的状况对中断响应的时间也是不一样的。下面以外部

中断为例,阐明中断响应的时间。

在每个机器周期的S5P2期间,端口勺电平被所存到TCON的IEO位,CPU在下一

种机器周期才会查询这些值。这时满足中断响应条件,下一条要执行的指令将是

一条硬件长调用指令"LCALL”,使程序转入中断矢量入口。调用自身要用2个

机器周期,这样,从外部中断祈求有效到开始执行中断服务程序的第一条指令,

至少需要3个机器周期,这是最短的响应时间。

假如碰到中断受阻的状况,这中断响应时间会更长某些。例如,当一种同级或更

高级的中断服务程序正在进行,则附加口勺等待时间取决于正在进行的中断服务程

序:假如正在执行的一条指令还没有进行到最终一种机器周期,附加的等待时间

为1〜3个机器周期;假如正在执行的是RETI指令或者访问IE或IP的指令,则附

加的等待时间在5个机器周期内。

若系统中只有一种中断源,则响应时间为3〜8个机器周期。

16、中断响应过程中,为何一般要保护现场?怎样保护?

答:由于一般主程序和中断服务程序都也许会用到累加器,PSW寄存器及其他

某些寄存器。CPU在进入中断服务程序后,用到上述寄存器时,就会破坏它本

来存在寄存器中的内容;一旦中断返回,将会导致主程序的混乱。因而在进入中

断服务程序后,一般要先保护现场,然后再执行中断处理程序,在返回主程序此

前再恢复现场。

保护措施一般是把累加器、PSW寄存器及其他某些与主程序有关口勺寄存器压入

堆栈。在保护现场和恢复现场时,为了不使现场受到破坏或者导致混乱,一般规

定此时CPU不响应新的中断祈求。这就规定在编写中断服务程序时,注意在保

护现场之前要关中断,在恢复现场之后开中断。假如在中断处理时容许有更高级

的中断打断它,则在保护现场之后再开中断,恢复现场之前关中断。

17、清论述中断响应的CPU操作过程,为何说中断操作是一种CPU时微查询过

程?

答:在中断响应中,CPU要完毕如下自主操作过程:

a)置位对应的优先级状态触发器,以标明所响应中断的优先级别

b)中断源标志清零CH、R1除外)

c)中断断点地址装入堆栈保护(不保护PSW)

d)中断入口地址装入PC,以便使程序转到中断入口地址处

在计算机内部,中断体现为CPU的微查询操作。89c51单片机中,CPU在每个

机器周期的S6状杰,杳询中断源,并按优先级管理规则处理同步祈求的中断源,

且在下一种机器周期的S1状态中,响应最高级中断祈求。

不过如下状况除外:

a)CPU正在处理相似或更高优先级中断

b)多机器周期指令中,尚未执行到最终一种机器周期

c)正在执行中断系统的SFR操作,如RETI指令及访问IE、IP等操作时,

要延后一条指令

18、在中断祈求有效并开中断状况下,能否保证立即响应中断?有什么条件?

答:在中断祈求有效并开中断状况下,并不能保证立即响应中断。这是由于,在

计算机内部,中断体现为CPU日勺微查询操作。89c51单片机中,CPU在每个机

器周期日勺S6状态下,查询中断源,并按优先级管理规则处理同步祈求的中断源,

且在下一种机器周期的S1状态中,响应最高级中断祈求。

在如下状况下,还需要有此外的等待:

a)CPU正在处理相似或更高优先级中断

b)多机器周期指令中,尚未执行到最终一种机器周期

c)正在执行中断系统的SFR操作,如RETI指令及访问IE、IP等操作时,

要延后一条指令

第6章习题

1、定期器模式2有什么特点?合用于什么场所?

答:

(1)模式2把TLO(或TL1)配置成一种可以自动重装载出勺8位定期器/计数

器。TLO计数溢出时不仅使溢出中断标志位TFO置1,并且还自动把

THO中的内容重新装载到TLO中。TLO用作8位计数器,THO用以保留

初值。

(2)用干定期T,作方式时间(TFO溢出周期)为,用干计数T作方式时,

最大计数长度(THO初值=0)为2^256个外部脉冲。

这种工作方式可省去顾客软件重装初值H勺语句,并可产生相称精确定期时间,尤

其适于作串行波特率发生器。

2、单片机内部定期方式产生频率为lOOKHz等宽矩形波,假定单片机的晶振频率

为12MHz,请编程实现。

答:

T0低5位:1BH

TO高8位:FFH

MOVTMOD,#OOH;设置定期器TO工作于模式0

MOVTL(),#1BH:设置5ms定期初值

MOVTH0,#0FFH

SETBTRO;启动TO

LOOP:JBCTF(),L1;查询到定期时间到?时间到转LI

SJMPLOOP:时间未到转LOOP,继续查询

LI:MOVTLO,#1BH;重新置入定期初值

MOVTH0,#()FFH

CPLP1.0;输出取反,形成等宽矩形波

SJMPLOOK;反第循环

3、89c51定期器有哪几种工作模式?有何区别?

答:有四种工作模式:模式(),模式1,模式2,模式3

(1)模式0:选择定期器日勺高8位和低5位陶成一种13位定期器/计数器。

TL低5位溢出时向TH讲位,TH溢出时向中断标志位TF讲位,并申

请中断。

定期时间匚(2”・初值)义振荡周期X⑵计数长度位2年8192个外部脉冲

(2)模式1:与模式0的唯一差异是寄存器TH和TL以所有16位参与操作。

定期时间"Qi6一初值)X振荡周期X12;计数长度位2怖二65536个外部

脉冲

(3)模式2:把TL0和TL1配置成一种自动重装载的8位定期器/计数器。

TL用作8位计数器,TH用以保留初值。TL计数溢出时不仅使TF0

置1,并且还自动将TH中的内容重新装载到TL中。

定期时间t=(28-初值)义振荡周期X12;计数长度位2迎256个外部脉冲

(4)模式3:对TO和T1不大相似

若设TO位模式3,TLO和TH0被分为两个互相独立的J8位计数器。TLO为8位

计数器,功能与模式0和模式1相似,可定期可计数。

TH0仅用作简朴H勺内部定期功能,它占用了定期器T1H勺控制位TR1和中断

标志位TF1,启动和关闭仅受TR1控制。

定期器T1无工作模式3,但TO在工作模式3时T1仍可设置为0〜2。

4、89c51内部设有几种定期器/计数器?它们是由哪些特殊功能寄存器构成?

答:89c51单片机内有两个16位定期器/计数器,即TO和TL

TO由两个8位特殊功能寄存器TH0和TL0构成;T1由TH1和TL1构成。

5、定期器用作定期器时,其定期时间与哪些原因有关?作计数器时,对外界计

数频率有何限制?

答:定期时间与定期器的工作模式,初俏及振荡周期有关。

作计数器时对外界计数频率规定最高为机器振荡频率的1/24。

6、简述定期器4种工作模式口勺特点,怎样选择设定?

答:

(1)模式0:选择定期器的高8位和低5位构成一种13位定期器/计数器。TL低

5位溢出时向TH进位,TH溢出时向中断标志位TF进位,并申请中断。

定期时间t=(2正初值)X振荡周期X12;计数长度位2皤二8192个外部脉冲

置TMOD中口勺M1M0为00

(2)模式1:与模式0的唯一差异是寄存器TH和TL以所有16位参与操作。定

期时间t=(2®初值)X振荡周期X12;计数长度位2^65536个外部脉冲

置TMOD中日勺MlM0为01

(3)模式2:把TL0和TL1配置成一种自动重装载的8位定期器/计数器。TL

用作8位计数器,TH用以保留初值。TL计数溢出时不仅使TF0置1,并且还自

动将TH中的内容重新装载到TL中。

定期时间t=Q8-初值)X振荡周期X12;计数长度位2'256个外部脉冲

置TMOD中『、JM1MO为10

(4)模式3:对T0和T1不大相似

若设T0位模式3,TL0和TH0被分为两个互相独立的8位计数器。TL0为8位计数

器,功能与模式0和模式1相似,可定期可计数。

TH0仅用作简朴口勺内部定期功能,它占用了定期器T1的控制位TR1和中断标志

位TF1,启动和关闭仅受TR1控制。

定期器T1元工作模式3,但TO在工作模式3时.T1仍可设置为0~2。

置TMOD中『'JM1M0为11

7、当TO用作模式3时,由于TR1已被TO占用,怎样控制T1口勺启动和关闭?

答:用T1控制位C"切换定期器或计数器工作方式就可以使T1运行。定期器

T1无工作模式3,将T1设置为工作模式3,就会使T1立即停止计数,关闭。

8、以定期器/计数器1进行外部时间计数,每计数1000个脉冲后,定期器/计数器1

转为定期工作方式,定期10ms后又转为计数方式,如此循环不止。假定为6WHZ,

用模式1编程。

解:T1为定期器时初值:

T1为计数器时初值:

因此:

L1:MOVTMOD,#50H;设置T1为计数方式且工作模式为1

MOVTHI,#0FCH;置入计数初值

MOVTL1,#18H

SETBTRI;启动T1计数器

LOOPkJBCTF1,L2渣询计数溢出?有溢出(计数满1000个)转L2

SJMPLOOP1;无溢出转LOOP1潍续查询

L2:CLRTR1;关闭T1

MOVTMOD,#10H;设置T1为定期方式且工作与模式1

MOVTH1,#OECH;置入定期10ms初值

MOVTL1,#78H

SETBTRI;启动T1定期

LOOP2:JBCTF1,L1;查询10ms时间到?时间到,转L1

SJMPLOOP2;时间未到,转LOOP2,继续查询

9、一种定期器定期时间有限,怎样实现两个定期器时串行定期以满足较长定期

时间的规定?

答:当一种定期器溢出时,设置另一种定期溶的初值为0开始定期。

1()、使用一种定期器,怎样通过软硬件结合措施实现较长时间的定期?

答:设定好定期器的定期时间,采用中断方式用软件设置计多次数,进行溢出次

数合计,从而得到较长日勺时间。

11、89c51定期错作定期和计数时共计数脉冲分别由谁提供?

答:作定期器时计数胧冲由89c51片内振荡器输出经12分频后的脉冲提供,作计

数时计数脉冲由外部信号通过引脚P3.4和P3.5提供。

12、89c51定期器H勺门控信号GATE设置为1时定期器怎样启动?

答:只有(或)引脚为高电平且由软件使TRO(或TR1)置1时,才能启动定期器

工作。

13、已知89c51单片机改Jfosc=6MHz,请运用TO和P1.0输出矩形波。矩形波高电

平宽3Ous,低电平宽30。心。

解:TO采用模式2作为50us定期时的初值:

因此

作300us定期时日勺初值:

因此

MOVTMOD,#02H;设置定期器TD工作于模式2

L2:CLRPl.O;P1.()输出低电平

MOVTH(),#6AH;置入定期3()0」s初值

MOVTL(),#6AH

SETBTRO;启动T0

LOOPkJBCTF(),L1;查询3()()时间到?时间到,转L1

SJMPLOOP1;时间未到,转LOOPL继续查询

L1:SETBPl.O

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论