单片微机原理及应用课后习题答案Word文档下载推荐.docx

上传人:b****3 文档编号:18326832 上传时间:2022-12-15 格式:DOCX 页数:13 大小:28.44KB
下载 相关 举报
单片微机原理及应用课后习题答案Word文档下载推荐.docx_第1页
第1页 / 共13页
单片微机原理及应用课后习题答案Word文档下载推荐.docx_第2页
第2页 / 共13页
单片微机原理及应用课后习题答案Word文档下载推荐.docx_第3页
第3页 / 共13页
单片微机原理及应用课后习题答案Word文档下载推荐.docx_第4页
第4页 / 共13页
单片微机原理及应用课后习题答案Word文档下载推荐.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

单片微机原理及应用课后习题答案Word文档下载推荐.docx

《单片微机原理及应用课后习题答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片微机原理及应用课后习题答案Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。

单片微机原理及应用课后习题答案Word文档下载推荐.docx

MCS-51一共有32个I/O引脚。

P0口有8位数据总线和地址总线的低8位,P2口有地址总线的高8位,因此单片机的地址总线位是16位,寻址空间为64KB,数据总线位宽为8位。

同时在P3口还R/W控制信号线。

“准双向口”即不是真的双向口的意思。

双向口与准双向口的区别为双向口有高阻态,输入为真正的外部信号,准双向口内部有上拉,故高电平为内部给出不是真正的外部信号!

软件做处理时都要先向口写“1”!

P0是双向口,P1、P2、P3均为准双向口。

1-5答:

EA为访问外部程序存储器控制信号,低电平有效。

当EA端保持高电平时,单片机访问片内程序存储器;

当EA保持低电平时无论片内有无程序存储器,均只访问外部程序存储器。

1-6答:

RST是复位信号输入端,高电平有效。

当单片机运行时,再该引脚出现持续时间大于两个机器周期的高电平,就可完成复位操作。

上电复位利用电容两端电压不能突变的原理,在上电瞬间RST引脚与VCC引脚电压相等,随着电容充电两端电压逐渐上升,RST引脚逐渐下降。

在充电过程中能够提供足够的高电平,使单片机能够可靠的复位。

1-7答:

51单片机存储器从物理结构上可分为:

片内、片外程序存储器与片内、片外数据存储器4个部分。

从寻址空间分布和功能上分为128字节的片内RAM区、128字节的特殊功能寄存器区、64KB的外部RAM区、64KB的外部ROM区、4KB的片内flash ROM区。

1-8答:

决定程序执行顺序的寄存器是程序计数器PC,它是16位的寄存器,寻址空间64KB,它不是特殊功能寄存器。

1-9答:

MCS-51系列单片机内部RAM低128字节单元可以分为工作寄存器区、位寻址区、普通RAM区三部分。

1-10答:

堆栈是在内部RAM区开辟的一个区域,用来保存程序运行过程中的一些特殊的数据。

堆栈指针寄存器的作用是指定栈顶的位置。

单片机在复位时SP=07H,堆栈实际位置从08H开始,即在工作寄存器区内。

为此,用户在初始化程序中要给SP重新赋值,以指定堆栈的起始位置。

1-11答:

51单片机有21个特殊功能寄存器。

有11个特殊功能寄存器可以按位寻址。

1-12答:

一个机器周期有12个时钟周期,一个指令周期即为CPU执行一条指令所需的机器周期数。

当晶振周期为6MHz时,一个机器周期为2us。

2第二章MCS-51系列单片机指令系统

32-1答:

1.机器语言或称为二进制代码语言,计算机可以直接识别,不需要进行任何翻译,它的书面形式全是"

密"

码,所以可读性差,不便于交流与合作。

因为它严重地依赖于具体的计算机,所以可移植性差,重用性差。

42.汇编语言是面向机器的程序设计语言.汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。

使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言。

53.高级语言接近算法语言,易学、易掌握;

高级语言为程序员提供了结构化程序设计的环境和工具,使得设计出来的程序可读性好,可维护性强,可靠性高;

.高级语言远离机器语言,与具体的计算机硬件关系不大,因而所写出来的程序可移植性好,重用率高;

由于把繁杂琐碎的事务交给了编译程序去做,所以自动化程度高,开发周期短

62-2答:

MCS-51单片机指令可分为:

