《单片机5-7 习题答案(8页).doc》由会员分享,可在线阅读,更多相关《单片机5-7 习题答案(8页).doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-第 五 章5.5 仅有存储容量为512B4、1KB4、2KB4、4KB1、4KB4、16KB1、32KB4、64KB、128KB8、512KB和4MB的存储器,试问这些存储器分别需要多少条地址线和数据线(设它们均非动态RAM)解答:存储容量地址线数据线存储容量地址线数据线512B49432KB41541KB410464KB1682KB4114128KB81784KB1121512KB1984KB41244MB22816KB11415.14 今要设计一个32KB的外部RAM存储器,若采用2114,试问需要多少块?若改用2116,试问需要2116,试问需要多少块?解答: 因为2114芯片的存储容
2、量是1K4,所以2114的地址线是10条,数据线是4条。所以要设计一个32KB的外部RAM存储器,一共需要(321)(84)= 64块。2116芯片的存储容量是16K1,所以地址线是14条,数据线是1条。要设计一个32KB的外部RAM存储器,一共需要(3216)(81)= 16块。5.16 在进行外部存储器设计中,地址译码共有哪三种方式?各有什么特点?解答: 译码共有三种方式:1、 全译码方式:特点是所有片选地址线全部参加译码的工作方式,存储器每个存储单元只有唯一的一个CPU地址与它对应;但所需的地址译码电路较多。2、 部分译码方式:单片机片选线中只有部分参加译码,其余部分是悬空的,所以还有重
3、叠地址,但可以减少所用地址译码器的数量。3、 线选法方式:单片机片选线中的某一条与存储芯片的相连。如果有悬空地址线,就有重叠地址。5.18 试画出8031和2716的连线图,要求采用三八译码器,8031的P2.5、P2.4和P2.3参加译码,基本地址范围3000H 3FFFH。该2716有没有重叠地址?根据是什么?若有,写出每片2716的重叠地址范围。解答: 因为2716的存储容量是2K8,所以一共需要11条地址线,即P0.7 P0.0,P2.2 P2.0。基本地址范围:3000H 3FFFH即:0011 0000 0000 0000 0011 1111 1111 1111从基本地址范围可以看
4、出,参加译码的P2.5、P2.4和P2.3从110到111(即上面地址加下划线的3位),所以该存储器应包括2块2716芯片,存储芯片(1#、2#)的端分别与译码器的、相连,如图所示。因为8031有悬空的地址线P2.7、P2.6,所以有重叠地址。两片2716的重叠地址范围分别为:(下划线表示悬空线)1 #:0011 0000 0000 0000 0011 0111 1111 1111,(3000H 37FFH)0111 0000 0000 0000 0111 0111 1111 1111,(7000H 77FFH)1011 0000 0000 0000 1011 0111 1111 1111,(
5、B000H B7FFH)1111 0000 0000 0000 1111 0111 1111 1111,(F000H F7FFH)2 #:0011 1000 0000 0000 0011 1111 1111 1111,(3800H 3FFFH)0111 1000 0000 0000 0111 1111 1111 1111,(7800H 7FFFH)1011 1000 0000 0000 1011 1111 1111 1111,(B800H BFFFH)1111 1000 0000 0000 1111 1111 1111 1111,(F800H FFFFH)P2.7P2.6P2.5P2.2 P2
6、.0ALEP0.7 P0.0PSEN8031G 74LS373D7D0Q7Q0ABCY0Y1Y7 三|八译码器A10 A0D7D02716 2#OE2716 1#CEOECEA10 A0D7D0Y65.19 试用线选法画出8031对一片62128的连线图,要求基本地址范围为8000H BFFFH,重叠地址范围为8000H FFFFH。若基本地址范围为8000H 9FFFH和C000H DFFFH,重叠地址范围为8000H FFFFH,试问连线图应该如何修改?解答:因为62128的存储容量为16K,所以它需要14条地址线;因为采用线选法,所以有一条悬空线。1、若基本地址范围为8000H BFFF
7、H(即1000 0000 0000 0000 1011 1111 1111 1111)重叠地址范围为8000H FFFFH(即1000 0000 0000 0000 1111 1111 1111 1111)因为基本地址定义为当悬空线为0时,片内地址线从全0到全1的地址范围。1)由基本地址范围8000H BFFFH可知,只有P2.6始终等于0,所以P2.6为悬空线;2)片选线(即与存储芯片相连的片选地址线)应该在基本地址范围和重叠地址范围中始终保持不变,分析可知,只有P2.7始终为1。因为片选信号是低电平有效,所以P2.7与之间应该添加一个反相器。(如图所示)。P2.7P2.6P2.5P2.4P
8、2.3P2.2 P2.1P2.0ALEP0.7 P0.0PSEN8031G D7D0Q7Q0A13A12A11A10A9A8A7A0D7D02764OECE74LS3732、若基本地址为8000H(1000 00) 9FFFH(1001 11)和C000H(1100 00) DFFFH(1101 11)重叠地址范围为8000H (1000 00) FFFFH(1111 11)1) 在基本地址范围和重叠地址范围中只有P2.7始终保持不变,等于1。所以P2.7 为片选线,应接一个反相器连到存储器的端。2) 在基本地址范围中只有P2.5始终等于0,所以P2.5为悬空线;连线时只需将P2.5悬空,P2
9、.6连到存储器的A13上(如上图虚线)。第 六 章6.1 什么叫中断?中断通常可以分为哪几类?计算机采用中断有什么好处? 中断是指计算机暂时停止原程序的执行转而为外部设备服务(执行中断服务程序),并在服务完成后自动返回原程序执行的过程。 计算机采用中断可以提高CPU的工作效率和实时数据的处理时效。6.2 什么叫中断源?MCS-51有哪些中断源?各有什么特点?中断源是指引起中断原因的设备或部件,或发出中断请求信号的源泉。通常中断源有以下几种:外部设备中断源、控制对象中断源、故障中断源和定时脉冲中断源。特点:书上P202页(新书)。6.3 什么叫中断嵌套?什么叫中断系统?中断系统的功能是什么? 中
10、断嵌套:在某一瞬间,CPU因响应某一中断源的中断请求而正在执行它的中断服务程序时,若CPU此时的中断是开放的,那它必然可以把正在执行的中断服务程序暂停下来转而响应和处理中断优先权更高中断源的中断请求,等到处理完后再转回继续执行原来的中断服务程序,这就是中断嵌套。 中断系统:是指能够实现中断功能的那部分硬件电路和软件程序。它的功能通常有以下几条:1、进行中断优先权排队;2、实现中断嵌套;3、自动响应中断;4实现中断返回。6.4 8031的5个中断标志位代号是什么?位地址是什么?它们在什么情况下被置位和复位?5个中断标志位: 1)IE0:位地址是89H;当引脚上有中断时为1,无中断为0; 2)IE
11、1:位地址是8BH;当引脚上有中断时为1,无中断为0; 3)TF0:位地址是8DH;当有定时器T0中断时为1,否则为0; 4)TF1:位地址是8FH;当有定时器T1中断时为1,否则为0; 5)串行口中断标志位有2个: TI:位地址是99H;当串行口有发送中断时为1,否则为0; RI:位地址是98H;当串行口有接收中断时为1,否则为0;6.5 中断允许寄存器IE各位定义是什么?请写出允许T1定时器溢出中断的指令?IE各位的定义见书上P208页,图6-5。允许T1定时器溢出中断的指令:MOV IE, # 88H 或改用位寻址指令: SETB EA SETB ET16.6 试写出设定和上的中断请求为
12、高优先级和允许它们中断的程序。此时,若和引脚上同时有中断请求信号输入,试问MCS-51先响应哪个引脚上的中断请求?为什么?程序:SETB EA SETB EX0 或:MOV IE, # 85H SETB EX1 SETB PX0 SETB PX1若和引脚上同时有中断请求信号输入时,MCS-51先响应引脚上的中断请求。因为在出现同级中断请求时,在MCS-51内部的优先级高于,所以先响应引脚上的中断请求。6.7 MCS-51响应中断是有条件的,请说出这些条件是什么?中断响应的全过程如何?响应中断的条件:1) 若CPU处在非响应中断状态且响应中断是开放的,则MCS-51在执行完现行指令后就会自动响应
13、来自某中断源的中断请求。2) 若CPU正处在响应某一中断请求状态时,又来了一个新的优先级更高的中断请求,则MCS-51便会立即响应并实现中断嵌套,若新来的中断优先级比正在服务的优先级低,则CPU必须等到现有中断服务完成以后才会自动响应新来的中断请求。3) 若CPU正处在执行RETI或任何访问IE/IP指令(如SETB EA)的时刻,则MCS-51必须等待执行完下条指令后,才响应该中断请求。中断响应的过程:1) 把中断点的地址(断点地址),也就是当前程序计数器PC中的内容压入堆栈,以便执行到中断服务程序中的RETI指令时按地址返回原程序执行;2) 关闭中断,以防在响应中断期间受其它中断的干扰;3
14、) 根据中断源入口地址转入执行相应中断服务程序。6.8 写出并记住8031五级中断的入口地址。中断源为: 中断的入口地址为:0003H中断源为T0: 中断的入口地址为:000BH中断源为: 中断的入口地址为:0013H中断源为T1: 中断的入口地址为:001BH中断源为串行口中断: 中断的入口地址为:0023H第 七 章7.8 决定8255A选口地址的引脚有哪几条?作用是什么?解答:A0、A1,用于选中A口、B口、C口和控制字寄存器中哪一个工作。7.9 8255如何辨认方式控制字和C口单一置复位控制字?方式控制字各位定义如何?解答:这两个控制字以D7位状态作为标志。 方式控制字的定义见书上P2
15、52页图7-13。7.10 结合图7-17简述8255A口在模式1选通输入方式下的工作过程。解答:见书上P255页图7-17下面(a)(d)7.11 8255 B口可以设定为方式2吗?为什么?解答:不可以,因为方式2作为双向I/O,只适用于A口。7.12 在采用8255扩展I/O口时,若把8255 A口作为输入,A口每一位接一个开关,B口每一位接一个发光二极管。请编写A口开关接1时B口相应位发光二极管点亮的程序。PA7PA08255APB7PB0S7解答:S0假设电路如图所示,当开关闭合时(即A口的输入信号等于1),使发光二极管点亮(即B口的输出信号等于1)。设8255的A、B、C、控制口地址
16、分别为8000H、8001H、8002H 和 8003H。控制字:10010000B ( 90H )S7即A口输入、方式0;B口输出、方式0。程序如下:S0ORG 1000HMOVDPTR, # 8003HMOVA, # 90HMOVXDPTR, A;写控制字LOOP: MOVDPTR, # 8000HMOVXA, DPTR;将A口的数据送到累加器A中INCDPTRMOVXDPTR, A;将累加器中的数从B口输出SJMPLOOPEND7.13 某一生产过程共有6道工序,每道工序的时间均为10s,生产过程循环进行。先要用MCS-51通过8255 A口进行过程控制,A口中每一位都可控制一道工序的启
17、停。试画出有关硬件电路并编写有关程序,设有一DELAY延时程序可供调用,延时时间为1s。解答:假设用PA0 PA5分别控制6道工序,当PA0 PA5等于1时,相应的工序启动,当工序停止时,A口相应的位等于0。设8255的A、B、C、控制口地址分别为8000H、8001H、8002H 和 8003H。控制字:1000 0000B ( 80H )即A口输出、方式0假设MCS-51的时钟频率为12MHz,则其时钟周期应为1s,采用延时程序来设置延时时间为1s。程序如下:ORG1000HMOVA, # 80HMOVDPTR, #8003HMOVXDPTR, ALOOP:MOVA, #01HMOVDPT
18、R, # 8000HLOOP1:MOVXDPTR, AMOVR2, # 0AHLCALLDELAYDJNZR2, LOOPRLAJNBACC.6,LOOP1SJMPLOOP2DELAY:MOVR5, # 99; 延时程序DEL1:MOVR6, # 100DEL2:MOVR7, # 100DEL3:NOPDJNZR7, DEL3DJNZR6, DEL2DJNZR5, DEL1END7.18在图7-27中,若把字符打印机的和8031的相接,使简述电路的工作原理并编写能把以20H为起始地址的连续50个内存单元中的内容输出打印的程序。解答: 在方式1输出方式下,当打印机从A口上取走输出数据的同时,信号
19、会变成低电平。因为和8031的相接,所以信号有效,即向CPU发出中断请求。当CPU响应中断请求后,便可通过中断服务程序把下一个输出数据送到8255,准备传输下一个数据。相应程序只需将中断的触发方式由负边沿触发改成电平触发即可,即将主程序中SETB IT0改成CLR IT07.20 某一生产过程共有6道工序,每道工序的持续时间均为10s,生产过程循环进行。任何一道工序出现故障时都会产生故障信号,要求故障信号能引起单片机中断,停止送出顺序控制信号,并进行声光告警。现采用MCS-51通过8255进行控制,A口用于输出各工序的顺序控制信号,C口中某一位输入故障信号,B口中某两位用于声光告警。请画出相应
20、的硬件图并编写有关程序。解答:用PA0 PA5 输出各工序的顺序控制信号;设等于1时,工序启动。用PB0 PB1 输出声光告警控制信号;输出1时,发出告警信号。用PC4接收故障信号。 当有故障信号时,为1。A、B口均采用模式0。方式控制字为:1000 1000B(88H)设8255A的A、B、C和控制端口地址分别8000H、8001H、8002H、8003HRESETALEP0.7P0.0INT0G D7D0Q7Q1Q074LS3738031 PB1RESET PB0PA5 PA0A1 A0 PC4D7D08255A外部设备声光告警设备相应程序为:;主程序:ORG 1000HSETBEASET
21、BEX0SETBPX0CLRIT0;令为电平触发中断MOVDPTR, # 8003 HMOVA, # 88 HMOVXDPTR, A;写控制字MOVDPTR, # 8000HMOVA, # 01HLOOP:MOVXDPTR, A;从A口输出工序控制信号MOVR2, # 10;延时10sDEL:LCALLDELAYDJNZR2, DELRLA;顺序输出控制信号JNBACC.6,NEXT;如果PA6 = 0,则继续循环控制工序MOVA, # 01H;若PA6 = 1,则将PA0 = 1NEXT:SJMPLOOPSJMP$ DELAY:MOVR5, # 99;延时1s的子程序DEL3:MOVR6, # 100DEL2:MOVR7, # 100DEL1:NOPDJNZR7, DEL1DJNZR6, DEL2DJNZR5, DEL3;中断服务程序:ORG0003HLJMPPINT0ORG2000HPINT0:MOVDPTR,# 8000HMOVA,# 00HMOVXDPTR, A;A口停止送出工序控制信号INCDPTRMOVA,# 03HMOVXDPTR, A;B口输出声光告警信号RETIEND-第 8 页-
限制150内