单片机原理及接口技术第二版余锡存著课后习题答案样本_第1页
单片机原理及接口技术第二版余锡存著课后习题答案样本_第2页
单片机原理及接口技术第二版余锡存著课后习题答案样本_第3页
单片机原理及接口技术第二版余锡存著课后习题答案样本_第4页
单片机原理及接口技术第二版余锡存著课后习题答案样本_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

第二章

1.89C51.87C51.80C51和80C31单片机重要区别在那里?

答:相似之处是:制造工艺都为CHMOS,均有128字节片内RAM、两个定期/

计数器、4个8位I/O并行口,一种串行口和5个中断源。

重要区别:

①89C51片内4K字节FLASHROM;

②87C51片内4K字节EPROM;

③80C51片内4K字节掩膜ROM;

@80C31片内无程序存储器。

2.MCS-51单片机引脚有多少I/O线?它们和单片机对外地址总线和数据总

线有何关系?

答:4个8位I/O并行口,一种串行口;

其中P0口为外接程存和数存地址低8位和数据总线时分复用接口;

其中P2口为外接程存和数存地址高8位总线接口;

其中P1口为真正顾客口线;

其中P3口有第2功能;

以上4个口线在没有专用功能时,也可以做通用I/O口线用“

3.简述8031片内RAM区地址空间分派特点。

答:

MCS-51单片机片内RAM为256字节,地址范畴为00H〜FFH,分为两大某些:

低128字节(00H〜7FH)为真正RAM区;高128字节(80H〜FFH)为特殊功

能寄存器区SFR。

在低128字节RAM中,00H〜1FH共32单元是4个通用工作寄存器区。

每一种区有8个通用寄存器R0〜R7。

4.MCS-51单片机由哪几种某些构成。

答:

①一种8位CPU:

②4KBROMorEPROM(8031无ROM);

③128字节RAM数据存储器;

④21个特殊功能寄存器SFR;

⑤4个8位并行I/O口,其中P0、P2为地址/数据线,可寻址64KB程序存

储器和64KB数据存储器;

⑥一种可编程全双工串行口;

⑦具备5个中断源,两个优先级,嵌套中断构造;

⑧两个16位定期器/计数器;

©一种片内振荡器及时钟电路。

5.MCS-51单片机口信号各自功能是什么?

答:都是控制总线

①□:访问内部程序存储器控制信号/编程电压输入端。口时,CPU从片

内读取指令,口CPU从片外读取指令。

②口:地址锁存容许/编程信号线。

③□:外部程序存储器读选通信号。

④□:复位输入信号/掉电保护后备电源引脚。

6.MCS-51单片机如何实现工作寄存器组选取?

RS1(PSW.4)、RSO(PSW.3)为工作寄存器组选取位;

①取值为00时选取第0组工作寄存器,片内RAM地址是00H-07H,

名称为R0〜R7:

②取值为01时选取第1组工作寄存器,片内RAM地址是08H〜OFH,名称

为RO〜R7;

③取值为10时选取第2组工作寄存器,片内RAM地址是10H〜17H,名称

为R0〜R7;

④取值为11时选取第3组工作寄存器,片内RAM地址是18H〜1FH,名称为

R0〜R7。

什么是时钟周期、机器周期、指令周期?当单片机时钟频率为12MHz时,一种

机器周期是多少?ALE引脚输出频率是多少?

(1)振荡周期:也称时钟周期,是指为单片机提供时钟脉冲信号振荡源周期。

(2)状态周期:每个状态周期为时钟周期2倍,是振荡周期经二分频后得

到。

(3)机器周期:一种机器周期包括6个状态周期S1飞6,也就是12个时钟

周期。

在一种机器周期内,CPU可以完毕一种独立操作。

(4)指令周期:它是指CPU完毕一条操作所需所有时间。每条指令执

行时间都是有一种或几种机器周期构成。

MCS-51系统中,有单周期指令、双周期指令和四周期指令。

当单片机时钟频率为12MHz时,一种机器周期是多少1口s(微秒);ALE引

脚输出频率是多少2us(微秒)。

第三章

