单片机原理与接口技术习题集答案.docx
《单片机原理与接口技术习题集答案.docx》由会员分享,可在线阅读,更多相关《单片机原理与接口技术习题集答案.docx(27页珍藏版)》请在冰豆网上搜索。
单片机原理与接口技术习题集答案
第1部分答案
1-1简述冯·诺依曼型计算机的主要特征。
1、采用二进制代替十进制运算
2、存储程序工作方法
3、计算机硬件系统的构成
1-2计算机硬件系统由哪些部件组成?
计算机硬件系统由运算器、控制器、存储器、输入设备和输出设备五个部分。
1-3填空:
(1)100D=01100100=64H
(2)03CH=00111100B=60D
1-4写出下列各数的原码、反码和补码(用二进制数表示)。
21-2159-59127-1271-1
21原码:
00010101
反码:
00010101
补码:
00010101
-21原码:
10010101
反码:
11101010
补码:
11111011
59原码:
00111011
反码:
00111011
补码:
00111011
-59原码:
10111011
反码:
11000100
补码:
11000101
127原码:
01111111
反码:
01111111
补码:
01111111
-127原码:
11111111
反码:
10000000
补码:
10000001
1原码:
00000001
反码:
00000001
补码:
00000001
-1原码:
1000001
反码:
11111110
补码:
11111111
1-5用十进制数写出下列补码的真值:
1FH69H89HFCH97HCDHB3H10H
1FH的真值:
31D
69H的真值:
105D
89H的真值:
-119D
FCH的真值:
-4D
97H的真值:
-105D
CDH的真值:
-51D
B3H的真值:
-77D
10H的真值:
16D
1-6已知X和Y,求(X+Y)补。
(1)X=31D,Y=55D(X+Y)补=01010000B
(2)X=46D,Y=-81D(X+Y)补=11010001B
(3)X=-54D,Y=93D(X+Y)补=00100111B
(4)X=-23D,Y=-67D(X+Y)补=10100110B
(5)X=75D,Y=89D(X+Y)补=10100100B
1-7写出下列各数的8421BCD码。
12345678
1234的BCD码:
0001001000110100
5678的BCD码:
010*********
1-8简述单片机的主要特点。
1、具有优异的性能价格比
2、集成度高、体积小、可靠性高
3、控制功能强
4、低电压、低功耗
第2部分答案
1、MCS-51单片机内部包含哪些主要部件?
①8位CPU
②4KB的程序存储器(掩膜ROM)
③128B的数据存储器
④片外程序存储器最大寻址能力64KB
⑤片外数据存储器最大寻址能力64KB
⑥32根输入/输出线
⑦1个全双工异步串行接口
⑧2个16位定时/计数器
⑨5个中断源,2个中断优先级
2、在功能上、工艺上、程序存储器的配置上,MCS-51单片机有哪些种类?
工艺:
HMOS工艺和CHMOS工艺。
类型:
基本型和增强型。
配置:
片内无程序存储器、掩膜程序存储器ROM、EPROM。
3、简要说明MCS-51与AT89C51的主要区别是什么?
AT89C51单片机内部有FLASH存储器
4、MCS-51单片机的P0~P3口在结构上有何不同?
P0:
数据总线和低8位地址总线
P1:
通用I/O接口
P2:
高8位地址线
P3:
多功能I/O接口
5、单片机的片内、片外存储器如何选择?
当
为低电平时,CPU直接访问外部程序存储器
当
为高电平时,CPU要先对内部0~4K程序存储器访问,然后自动延至外部超过4K的程序存储器。
6、片机的晶振频率为12MHz,则单片机的机器周期为多少?
1T机器=12T振=12/fOSC=12/12×10-6=1us
7、状态字寄存器各位的含义如何?
PSW的各位定义为:
CY:
进行标志位(D7位)。
在进行加、减运算时,如果操作结果使累加器A中最高位D7向前有进位或借位,则CY=1,否则CY=0。
在位操作中,CY作位累加器C使用。
AC:
辅助进行位(D6位)。
在加减运算中,当A中的D3位向D4位有进位或借位时,AC=l,否则AC=0。
通常在二-十进制调整时使用。
F0、F1:
用户标志位(D6、D1位)。
这两个是供用户定义的标志位,用户可根据需要对F0、F1赋予一定的含义,由用户用软件方法对其置位或复位,用以控制用户程序的转向。
RS1、RS0:
工作寄存器区选择控制位(D4、D3位)。
用于设定哪一组工作寄存器为当前正在工作的工作寄存器组,即对相同名称的R0~R7改变其物理地址,由用户通过软件方式加以选择。
RS1、RS0的取值与选用工作寄存器的关系如表2-7示。
单片机在开机或复位后,RS1和RS0总是为零状态,也说是说,选择0区为当前工作寄存器组,故单片机复位后的工作寄存器R0~R7的物理地址为00H~07H。
表2-7工作寄存器组选择
RS1RS0
工作寄存器组
地址
寄存器
00
11
20
11
0
1
2
3
00H~07H
08H~0FH
10H~17H
18H~1FH
R0~R7
R0~R7
R0~R7
R0~R7
OV:
溢出标志位。
用于指示累加器A在算术运算过程中是否发生的溢出。
当运算结果超出了8位数能表示的范围,即-128~+127,则OV自动置1,否则OV=0。
在加法运算中,OV=l表示运算结果是错误的,OV=0表示运算正确;在乘法运算中,OV=l表示乘积超过255,即乘积分别在B与A中,OV=0表示乘积只在A中;在除法运算中,OV=l表示除数为0,除法不能进行,OV=0表示除数不为0,除法可以正常进行。
P:
奇偶标志位。
每条指令执行完毕后,由硬件根据A中1的数目对P位自动置位。
若A中1的数目为奇数,则P=1,若A中1的数目为偶数,则P=0。
8、MCS-51单片机的控制信号有哪些?
作用如何?
①
(29脚):
外部程序存储器读选通信号。
②ALE/
(30脚):
地址锁存允许/编程信号。
8051单片机可寻
③
/VPP(31脚):
外部程序存储器访问允许/编程电压输入端。
④RST/VPD(9脚):
复位信号/备用电源输入端。
9、单片机内部数据存储器是怎样划分的?
作用如何?
10、AT89C51单片机有多少特殊功能寄存器?
21
11.什么叫堆栈?
堆栈指示器SP的作用是什么?
单片机初始化后SP中内容是什么?
在程序设计时,为什么要对SP重新赋值?
堆栈就是设置在片内RAM中的一段存储区域,它遵循先入后出的原则。
SP就是一个用来指示栈顶位置的8位寄存器,它指示出堆栈顶部在内部RAM块中的位置。
SP初始化07H,使得堆栈事实上由08H单元开始。
考虑到08H~1FH分属于工作寄存器区1~3,若程序设计要用到这些区,则最好把SP值改到通用RAM区,即2FH或更大值。
但是,如果堆栈指针初始化时设置在这个区域,就要留出足够的字节单元作为堆栈区,以防止在数据存储时,破坏了堆栈的内容。
12、数据指针DPTR和程序计数器PC都是16位寄存器,它们有什么不同之处?
①数据指针DPTR数据指针DPTR是一个16位的寄存器,由2个8位特殊功能寄存器DPH和DPL拼装而成。
DPH作DPTR的高8位,DPL作DPTR的低8位。
因此,DPTR既可作为一个16位寄存器来使用,也可以作为二个独立的8位寄存器DPH和DPL使用。
DPTR用作地址指针用来存放片内、片外ROM和片外RAM的地址,可寻址范围为64K地址空间寻址。
②程序计数器PC程序计数器PC是一个16位加1计数器,用来存放将要执行的指令地址,编码范围为0000H~FFFFH共64K。
13、8031单片机在应用中,P2和P0口能否直接作为输入输出口连接开关、指示灯之类的外围设备?
为什么?
不能,8031单片机芯片内无程序存储器,P0口需用作数据总线和低8位地址总线来扩展外部程序存储器。
14、AT89系列单片机的复位方式有几种?
复位后单片机的状态如何?
有两种复位方式:
手动按钮复位和上电复位
在SFR中,除了端口锁存器、堆栈指针SP和串行口的SBUF外,其余寄存器全部清零,端口琐存器的复位值为0FFH,堆栈指针值为07H,SBUF内为不定值。
内部RAM的状态不受复位影响,在系统启动时,RAM的内容是不定的。
15、AT89系列单片机有哪几种省电方式?
有两种省电方式:
空闲方式和掉电方式
第3部分答案
1、简述下列基本概念:
指令、指令系统、程序、汇编语言指令
指令:
指示计算机执行某种操作的命令。
指令系统:
指一台计算机所具有的全部指令的集合。
程序:
各种指令的有序组合。
汇编语言指令:
用助记符形式书写的指令,汇编语言指令由操作码和操作数两部分组成。
2、MCS-51单片机有那几种寻址方式?
这几种寻址方式是如何寻址
有七种寻址方式:
①立即寻址
②直接寻址
③寄存器寻址
④寄存器间接寻址
⑤变址寻址
⑥相对寻址
⑦位寻址
3、DAA指令有什么作用?
怎样使用?
DAA;这条指令是进行BCD码运算时,跟在ADD或ADDC指令之后,将相加后存放在累加器中的结果进行修正。
修正的条件和方法为:
若(A0~3)>9或(AC)=1,则(A0~3)+06H→(A0~3);
若(A4~7)>9或(CY)=1,则(A4~7)+06H→(A4~7)。
若以上二条同时发生,或高4位虽等于9,但低4位修正后有进位,则应加66H修正。
4、已知A=C9H,B=8DH,CY=1。
执行指令“ADDCA,B”结果如何?
执行指令“SUBBA,B”结果又如果?
A=56H,B=8DH,CY=0;
A=3CH,B=8DH,CY=1.
5、若需访问特殊功能寄存器和片外数据存储器,就采用那些寻址方式?
寄存器间接寻址.
6、在片内RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48)H=90H,试分析下段程序中各条指令的作用,说出按顺序执行完指令后的结果:
MOVA,40H ;把40单元的内容送往累加器A
MOVR1,A ;把累加器A的内容送往R1
MOVP1,#0F0H ;把立即数F0送往P1口
MOV@R1,30H ;把30单元的内容送往以R1的内容为地址的单元
MOV DPTR,#1234H ;把立即数1234送往DPTR
MOV40H,38H ;把38单元的内容送往40单元
MOVR1,30H ;把30单元的内容送往R1
MOV90H,R1 ;把R1的内容送往90单元
MOV48H,#30H ;把立即数30送往48单元
MOVA,@R1 ;把以R1的内容作为地址送往累加器A
MOVP2,P1 ;把P1口的内容送往P2口
7、试说明下段程序中每条指令的作用,当指令执行完后,R0中的内容是什么?
MOVR0,#0AFH
XCHA,R0
SWAPA
XCHA,R0
(R0)=0FAH
8、把累加器A中的低4位送到外部RAM的2000H单元中,试编程序。
ANLA,#OFH
MOVDPTR,#2000H
MOVX@DPTR,A
9、利用乘法指令编写15H×33H的程序,将乘积的高8位存入31H单元,低8位存入30H单元
MOVA,#15H
MOVB,#33H
MULA,B
MOV31H,B
MOV30H,A
10、编程将片内35H~55H单元中的内容送入到以3000H为首的存储区中。
M:
MOVR0,#35H
MOVR1,#21H
MOVDPTR,#3000H
LOOP:
MOVA,@R0
MOVX@DPTR,A
INCR0
INCDPTR
DJNZR1,LOOP
RET
11、设5AH单元中有一变量X,请编写计算下述函数式的程序,结果存入5B单元。
Y=
UAR DATA 5AH
FUNC DATA 5BH
STATR:
MOV A,VAR
CJNE A,#0AH,L1
L4:
LCALL SQU
ADD A,#08H
LJMP COM
L1:
INC L2
LCALL SQUARE
CLR C
SUBBA,#01H
LJMP COM
L2:
CJNE A,#0FH,L3
LJMP L4
L3:
JNC L5
LJMP L4
L5:
MOV A,#41H
COM:
MOVFUNC,A
RET
SQU:
MOV A,VAR
MOV B,A
MUL AB
RET
12、从20H单元开始有一无符号数据块,其长度在20H单元中,求出数据块中最小值,并存入21H单元。
MIN:
MOVR0,#21H
MOVR2,#20H
MOVA,R2
MOVR1,A
DECR2
MOVA,@R1
LP0:
MOVR3,A
INCR1
CLRC
SUBBA,@R1
JCLP1
MOVA,@R1
LP1:
MOVA,R3
LP2:
DJNZR2,LP0
MOV@R0,A
RET
第4部分习题答案
1、什么是中断、中断源和中断优先级?
中断是指中央处理器CPU正在处理某件事情的时候,外部发生了某一事件,请求CPU迅速去处理,CPU暂时停止当前的工作,转入处理所发生的事件,处理完以后,再回到原来被停止的地方,继续原来的工作。
这样的过程称为中断。
中断源是指产生中断的请求源。
一般计算机系统允许有多个中断源,当几个中断源同时向CPU请求中断,要求服务的时候,就存在CPU优先响应哪一个中断源请求的问题,一般计算机根据中断源(所发生的实时事件)的轻重缓急排队,优先处理最紧急事件的中断请求,于是便规定每一个中断源都有一个中断优先级别。
2、中断响应时间是否为确定不变的?
为什么?
答:
不是确定不变的。
和
电平在每一个机器周期的S5P2被采样并锁存到IE0、IEl中,这个新置入的IE0、IEl状态等到下一个机器周期才被查询电路查询到。
如果中断被激活,并且满足响应条件,CPU接着执行一条硬件子程序调用指令以转到相应的服务程序入口,该调用指令本身需两个机器周期。
这样,在产生外部中断请求到开始执行中断服务程序的第一条指令之间,最少需要三个完整的机器周期。
如果中断请求被前面列出的三个条件之一所阻止,则需要更长的响应时间。
这样,在一个单一中断的系统里,外部中断响应时间总是在3~8个机器周期之间。
3、中断响应后,是怎样保护断点和保护现场的?
响应中断时,先置位相应的优先级状态触发器(该触发器指出CPU开始处理的中断优先级别),然后执行一条硬件子程序调用,使控制转移到相应的入口,清0中断请求源申请标志(TI和RI除外)。
接着把程序计数器的内容压入堆栈(但不保护PSW),将被响应的中断服务程序的入口地址送程序计数器PC。
4、AT89C51有几个中断源?
有几级中断优先级?
各中断标志是如何产生的?
又是如何清除的?
响应中断时,各中断源中断入口地址是多少?
AT89C51单片机有5个中断源,具有2级中断优先级。
中断源入口地址
外部中断00003H
定时器T0000BH
外部中断10013H
定时器Tl001BH
串行口中断0023H
5、试编写一段对中断系统初始化的程序,使之允许INT0、INT1、T0和串行口中断,且使串行口中断为高优先级中断。
6、单片机片内定时器与计数器的主要区别是什么?
定时器实际上也是工作在计数方式下,只不过对固定频率的脉冲计数,由于脉冲周期也固定,由计数值可以计算出计数时间,有定时的功能;
计数器是对外部输入的非固定频率的脉冲计数,由于脉冲周期无规律,就无法计算时间,只能计数脉冲个数。
7、若TMOD=B6H,T/C0和T/C1分别工作在什么方式?
8、设晶振频率fosc=12MHz,AT89C51定时器0的方式0、方式1、方式2的最大定时时间分别为多少?
方式013位定时器最大定时间隔=213×1µS=8.192ms
方式116位定时器最大定时间隔=216×1µS=65.536ms
方式28位定时器最大定时间隔=28×1µS=256µS
9、设晶振频率=6MHz,利用定时器0的方式1在P1.0产生一串50Hz的方波。
定时器溢出时采用中断方式处理。
解:
T=1/F=1/50=0.02=20ms
(216-N)×2us=10000
216-N=5000
N=216-5000=60536
N=EC78H
ORG0000H
LJMPSTART
ORG000BH
AJMPDS90
ORG0030H
START:
MOVSP,#60H
MOVTMOD,#01H
MOVTH0,#0EC,
MOVTL0,#78H
SETBET0
SETBEA
SETBTR0
SJMP$
DS90:
CPLP1.0
RETI
10、并行数据通信与串行数据通信各有什么特点?
分别适用于什么场合?
基本的通信方式有两种:
a.并行方式,数据的各位同时传送;b.串行方式,数据一位一位顺序传送,
并行通信通过并行输入/输出接口进行,数据有多少位就要有同样数量的传送线。
并行通信的优点是处理速度快,缺点是传输线多。
因此并行传输适用于近距离传输、处理速度快的场合。
串行通信借助于串行输入/输出接口实现,只要一条传输线。
故串行通信节省传送线,特别是当位数多和长距离传送时,这个优点就更为突出。
11、串行异步通信的数据帧格式是怎样的:
这种通信方式的主要优缺点是什么?
异步通信这种方式在传送数据时,用一个起始位表示一个字符的开始,用一个停止位表示字符的结束,如图所示。
由起始位到停止位的所有位构成一个字符的全部信息,称为一帧。
每一帧包括以下几部分:
(1)起始位它标志传送数据的开始,一般为低电平,占一位。
(2)数据位要传送的字符,一般是7位(ASCII码),由低位到高位传送。
(3)奇偶校验位为了校验串行传送的正确性,一般都设有奇偶校验位,占一位。
(4)停止位
异步通信的特点是传送数据以帧为单位,每帧都有一定的格式。
都是以起始位开始,以停止位结束,每帧的长度预先选定。
当线路不发送数据时处于停止位电平。
第5部分习题答案
1、8031单片机为核心,对其扩展16KB的程序存储器,画出硬件电路并给出存储器的地址分配表。
电路图:
8031引脚:
P2.7P2.6P2.5P2.4P2.3P2.22.1P2.0P0.7……P0.0
地址线:
A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0
27128:
000000000…0
001111111…1
地址为:
0000H~3FFFH
2、采用统一编址的方法对8031单片机进行存储器扩展。
要求用一片2764、一2864和一片6264,扩展后存储器的地址应连续,试给出电路图及地址分配表。
电路图:
8031引脚:
P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7……P0.0
地址线:
A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0
2764:
000000000...0
|
000111111…1
地址:
0000H~1FFFH
2864:
001000000…0
|
001111111…1
地址:
2000H~3FFFH
3、用8255A扩展并行I/O口,其中A口输入,B口输出,画出电路连接图,并给出8255A的初始化程序。
电路图:
(2)MCS-51引脚:
P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0
地址线:
A15A14A13A12A11A10A9A8A7A6A5A4A3A2A2A1A0
8255A地址:
A口:
1101111111111100[DFFCH]
B口:
1101111111111101[DFFDH]
C口:
1101111111111110[DFFEH]
控制口:
1101111111111111[DFFFH]
(3)程序:
MOVDPTR,#DFFFHMOVA,@DPTR
MOVA,#90HINCDPTR
MOVX@DPTR,AMOVX@DPTR,A
MOVDPTR,#DFFCH
4.用8255A扩展电路设计4路抢答器。
要求A口输入四路抢答信号,B口输出四路抢答指示(用LED发光二极管)和声音提示。
程序:
MOVDPTR,#7FFFH
MOVA,#98H
MOVX@DPTR,A
NO:
MOVDPTR,#7FFCH
MOVXA,@DPTR
JBACC.4,NO
LCALLYS10MS
JBACC.4,NO
JNBACC.4,$
ZERO:
MOVDPTR,#7FFCH
MOVXA,@DPTR
JBACC.0,ONE
LCALLYS5MS
JBACC.0,ONE
LCALLLAMP
LJMPNO
ONE:
JBACC.1,TWO
LCALLYS5MS
JBACC.1,TWO
LCALLLAMP
LJMPNO
TWO:
JBACC.2,THR
LCALLYS5MS
JBACC.2,THR
LCALLLAMP
LJMPNO
THR:
JBACC.3,ZERO
LCALLYS5MS
JBACC.3,ZERO
LCALLLAMP
LJMPNO
LAMP:
ANLA,#0FFH
MOVDPTR,#7FFDH
MOVX@DPTR,A
RET
5、如图2-10所示8031与AD0809的接口电路,把P3.0改成P3.2,请采用中断