《单片机原理与接口技术(修订本)》部分习题与参考答案.pdf
-
资源ID:85739703
资源大小:234.52KB
全文页数:21页
- 资源格式: PDF
下载积分:10金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
《单片机原理与接口技术(修订本)》部分习题与参考答案.pdf
单片机原理及接口技术(修订本)部分习题与参考答案第 1 章 绪论1-2 什么叫单片机?一个完整的单片机芯片至少有哪些部件?答:将微处理器(CPU)、存储器、定时/计数器及输入输出接口电路等部件集成在一块集成电路上,称为单片微型计算机,简称单片机。一个完整的单片机芯片至少有中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、定时/计数器及I/O 接口等部件。1-5 Intel 公司的主要单片机产品分为哪几大系列?各系列的区别何在?答:Intel 公司的 MCS-48 系列、MCS-51 系列、MCS-96 系列产品;48 系列的单片机在片集成4 位 CPU,片含有多种I/O 接口,有的根据不同用途还配有许多专用接口,价格便宜,控制功能强。51 系列的单片机在片集成8 位 CPU、片 RAM 为 128 字节,ROM 为 4K 字节,4 个并行 I/O 口、2 个 16 位定时/计数器、串行接口、5 个中断源。96 系列单片机CPU 为 16 位,片 RAM 为 232 字节,ROM 为 8K 字节,片带有高速输入输出部件,多通道10 位 A/D 转换部件,中断处理为8 级。1-6 叙述 51 子系列与 52 子系列的区别?答:51 子系列包含8031/8051/8751 三种型号,它们的基本组成、基本性能都相同,都具有一个 8 位 CPU、片数据存储器RAM128B、2 个 16 位定时计数器、有5 个中断源,一个全双工串行接口,它们之间的区别在于片程序存储器配置:8031 片没有 ROM,使用时需在片外接 EPROM。8051 片含有 4KB 的掩模 ROM,其中的程序是生产厂家制作芯片时烧制的。8751 片含有 4KB 的 EPROM,用户可以先用紫外线擦除器擦除,然后再利用开发机或编程器写入新的程序。52 子系列包含8032/8052/8752 三种型号,52 子系列 与 51 子系列的区别在于:片 ROM和 RAM 的容量比8051 子系列各增加一倍,另外,增加了一个定时/计数器和一个中断源。第 2 章 MCS-51系列单片机的结构及原理2-2 MCS-51 单片机的引脚有何功能?在使用8031 时如何接法?使用8751 时如何接法?答:引脚是片外程序存储器的选择信号。当端保持高电平时,访问部程序存储器,但在PC(程序计数器)值超过0FFFH(对于8051/8751/80C51)或 1FFFH(对于 8052)时,将自动转向访问外部程序存储器。当端保持低电平时,不管是否有部程序存储器,则只访问外部程序存储器。由于 8031 片没有程序存储器,所以在使用8031 时,引脚必须接低电平。2-4 MCS-51 单片机的部存储空间是怎样分配的?答:MCS-51 单片机的部存储空间分为数据存储器和程序存储器。部数据存储器:共 256 字节单元,包括低 128 个单元和高128 个单元。低 128 字节又分成 3 个区域:工作寄存器区(00H1FH),位寻址区(20H2FH)和用户 RAM 区(30H7FH)。高 128 字节是供给特殊功能寄存器使用的,因此称之为特殊功能寄存器区。部程序存储器:在8031 片无程序存储器,8051 片具有4KB 掩模 ROM,8751 片具有4KBEPROM。2-5 如何从 MCS-51 单片机的4 个工作寄存器组中选择当前工作寄存器组?答:MCS-51 单片机提供了4 组工作寄存器,对于当前工作寄存器组的选择,是通过 PSW中的 RS1 和 RS0 来进行选择。具体关系如下表:RS1RS0当前寄存器组00第 0组工作寄存器01第 1组工作寄存器10第 2组工作寄存器11第 3组工作寄存器2-6 部 RAM 低 128 个单元是如何划分的?答:部 RAM 低 128 个单元按用途分成3 个区域:工作寄存器区(00H1FH),位寻址区(20H2FH)和用户RAM 区(30H7FH)。2-7 DPTR 是什么寄存器?它的作用是什么?它由哪几个寄存器组成?答:DPTR 是数据指针寄存器,是一个16 位寄存器,用来存放16 位存储器的地址,以便对外部数据存储器RAM 中的数据进行操作。DPTR 由高位字节DPH 和低位字节DPL 组成。2-8 什么是堆栈?堆栈有何作用?为什么在程序初始化时要对SP重新赋值?答:所谓堆栈,顾名思义就是一种以“堆”的方式工作的“栈”。堆栈是在存中专门开辟出来的按照“先进后出,后进先出”的原则进行存取的RAM 区域。堆栈的用途是保护现场和断点地址。在8051 单片机复位后,堆栈指针SP 总是初始化到部RAM 地址 07H。从08H 开始就是 8051 的堆栈区,这个位置与工作寄存器组1 的位置相同。因此,在实际应用中,通常要根据需要在程序初始化时对SP重新赋值,以改变堆栈的位置。2-9 试述程序状态字寄存器PSW 各位的含义。答:程序状态字寄存器PSW 是 8 位寄存器,用于存放程序运行的状态信息。CY(PSW.7):进位标志位。AC(PSW.6):辅助进位标志位。F0(PSW.5)、F1(PSW.1):用户标志位。RS1(PSW.4)、RS0(PSW.3):工作寄存器组选择位。OV(PSW.2):溢出标志位。P(PSW.0):奇偶标志位。2-10 P0、P1、P2、P3 口的结构有何不同?使用时要注意什么?各口都有什么用途?答:P0 口由一个所存器、两个三态输入缓冲器、场效应管、控制与门、反相器和转换开关组成;作为输出口时,必须外接上拉电阻才能有高电平输出,作为输入口时,必须先向锁存器写“1”;作为普通I/O 口使用或低8 位地址/数据总线使用。P1 口没有转换开关,但有上拉电阻;只用作普通I/O 口使用。P2 口比 P1 口多了一个转换控制开关;作为普通I/O 口使用或高8 位地址线使用。P3 口比 P1 口增加了与非门和缓冲器;具有准双向I/O 功能和第二功能。上述 4 个端口在作为输入口使用时,应注意必须先向端口写“1”。2-11 请说出 指令周期、机器周期、状态和拍的概念。当晶振频率为12MHz、8MHz 时,一个机器周期为多少微秒?答:指令周期:执行一条指令所需要的时间。机器周期:CPU 完成一个基本操作所需要的时间。状态:振荡脉冲经过二分频后,得到的单片机的时钟信号。拍:振荡脉冲的周期。当晶振频率为12MHz 时,一个机器周期为1s;当晶振频率为8MHz 时,一个机器周期为 3s。2-12 什么是单片机复位?复位后单片机的状态如何?答:在时钟电路工作后,只要在单片机的RESET 引脚上出现24 个时钟震荡脉冲(两个机器周期)以上的高电平,单片机就能实现复位。复位后,CPU 和系统都处于一个确定的初始状态,在这种状态下,所有的专用寄存器都被赋予默认值,除SP=07H,P0P3 口为 FFH 外,其余寄存器均为0。第 3 章 MCS-51系列单片机的指令系统3-3 MCS-51系列单片机有哪几种寻址方式?各种寻址方式所对应的寄存器或存储器寻址空间如何?答:MCS-51 系列单片机提供了7 种寻址方式:(1)立即寻址:操作数在指令中直接给出,立即数前面有“#”。(2)直接寻址:在指令中直接给出操作数地址。对应片低128 个字节单元和特殊功能寄存器。(3)寄存器寻址:以寄存器的容作为操作数。对应的寄存器有:R0R7、A、AB 寄存器和数据指针DPTR。(4)寄存器间接寻址:以寄存器的容作为RAM地址,该地址中的容才是操作数。对应片 RAM 的低 128 个单元采用R0、R1 作为间址寄存器,片外 RAM 低 256 个单元可用R0、R1 作为间址寄存器,整个64KB 空间可用DPTR 作为间址寄存器。(5)变址寻址:以DPTR 或 PC 作为基址寄存器,以累加器A 作为变址寄存器,并以两者容相加形成的16 位地址作为操作数地址。对应片、片外的ROM 空间。(6)相对寻址:只在相对转移指令中使用。对应片、片外的ROM 空间。(7)位寻址:对可寻址的位单独进行操作。对应位寻址区20H2FH 单元的 128 位和字节地址能被8 整除的特殊功能寄存器的相应位。3-4 若访问特殊功能寄存器,可使用那些寻址方式?答:直接寻址方式。3-5 若访问外部RAM 单元,可使用那些寻址方式?答:寄存器间接寻址方式。3-6若访问部RAM 单元,可使用那些寻址方式?答:立即寻址方式,直接寻址方式,寄存器寻址方式,寄存器间接寻址方式,位寻址方式。3-7若访问外程序存储器,可使用那些寻址方式?答:变址寻址方式3-9 外部数据传送指令有几条?试比较下面每一组中两条指令的区别。(1)MOVX A,R1 ,MOVX A,DPTR(2)MOVX A,DPTR ,MOVX DPTR,A(3)MOV R0,A ,MOVX R0,A(4)MOVC A,A+DPTR ,MOVX A,DPTR 答:外部数据传送指令有6 条:MOVX A,DPTR MOVX DPTR,A MOVX A,Ri MOVX Ri,A MOVC A,A+DPTR MOVC A,A+PC(1)MOVX A,R1 MOVX A,DPTR都是访问片外RAM,但二者寻址围不同。前 1 条指令是对片外RAM 低 256 个单元的“读”操作。后 1 条指令是对片外RAM64KB 空间的“读”操作。(2)MOVX A,DPTR MOVX DPTR,A访问空间相同,但数据传送方向不同。前 1 条指令是对片外RAM64KB 空间的“读”操作。后 1 条指令是对片外RAM64KB 空间的“写”操作。(3)MOV R0,A MOVX R0,A二者访问的空间不同。前 1 条指令是对片RAM 低 128 个单元的“写”操作。后 1 条指令是对片外RAM 低 256 个单元的“写”操作。(4)MOVC A,A+DPTR MOVX A,DPTR二者访问的空间不同,寻址方式不同。前 1 条指令是变址寻址方式,对ROM 操作。后 1 条指令是寄存器间接寻址方式,对片外RAM 操作。3-10 已知(30H)=40H,(40H)=10H,(10H)=32H,(P1)=EFH,试写出执行以下程序段后有关单元的容。MOV R0,#30H MOV A,R0 MOV R1,A MOV B,R1 MOV R1,P1 MOV P2,P1 MOV 10H,#20H MOV 30H,10H 答:R030H,(R0)=30HA(R0),(A)=40HR1(A),(R1)=40HB(R1),(B)=10H(R1)(P1),(R1)=(40H)=EFHP2(P1),(P2)=EFH10H 20H,(10H)=20H30H(10H),(30H)=20H结果:(R0)=30H,(A)=40H,(R1)=40H,(B)=10H,(40H)=EFH,(P2)=EFH,(10H)=20H,(30H)=20H 3-11 试写出完成以下数据传送的的指令序列。(1)R1 的容传送R0;(2)片外 RAM 60H 单元的容送入R0;(3)片外 RAM 60H 单元的容送入片RAM 40H 单元;(4)片外 RAM 1000H单元的容送入片外RAM 40H 单元;(5)ROM 2000H 单元的容送入R2;(6)ROM 2000H 单元的容送入片RAM 40H 单元;(7)ROM 2000H 单元的容送入片外RAM 0200H 单元。答:(1)由于在工作寄存器与工作寄存器之间不能直接传送数据,所以需要借助累加器A。MOV A,R1 MOV R0,A(2)片外RAM 向片 RAM 传送数据,不能直接进行,需要借助累加器A。由于片外RAM 是 60H 单元,地址小于FFH,所以间址寄存器使用Ri 即可。MOV R1,#60H MOVX A,R1 MOV R0,A(3)MOV R1,#60H MOVX A,R1 MOV 40H,A(4)片外数据不能直接送入片外单元,需要先将片外数据读入累加器,然后再送到片外。MOV DPTR,#1000H MOVX A,DPTR MOV R1,#40H MOVX R1,A(5)ROM 中的数据需要使用查表指令才能读出来,所以此题不能使用一般的传送指令从 ROM 中读数据。MOV DPTR,#2000H MOV A,#00H MOVC A,A+DPTR MOV R2,A(6)MOV DPTR,#2000H MOV A,#00H MOVC A,A+DPTR MOV 40H,A(7)MOV DPTR,#2000H MOV A,#00H MOVC A,A+DPTR MOV DPTR,#0200H MOVX DPTR,A3-12 试编程,将外部RAM 1000H 单元中的数据与部RAM 60H 单元中的数据相互交换。答:片外 RAM 与片 RAM 之间的数据传送不能直接进行,需要借助累加器A。数据交换需要使用数据交换指令XCH。MOV DPTR,#1000H MOVX A,DPTR XCH A,60H MOVX DPTR,A3-14 已知(A)=5BH,(R1)=40H,(40H)=C3H,(PSW)=81H,试写出各条指令的执行结果,并说明程序状态字的状态。(1)XCH A,R1 (2)XCH A,40H(3)XCH A,R1 (4)XCHD A,R1(5)SWAP A (6)ADD A,R1(7)ADD A,40H (8)ADD A,#40H(9)ADDC A,40H (10)SUBB A,40H(11)SUBB A,#40H 答:(1)结果:(A)(R1),(A)=40H,(R1)=5BH,(PSW)=81H(2)结果:(A)(40H),(A)=C3H,(40H)=5BH,(PSW)=80H(3)结果:(A)(R1),(A)=C3H,(R1)=(40H)=5BH,(PSW)=80H(4)结果:(A)03(R1)03,(A)=53H,(R1)=(40H)=CBH,(PSW)=80H(5)结果:(A)03(A)47,(A)=B5H,(PSW)=81H(6)结果:A(A)+(R1),(A)=9BH,(PSW)=05H(7)结果:A(A)+(40H),(A)=1EH,(PSW)=80H(8)结果:A(A)+40H,(A)=9BH,(PSW)=05H(9)结果:A(A)+(40H)+CY,(A)=1FH,(PSW)=81H(10)结果:A(A)-(40H)-CY,(A)=97H,(PSW)=85H(11)结果:A(A)-40H-CY,(A)=1AH,(PSW)=01H 3-26 已知(A)=5BH,(R1)=40H,(40H)=C3H,(PSW)=81H,试写出各条指令的执行结果,并说明程序状态字的状态。(1)XCH A,R1 (2)XCH A,40H(3)XCH A,R1 (4)XCHD A,R1(5)SWAP A (6)ADD A,R1(7)ADD A,40H (8)ADD A,#40H(9)ADDC A,40H (10)SUBB A,40H(11)SUBB A,#40H 答:指令 LJMP addr16 是长转移指令,指令中提供了16 位目的地址,寻址围是64KB。指令 AJMP addr11 是绝对转移指令,指令中 11 位目的地址,其中 a7a0在第二字节,a10a8 则占据第一字节的高3 位,寻址围是与PC 当前值(本指令所在地址+本条指令所占用的字节数2)在同一个2K 的区域。3-27 试分析以下两段程序中各条指令的作用。程序执行完将转向何处?(1)MOV P1,#0CAH MOV A,#56H JB P1.2,L1 JNB ACC.3,L2 L1:L2:(2)MOV A,#43H JB ACC.2,L1 JBC ACC.6,L2 L1:L2:答:(1)MOV P1,#0CAH ;P1CAH,P1=CAH=11001010B MOV A,#56H ;A56H,A=56H=01010110B JB P1.2,L1 ;若 P1.2=1,则转移至L1 JNB ACC.3,L2 ;若 ACC.3=0,则转移至L2L1:L2:执行完本段程序后将转移至L2,因为 P1.2=0,ACC.3=0,所以转至L2。(2)MOV A,#43H ;A43H,A=43H=01000011B JB ACC.2,L1 ;若 ACC.2=1,则转移至L1 JBC ACC.6,L2 ;若 ACC.6=1,则转移至 L2,同时将 ACC.6清零L1:L2:执行完本段程序后将转移至L2,因为 ACC.2=0,ACC.6=1,所以转至L2,并且将 ACC.6清零。第 4 章 汇编语言程序设计4-3 存放在部RAM 的 DATA 单元中的变量X 是一个无符号整数,试编程计算下面函数的函数值并存放到部RAM 的 FUNC 单元中。答:ORG 0300H MOV A,DATA CJNE A,#20,LOP1LOP1:JC LOP3 CJNE A,#50,LOP2LOP2:JC LOP4 MOV B,#1 LJMP LOP5LOP3:MOV B,#2 LJMP LOP5LOP4:MOV B,#5LOP5:MUL AB MOV FUNC,A RET4-5 某单片机应用系统有44 键盘,经键盘扫描程序得到被按键的键值(00H0FH)存放在 R2 中,16 个键的键处理程序入口地址分别为KEY0、KEY1、KEY2、KEY15。试编程实现,根据被按键的键值,转对应的键处理程序。答:ORG 0500H MOV DPTR,#JPTAB MOV A,R2 RL A JMP A+DPTRJPTAB:AJMP KEY0 AJMP KEY1 AJMP KEY2 AJMP KEY15KEY0:KEY1:KEY2:KEY15:4-6 试编程将片40H60H 单元中容传送到外部RAM 以 2000H 为首地址的存储区中。答:ORG 0600H MOV R0,#40H MOV DPTR,#2000H MOV R7,#21HLOOP:MOV A,R0 MOVX DPTR,A INC R0 INC DPTR DJNZ R7,LOOP RET4-7 试编程将片40H60H 单元中容传送到外部RAM 以 2000H 为首地址的存储区中。答:ORG 0700H MOV DPTR,#DATA MOV R7,#10LOOP:MOVX A,DPTR ORL A,#80H MOVX DPTR,A INC DPTR DJNZ R7,LOOP RET4-8 编写程序将外部RAM 3000H 开始的 13 个单元中的数据隔一个传送到部RAM 30H开始的区域。答:ORG 0800H MOV DPTR,#3000H MOV R0,#30H MOV R7,#7LOOP:MOVX A,DPTR MOV R0,A INC DPTR INC DPTR INC R0 DJNZ R7,LOOP RET4-9 编程将片外RAM 地址为 1000H1030H 的数据块,全部搬迁到片RAM 30H 60H中,并将原数据区全部清0。答:ORG 0900H MOV DPTR,#1000H MOV R1,#30H MOV R7,#31HLOOP:MOVX A,DPTR MOV R1,A CLR A MOVX DPTR,A INC DPTR INC R1 DJNZ R7,LOOP RET4-10 试编程把长度为10H 的字符串从部RAM 首地址为 DAT1 的存储器中向外部RAM首地址为 DAT2 的存储器进行传送,一直进行到遇见字符CR 或整个字符串传送完毕结束。答:ORG 0A00H MOV R1,#DAT1 MOV DPTR,#DAT2 MOV R6,#10HLOOP1:MOV A,R1 CJNE A,#0DH,LOOP2 LJMP LOOP3LOOP2:MOVX DPTR,A INC R1 INC DPTR DJNZ R6,LOOP1LOOP3:RET4-18 设在外部 RAM 2000H 2004H 单元中,存放有5 个压缩 BCD 码,试编程将它们转换成 ASC码,存放到以2005H 单元为首地址的存储区中。答:ORG 1200H MOV DPTR,#2000H MOV R0,#30H MOV R7,#5LOP1:MOVX A,DPTR ANL A,#0FH ADD A,#30H MOV R0,A INC R0 MOVX A,DPTR ANL A,#0F0H SWAP A ADD A,#30H MOV R0,A INC R0 INC DPTR DJNZ R7,LOP1 MOV DPTR,#2005H MOV R0,#30H MOV R7,#10LOP2:MOV A,R0 MOVX DPTR,A INC R0 INC DPTR DJNZ R7,LOP2 RET4-20 已知部 RAM 30H 和 40H 单元分别存放着一个数a、b,试编写程序计算a2 b2,并将结果送入30H 单元。设a、b 均是小于10 的数。答:ORG 1400H MOV A,40H MOV B,A MUL AB MOV 31H,A MOV A,30H MOV B,A MUL AB CLR C SUBB A,31H MOV 30H,A RET4-21 根据题 322 的线路图(图3-10),设计灯亮移位程序,要求8 个发光二极管每次亮一个,点亮时间为40ms。顺次一个一个地循环右移点亮,循环不止。答:ORG 1500H MOV A,#80HLOOP:MOV P1,A LCALL DEL RR A SJMP LOOPDEL:MOV R7,#100DEL1:MOV R6,#198 DJNZ R6,$DJNZ R7,DEL1 RET RET第 5 章 定时/计数器5-1 51 系列单片机的部设有几个定时/计数器?有哪几种工作方式?由哪位选择?不同方式下,脉冲来源是否一样?答:51 系列单片机的部设有两个定时/计数器。分别有两种工作方式:定时器方式和计数器方式。由TMOD(定时器模式控制寄存器)中的控制位进行选择。定时器方式的脉冲来自于部时钟脉冲,每个机器周期是计数器的值增1;计数器方式的脉冲来自于外部输入引脚 T0(P3.4)或 T1(P3.5)。5-2 51 系列单片机的定时/计数器有哪几种工作模式?各有什么特点?答:51 系列单片机的定时/计数器有四种工作模式。分别由TMOD 中的 M1 和 M0 进行选择。特点如下:M1 M0特点 0 0模式 0。TLX中低 5 位与 THX 中的 8 位构成13 位计数器。计满溢出时,13 位计数器回零。0 1模式 1。TLX与 THX 构成 16 位计数器。计满溢出时,16 位计数器回零。1 0模式 2。8 位自动重装载的定时/计数器,每当计数器TLX溢出时,THX 中的容重新装载到TLX 中。1 1模式 3。对定时器0,分成 2 个 8 位计数器,对于定时器1,停止计数。5-3 51 系列单片机的T0 和 T1 在模式 0 中,都使用了计数器的哪些位?答:51 系列单片机的T0 和 T1 在模式 0 中,使用了TLX 中低 5 位与 THX 中的 8 位构成 13 位计数器,TLX 中的高 3 位弃之未用。5-4 51 系列单片机的T0 和 T1 在模式 3 时有何不同?答:对于 T1,设置为模式3,将使它停止计数并保持原有的计数值,其作用如同使TR1=0,因此,没有什么实质意义。对于 T0,设置为模式3 时,16 位计数器被分成两个互相独立的8 位计数器TL0 和 TH0,其中 TL0 利用了定时/计数器 0 本身的一些控制位:、GATE、TR0、和 TF0。它既可以按照计数方式工作,也可以按照定时方式工作。而TH0 被规定只可用作定时器方式,借用了T1的控制位 TR1 和 TF1。5-5 试问当(TMOD)=27H 时,是怎样定义T0 和 T1 的?答:(TMOD)=27H=00100111B 此时,T1 工作于模式2,定时方式(即波特率发生器方式)。T1 工作于模式3,TL0和 TH0 同为计数方式。5-6 系统复位后执行下述指令,试问T0 的定时时间为多长?MOV TH0,#06H MOV TL0,#00H SETB TR0 答:单片机系统复位后(TMOD)=00H,即 T0 工作在模式0,使用的是TL0 的低 5 位和 TH0 构成 13 位定时/计数器,由于(TH0)=06H,(TL0)=00H,所以定时的初值为:X=00B=192 假设系统晶振频率为6MHz,机器周期T=2s,则定时时间为:定时值=(M-X)T=(213-192)2s=16000s=16ms 5-7 已知 51 系列单片机的系统晶振频率为6 MHZ,请利用定时器T和 P1.2 输出矩形脉冲。答:ORG 0000H LJMP START ORG 0200HSTART:MOV TMOD,#20H MOV TL1,#231 SETB TR1LOOP:SETB P1.2 MOV TH1,#81LOP1:JBC TF1,LOP2 SJMP LOP1LOP2:CLR P1.2 MOV TH1,#231LOP3:JBC TF1,LOOP SJMP LOP3 END第 6 章串行接口61 并行通信和串行通信各有什么特点?它们分别适用于什么场合?答:计算机与外界信息交换的基本方式可分为并行通信与串行通信:并行通信是数据的各位同时传送,并行通信的特点是传送速度快,但不适用长距离传输;串行通信是数据的各位依次逐位传送,串行通信的特点是传送速度较慢,但传输距离较长。并行通信适合近距离的CPU 之间或设备之间快速进行数据交换;串行通信适合长距离的 CPU 之间或设备之间进行数据交换,或近距离的慢速数据交换。62 什么是串行异步通信?它有哪些特点?串行异步通信的数据帧格式是怎样的?答:异步通信依靠起始位、停止位、保持通信同步。特点是数据在线路上的传送不连续,传送时,字符间隔不固定,各个字符可以是连续传送,也可以间断传送,这完全取决于通信协议或约定。串行异步通信的数据帧格式如图6-1:一位起始位“0”电平;其后是5 位、6 位、7位或 8 位数据位,低位在前,高位在后;后面是一位奇偶校验位;最后是停止位“1”电平。图 6-1 异步通信的数据帧格式63 串行通行有哪几种数据传送形式,试举例说明。答:串行通信有3 种数据传送形式单工方式:数据传送是单向的。半双工方式:数据传送是双向的,在同一时间只能做一个方向的传送。全双工方式:数据传送是双向的,即可同时发送,又可同时接收。图 6-2 串行通信数据传送3 种形式64 何谓波特率?某异步通信,串行口每秒传送250 个字符,每个字符由11 位组成,其波特率应为多少?答:波特率表示每秒传输的二进制数据位数。Fb112502750 其波特率应为2750bps。起始位D0D1D2D3D4D5D6D7奇偶校验位停止位65 MCS-51 单片机串行口有几种工作模式?如何选择?简述其特点,并说明这几种工作模式各用于什么场合?答:MCS-51 单片机串行口有4 种工作模式,由串行控制寄存器SCON 中的 SM0、SM1 两位组合来确定。模式 0 是同步位移寄存器方式,用于I/O 口的串、并转换。模式 1 是 8 位异步通信方式,桢格式10 位,波特率可变,用于双机通信。模式 2 是 9 位异步通信方式,桢格式11 位,波特率固定,用于多机通信。模式 3 是 9 位异步通信方式,桢格式11 位,波特率可变,用于多机远距离通信。模式 1、2、3 的区别主要表现在桢格式和波特率两个方面。66 MCS-51 单片机 4 种工作模式的波特率如何确定?答:模式 0 的波特率固定:fosc/12 模式 2 的波特率固定:fosc/n(n=64 或 32)模式 1、3 的波特率可变:T1 溢出率/n(n=32 或 16)610 设计一个MCS-51 单片机的双机通信系统,并编写程序将甲机片外RAM 2200H2250H 的数据块通过串行口传送到乙机的片外RAM1400H 1450H 单元中。要求串行口工作在模式2,系统晶振为6 MHz,传送时进行奇校验;若出错,置F0 标志为 1。答:串行口工作在模式2,确定SMOD 1。未规定波特率,定时器初值任取,但两机要保持一致。甲机发送子程序:TXDA:MOV TMOD,#20H;置 T1 定时器工作方式2 MOV TL1,#0FDH;置初值MOV TH1,#0FDH;置初值 SETB TR1;启动 T1MOV SCON,#90H;置串口方式2,允许接收,且SM2=0MOV PCON,#80H;置SMOD=1(SMOD 不能位操作)CLR ES;禁止串行中断MOV DPTR,#2200H;指发送数据区首地址MOV R2,#51H;指发送数据长度TRSA:MOVX A,DPTR;读一个数据 MOV C,PMOV TB8,C;置校验位MOV SBUF,A;发送JNB TI,$;等待一桢数据发送完毕CLR TI;清发送中断标志INC DPTR;指向下一字节单元DJNZ R2,TRSA;判数据发完否?未完继续RET;乙机接收子程序:RXDB:MOV TMOD,#20H;置 T1 定时器工作方式2 MOV TL1,#0FDH;置初值MOV TH1,#0FDH;置初值 SETB TR1;启动 T1MOV SCON,#90H;置串行方式2,允许接收,且SM2=0MOV PCON,#80H;置SMOD=1(SMOD 不能位操作)CLR ES;禁止串行中断MOV DPTR,#1400H;置接收数据区首地址MOV R2,#51H;置接收数据长度SETB REN;启动接收SETB F0 ;先置出错标志F0 为 1。RDSB:JNB RI,$;等待一桢数据接收完毕CLR RI;清接收中断标志MOV A,SBUF;读接收数据MOVX DPTR,A;存接收数据MOV C,RB8ANL C,PJC RDSB2;都是 1,则正确MOV C,RB8ORL C,PJNC RDSB2;都是 0,则正确LJMP RXDBD;出错RDSB2:INC DPTR;指向下一数据存储单元DJNZ R2,RDSB;判数据接收完否?未完继续CLRF0 ;正确接收,则清除出错标志F0 RXDBD:RET;第 7 章中断系统71 MCS-51 系统有几个中断源,各中断标志是如何产生的,又如何清零的?CPU 响应中断时,中断入口地址各是多少?答:MCS-51 系统有、T0、T1 和串行口共五个中断源;和的中断标志是IE0 和 IE1,在电平方式下,当外部中断输入信号是低电平时,由硬件置 1;在边沿方式下,当外部中断输入信号是下降沿时,由硬件置1;定时计数器溢出中断 T0 和 T1 的中断标志位是TF0 和 TF1,当定时/计数器产生溢出时,该位由硬件置1;串行口中断标志是TI 或 RI,当单片机接收到或发送完一帧数据后,由硬件置1。外部中断和的电平方式,无法清除,需采取硬件和软件相结合的方法来清除;边沿方式,在 CPU响应中断后自动清除;定时/计数器 0 和 1 的溢出中断,在CPU响应中断后自动清除;串行口中断(包括串行接收中断RI 和串行发送中断TI),由软件清零。、T0、T1 和串行口中断5 个中断源分别对应的中断入口地址是:0003H、000BH、0013H、001BH、0023H。72 MCS-51 的中断系统有几个中断优先级?中断优先级是如何控制的?答:MCS-51 的中断系统有两个中断优先级:高优先级和低优先级。中断优先级的控制方式是:高优先级中断可以中断正在响应的低优先级中断,反之则不能。优先级中断不能互相中断。即某个中断(不论是高优先级或低优先级)一旦得到响应,与其同级的中断就不能再中断它。同一中断优先级中优先权由高到低的次序是、T0、T1 和串行口中断,若有多个中断源同时请求中断,CPU 将先响应优先权高的中断,后响应优先权低的中断。通过中断优先级控制寄存器IP 可以选择5 个中断源的优先级别73 MCS-51 有几个中断标志位?它们有什么相同之处,又有什么不同的地方?答:MCS-51 有 IE0、TF0、IE1、TF1、TI 和 RI 共 6 个中断标志位。相同之处是这些中断标志位都是由硬件自动产生的,不同之处是外部中断和计数/定时器中断标志的清零是由硬件自动完成的,而串行口中断标志(TI、RI)不会自动清除,必须由用户在串行中断服务程序中用指令对TI 或 RI 清。74 试编程实现,将设为高优先级中断,且为电平触发方式,T0 溢出中断设为低优先级中断,串行口中断为高优先级中断,其余中断源设为禁止状态。答:MOV IE,#10010110B ;T0、串行口允许中断MOV IP,#00010100B ;和串行口中断为高优先级CLR IT1 ;电平触发方式75 如何将定时器中断扩展为外部中断源?答:(1)置定时/计数器为工作模式2,且为计数方式,即8 位的自动装载方式;(2)定时/计数器的高8 位和低 8 位初值都预置0FFH;(3)将定时/计数器的计数输入端(P3.3、P3.4)作为扩展的外部中断请求输入;(4)在相应的中断服务程序入口开始存放外中断服务的中断服务程序。78 试用中断技术设计一个秒闪电路,其功能是发光二级管LED 每秒闪亮 400ms。主机频率为6MHz。答:主机频率6MHz,定时器最大定时130 ms 左右,取 100 ms 为定时时间单位,高电平包含 6 个单位,低电平包含4 个单位,共10 个单位。选用定时器T0 模式 1,初值:P1.7 驱动发光二极管,R7作时间单位计数器。电路如图7-1。电路中7404 是反向器,P1.7 输出高电平,灯不亮。编程:ORG 0000H;复位地址LJMP STAT;转初始化程序ORG 000BH;T0 中断服务程序LJMP PT0;转 T0 中断服务程序ORG 1000H;初始化程序首地址STAT:CLR P1.7;输出低电平MOV TMOD,#01H;置 T0定时器方式1MOV TH0,#3CH;置 T0初值,定时 100 msMOV TL0,#0B0H;置 T0初值,定时100 msSETB TR0,;T0 启动MOV R7,#10;计数器置初值MOV IE,#10000010B;T0开中LJMP$;等待中断PT0:CJNE R7,#10,PT02 SETB P1.7;计 数 器 值10 5 时,灯灭 LJMP PT04 PT02:CJNE R7,#4,PT04 CLR P1.7;计数器值41时,灯亮PT04:DJNZ R7,PT0D MOV R7,#10;计数器置初值PT0D:RETI ;中断返回第 8 章 MCS-51 单片机的系统扩展81 在 MCS-51 扩展系统中,程序存储器和数据存储器共用16 位地址线和8 位数据线,为什么两个存储空间不会发生冲突?答:程序存储器和数据存储器虽然共用16 位地址线和8 位数据线,但数据存储器的读和写由和信号控制,程序存储器由读选通信号控制,两者虽然共处同一地址空间,但由于控制信号不同,故不会发生总线冲突。82 MCS-51 单片机的寻址围是多少?8031 单片机可以配置的存储器最大容量是多少?而用户可以使用的最大容量又是多少答:MCS-51 单片机的寻址围是64KB,既 0000HFFFFH;8031 单片机可以配置的存储器最大容量:程序存储器64KB;片外数据存储器64KB;用户可以使用的最大容量是:64KB ROM、64KBRAM、128B 片 RAM 及 SFR。83 为什么单片机外扩存储器时,P0 口要外接锁存器,而P2 口却不接?答:单片机外扩存储器时,P0 口要外接锁存器,是因为P0 口是分时提供低8 位地址和数据信息的,为避免低8 位地址信息丢失,所以P0 口要外接锁存器;而P2 口不具备分时、复用功能,所以不用外接锁存器。84程序存储器和数据存储器的扩展有何相同点及不同点?试将8031 芯片外接一片2732EPROM 和一片 6116RAM 组成一个扩展系统,画出连接的逻辑图。答:程序存储器和数据存储器的扩展相同点是:由P2 口提供高 8 位地址,P0 口分时提供低8 位地址和8 位双向数据