MCS-51指令系统按功能分为几类?具备几种寻址方式?她们寻址范畴如

何?答:

①按功能分为5类,分别是:数据传送类、算术操作类、逻辑操作类、控制

转移类和位操作类;

②具备7种寻址方式;

③及时寻址,寻址范畴是程序存储器;

直接寻址,寻址范畴是内部RAM低128字节和高128字节;

寄存器寻址,寻址范畸是四组工作寄存器R0〜R7;

寄存器间接寻址,寻址范畴是内部RAM低128和外部RAM低64K可寻址空间;

基址寄存器加变址寄存器间接寻址,寻址范畴是程序存储器;

相对寻址,寻址范畴是如下一条指令为相对地址T28〜+127字节范畴内;

位寻址,寻址范畴是可位寻址空间,涉及内部RAM可寻址位,特殊功能寄

存器中可寻址位。

2.设内部RAM中59H单元内容为50H,写出当执行下列程序段后寄存器A.R0,

和内部RAM中50H、51H单元内容为和值?

答:

MOVA,59H;(A)=(59H)=50H

MOVRO,A;(RO)=50H

MOVA,#00;(A)=00

MOV@R0,A;((RO))=(50H)=00

MOVA,#25H;(A)=25H

MOV51H,A;(51H)=25H

MOV52H,#70H;(52H)=70H

执行下列程序段后:(A)=25H,(RO)=50H,(50H)=00、(51H)=25H

3.PS■中Cy与0V有何不同?下列程序段执行后(Cy)二?(0V)=?。

MOVA,#56H

ADDA,#74H

答:

Cy一进位、借位标志位;

0V一溢出标志位。

MOVA,#56H;(A)=56H=01010110B

ADDA,#74H;(A)=56H+74H=0CAH=11001010B,

程序执行后:(Cy)=0(OV)=1

4.MOVCA,@A+DPTR与MOVXA,@DPTR指令有何不同?

答:

①MOVCA,@A+DPTR;寻找操作数在程序存储器中,地址是:(A)+(DPTR);

②MOVXA,©DPTR;寻找操作数在外部数据存储器中,地址是:(DPTR)。

5.AJMPvLJMPvSJMP指令功能上有何不同?

答:

相似之处,都是无条件转移指令。

①AJMPaddr11;下调指令为基准2KB范畴内跳转指令。

②LJMPaddr16;转移目的地址可以在64KB程序存储器任何地方。

③SJMPrel;下调指令为基准T28B~+127B范畴内短跳转指令。

6.设堆栈指针SP中内容为60H,内部RAM中30H和31H单元内容分别为24H

和10H,执行下列程序段后,61H,62H,30H,31H.DPTR及SP中内容将有何变

化?

PUSH30H

PUSH31H

POPDPL

POPDPH

MOV30H,#00H

MOV31H,#OFFH

答:

PUSH30H9(61H)=(30H)==24H

PUSH31H9(62H)=(31H)==10H

POPDPL(DPL)=(62H)==10H

POPDPH(DPH)=(61H)==24H

MOV30H,#00H9(30H)=OOH

MOV31H,#OFFHJ(31H)=OFFH

程序执行后:(61H)=24H,(62H)=10H,(30H)=OOH,(31H)=OFFH,(DPTR)

=241OH

7,试分析下列程序段,当程序执行后,位地址00H和01H中内容将

为什么值?P1口8条I/O线为什么状态?

CLRC

MOVA,#66H

JCLOOP1

CPLC

SETB01H

L00P1:ORLC,ACC.0

JBACC.2,L00P2

L00P2:MOVP1,A

答:CLRC;(Cy)=O

MOVA,#66H;(A)=66H=01100110B

JCL00P1;因此时(Cy)=O,因此不跳转

CPLC;(Cy)=1

SETB01H;(01H)=1

L00P1:ORL0,ACC.0;(Cy)=(Cy)V(ACC.0)=1

JBACC.2,L00P2;因(ACC.2)=1

L00P2:MOVP1fA;(P1)=01100110B

8.要完毕如下数据传送,应如何用MCS-51指令实现?

(1)R1内容传送到R0;

⑵片外RAM20H单元内容送R0;