1.数据传送指令。

用于操作数间的数据传送、数据交换以及堆栈的操作。

2.算数运算类指令。

用于完成加、减、乘、除四则运算,以及增量、减量和十进制调整操作。

3.逻辑运算及循环移位指令。

用于与、或、异或逻辑运算以及累加器A的清零取反,循环移位操作。

4.控制转移类指令。

用于程序内的转移以及子程序的调用和返回。

5.位操作类指令。

用于完成以位为对象的传送、运算、转移控制等操作。

72-3答:

51单片机汇编语言指令的标准格式如下:

8[标号:

]操作码[目的操作数][,源操作数][;

注释]

92-4答:

51单片机的寻址方式有:

1.立即寻址。

立即寻址是直接给出源操作数,不用去寄存器或存储器取数。

2.直接寻址。

直接寻址直接给出了源操作数或目的操作数所在的存储器地址。

3.寄存器寻址。

寄存器寻址即是在一条指令中的源操作数或目的操作数存放于某一指定寄存器。

4.寄存器间接寻址。

即是操作数的地址存放于某一指定的寄存器中,即先从指定的寄存器中找到源操作数的地址,再按该地址找到操作数。

5.变址寻址。

它以数据指针DPTR或程序计数器PC作为基址寄存器,累加器A作为变址寄存器,两者的内容相加形成16位程序存储器地址,该地址就是操作数所在地址。

6.相对寻址。

它是以当前程序计数器PC值加上指令中规定的偏移量rel构成实际操作数地址的寻址方法。

7.位寻址。

位寻址是指指令中直接给出了操作数所在的位地址。

102-5答:

1.立即寻址;

2.直接寻址;

3.寄存器寻址;

4.寄存器间接寻址;

5.变址寻址;

6.相对寻址;

112-6答:

1.MOVA,30H

12MOV40H,A

132.MOVXDPTR,#30H

14MOVXA,@DPTR

15MOVX40H,A

163.MOVXDPTR,#2000H

17MOVXA,@DPTR

18MOVX40H,A

194.MOVDPRT,#2000H

20MOVCA,@DPRT

21MOV30H,A

22MOVDPRT,#1000H

23MOVX@DPRT,A

242-7答:

1.30H,80H

252.0A5H,80H

263.0A5H,80H

274.75H,81H

285.0A7H,81H

296.0AAH,00H

307.1FH,81H

318.0AAH,00H

329.20H,C1H

3310.0D4H,85H

3411.49H,01H

352-8答(A)=60H,(SP)=70H,(PC)=(70H)=60H,(6F)=50H

362-9答1.CLRACC.1

37CLRACC.6

382.SETBACC.2

39SETBACC.5

403.MOVC,20H

41ANLC,PSW.0

42ANLC,/P1.0

43ORLCACC.1

442-10答(DPH)=50H,(DPL)=40H,(SP)=2FH

452-11答(A)=0FEH

462-12答(A)=23,(CY)=1

47

483-1试编写双字节有符号数除法。

49  

503-2编写1-100的累加加法程序。

51答:

MAIN:

MOVA,#00

52MOVR0,#01

53ADDA,R0

54INCR0

55CJNER0,#101,MAIN

56END

573-3试编写一段程序,将内部RAM20H、21H、22H连续三个单元的内容依次存入外部RAM1000H、1001H、1002H。

58答:

MOVR0,#03

59MOVDPTR,#1000H

60MOVR1,#20H

61LOOP:

MOVA,@R1

62MOVX@DPTR,A

63INCR1

64INCDPTR

65DJNER0,LOOP

66END

673-4设有100个有符号数,存放于外部RAM以及以1000H为首地址的存储区中,试编写一段程序求出其中正数、负数、零的个数。

68答:

MOVDPTR,#1000H

69MOVR0,#00H

70MOVR1,#00H

71MOVR2,#00H

72MOVR3,#100

73LOOP:

MOVXA,@DPTR

74INCDPTR

75JNBACC.7,LOOP1(判断是不是负数)

76INCR0

77AJMPLOOP3

78LOOP1:

CJNEA,#00H,LOOP2(判断是不是0)

79INCR1

80AJMPLOOP3

81LOOP2:

INCR2

82LOOP3:

DJNER3,LOOP

83END

