单片微型计算机原理及接口技术 杨光友主编课后习题答案Word文件下载.docx

上传人:b****7 文档编号:22144000 上传时间:2023-02-02 格式:DOCX 页数:22 大小:1.42MB
下载 相关 举报
单片微型计算机原理及接口技术 杨光友主编课后习题答案Word文件下载.docx_第1页
第1页 / 共22页
单片微型计算机原理及接口技术 杨光友主编课后习题答案Word文件下载.docx_第2页
第2页 / 共22页
单片微型计算机原理及接口技术 杨光友主编课后习题答案Word文件下载.docx_第3页
第3页 / 共22页
单片微型计算机原理及接口技术 杨光友主编课后习题答案Word文件下载.docx_第4页
第4页 / 共22页
单片微型计算机原理及接口技术 杨光友主编课后习题答案Word文件下载.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

单片微型计算机原理及接口技术 杨光友主编课后习题答案Word文件下载.docx

《单片微型计算机原理及接口技术 杨光友主编课后习题答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片微型计算机原理及接口技术 杨光友主编课后习题答案Word文件下载.docx(22页珍藏版)》请在冰豆网上搜索。

单片微型计算机原理及接口技术 杨光友主编课后习题答案Word文件下载.docx

特殊功能寄存器中安排位地址的作用何在?

有位地址的字节:

20H~2FH80H88H90H98HA0HA8HB0HB8HD0HE0HF0H

SFR安排地址位的作用:

可按位访问,方便使用

2-6什么叫振荡周期、时钟周期、机器周期和指令周期?

振荡周期----为单片机提供时钟信号的振荡源的周期

时钟(状态)周期----振荡源信号经二分频后形成的时钟脉冲信号

机器周期-----完成一个基本操作所需的时间,由6个时钟(状态)周期组成

指令周期----CPU执行一条指令所需的时间

时钟(状态)周期=2振荡周期

机器周期=6时钟(状态)周期=12振荡周期

指令周期=1个或2个或4个机器周期

2-7若单片机使用的晶振为6MHz,那么振荡周期、机器周期和指令周期分别是多少?

fosc=6MHZ

T振荡=1/fosc=0.167μs

T机器=12*T振荡=2μs

T指令=(1~4)T机器=2~8μs

2-8当单片机使用的晶振为12MHz时,执行一条指令所需的最长时间为多少?

fosc=12MHZ

T指令=1~4μs

TMAX指令<

=4μs

2-9说出单片机复位后,各特殊功能寄存器的初始化状态是什么

各特殊功能寄存器的初始化状态如表

特别SP=07H,P0~P3=FFH

注意:

复位后要先给SP赋值(30H~7FH),P0~P3置初值

习题三

3-1说明下列各条指令划线部分的寻址方式,并用图说明指令实现的操作。

(1)ADDA,30H;

直接寻址

(2)MOVXA,@DPTR;

寄存器间接寻址

(3)MOVCA,@A+PC;

变址寻址

(4)ORL60H,#22H;

直接寻址立即寻址

(5)MOV@R1,A;

寄存器间接寻址

3-2查附录写出下列各条指令的机器码。

ACALL0100H;

3100

LCAlL0300H;

120300

AJMP0100H;

2100

LJMP0300H;

D20300

SJMP—5;

80FB

SJMP$十5;

8003

3-3设R0=7EH,DPTR=10FEH,片内RAM中7EH、7FH单元内容为0AAH、0BBH,试分析下列每条指令、增加注释并写出其执行结果。

INC@R0;

(7EH)+17EH,(7EH)=0ABH

1NCR0;

R0+1R0,(R0)=7FH

1NC@R0;

(7FH)+17FH,(7FH)=0BCH

1NCDPTR;

DPTR+1DPTRDPTR=10FFH

3-4若A=80H,R0=17H,(17H)=34H,执行下段程序后,A=?

ANLA,#17H;

A=0

ORL17H,A;

A=0(17H)=34H

XRLA,@R0;

A=34H

CPLA;

A=0CBH

3-5说明下段程序执行过程中,SP的内容以及堆栈中内容的改变过程。

MOVSP,#20H;

SP=20H

MOVA,#20H;

A=20H

MOVB,#30H;

B=30H

PUSHACC;

SP+1SP=21H,(21H)=20H

PUSHB;

SP+1SP=22H,(22H)=30H

POPACC;

(22H)A,SP-1SP=21H

POPB;