(3)片外RAM20H单元内容送片内RAM20H单元;

(4)片外RAM1000H单元内容送片内RAM20H单元;

⑸ROMH单元内容送R0:

(6)ROMH单元内容送片内RAM20H单元;

⑺ROMH单元内容送片外RAM20H单元。

答:

⑴R1内容传送到R0;

MOVA,R1

MOVRO,A

⑵片外RAM20H单元内容送RO;

MOVR1,#20H

MOVXA,@R1

MOVRO,A

⑶片外RAM20H单元内容送片内RAM20H单元;

MOVR1,#20H

MOVXA,@R1

MOV20H,A

(4)片外RAM1000H单元内容送片内RAM20H单元;

MOVDPTR,#20H

MOVXA,@DPTR

MOV20H,A

(5)ROMH单元内容送R0;

MOVDPTR,#H

CLRA

MOVCA,@A+DPTR

MOVRO,A

⑹ROMH单元内容送片内RAM20H单元;

MOVDPTR,#H

CLRA

MOVCA,@A+DPTR

MOV20H,A

⑺ROMH单元内容送片外RAM20H单元。

MOVDPTR,#H

CLRA

MOVCA,@A+DPTR

MOVRO,#20H

MOVX@R0,A

9.分析如下程序每条指令执行成果:

MOVA,#25H;(A)=25H

MOVR1,#33H;(R1)=33H

MOV4OH,#1AH;(40H)=1AH

MOVRO,40H;(RO)=1AH

ADDA,R1;(A)=25H+33H=58H

ADDCA,@RO;(A)=58H+(1AH)+(Cy)=58H

ADDCA,40H;(A)=58H+1AH+(Cy)=72H

10.设A=83H,R0=17H,(17H)=34H,执行下列程序后,(A)=?

ANLA,#17H;(A)=10000011BA00010111B=00000011B

ORL17H.A;(17H)=00110100BV00000011B=00110111B

XRLA,©RO;(A)=000000116000110111=00110100B

GPLA;(A)=11001011B

11.两个4位BCD码数相加,被加数和加数分别存于30H、31H和40H、41H单

元中(顺序为千位、百位在低地址中,十位、个位在高地址中),和数放在50H、

51H、52H中(52H用于存储最高位进位),试编写加法程序。

解:ORG00H

MOV30H,#12H;

MOV31H,#34H;

MOV40H,#56H;

MOV41Hr#78H;

MOVA,31H;取被加数十个位

ADDA,41H;相加,(A)=(31H)+(41H)

DAA;十进制调节

MOV51H,A;存十位个位运算成果

MOVA,30H;取被加数千百位

ADDOA,40H;相加,(A)=(30H)+(40H)

DAA;十进制调节

MOV50H,A;存千位百位运算成果

CLRA;清A

ADDCA,#0;将进位加到A中

MOV52H,A;存进位

SJMP$

12.试编写一程序,查找内部RAM单元20H〜50H中与否有OAAH这一数据,若

有,则将51H单元置为01H,若没有,则使51H单元置0。

解:ORGOOH

MOV30H,#OAAH;

MOVR1,#31H;

MOVR0,#20H;

BIJIAO:MOVA,@R0

CJNEA,#OAAH,LOOP

MOV51H,#01H

SJMPJIESHU

LOOP:INCR0

DJNZR1.BIJIA0

MOV51H,#00H

JIESHU:SJMP

第四章

1.若有两个符号数X,Y分别存储在内部存储器50H、51H单元中,试编写一种

程序实现X*10+Y,成果存入52H、53H中。

1ORG00H

000078502MOVRO,#50H

0002E63MOVA,@R0

000375F00A4MOVB,#OAH

0006A45MULAB

0007086INCRO

0008267ADDA,@R0

0009088INCR0

000AA6F09MOV@R0,B

000C0810INCR0

000DF611MOV@R0,A

12END

2.在以3000H为首地址外部RAM中,存储了14个以ASCII码表达0~9数,试编

写程序将它们转换成BCD码,并以压缩BCD形式存储在以H为首地址外部RAM

中。

1ORGOOH