843-5试编写一段程序完成将外部RAM以1000H为首地址的30H个数搬移到片内RAM以30H为首地址的单元,并清零原存储单位。

85答:

86MOVR0,#30H

87MOVR1,#30H

88LOOP:

89MOV@R0,A

90MOVA,#00H

91MOVX@DPTR,A

92INCDPTR

93INCR0

94DJNZR1,LOOP

95END

963-6试编写实现256路分支的散转程序。

973-7试编写一个延时一秒的子程序。

98MOVR0,#10

99LOOP1:

MOVR1,#200

100LOOP2:

MOVR2,#248

101NOP

102LOOP3:

DJNZR2,LOOP3

103DJNZR1,LOOP2

104DJNZR0,LOOP1

105RET

106延时计算:

[(248x2+2)x200+200x2+1]x10+10x2+1=1.0000031s

1073-8试编写一个子程序,完成一个单字节十六进制数向BCD码转换。

108设单字节16进制数存放在R0中,BCD码存于R1中,程序如下:

109MAIN:

MOVA,R0

110MOVB,#100

111DIVAB

112MOVR1,A

113MOVA,#10

114XCHA,B

115DIVAB

116SWAPA

117ORLA,B

118MOVR1,A

119END

1203-9试编写一个子程序完成对外部RAM以1000H为首地址的N个数进行从大到小的排序。

121答:

程序实现11个数的排序:

122ORG0000H

123MOVDPTR,#1000H

124MOVR0,#50H

125ZS:

126MOV@R0,A

127INCR0

128INCDPTR

129CJNER0,#5BH,ZS

130MOVR1,#5AH

131MOVR0,#50H

132LOOP:

CLRC

133MOVA,@R0

134MOV30H,A

135INCR0

136MOVA,@R0

137MOV31H,A

138SUBBA,30H

139JCLOOP1

140MOV@R0,30H

141DECR0

142MOV@R0,31H

143INCR0

144LOOP1:

MOV32H,R1

145MOVA,R0

146CJNEA,32H,LOOP

147MOVR0,#50H

148DECR1

149CJNER1,#50H,LOOP

150MOVDPTR,#1000H

151MOVR0,#50H

152FZ:

MOVA,@R0

153MOVX@DPTR,A

154INCR0

155INCDPTR

156CJNER0,#5BH,FZ

157END

1583-10

159

4-1答:

I/O接口即是输入输出口。

IO口是单片机与外界的接口,即输入/输出口,可以作为数据口,对外部存储器进行读写;

可以作为控制口,输出控制指令,如电机控制,继电器控制等;

可以作为人机交互,如液晶显示,键盘输入等。

4-2答:

端口是指那些在接口电路中完全可以完成某种信息传送,并可以由编程人员寻址进行读写的寄存器。

一般来说,没连接一个外设就需要一个I/O接口,但每一个接口都可以有不止一个端口。

4-3答:

I/O端口有独立编址和统一编址两种编址方式。

独立编址即是把I/O和存储器分开进行编址;

统一编址是把系统中的I/O和存储器统一编址。

MCS-51单片机用的统一编址。

4-4答:

CPU与外设之间的数据传送有:

1.无条件传送方式;

2.查询方式;

3.中断方式;

4.存储器直接存取方式。

1.无条件传送方式。

这种传送方式不需要测试外部设备的状态,可以根据需要随时进行数据传送操作。

2.查询方式。

在输入输出之前,先要检测外设的状态,以了解外设是否已为数据输入输出做好了准备,只有在确认外设已经准备好的情况下,CPU才能执行数据输入输出操作。

3.中断方式。

中断方式是在外设为数据传送做好准备后,就向CPU发中断请求信号,CPU接到请求信号后立即做出响应,暂停正在进行的程序,转去为外设的数据输入输出服务,服务完后,程序返回。

4-5答:

中断即是CPU正在执行某程序,突然接到请求信号,暂停正在执行的程序,转去执行其他程序,其他程序执行完后,返回继续执行未完成的程序。

当一个资源面对多项任务的处理方式,由于资源有限,面对多项任务同时要处理时,就会出现资源竞争现象。

中断技术就是解决资源竞争的一个可行方法。

4-6答:

MCS-51单片机有5个中断源:

两个外中断INT0和INT1,两个片内定时/计数器溢出中断TF0和TF1,另一个就是片内串行口中断TI或RI。