(21H)B,B=20H,SP-1SP=20H

3-6有程序如下:

CLRRS1;

位操作RS1=0

CLRRS0;

位操作RS0=0

MOVA,#38H;

字节操作A=38H

MOVR0,A;

字节操作R0=38H

MOV29H,R0;

字节操作(29H)=38H

SETBRS0;

位操作RS0=1

MOVC,RS0;

位操作C=RS0=1

MOVR1,A;

字节操作R1=A=38H

MOV26H,A;

字节操作(26H)=A=38H

MOV28H,C;

位操作(28H)=C=1

ADDCA,26H;

字节操作A+(26H)+CA=71H

试问:

(1)区分哪些是位操作指令?

哪些是字节操作指令?

(2)写出程序执行后有关寄存器和RAM中有关单元的内容。

3-7已知(61H)=0F2H,(62H):

0CCH。

说明下面程序功能,写出涉及的寄存器及片内RAM单元的最后结果。

MOVA,#61H;

A=61H

MOVB,#02H;

B=02H

DIVAB;

A/B=A(商)=30H……B(余数)=01H

ADDA,62H;

A+(62H)A=0FCH(C=0)

MOV63H,A;

A(63H)=0FCH

CLRA;

ADDCA,B;

A+B+CA=01H

MOV64H,A;

A(64H)=01H

3-8说明下面程序功能,在括号中填出所缺的机器码。

002078ADRl:

MOVRO,#ADRl

0022(79)ADR2:

MOVR1,#ADR2

00247ALl:

MOVR2,#LL

0026C3CLRC

0027E6LOOP:

MOVA,@R0

002837ADDCA,@R1

0029F6MOV@R0,A

002A081NCR0

002B091NCRl

002CDA(F9)DJNZR2,LOOP

002E80(FE)SJMP$

功能:

LL个字节的加法

被加数放在ADRl为首的单元内

加数放在ADR2为首的单元内

低字节放在低地址单元

结果放在被加数单元

3-9试编程将片外数据存储器1000H单元中的数据与片内RAM中30H单元中的内容互换

程序如下:

MOV31H,30H

MOVDPTR,#1000H

MOVXA,@DPTR

MOV30H,A

MOVA,31H

MOVX@DPTR,A

SJMP$

习题四

4-1两个4位BCD码数相加,设被加数和加数分别存于片内RAM的40H、41H和45H46H单元中,和数存于50H、51H单元中(均是低位在前,高位在后),试编写程序。

根据题意,最高位将不产生进位(或不考虑)

ORG0000H

LJMPSTART

ORG0200H

START:

MOVA,40H

ADDA,45H;

低位相加

DAA;

BCD调整

MOV50H,A;

存和低位

MOVA,41H

ADDCA,46H;

高位带进位位相加

MOV51H,A;

存和高位

SJMP$

END

4-2已知片外RAM中2100H单元中存有一有符号整数。

试编写程序,求该单元数据的绝对值。

MOVDPTR,#2100H

MOVXA,@DPTR

JNBACC.7NN;

为正数,不变

CPLA(DECA);

为负数,取反加一(或减一取反)

INCA(CPLA);

A中为绝对值

NN:

SJMP$

如果要将绝对值存于原单元中,则NN后的程序变为:

MOVX@DPTR,A

4-3统计片外数据存储器2100H单元开始的数据块(长度为100个字节)中绝对值为100的数的个数。

JNBACC.7NN;

CPLA(DECA);

INCA(CPLA);

CJNEA,#100,MM;

<

>

100转MM

INCR0;

R0存绝对值为100的个数MM:

INCDPL;

调整DPTR

MOVA,DPL

CJNEA,#100,AGI;

不到100个,取下一个

SJMP$

4-4设单片机采用6MHz晶振,计算如下一段程序的执行时间,你能说明这段程序的作用吗?

T机器=1*12/fosc=12/6MHZ=2μs

MOVR0,#20H

(1);

低位地址R0

MOVR3,#05H

(1);

字节数-1R3

MOVA,@R0

(1)

CPLA

(1);

低位取反加一

ADDA,#01H

(1);

不能用INCA(不影响CY位)

MOV@R0,A

(1);

以上程序共6个机器周期

NEXT:

INCR0

(1)

CPlA

(1)

ADDCA,#00H

(1)

MOV@R0,A

(1)

DJNZR3,NEXT

(2);

循环5次,每次7个机器周期

SJMP$

(2)