00009030002MOVDPTR,#3000H;原始数据首地址

000378073MOVR0,#07;循环次数

000579304M0VR1,#30H;转换成果暂存区指针

0007E05CH1:MOVXA,@DPTR

0008550F6ANLA,#00001111B

000A047SWAPA

000BF5F08MOVB.A

000DA39INCDPTR

OOOEEO10MOVXA,@DPTR

OOOF550F11ANLA,#00001111B

001145F012ORLA,B

0013F713MOV@R1,A

00140914INCR1

0015A315INCDPTR

0016D8EF16DJNZRO,CH1

00189017MOVDPTR,#H;转换成果存储区

001B7A0718MOVR2,#07H;成果个数

001D793019M0VR1,#30H

001FE720CH2:MOVA,@R1;

3.采样5个值分别存储在RO、R1.R2.R3.R4中,求出它们中间值,并存储在R2

中。

1ORG00H

>000078052MOVR0,#5

000279063M0VR1,#6

00047A074MOVR2,#7

00067B085MOVR3,#8

00087C096MOVR4,#9

000AE47CLRA;

000BC38CLRC;

000CE89MOVA,RO;

000D2910ADDA,R1

000E2A11ADDA,R2;

000F2B12ADDA,R3

00102C13ADDA,R4

001175F00514MOVB,#5

00148415DIVAB

0015FA16MOVR2,A

001617END

18END

4.以BUF1为起始地址外部数据存储区中存储着16个单字节无符号数,求其

平均值并送入R2中。

1ORGOOH

2BUF1EQU#1000H

00009010003MOVDPTRBUF1

0003AAOO4MOVR2,0

000578165MOVR0,#16H

0007E06SUM:MOVXA,@DPTR

00082A7ADDA,R2

0009FA8MOVR2,A

000AA39INCDPTR

000BD8FA10DJNZR0,SUM

000D75F01011MOVB,#10H

00108412DIVAB

0011FA13MOVR2,A

14END

5.试编写程序,将内部RAM单元中DATA1开始20个单字节数依次与DATA2单元

为起始地址20个单字节数据进行互换。

>1DATA1EQU#30H

2DATA2EQU#50H

3LENEQU#16

4ORGOH

000078305MOVRO,DATA1

000279506M0VR1.DATA2

00047A107MOVR2,LEN

0006E68EXC:MOVA,@R0

0007C79XCHA,@R1

0008F610MOV@R0,A

00090811INCR0

000A0912INCR1

000BDAF913DJNZR2,EXi

14END

6.某场歌手赛,共有10个评委,试编写一程序,输入10个评分,去掉最高分

和最低分,求平均分(均为BCD码)。

ORG0H

NEQU#5

BLOCKEQU#30H

ISELSORT:MOVR7,N

DECR7

MOVR1,BLOCK

ISST1:MOVRO,BLOCK

MOVA,R7

MOVR6,A

MOVA,@R0

MOVB,A

ISST2:INCR1

MOVA,@R1

CLRC

SUBBA,B

JCISST3

MOVA,@R1

MOVR2,A

MOVB,@R1

ISST3:DJNZR6,ISST2

MOVA,B

XCHA,@R1

MOVB,R2

MOV@R1,B

MOV@R1,A

DJNZR7,ISST1

MOVRO,BLOCK

MOV©RO,#0;去掉最低分

MOVA,BLOCK

ADDA,#9

MOVRO,A

MOV©RO,#0;去掉最高分

AD:MOVRO,BLOCK

INCRO

MOVR1,#8

CLRA

CLRC

MOVB,#0

ADL:ADDA,©RO

DAA

MOVR2,A

ADDCA,#0

MOVB,A

MOVA,R2

DJNZR1,ADL

MOVR5,0

MOVR4,B

MOVR3,A

MOVR2,#0

MOVR1,#8

R5R4R3/R2R1=R4R3

MOVR1,#00H

MOVR2,#OFH

MOVR3,#04H

MOVR4,#05H

MOVR5,#06H

LCALL_DIV

AJMP$