4-7答:

中断响应的过程为:

1,保护现场;

2,中断服务;

3,恢复现场;

4,返回继续执行。

4-8答:

MCS-51单片机内部集成了2个16位的定时/计数器。

MCS-51单片机的定时/计数器共有4种工作方式:

工作方式0,工作方式1,工作方式2,工作方式3

4-9答:

定时时间与晶振频率以及计数初始值有关;

用作计数器时对信号的要求为:

脉冲信号的频率不得高于晶振频率的24分之一。

4-10答:

MCS-51单片机的全双工串行口可编程有4种工作方式:

1.工作方式0为移位寄存器输入输出方式,可外接移位寄存器,以扩展I/O口,也可外接同步输入输出设备。

格式:

一次收发过程,收发8位二进制数,低位在前,逐位收发,在TXD引脚输出移位时钟。

收发波特率固定为单片机振荡频率的1/12

2.工作方式1为波特率可变的8位异步通信接口方式。

发送或接收一帧信息共10位,包括一个起始位0,8个数据位和一个停止位1。

3.工作方式2为波特率固定的9位异步通信接口方式。

发送或接收的一帧信息共11位,包括1个起始位0,8个数据位,一个RB8或TB8的数据位,一个停止位1。

4.工作方式3除波特率外,与方式2相同。

4-11答:

波特率即是串行通信中,收发双方的数据传送率。

串行口4种工作方式中:

1.方式0的波特率为Fosc/12;

2.方式2波特率=Foscx2^SMOD/64;

3.方式1和3波特率=(2^SMOD/32)x(T1溢出率)

4-12答:

因为每字节数据帧含有1起始位、1奇偶检测位、2停止位,所以传送1KB数据实际传送了1.5KB。

所以有:

T=1.5x1024x8/1200=s

4-13答:

ORG0000H

AJMPMAIN

ORG0013H

AJMPINT

ORG0030H

MAIN:

SETBIT1

SETBIE1

SETBEA

SETBEX

SETBPX1

MOVDPTR,#1000H

MOVR1,#30H

AJMP$

INT:

MOV@R1,A

RETI

END

4-14答:

tm=1/(12x1000000)x6x2

Tm=1us

初始值为:

65536-50000=15536,转换为十六进制为3cb0h,

初始化程序为:

MOVTMOD,#01H

MOVTH0,#3CH

MOVTH1,#0B0H

SETBTR0

SETBET0

4-15答:

解:

T=1/f=10s,要产生周期为10s的方形脉冲,只要没5s将信号的幅值取反即可。

采用定时器的方波输出方式。

(1)根据题目要求,定时时间为1s已经大于定时器最大定时时间。

因此,需要将5s的长定时分解成100个50ms的段定时。

则取n=16,工作方式1,

X=15536=3CB0H

(2)确定TMOD方式字

对于定时器T1来说,M1M0=01,C/T=0,GATE=0。

定时器T0不用取全0,则:

TMOD=00010000B=10H

(3)程序设计

ORG0000H

ORG001BH

MOVTOMD,#10H

MOVTH1,#3CH

MOVTL1,#0B0H

MOVR7,#100

SETBET1

SETBTR1

DJNZR7,OUT

CPLP1.0

MOVTL0,#0B0H

OUT:

RETI

4-16答:

数据传送时:

SM0SM1=01,REN=0,EA=ES=0

查表的:

TMOD=20H,TH1=TL1=F4H,SMOD=0

数据接收时:

SM0SM1=01,REN=1,EA=ES=1

查表得:

AJMPMAIN1

MAIN1:

MOVTMOD,#20H

MOVTH1,#0F4H

MOVTL1,#0F4H

MOVSCON,#40H

MOVR0,#30H

MOVR7,#16

SEND:

MOVA,@R0

MOVSBUF,A

JNBTI,$

CLRTI

INCR0

DJNZR7,SEND

AJMPMAIN2

ORG0023H

MAIN2:

MOVTMOD,#20H

MOVSCON,#50H

SETBEA

SETBES

MOVR1,40H

MOVR6,#16

CLRRI

MOVA,SBUF

MOV@R0,A

DJNZR6,OUT

CLREA

CLRES

RETI

END

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

当前位置:首页 > 教学研究 > 教学反思汇报

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

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