执行时间=(6+5*7)T机器=41*2=82μs

以上程序为求一个6字节的负数(补码)的绝对值

4-5编写程序,将片外数据存储器2000H单元开始的10个有符号数求平均值。

(假定其和在-128一+127之间)。

4-6将ROM中1000H单元开始的100个单元的数据移到片外数据存储器2000H开始的连续单元。

LJMPAGI

MOVDPTR,#1000H

AGI:

CLRA

MOVCA,@A+DPTR

XRLDPH,#30H;

调整DPTR1000H2000H

MOVX@DPTR,A;

传送

XRLDPH,#30H;

调整DPTR2000H1000H

INCDPTR;

调整DPTR

MOVA,DPL

CJNEA,#64H,AGI;

DPL<

64H,取下一个数

END

4-7在程序存储器中,从2000H到2100H有100H个有符号数,要求按下式

3XX>

Y=255X=0

|X|+5X<

根据变量X的大小求出Y值并放入数据存储器从2000H开始的相应单元。

画出程序流程图并编写源程序。

LJMPSTAR

STAR:

MOVDPTR,#2000H

MOVCA,@DPTR

JBACC.7,NEG;

X<

JZZERO;

X=0

MOVB,#03H;

X>

MULAB;

Y=3X

LJMPSAVE

ZERO:

MOVA,#0FFH;

Y=255

LJMPSAVE

NEG:

DECA

CPLA;

绝对值

ADDA,#05H;

Y=X绝对值+5

SAVE:

MOVX@DPTR,A;

存结果

INCDPTR;

调指针

MOVA,DPH

CJNEA,#21H,START;

没完继续

END

4-8将4-6题改为子程序结构,画出程序流程图并编写源程序。

NUMEQU#64H

ORG0100H

START:

ACALLAGI

ORG0200H

AGI:

CJNEA,NUM,AGI;

NUM,取下一个数

RET

END

4-9用位操作指令实现下面的逻辑方程。

(1)P1.2=ACC.1·

P1.4·

PSW.1+20H·

21H

(2)PSW.1=(PSW.2+20H+P3.3)·

ACC.3+P1.2·

P2.1

(1)ORG0100H

MOVC,ACC.1

ANLC,P1.4

ANLC,/PSW.1

MOV22H,C;

暂存结果

MOVC,20H

ANLC,21H

ORLC,22H

MOVP1.2,C;

结果输出

SJMP$

(2)ORG0100H

MOVC,/PSW.2

ORLC,20H

ORLC,P3.3

ANLC,ACC.3

MOV21H,C;

MOVC,P1.2

ANLC,P2.1

ORLC,21H

CPLC

MOVPSW.1,C

习题五

5-18031单片机内设有几个定时/计数器?

它们是由哪些专用计时器构成,其地址分别是多少?

8031单片机内设有2个定时/计数器T0,T1

T0由TH0和TL0组成

T1由TH1和TL1组成

TH0地址:

8CH

TL0地址:

8AH

TH1地址:

8DH

TL1地址:

8BH

5-2试说明定时器方式寄存器TMOD中GATE位的作用。

如何用GATE位测量外部脉冲的宽度?

GATE位的作用:

GATE=0时,由TRX控制TX启停,常用.

GATE=1时,只有TRX和INTX都为1,才可启动TX.

测量外部脉冲宽度方法:

使GATE=1,TRX=1,外部脉冲接于INTX引脚,当INTX由0变1时,TX开始计数(方式0或1),当INTX由1变0时,TX停止计数(设初值TC=0即THX=0,TLX=0),检测TX常数的变化量(ΔTC,即THX,TLX).

脉冲宽度=ΔTC*T机器

5-3设单片机的ΦcLK=12MHz,要求用T0定时150µ

s,分别计算采用定时方式0、定时方式1和定时方式2的定时初值。

ΦcLK=12MHz,T机器=1µ

s

方式0:

TC=213-150/1=8192-150=8042=1F6DH=1111101101101B

TH0TL0低5位

所以初值TH0=FBH,TL0=0DH

方式1:

TC=216-150/1=65536-150=65386=FF6AH

所以初值TH0=FFH,TL0=6AH

方式2:

TC=28-150/1=256-150=106=6AH

所以初值TH0=TL0=6AH

5-4单片机ΦCLK=6MHz,问定时器处于不同工作方式时,最大定时范围分别是多少?

ΦcLK=6MHz,T机器=12/6MHz=2µ