DIV:;{

CLRC

MOV30H,#0

M0V31H,#0

MOV32H,#0

DIV_LOOP:CLRC

MOVA,R3

SUBBA,R1

MOVR3,A

MOVA,R4

SUBBA,R2

MOVR4,A

MOVA,R5

SUBBA,#0

MOVR5,A

JC_DIV_END

_INC_SHANG:CLRC

MOVA,30H

ADDCA,#1

MOV30H,A

MOVA,31H

ADDCA,#0

MOV31H,A

MOVA,32H

ADDCA,#0

MOV32H,A

LJMP_DIV_LOOP

_DIV_END:CLRC

MOVA,R1

ADDCA,R3

MOVA,R2

ADDCA,R4

MOVR3,30H

MOVR4,31H

END

7、编写将一种十六进制数转换为十进制数子程序。

>000078FE2MOVRO,#FEH

000279303M0VR1,#30H

0004E84HEXBCD:MOVA,RO

000575F0645MOVB,#100

0008846DIVAB

0009F77MOV@R1,A

000A740A8MOVA,#10

000CC5F09XCHA,B

000E8410DIVAB

000F0911INCR1

0010F712MOV@R1,A

00110913INCR1

0012A7F014MOV@R1,B

15RET

8、在内部RAMBLOCK开始单元中有一无符号数据块,数据长度为LEN。试编程求

其中最大数并存入MA)(中。

MCS51

1ORGOH

2LENEQU#10;数据块长度

3MAXEQU#40H

000078304MOVR0,#30H;BLOCK首地址

0002790A5MOVR1,LEN

0004196DECR1;循环次数

0005037CLRC

0006E68LOOP:MOVAr@R0

0007089INCR0

00089610SUBBA,@R0

0009400211JCEXCHANG

000B800212SJMPNEXT

000D86F013EXCHANG:MOVB,@R0

OOOFC314NEXT:CLRC

OO1OD9F415DJNZR1,L00P

001285F04016MOV40H,B;MAX单元17END

9、试编程将内部RAM中41H~43H单元中数左移4位,移出某些送50H。

题意不清。

10、在外部RAM中BLOCK开始单元中有一数据块,数据长度为LEN,试编程记录

其中正数、负数和零个数分别存入内部RAMPcount、Mcoun和Zcount单元。

MCS51

>1ORG0H

2LENEQU#1O;数据块长度

3PCOUNTEQU#30H

4MCOUNTEQU#31H

5ZCOUNTEQU#32H

6BLOCKEQU#40H

000078407MOVR0,BLOCK;BLOCK首地址

0002790A8MOVR1,LEN

0004E69LOOP:MOVAr@R0

0005C310CLRC

0006B4000411CJNEAf#0H,SULT1

0009053212INC32H

000B800913SJMPSULT2

000D3314SULT1:RLCA;移出符号位以判断正负!

000E400415JONEG

0010053016INC30H

0012800217SJMPSULT2

0014053118NEG:INC31H

00160819SULT2:INCRO

0017D9EB20DJNZR1,L00P

11.试编写一查表求平方子程序SQR(设X在累加器A中,A不大于15,平方数存

入工作寄存器R7中)o

00009000082MOVDPTR,#TAB

000378303MOVRO,#30H

0005E64MOVA,@R0

0006935MOVCA,@A+DPTR

0007FF6MOVR7,A

0008010104097TAB:DB

1,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225

000C10192431

001040516479

001490A9C4E1

8END

12.试编写一程序,将外部数据区DATA1单元开始50个单节数逐个依次移动到

内部RAM中DATA2单元开始数据区中。

>MCS51

1ORGOH

2DATA1EQU#1000H

3DATA2EQU#30H

4LENEQU#10H

00009010005MOVDPTR,DATA1

000378306MOVR0,DATA2

000579107MOVR1,LEN

0007E08LOOP:MOVXA,@DPTR

0008F69MOV@R0,A

0009A310INCDPTR

000A0811INCRO

000BD9FA12DJNZR1,L00P

13END

13.14,略

第五章

1.简述中断、中断源、中断源优先级及中断嵌套含义。

中断是单片机实时地解决内部或外部事件一种内部机制。当某种内部或外部事

件发生时,单片机中断系统将迫使CPU暂停正在执行程序,转而去进行中断事

件解决.中断解决完毕后,又返回被中断程序处,继续执行下去、。

中断意义在于资源共享和应急解决。

中断功能有四:一、调节CPU与外设速度配合;二、实时控制实现;三、故

障检测;四、实现人机交流

引起中断因素,或者可以发出中断祈求信号来源统称为中断源。

普通中断源有如下几种:

(1)外部设备祈求中断。普通外部设备(如键盘、打印机和A/D转换器等)

在完毕自身操作后,向CPU发出中断祈求,规定CPU为她服务。由计算机硬

件异常或故障引起中断,也称为内部异常中断。

(2)故障逼迫中断。计算机在某些核心部位都设有故障自动检测装置。如

运算溢出、存储器读出出错、外部设备故障、电源掉电以及其她报警信号等,这

些装置报警信号都能使CPU中断,进行相应中断解决。

(3)实时时钟祈求中断。在控制中遇到定期检测和控制,为此常采用一种外

部时钟电路(可编程)控制其时间间隔。需要定期时,CPU发出命令使时钟电路

开始工作,一旦到达规定期间,时钟电路发出中断祈求,由CPU转去完毕检测

和控制工作。

(4)数据通道中断。数据通道中断也称直接存储器存取(DMA)操作中断,

如磁盘、磁带机或CRT等直接与存储器互换数据所规定中断。

为了使得系统能及时响应并解决发生所有中断,系统依照引起中断事件重

要性和急迫限度,硬件将中断源分为若干个级别,称作中断优先级。

中断系统正在执行一种中断服务时,有另一种优先级更高中断提出中断祈

求,这时会暂时终结当前正在执行级别较低中断源服务程序,去解决级别更高

中断源,待解决完毕,再返回到被中断了中断服务程序继续执行,这个过程称

为是中断嵌套。

MCS-51单片机提供了几种中断源?几种中断优先级?

MCS-51单片机中断源共有三类,分别是外部中断、定期计数器中断和串行

通信口中断,第一类有IEO和IE1,第二类有TFO和TF1,第三类RI、TI合

二为一。

MCS-51单片机分两个优先级,每个中断源优先级都可以通过中断优先级寄存

器IP中相应位进行设定。在同级优先级中,五个中断源优先级顺序由高到低分

别是:lEOvTFO、IE1vTF1xRI或Tl。

3.简述TCON、SCON、IE、IP四个特殊功能寄存器各位定义及功能。

TCON(TimerControlRegister)定期器/计数器控制寄存器

ICON在特殊功能寄存器中,字节地址为88H,位地址(由低位到高位)为

88H-8FH,由于有位地址,因此可以于进行位操作。TCON作用是控制

定期器启、停,标志定期器溢出和中断状况。

其中,TR1TFOTROIE1IT1IE0IT0

TFI,

TRI,

TFO和

TRO位

用于定

期器/

计数

器;

IEI,

ITI,

IE0和

IT0位

用于中

断系

统。如

图所

示:

TF1

其中,TF1:定期器1溢出标志位。当定期器1计满溢出时,由硬件使TF1

置“1”,并且申请中断。进入中断服务程序后,由硬件自动清“0”,在查

询方式下用软件清“0”。TR1:定期器1运营控制位。由软件清“0”关

闭定期器1。当GATE=1,且INT1为高电平时,TR1置“1”启动定期器1;当

GATE=0,TR1置“1”启动定期器1oTF0:定期器0溢出标志。其功能

及操作状况同TF1oTRO:定期器0运营控制位。其功能及操作状况同

TR1oIE1:外部中断1祈求标志位。IT1:外部中断1触发方式选

取位。当ITk0,为低电平触发方式;当ITk1,为下降沿触发方式。IE0:

外部中断0祈求标志位。IT0:外部中断。触发方式选取位。当IT0=0,

为低电平触发方式;当IT0=1,为下降沿触发方式。

TCON中低4位与中断关于。由于TCON是可以位寻址,因而如果只清溢出

或启动定期器工作,可以用位操作命令。例如:执行“CLRTFO”后则清定期

器0溢出;执行“SETBTR1”后可启动定期器1开始工作。

SCON(SerialPortControlRegister)串行口控制寄存器

寄存器9F9E9D9C9B9A9998

地址

98H,

位寻址

9FH〜

98Ho

位地址

位符号SMOSM1SM2RENTB8RB8TIRI

SMO、SM1:串行口工作方式选取位

SM2:多机通信控制位

REN:容许/禁止串行口接受控制位

TB8:在方式2和方式3中,是被发送第9位数据,可依照需要由软件置1或清

零,也可以作为奇偶校验位,在方式1中是停止位。

RB8:在方式2和方式3中,是被接受第9位数据(来自第TB8位);在方式1

中,RB8收到是停止位,在方式。中不用。

TI—串行口发送中断祈求标志位

当发送完一帧串行数据后,由硬件置1;在转向中断服务程序后,用软件清0。

RI—串行口接受中断祈求标志位

当接受完一帧串行数据后,由硬件置1;在转向中断服务程序后,

用软件清0。

此处“软件清零”,意指需要顾客用指令清零。

IE(interruptEnableRegister):中断容许控制寄存器

寄存AFAEADACABAAA9A8

器地

A8H,

位寻

AFH〜

A8H0

位地

位符EA/ET2ESET1EX1ETOEXO

a

EA:中断容许总控制位

当EAR时,中断总禁止。

当EA=1时,中断总容许后中断禁止与容许由各中断源中断容许控制位进行设

立。

EXO(EX1):外部中断容许控制位

当EXO(EX1)=0禁止外中断

当EXO(EX1)=1容许外中断

ETO(EX1):定期/计数中断容许控制位

当ETO(ET1)=0禁止定期(或计数)中断

当ETO(ET1)=1容许定期(或计数)中断

ET2:定期器2中断容许控制位,在AT89s52.AT89C52中

ES:串行中断容许控制位

当ES=0禁止串行中断

当ES=1容许串行中断

IP(InterruptPriorityRegister):中断优先级控制寄存器

寄存BFBEBDBCBBBAB9B8

器地

B8H,

位寻

BFH〜

B8Ho

位地

位符//PT2PSPT1PX1PTOPXO

a

PXO外部中断。优先级设定位;PTO—定期中断。优先级设定位;PX1—

外部中断1优先级设定位;PT1—定期中断1优先级设定位;PS—串口中断

优先级设定位;PT2—定期器2优先级设定位(8052才有)。

4.简述MCS-51单片机中断响应过程。

MCS-51单片机中断响应过程可简朴归纳为5步:

(1)中断源检测:在每条指令结束后,系统都自动检测中断祈求信号,如果有

中断祈求,且CPU处在开中断状态下,则响应中断。

(2)保护现场:在保护现场前,CPU自动将当前PC压入堆栈。此时,普

通要关中断,以防止现场被破坏。保护现场普通是用堆栈指令将原程序中用到

寄存器推入堆栈。

(3)中断服务:即为相应中断源服务。

5、(4)恢复现场:用堆栈指令将保护在堆栈中数据弹出来,在恢复现

场前要关中断,以防止现场被破坏。在恢复现场后应及时开中断。

(5)返回:CPU将推入到堆栈断点地址弹回到程序计数器,从而使CPU

继续执行刚才被中断程序。

阐明MCS-51单片机响应中断后,中断服务程序入口地址。

MCS-51单片机响应中断后,其中断矢■是由硬件自动生成。各中断源中断服务

程序入口地址如下表。

中断源中断矢量

外部中断00003H

定时器TO中断000BH

外部中断10013H

定时器T1中断001BH

串行口中断0023H

定时器T2中断(仅8052有)002BH

6、指出哪几种中断申请标志在CPU响应中断响应后能被硬件自动清零。

除了串行通信中断申请标志在CPU响应中断后需要顾客用软件指令清零中断申

请标志外,别的中断源申请标志都是在CPU响应后由硬件自动清零。它们分别

是:外部中断0申请标志(IEO)v外部中断1申请标志(IE1).定期计数器。

溢出标志(IT0)和定期计数器1溢出标志(IT1)o

7、在MCS-51单片机应用系统中,如果有各种外部中断源,如何进行解决?

在多中断源系统中,如果各中断源之间很少发生竞争,那么采用“线或非”

连接,用软件查询方式进行控制如图。

XTAL

XTAl

RESE-

EA/Vt

P3.0(R

P3.1(T

P3.2日

P3.3(it

P3.4(TI

P3.5(T:

P3.6(W

P3.7(II

ALE/i

如果个中断源之间有优先级区别,固定优先级时用“菊花链”电路,不定优先

级时用8259.

8、外部中断INTO、INT1两种触发方式在原理上有何区别?如何用软件设

立?

ITx为外部中断触发方式选取。当ITx为。时为低电平触发方式,CPU在每

个机器周期S5P2采样ITx,当Itx输入低电平时,就置位IEx,采用这种触

发方式时,外部中断源低电平必要保持到CPU响应为止。

ITx为1时候边沿触发方式,CPU在每个机器周期S5P2采样ITx,如果在相邻两

个机器周期内,前一种机器周期为高,后一种机器周期为低,则置位IEx,因

而,采用边沿触发时,高电平和低电平保持时间需在12拍以上。

设立外部中断信号触发方式,可通过对TCON寄存器(字节地址88H,位地址

881r8FH)中ITx位置一或置零进行。

9、在一种应用系统中,晶振频率为12MHz,一种外部中断祈求信号宽度是300ns

负脉冲,该采用哪种触发方式?如何实现?

晶振频率为12MHz时,机器周期为1微秒,采用边沿触发时,祈求信号至少应

当保持1微秒,因此只能对原信号进行展宽,惯用办法是连接一种单稳态电路,

其时常数不在1-1.5微秒之间即可。

10、MCS-51中断服务程序能否放在65KB程序存储器任意区域?如何实现?

MCS-51中断服务程序可以放在65KB程序存储器任意区域,只要在相应中断矢量

入口填写相应跳转指令即可。例如外部中断IE1中断服务程序起始地址为3400H,

则在0013H单元内填写LCALL3400Ho

第六章

1.8051单片机内设几种可编程定期/计数器?它们有几种工作方式?

如何选取和设定?作为定期器或计数器,它们波特率各为多少?

8051单片机内设有两个钧为16位可编程定期/计数器,共有4种工作方式,即:

方式0-13位定期/计数器、方式1一16位定期/计数器、方式2—自动重载初值

得8位定期/计数器和方式3—T0为两个独立8位定期/计数器,在方式3下,T1

停止工作。

8051定期/计数器工作方式由控制寄存器TM0DM0、M1两位设立,由于TM0D地

址为89H,因此MO、M1不能位寻址,只能通过字节操作方式对MO、M1值进行设

定。

当用定期/计数器作为波特率发生器时,依照串口工作模式,有三种情形:

方式。波特率为主振频率fosc十一半;

方式2波特率依照下式拟定:口,其中,SM0D为PC0N寄存器中波特率倍增位。

方式1和方式3波特率计算依照下列关系求TH1即可:

2SMOn

Baudrate=-----------X

3212x(256-THl)

2.定期/计数器作定期器用时,其定期时间有哪些因素关于?做计数器用时,对外

部计数频率有何限制?

8051定期/计数器工作在定期器状态时,输入时钟脉冲是由晶体振荡器输出经

12分频得到,故其频率为晶振频率十一半。因此,定期输出是晶振频率处以12

再除以计数值。

8051定期/计数器工作在计数器状态时,需要两个机器周期才干辨认一种从

“1”到“0”跳变,故最高计数频率不不不大于晶振频率二十四分之一。

3、8051单片机晶振频率为6MHz,若只使用T0产生500微秒定期,可以选取哪

几种定期方式?分别写出定期器方式控制字和计数器初值。

选取方式0或方式1,计数器初值为8192-250,或65536-250。.

此处给一种C语言写程序段,定期信号由P1.0输出:

ORG0000H

LJMPMAIN

ORGOOOBH

LJMPT0_INTERRUPT

MAIN:SETBEA

MOV

温馨提示

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

评论

0/150

提交评论