单片微机原理及应用课后习题答案.docx
- 文档编号:6152961
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:14
- 大小:30.48KB
单片微机原理及应用课后习题答案.docx
《单片微机原理及应用课后习题答案.docx》由会员分享,可在线阅读,更多相关《单片微机原理及应用课后习题答案.docx(14页珍藏版)》请在冰豆网上搜索。
单片微机原理及应用课后习题答案
第一章单片机基础
1-1单片机的发展分为几个阶段?
答:
单片机的发展到目前为止大致分为5个阶段:
第一阶段:
单片机发展的初级阶段。
第二阶段:
低性能单片机阶段。
第三阶段:
高性能单片机阶段。
第四阶段:
16位单片机阶段。
第五阶段:
单片机在集成度、功能、速度、可靠性、应用领域等方面向更高水平发展。
1-2说明单片机的主要应用领域?
答:
由于单片机具有体积小、重量轻、价格便宜、功耗低、易扩展、可靠性高、控制功能强及运算速度快等特点,在国民经济建设、军工产品及家用电器等各个领域均得到广泛应用。
主要有:
工业自动化;
智能仪表;
消费类电子产品;
通信方面;
军工产品;
终端及外部设备控制;
多机分布式系统。
1-3MCS-51系列单片机片内包含哪些功能部件?
各功能部件的功能是什么?
答:
MCS-51系列单片机的内部结构:
1.中央处理器CPU。
其主要完成单片机的运算和控制功能,MCS-51系列单片机的CPU不仅可以处理字节数据,还可以进行位变量的处理。
2.片内数据存储器RAM。
RAM用于存储单片机运行中的工作变量、中间结果和最终结果等。
3.片内程序存储器ROM/EPROM。
程序存储器既可以存放已编制的程序,也可以存放一些原始数据和表格。
4.特殊功能寄存器SFR。
SFR用以控制和管理内部算术逻辑部件、并行I/O口、定时/计数器、中断系统等功能模块的工作。
5.并行口。
一共有4个8位的并行I/O口:
P0、P1、P2、P3。
P0是一个三态双向口,可作为地址/数据分时复用口,也可作为通用I/O口。
P1只能作为通用I/O口。
P2可以作为通用I/O口,也可作为在单片机扩展外部设备时,高8位地址总线使用。
P3除了作为通用准双向I/O接口外,各引脚还具有第二功能。
6.串行口。
有一个全双工的串行口,可以实现单片机与外设之间数据的逐位传送。
7.定时/计数器。
可以设置为定时方式或计数方式。
1-4MCS-51系列单片机引脚中有多少I/O线?
它们和单片机对外的地址总线和数据总线有什么关系?
地址总线和数据总线各是多少位?
说明准双向口的含义?
答:
MCS-51一共有32个I/O引脚。
P0口有8位数据总线和地址总线的低8位,P2口有地址总线的高8位,因此单片机的地址总线位是16位,寻址空间为64KB,数据总线位宽为8位。
同时在P3口还R/W控制信号线。
“准双向口”即不是真的双向口的意思。
双向口与准双向口的区别为双向口有高阻态,输入为真正的外部信号,准双向口内部有上拉,故高电平为内部给出不是真正的外部信号!
软件做处理时都要先向口写“1”!
P0是双向口,P1、P2、P3均为准双向口。
1-5MCS-51系列单片机的EA引脚的作用是什么?
该引脚分别接高电平和低电平时各有何种功能?
答:
EA为访问外部程序存储器控制信号,低电平有效。
当EA端保持高电平时,单片机访问片内程序存储器;当EA保持低电平时无论片内有无程序存储器,均只访问外部程序存储器。
1-6MCS-51系列单片机的RST引脚的作用是什么?
说明单片机上电复位的工作过程?
答:
RST是复位信号输入端,高电平有效。
当单片机运行时,再该引脚出现持续时间大于两个机器周期的高电平,就可完成复位操作。
上电复位利用电容两端电压不能突变的原理,在上电瞬间RST引脚与VCC引脚电压相等,随着电容充电两端电压逐渐上升,RST引脚逐渐下降。
在充电过程中能够提供足够的高电平,使单片机能够可靠的复位。
1-7MCS-51系列单片机存储器从物理结构、寻址空间分布及功能上如何分类?
寻址范围为多少?
答:
51单片机存储器从物理结构上可分为:
片内、片外程序存储器与片内、片外数据存储器4个部分。
从寻址空间分布和功能上分为128字节的片内RAM区、128字节的特殊功能寄存器区、64KB的外部RAM区、64KB的外部ROM区、4KB的片内flash ROM区。
1-8决定程序执行顺序的寄存器是哪个?
它是几位寄存器?
它不是不特殊功能寄存器?
答:
决定程序执行顺序的寄存器是程序计数器PC,它是16位的寄存器,寻址空间64KB,它不是特殊功能寄存器。
1-9MCS-51系列单片机内部RAM低128字节单元分为哪上部分?
答:
MCS-51系列单片机内部RAM低128字节单元可以分为工作寄存器区、位寻址区、普通RAM区三部分。
1-10堆栈有哪些用途?
堆栈指针寄存器sp的作用是什么?
在程序设计时,为什么要对sp重新赋值?
答:
堆栈是在内部RAM区开辟的一个区域,用来保存程序运行过程中的一些特殊的数据。
堆栈指针寄存器的作用是指定栈顶的位置。
单片机在复位时SP=07H,堆栈实际位置从08H开始,即在工作寄存器区内。
为此,用户在初始化程序中要给SP重新赋值,以指定堆栈的起始位置。
1-11MCS-51系列单片机有多少特殊功能寄存器?
其中可以位寻址的特殊功能寄存器有多少个?
答:
51单片机有21个特殊功能寄存器。
有11个特殊功能寄存器可以按位寻址。
1-12简述时钟周期、机器周期和指令周期的关系。
当晶振的振荡频率为6MHz时一个机器周期为多长时间?
答:
一个机器周期有12个时钟周期,一个指令周期即为CPU执行一条指令所需的机器周期数。
当晶振周期为6MHz时,一个机器周期为2us。
2第二章MCS-51系列单片机指令系统
32-1说明机器语言、汇编语言和高级语言三者各自的优缺点及应用场合?
答:
1.机器语言或称为二进制代码语言,计算机可以直接识别,不需要进行任何翻译,它的书面形式全是"密"码,所以可读性差,不便于交流与合作。
因为它严重地依赖于具体的计算机,所以可移植性差,重用性差。
42.汇编语言是面向机器的程序设计语言.汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。
使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言。
53.高级语言接近算法语言,易学、易掌握;高级语言为程序员提供了结构化程序设计的环境和工具,使得设计出来的程序可读性好,可维护性强,可靠性高;.高级语言远离机器语言,与具体的计算机硬件关系不大,因而所写出来的程序可移植性好,重用率高;由于把繁杂琐碎的事务交给了编译程序去做,所以自动化程度高,开发周期短
62-2MCS-51系列单片机的指令分为哪几类?
说明各类指令的功能?
答:
MCS-51单片机指令可分为:
1.数据传送指令。
用于操作数间的数据传送、数据交换以及堆栈的操作。
2.算数运算类指令。
用于完成加、减、乘、除四则运算,以及增量、减量和十进制调整操作。
3.逻辑运算及循环移位指令。
用于与、或、异或逻辑运算以及累加器A的清零取反,循环移位操作。
4.控制转移类指令。
用于程序内的转移以及子程序的调用和返回。
5.位操作类指令。
用于完成以位为对象的传送、运算、转移控制等操作。
72-3简述MCS-51系列单片机的汇编语言指令格式?
答:
51单片机汇编语言指令的标准格式如下:
8[标号:
]操作码[目的操作数][,源操作数][;注释]
92-4MCS-51系列单片机有哪几种寻址方式?
说明各寻址方式的寻址过程?
答:
51单片机的寻址方式有:
1.立即寻址。
立即寻址是直接给出源操作数,不用去寄存器或存储器取数。
2.直接寻址。
直接寻址直接给出了源操作数或目的操作数所在的存储器地址。
3.寄存器寻址。
寄存器寻址即是在一条指令中的源操作数或目的操作数存放于某一指定寄存器。
4.寄存器间接寻址。
即是操作数的地址存放于某一指定的寄存器中,即先从指定的寄存器中找到源操作数的地址,再按该地址找到操作数。
5.变址寻址。
它以数据指针DPTR或程序计数器PC作为基址寄存器,累加器A作为变址寄存器,两者的内容相加形成16位程序存储器地址,该地址就是操作数所在地址。
6.相对寻址。
它是以当前程序计数器PC值加上指令中规定的偏移量rel构成实际操作数地址的寻址方法。
7.位寻址。
位寻址是指指令中直接给出了操作数所在的位地址。
102-5下列7条指令中指出操作数的寻址方式?
1MOVA,#30H2,MOVA,30H3,MOVA,R64,MOVA,@R05,MOVCA,@A+DPTR6,JZLabel7,SETBP1.0答:
1.立即寻址;2.直接寻址;3.寄存器寻址;4.寄存器间接寻址;5.变址寻址;6.相对寻址;7.位寻址。
112-6运用适当指令完成下列数据传送。
1内部RAM的30H单元内容送入内部RAM的40H单元2外部RAM的30H单元内容送入内部RAM的40H单元、3外部RAM的2000H内容送入内部RAM的40H单元、4、ROM的2000H单元内容送入内部RAM的30H单元,送入外部RAM的1000H单元答:
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已知程序执行前(A)=7AH,(R0)=30H,(30H)=A5H,(PSW)=80H,写出各条指令执行后A和PSW的内容。
答:
1.XCHA,R030H,80H
252.XCHA,30H0A5H,80H
263.XCHA,@R00A5H,80H
274.XCHDA,@R075H,81H
285.SWAPA0A7H,81H
296.ADDA,R00AAH,00H
307.ADDA,30H1FH,81H
318.ADDA,#30H0AAH,00H
329.ADDCA,30H20H,C1H
3310.SUBBA,30H0D4H,85H
3411.SUBBA,#30H49H,01H
352-8已知程序执行前(A)=02H,(SP)=70H,(70H)=FFH,(6FH)=FFH.下述程序执行后:
POPDPH/POPDPL/MOVDPTR,#2000H/RLA/MOVB,A/MOVCA,@A+DPTR/PUSHA/MOVA,B/INCA/MOVCA,@A+DPTR/PUSHA/RET/ORG2000H/DB10H,20H,30H,40H,50H,60H,70H,答(A)=60H,(SP)=70H,(PC)=(70H)=60H,(6F)=50H
362-9用位操作指令,完成下列逻辑操作:
1将累加器ACC的第2位和第7位清0、2将累加器ACC的第3位和第6位置1、3.P2.7=ACC.1………..答1.CLRACC.1
37CLRACC.6
382.SETBACC.2
39SETBACC.5
403.MOVC,20H
41ANLC,PSW.0
42ANLC,/P1.0
43ORLCACC.1
442-10已知程序执行前(DPTR)=1234H,(SP)=70H,(70H)=50H,(6FH)=40H,(6EH)=30H,则执行下列指令后:
POPDPH/POPDPL/POPSP答(DPH)=50H,(DPL)=40H,(SP)=2FH
452-11已知程序执行前(A)=7AH,(R0)=32H,(32H)=21H,则执行下列指令后:
ANLA,#32H/OR32H,A/XRLA,@R0/CPLA.答(A)=0FEH
462-12执行下列程序后:
MOVA,#65HADDA,58H/DAA.答(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答:
MAIN:
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答:
MOVDPTR,#1000H
86MOVR0,#30H
87MOVR1,#30H
88LOOP:
MOVXA,@DPTR
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.s
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:
MOVXA,@DPTR
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-1I/O接口的定义是什么?
它有何作用?
答:
I/O接口即是输入输出口。
IO口是单片机与外界的接口,即输入/输出口,可以作为数据口,对外部存储器进行读写;可以作为控制口,输出控制指令,如电机控制,继电器控制等;可以作为人机交互,如液晶显示,键盘输入等。
4-2什么是端口?
端口与接口之间是什么关系?
答:
端口是指那些在接口电路中完全可以完成某种信息传送,并可以由编程人员寻址进行读写的寄存器。
一般来说,没连接一个外设就需要一个I/O接口,但每一个接口都可以有不止一个端口。
4-3I/O的编址方式有哪两种?
各有什么特点?
MCS-51单片机的I/O采用哪种编址方式?
答:
I/O端口有独立编址和统一编址两种编址方式。
独立编址即是把I/O和存储器分开进行编址;统一编址是把系统中的I/O和存储器统一编址。
MCS-51单片机用的统一编址。
4-4CPU与外设之间的数据传送有哪几种方式?
各有什么特点?
答:
CPU与外设之间的数据传送有:
1.无条件传送方式;2.查询方式;3.中断方式;4.存储器直接存取方式。
1.无条件传送方式。
这种传送方式不需要测试外部设备的状态,可以根据需要随时进行数据传送操作。
2.查询方式。
在输入输出之前,先要检测外设的状态,以了解外设是否已为数据输入输出做好了准备,只有在确认外设已经准备好的情况下,CPU才能执行数据输入输出操作。
3.中断方式。
中断方式是在外设为数据传送做好准备后,就向CPU发中断请求信号,CPU接到请求信号后立即做出响应,暂停正在进行的程序,转去为外设的数据输入输出服务,服务完后,程序返回。
4-5什么是中断?
它有何用途?
答:
中断即是CPU正在执行某程序,突然接到请求信号,暂停正在执行的程序,转去执行其他程序,其他程序执行完后,返回继续执行未完成的程序。
当一个资源面对多项任务的处理方式,由于资源有限,面对多项任务同时要处理时,就会出现资源竞争现象。
中断技术就是解决资源竞争的一个可行方法。
4-6MCS-51单片机有哪几种中断源?
答:
MCS-51单片机有5个中断源:
两个外中断INT0和INT1,两个片内定时/计数器溢出中断TF0和TF1,另一个就是片内串行口中断TI或RI。
4-7简述中断响应的过程?
答:
中断响应的过程为:
1,保护现场;2,中断服务;3,恢复现场;4,返回继续执行。
4-8MCS-51单片机有几个定时/计数器?
各是多少位?
有哪几种工作方式?
答:
MCS-51单片机内部集成了2个16位的定时/计数器。
MCS-51单片机的定时/计数器共有4种工作方式:
工作方式0,工作方式1,工作方式2,工作方式3
4-9定时/计数器用作定时器时,其定时时间与哪些因素有关?
用作计数器时,对输入脉冲信号有何要求?
答:
定时时间与晶振频率以及计数初始值有关;用作计数器时对信号的要求为:
脉冲信号的频率不得高于晶振频率的24分之一。
4-10MCS-51单片机的串行口有哪几种工作方式?
各自有什么特点?
答:
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什么是波特率?
MCS-51单片机串行口各工作方式的波特率如何计算?
答:
波特率即是串行通信中,收发双方的数据传送率。
串行口4种工作方式中:
1.方式0的波特率为Fosc/12;2.方式2波特率=Foscx2^SMOD/64;3.方式1和3波特率=(2^SMOD/32)x(T1溢出率)
4-12某串行异步通信的波特率位1200bps,每传送1个字节的数据帧含一个起始位、1个奇偶校验位和2个停止位。
问传送1KB的数据需要多少时间?
答:
因为每字节数据帧含有1起始位、1奇偶检测位、2停止位,所以传送1KB数据实际传送了1.5KB。
所以有:
T=1.5x1024x8/1200=s
4-13若外部中断1位边沿触发方式,高优先级,在中断服务程序中读入外部RAM1000H单元的内容并存入内部RAM30H种。
试编写主程序和中断服务程序。
答:
ORG0000H
AJMPMAIN
ORG0013H
AJMPINT
ORG0030H
MAIN:
SETBIT1
SETBIE1
SETBEA
SETBEX
SETBPX1
MOVDPTR,#1000H
MOVR1,#30H
AJMP$
INT:
MOVXA,@DPTR
MOV@R1,A
RETI
END
4-14若单片机的晶振频率为12MHz,要求每产生50ms的定时,采用定时器T0,试确定控制字TMOD和计数初值并编写初始化程序。
答:
tm=1/(12x)x6x2
Tm=1us
初始值为:
65536-50000=15536,转换为十六进制为3c0h,
初始化程序为:
MOVTMOD,#01H
MOVTH0,#3CH
MOVTH1,#0B0H
SETBTR0
SETBEA
SETBET0
4-15若单片机的晶振频率为12MHz,采用定时器T1通过P1.0产生一个频率为0.1Hz的方波,试编写相关控制程序。
答:
解:
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=B=10H
(3)程序设计
ORG0000H
AJMPMAIN
ORG001BH
AJMPINT
MAIN:
MOVTOMD,#10H
MOVTH1,#3CH
MOVTL1,#0B0H
MOVR7,#100
SETBEA
SETBET1
SETBTR1
AJMP$
INT:
DJNZR7,OUT
CPLP1.0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片 微机 原理 应用 课后 习题 答案