s,Tmin=2µ

Tmax=213*2µ

s=16.384ms

Tmax=216*2µ

s=131.072ms

方式2.3:

Tmax=28*2µ

s=0.512ms

5-5什么叫中断源?

MCS-51有哪些中断源?

各有什么特点?

中断源---中断请求的来源

MCS-51有5个中断源:

2个外部中断源INT0,INT1

3个内部中断源T0,T1,TI/RI

特点:

INT0,INT1由P3.2,P3.3端口引入,低电平或下降沿引起中断

T0,T1定时/计数器中断,由T0,T1回零溢出引起中断

TI/RI串行I/O中断,串行端口一帧字符发送/接收后引起中断

这些中断由中断允许寄存器IE(A8H)和中断优先寄存器IP(B8H)控制

复位后,IP清零,自然的中断优先顺序:

INT0T0INT1T1TI/RI

中断服务程序入口地址分别为:

0003H000BH0013H001BH0023H

5-6什么叫中断嵌套?

什么叫中断系统?

中断系统的功能是什么?

中断嵌套就是在中断响应的过程中又有更高一级的中断申请到来,则在中断响应的过程中再响应中断(中断中套中断)

中断系统:

为了实现中断功能而设置的各种硬件和软件的统称

中断系统的功能:

1.实现中断及返回

2.实现优先权排队

3.高级中断源能中断低级中断源的中断处理

5-78031的五个中断标志位代号是什么?

位地址是什么?

它们在什么情况下被置位和复位?

五个中断标志位代号是:

IE0TF0IE1TF1RI/TI

位地址是:

89H8DH8BH8FH98H/99H

有中断申请时中断标志位被置位,CPU响应中断后,一般

IE0(INT0)TF0(T0)IE1(INT1)TF1(T1)可被自动复位,但当INT0,INT1为低电平触发时,不能自动复位,此种情况应保证在中断服务程序结束之前将低电平触发信号变为高电平,否则将再次响应中断.RI/TI中断标志也不能自动复位.

5-8中断允许寄存器IE各位定义是什么?

请写出允许T1定时器溢出中断的指令?

中断允许寄存器IE各位定义:

EA

ES

ET1

EX1

ET0

EX0

全局串口T1INT1T0INT0

相应各位为”1”时,开相应中断,为”0”时,关相应中断

允许T1定时器溢出中断:

MOVIE,#88H

或:

SETBEA

SETBET1

5-9MCS-51响应中断是有条件的,请说出这些条件是什么?

中断响应的全过程如何?

响应中断条件:

无下列条件时,中断将被响应

1.CPU正在执行一个同级或高一级的中断服务程序

2.当前执行的那条指令还未执行完

3.当前执行的指令是RETI或IEIP寄存器读/写指令,执行这些指令后,至少再执行一条指令,才会响应中断。

中断响应的全过程:

中断响应后,一般自动清除中断请求标志(串口中断请求标志,要用软件清除),由硬件自动将PC内容(断点地址)压入栈中保护,然后将对应的中断矢量装入PC,使程序转向中断矢量地址单元去,执行中断服务程序,中断服务程序执行完成,断点地址出栈装入PC,从断点继续执行程序。

5-10在MCS-51中,哪些中断可以随着中断被响应而自动撤除?

那些中断需要用户来撤除?

撤除的方法是什么?

一般T0T1INT0INT1中断可以随着中断被响应而自动撤除,串行中断RI/TI不能自动撤除,需要用户来撤除,撤除的方法是在中断服务程序中清RI或TI

5-11试写出INT0为边沿触发方式的中断初始化程序。

SETBIT0;

下降沿触发

SETBEA;

也可MOVIE,#81H;

开中断

SETBEX0;

5-12若8031单片机的ΦCLK=6MHz,请利用定时器TO定时中断的方法,使P1.0输出如下图所示的矩形脉冲

1ms2ms

T0方式1定时1msT机器=12/6MHz=2µ

TC=216-1ms/2µ

s=65536-500=FE0CH

ORG0000H

LJMPMAIN

ORG000BH

LJMPTOINT

MAIN:

MOVTMOD,#01H;

T0方式1

MOVTH0,0FEH

MOVTL0,#0CH;

定时1ms

MOVIE,#82H;

开T0中断

MOVR0,#00H;

计数初值

SETBTR0;

启动T0

SJMP$

TOINT:

MOVTH0,#0FEH

重置初值

MOVC,P

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1