《单片机原理与接口技术(修订本)》部分习题与参考答案_第1页
《单片机原理与接口技术(修订本)》部分习题与参考答案_第2页
《单片机原理与接口技术(修订本)》部分习题与参考答案_第3页
《单片机原理与接口技术(修订本)》部分习题与参考答案_第4页
《单片机原理与接口技术(修订本)》部分习题与参考答案_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机原理及接口技术(修订本)部分习题与参考答案第1章绪论1-2什么叫单片机?一个完整的单片机芯片至少有哪些部件?答:将微处理器(CPU)、存储器、定时川数器及输入输出接口电路等部件集成在一块集成电路上,称为单片微型计算机,简称单片机。一个完整的单片机芯片至少有中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、定时用数器及W接口等部件。1-5Intel公司的主要单片机产品分为哪几大系列?各系列的区别何在?答:皿归1公司的MCSY8系列、MCS-51系列、MCSF6系列产品;48系列的单片机在片内集成4位CPU,片内含有多种W接口,有的根据不同用途还配有许多专用接口,价格便宜,控

2、制功能强。51系列的单片机在片内集成8位CPU、片内RAM为128字节,ROM为4K字节,4个并行W口、2个16位定时/H数器、串行接口、5个中断源。96系列单片机CPU为16位,片内RAM为232字节,ROM为8K字节,片内带有高速输入输出部件,多通道10位A/D转换部件,中断处理为8级。1-6叙述51子系列与52子系列的区别?答:51子系列包含8031/8051启751三种型号,它们的基本组成、基本性能都相同,都具有一个8位CPU、片内数据存储器RAM128B、2个16位定时/计数器、有5个中断源,一个全双工串行接口,它们之间的区别在于片内程序存储器配置:8031片内没有ROM,使用时需在

3、片外接EPROMo8051片内含有4KB的掩模ROM,其中的程序是生产厂家制作芯片时烧制的。8751片内含有4KB的EPROM,用户可以先用紫外线擦除器擦除,然后再利用开发机或编程器写入新的程序。52子系列包含8032/8052府752三种型号,52子系列与51子系列的区别在于:片内ROM和RAM的容量比8051子系列各增加一倍,另外,增加了一个定时豺数器和一个中断源。第2章MCST1系列单片机的结构及原理2-2MCST1单片机的正引脚有何功能?在使用8031时正如何接法?使用8751时正如何接法?答:豆引脚是片内外程序存储器的选择信号。当淳端保持高电平时,访问内部程序存储器,但在PC(程序计

4、数器)值超过OFFFH(对于8051/8751/80C51)或1FFFH(对于8052)时,将自动转向访问外部程序存储器。当盒端保持低电平时,不管是否有内部程序存储器,则只访问外部程序存储器。_由于8031片内没有程序存储器,所以在使用8031时,福引脚必须接低电平。2-4MCS节1单片机的内部存储空间是怎样分配的?答:MCS-51单片机的内部存储空间分为数据存储器和程序存储器。内部数据存储器:共256字节单元,包括低128个单元和高128个单元。低128字节又分成3个区域:工作寄存器区(00H1FH),位寻址区(20H2FH)和用户RAM区(30H7FH)。高128字节是供给特殊功能寄存器使

5、用的,因此称之为特殊功能寄存器区。内部程序存储器:在8031片内无程序存储器,8051片内具有4KB掩模ROM,8751片内具有4KBEPR0Mo2-5如何从MCS巧1单片机的4个工作寄存器组中选择当前工作寄存器组?答:MCS51单片机提供了4组工作寄存器,对于当前工作寄存器组的选择,是通过PSW中的RS1和RSO来进行选择。具体关系如下表:RS1RSO当前寄存器组00第0组工作寄存器01第1组工作寄存器10第2组工作寄存器11第3组工作寄存器2-6内部RAM低128个单元是如何划分的?答:内部RAM低128个单元按用途分成3个区域:工作寄存器区(OOH'IFH),位寻址区(20H2F

6、H)和用户RAM区(30H、7FH)。2-7DPTR是什么寄存器?它的作用是什么?它由哪几个寄存器组成?答:DPTR是数据指针寄存器,是一个16位寄存器,用来存放16位存储器的地址,以便对外部数据存储器RAM中的数据进行操作。DPTR由高位字节DPH和低位字节DPL组成。2-8什么是堆栈?堆栈有何作用?为什么在程序初始化时要对SP重新赋值?答:所谓堆栈,顾名思义就是一种以“堆”的方式工作的“栈”。堆栈是在内存中专门开辟出来的按照“先进后出,后进先出”的原则进行存取的RAM区域。堆栈的用途是保护现场和断点地址。在8051单片机复位后,堆栈指针SP总是初始化到内部RAM地址07H。从08H开始就是

7、8051的堆栈区,这个位置与工作寄存器组1的位置相同。因此,在实际应用中,通常要根据需要在程序初始化时对SP重新赋值,以改变堆栈的位置。2-9试述程序状态字寄存器PSW各位的含义。答:程序状态字寄存器PSW是8位寄存器,用于存放程序运行的状态信息。CY(PSW.7):进位标志位。AC(PSW.6):辅助进位标志位。F0(PSW.5)、Fl(PSW.1):用户标志位。RSI(PSW.4)、RSO(PSW.3):工作寄存器组选择位。0V(PSW.2):溢出标志位。P(PSW.0):奇偶标志位。2-10P0、Pl、P2、P3口的结构有何不同?使用时要注意什么?各口都有什么用途?答:P0口由一个所存器

8、、两个三态输入缓冲器、场效应管、控制与门、反相器和转换开关组成;作为输出口时,必须外接上拉电阻才能有高电平输出,作为输入口时,必须先向锁存器写“1”;作为普通W口使用或低8位地址徵据总线使用。P1口内没有转换开关,但有上拉电阻;只用作普通W口使用。P2口比P1口多了一个转换控制开关;作为普通I/O口使用或高8位地址线使用。P3口比P1口增加了与非门和缓冲器;具有准双向/0功能和第二功能。上述4个端口在作为输入口使用时,应注意必须先向端口写“1”。2-11请说出指令周期、机器周期、状态和拍的概念。当晶振频率为12MHz、8MHz时,一个机器周期为多少微秒?答:指令周期:执行一条指令所需要的时间。

9、机器周期:CPU完成一个基本操作所需要的时间。状态:振荡脉冲经过二分频后,得到的单片机的时钟信号。拍:振荡脉冲的周期。当晶振频率为12MHz时,一个机器周期为1HS;当晶振频率为8MHz时,一个机器周期为3USo2-12什么是单片机复位?复位后单片机的状态如何?答:在时钟电路工作后,只要在单片机的RESET引脚上出现24个时钟震荡脉冲(两个机器周期)以上的高电平,单片机就能实现复位。复位后,CPU和系统都处于一个确定的初始状态,在这种状态下,所有的专用寄存器都被赋予默认值,除SP=07H,P0、P3口为FFH外,其余寄存器均为0。第3章MCST1系列单片机的指令系统3-3MCS节1系列单片机有

10、哪几种寻址方式?各种寻址方式所对应的寄存器或存储器寻址空间如何?答:MCS51系列单片机提供了7种寻址方式:(1)立即寻址:操作数在指令中直接给出,立即数前面有“。(2)直接寻址:在指令中直接给出操作数地址。对应片内低128个字节单元和特殊功能寄存器。(3)寄存器寻址:以寄存器的内容作为操作数。对应的寄存器有:R0'R7、A、AB寄存器和数据指针DPTRo(4)寄存器间接寻址:以寄存器的内容作为RAM地址,该地址中的内容才是操作数。对应片内RAM的低128个单元采用RO、R1作为间址寄存器,片外RAM低256个单元可用RO、R1作为间址寄存器,整个64KB空间可用DPTR作为间址寄存器

11、。(5)变址寻址:以DPTR或PC作为基址寄存器,以累加器A作为变址寄存器,并以两者内容相加形成的16位地址作为操作数地址。对应片内、片外的ROM空间。(6)相对寻址:只在相对转移指令中使用。对应片内、片外的ROM空间。(7)位寻址:对可寻址的位单独进行操作。对应位寻址区20H、2FH单元的128位和字节地址能被8整除的特殊功能寄存器的相应位。3-4若访问特殊功能寄存器,可使用那些寻址方式?答:直接寻址方式。3-5若访问外部RAM单元,可使用那些寻址方式?答:寄存器间接寻址方式。3-6若访问内部RAM单元,可使用那些寻址方式?答:立即寻址方式,直接寻址方式,寄存器寻址方式,寄存器间接寻址方式,

12、位寻址方式。3-7若访问内外程序存储器,可使用那些寻址方式?3-9外部数据传送指令有几条?试比较下面每一组中两条指令的区别。(1) M0VXA,RI,M0VXA,DPTR(2) M0VXA,DPTR,MOVXDPTR,A(3) MOV RO , AM 0 VX RO, A(4)MOVCA,A+DPTR,MOVXA,DPTR答:外部数据传送指令有6条:MOVXA,©DPTRMOVXDPTR,AMOVXA,©RiMOVX©Ri,AMOVCA,©A+DPTRMOVCA,A+PC(1)MOVXA,RIMOVXA,DPTR都是访问片外RAM,但二者寻址范围不同。前

13、1条指令是对片外RAM低256个单元的“读”操作。后1条指令是对片夕卜RAM64KB空间的“读”操作。(2) M0VXA,DPTRMOVXDPTR,A访问空间相同,但数据传送方向不同。前1条指令是对片外RAM64KB空间的“读”操作。后1条指令是对片夕卜RAM64KB空间的“写”操作。(3) MOVRO,AMOVXRO,A二者访问的空间不同。前1条指令是对片内RAM低128个单元的“写”操作。后1条指令是对片外RAM低256个单元的“写”操作。(4)MOVCA,A+DPTRMOVXA,DPTR二者访问的空间不同,寻址方式不同。前1条指令是变址寻址方式,对ROM操作。后1条指令是寄存器间接寻址方

14、式,对片外RAM操作。3-10已知(30H)二40H,(40H)二10H,程序段后有关单元的内容。(10H)二32H,(Pl)二EFH,试写出执行以下MOVRO,#30HMOVA,ROMOVRI,AMOVB,RIMOVRI,PlMOVP2,PlMOV10H,#20HMOV30H,10H答:RO-30H,(RO)二30HA-(RO),(A)二40HRI-(A),(RI)二40HB-(RI),(B)二10H(RI)-(Pl),(RI)二(40H)=EFHP2-(Pl),(P2)二EFH10H-20H,(10H)二20H30H-(10H),(30H)二20H结果:(R0)=30H,(A)二40H,(

15、RI)=40H,(B)=10H,二EFH,(10H)二20H,(30H)二20H40H)=EFH,(P2)3-11试写出完成以下数据传送的的指令序列。(1)R1的内容传送R0;(2)片外RAM60H单元的内容送入R0;(3)片外RAM60H单元的内容送入片内RAM40H单元;(4)片外RAM1000H单元的内容送入片外RAM40H单元;(5) ROM2000H单元的内容送入R2;(6) ROM2000H单元的内容送入片内RAM40H单元;(7) ROM2000H单元的内容送入片外RAM0200H单元。答:(1)由于在工作寄存器与工作寄存器之间不能直接传送数据,所以需要借助累加器AoM0VA,R

16、1Ao由于片外(2)片外RAM向片内RAM传送数据,不能直接进行,需要借助累加器RAM是60H单元,地址小于FFH,所以间址寄存器使用Ri即可。#60HMOVR1M0VXAMOVRO3) MOVRI#60HM 0 VX A DPTRM0VXAMOV40H4)片外数据不能直接送入片外单元,需要先将片外数据读入累加器,然后再送到片外。MOVDPTR,#1000HM 0 VX DPTRMOVRI,#40HM0VX(5) ROM中的数据需要使用查表指令才能读出来,所以此题不能使用一般的传送指令从ROM中读数据。MOVDPTR#2000HMOV#00HM 0 VC A+DPTRMOVR2(6) MOV

17、DPTR ,#2000HMOV A#00HMOVC A A+DPTRMOV40H(7)MOVDPTR,#2000HMOVC#00HMOVA+DPTRMOVDPTR#0200HM0VXDPTR3-12试编程,将外部RAM1000H单元中的数据与内部RAM60H单元中的数据相互交换。答:片外RAM与片内交换需要使用数据交换指令RAM之间的数据传送不能直接进行,需要借助累加器XCHoMOVDPTR,#1000HAo数据XCHA,60HM0VXDPTR,A3-14已知(A)二5BH,(RI)二40H,执行结果,并说明程序状态字的状态。(1)XCHA,R1(3)XCHA,R1(5)SWAP(7)ADD(

18、9)ADDCA,AA,40H40H(40H)=C3H,(PSW)=81H,试写出各条指令的(2)XCHA,40H(4)XCHDA,RI(6)ADDA,RI(8)ADDA,#40H(10)SUBBA,40H(11)SUBBA,#40H答:(1)(2)结果:结果:A)A)40H),二80H(3)结果:(4)结果:(PSW)=80H(A)二40H,RI)二5BH,(PSW)二81H(40H)=5BH,(PSW)二80H(A)一(R1),(A)=C3H,(RI)=(40H)=5BH,(PSW)(A)03(RI)03,(A)=53H,(R1)二(40H)=CBH,(5)(6)结果:结果:(A)03A-(

19、A)一(A)C,(A)=B5H,(PSW)二81H+(RI),(A)=9BH,(PSW)二05H(7)结果:A-(A)+(40H),(A)=1EH,(PSW)=80H(8)结果:ATA)+40H,(A)=9BH,(PSW)=05H(9)结果:A-(A)+(40H)+CY,(A)=1FH,(PSW)二81H(10)结果:(11)结果:A-(A)A-(A)3-26已知(A)=5BH,-(40H)-CY,(PSW)二85H-40H-CY,(RI)二40H令的执行结果,并说明程序状态字的状态。(1)XCHA,RI(A)=1AH,(PSW)(40H)=C3H,=01H(PSW)二81H,试写出各条指(2

20、)XCHA,40H(3)(5)XCHR1(7)(9)(11)答:指令LJMP指令AJMPSWAPADDADDCSUBBaddrl6addrl1(4)XCHDA,RI6)ADDA,RIA,A,40H40H#40H是长转移指令,是绝对转移指令,(8)ADDA,#40H(10)SUBBA,40H指令中提供了16位目的地址,寻址范围是64KBo指令中11位目的地址,其中a7、a0在第二字节,al0"a8则占据第一字节的高3位,寻址范围是与PC当前值(本指令所在地址+本条指令所占用的字节数2)在同一个2K的区域内。3-27试分析以下两段程序中各条指令的作用。程序执行完将转向何处?(1)M0VP

21、l,#0CAHM0VA,#56HJBPl.2,LIJNBACC.3,L2LI:L2:;(2)M0VA,#43HJBACC.2,LIJBCACC.6,L2LI:;L2:;(1)MOV Pl,#0CAHMOVA,#56HJBPl.2,LIJNBACC.3,L2;Pl-CAH,Pl=CAH=11001010B;A-56H,A=56H=O1O1O11OB;若P1.2=1,则转移至LI;若ACC.3=0,则转移至L2LI:L2:执行完本段程序后将转移至L2,因为P1.2=0,ACC.3=0,所以转至L2。(2)MOVA,#43HJBACC.2,LIJBCACC.6,L2清零;A-43H,A=43H=01

22、000011B;ACC.2=1,则转移至LI;SACC.6=1,则转移至L2,同时将ACC.6L1:L2:执行完本段程序后将转移至清零。L2,因为ACC.2=0,ACC.6=1,所以转至L2,并且将ACC.6第4章汇编语言程序设计4-3存放在内部RAM的DATA单元中的变量X是一个无符号整数,试编程计算下面函数的函数值并存放到内部RAM的FUNC单元中。2X(X<20)Y=!5X(20<X<50)X(X>50)ORGMOVCJNELOP1:JCCJNELOP2:JCMOVLJMPLOP3:MOV0300HAALOP3ALOP4BLOP5B,DATA,#20,L0P1,#

23、50,L0P2,#1#2LJMPLOP5L0P4:MOVB,#5L0P5:MULABMOVFUNC,ARET4-5某单片机应用系统有4X4键盘,经键盘扫描程序得到被按键的键值(00HOFH)存放在R2中,16个键的键处理程序入口地址分别为KEYO、KEY1、KEY2、,、KEY15。试编程实现,根据被按键的键值,转对应的键处理程序。答:ORG0500HMOVDPTR,#JPTABMOVA,R2RLAJMPA+DPTRJPTAB:AJMPKEYOAJMPKEY1AJMPKEY2AJMPKEY15KEYO:KEY1:KEY2:KEY15:4-6试编程将片内区中。答:ORG0600H40H60H单元

24、中内容传送到外部RAM以2000H为首地址的存储MOVR0MOVDPTRMOVR7LOOP:MOVAMOVXDPTRINCROINCDPTRDJNZR7RET4-7试编程将片内区中。,#40H,#2000H,#21H,RO,A,LOOP40H60H单元中内容传送到外部RAM以2000H为首地址的存储答:ORG0700HMOVDPTRMOVR7LOOP:MOVXAORLAMOVXDPTRINCDPTRDJNZR7,#DATA,#10,DPTR,#80H,A,LOOPRET4-8编写程序将外部30H开始的区域。答:ORG0800HMOVDPTRMOVROMOVR7LOOP:MOVXAMOVROIN

25、CDPTRINCDPTRINCRODJNZR7RAM3000H开始的,#3000H,#30H,#7,DPTR,A,LOOPRET13个单元中的数据隔一个传送到内部RAM4-9编程将片外RAM地址为1000H1030H的数据块,全部搬迁到片内RAM30H60H中,并将原数据区全部清Oo答:ORG0900HMOVDPTR,#1000HMOVRI,#30HMOVR7,#31HLOOP:M0VXA,DPTRMOVR1,ACLRAM0VXDPTR,AINCDPTRINCRIDJNZR7,LOOPRET4-10试编程把长度为10H的字符串从内部RAM首地址为DAT1的存储器中向外部RAM首地址为DAT2的

26、存储器进行传送,一直进行到遇见字符CR或整个字符串传送完毕结束。答:ORGOAOOHMOVRI,#DAT1MOVDPTR,#DAT2MOVR6,#10HLOOPl:MOVA,©RICJNEA,#ODH,L00P2LJMPL00P3L00P2:MOVXDPTR,AINCRIINCDPTRDJNZR6,LOOPlL00P3:RET4-18设在外部RAM2000H2004H单元中,存放有5个压缩BCD码,试编程将它们转换成ASCII码,存放到以2005H单元为首地址的存储区中。答:ORG1200HMOVDPTR,#2000HMOVRO,#30HMOVR7,#5L0P1:MOVXA,DPTR

27、ANLA,#OFHADDA,#30HMOVRO,AINCROMOVXA,DPTRANLA,#OFOHSWAPAADDA,#30HMOVR0,AINCROINCDPTRDJNZR7,LOP1MOVDPTR,#2005HMOVRO,#30HMOVR7,#10L0P2:MOVA,©ROMOVXDPTR,AINCROINCDPTRDJNZR7,L0P2RET224-20已知内部RAM30H和40H单元分别存放着一个数a、b,试编写程序计算a-b,并将结果送入30H单元。设a、b均是小于10的数。答:ORG1400H,40H,A,A,30H,A,31HMOVAMOVBMULABMOV31HMO

28、VAMOVBMULABCLRCSUBBAMOV30H,ARET4-21根据题3-22的线路图(图3-10),设计灯亮移位程序,要求8个发光二极管每次亮一个,点亮时间为40ms。顺次一个一个地循环右移点亮,循环不止。答:ORG1500HMOVA,#80HLOOP:MOVPl,ALCALLDELRRASJMPLOOPDEL:MOVR7,#100DELI:MOVR6,#198DJNZR6,$DJNZR7,DELIRETRET第5章定时豺数器5-151系列单片机的内部设有几个定时A十数器?有哪几种工作方式?由哪位选择?不同方式下,脉冲来源是否一样?答:51系列单片机的内部设有两个定时豺数器。分别有两种

29、工作方式:定时器方式和计数器方式。由TMOD(定时器模式控制寄存器)中的控制位C厅进行选择。定时器方式的脉冲来自于内部时钟脉冲,每个机器周期是计数器的值增1;计数器方式的脉冲来自于外部输入引脚TO(P3.4)或Tl(P3.5)o5-251系列单片机的定时/H数器有哪几种工作模式?各有什么特点?答:51系列单片机的定时/计数器有四种工作模式。分别由TMOD中的Ml和M0进行选择。特点如下:M1M000模式0。TLX中低5位与THX中的8位构成13位计数将。计满溢出时,13位计数器回零。01模式1。TLX与THX构成16位计数器。计满溢出时,16位计数器回零。10模式2。8位自动重装载的定时/计数

30、器,每当计数器TLX溢出时,THX中的内容重新装载到TLX中°11模式3;对定时器0,分成2个8位计数器,对丁定时器1,停止计数。5-351系列单片机的T0和T1在模式0中,都使用了计数器的哪些位?答:51系列单片机的T0和T1在模式0中,使用了TLX中低5位与THX中的8位构成13位计数器,TLX中的高3位弃之未用。5-451系列单片机的T0和T1在模式3时有何不同?答:对于T1,设置为模式3,将使它停止计数并保持原有的计数值,其作用如同使TR1=O,因此,没有什么实质意义。对于T0,设置为模式3时,16位计数器被分成两个互相独立的8位计数器TLO和THO,其中TLO利用了定时田数

31、器0本身的一些控制位:。厅、GATE、TRO、而和TFOo它既可以按照计数方式工作,也可以按照定时方式工作。而THO被规定只可用作定时器方式,借用了T1的控制位TR1和TF1。5-5试问当(TM0D)=27H时,是怎样定义T0和T1的?答:(TMOD)二27H=00100111B此时,T1工作于模式2,定时方式(即波特率发生器方式)。T1工作于模式3,TLO和THO同为计数方式。5-6系统复位后执行下述指令,试问T0的定时时间为多长?MOVTHO,#06HMOVTLO,#00HSETBTRO答:单片机系统复位后(TMOD)=00H,即TO工作在模式0,使用的是TLO的低5位和THO构成13位定

32、时小十数器,由于(THO)二06H,(TLO)二OOH,所以定时的初值为:X=0000011000000B=192假设系统晶振频率为6MHz,机器周期T=2us,则定时时间为:定时值二(M十)T二(213-192)X2ns=16000us=16nls5-7已知51系列单片机的系统晶振频率为 脉冲。答:ORG 0000HLJMP STARTORG 0200H6MH z,请利用定时器T 1和PL2输出矩形START:MOVTMOD,#20HMOVTL1,#231SETBTRILOOP:SETBPl.2MOVTH1,#81LOP1:JBCTF1,LOP2SJMPLOP1LOP2:CLRPl.2MOV

33、TH1,#231LOP3:JBCTF1,LOOPSJMPLOP3END第6章串行接口6.1并行通信和串行通信各有什么特点?它们分别适用于什么场合?答:计算机与外界信息交换的基本方式可分为并行通信与串行通信:并行通信是数据的各位同时传送,并行通信的特点是传送速度快,但不适用长距离传输;串行通信是数据的各位依次逐位传送,串行通信的特点是传送速度较慢,但传输距离较长。并行通信适合近距离的CPU之间或设备之间快速进行数据交换;串行通信适合长距离的CPU之间或设备之间进行数据交换,或近距离的慢速数据交换。6.2什么是串行异步通信?它有哪些特点?串行异步通信的数据帧格式是怎样的?答:异步通信依靠起始位、停

34、止位、保持通信同步。特点是数据在线路上的传送不连续,传送时,字符间隔不固定,各个字符可以是连续传送,也可以间断传送,这完全取决于通信协议或约定。串行异步通信的数据帧格式如图6-1:一位起始位“0”电平;其后是5位、6位、7位或8位数据起始位DODD2D3)4D5D6D7彳偶校!佥位|停止位位,低位在前,高位在后;后面是一位奇偶校验位;最后是停止位“1”电平。图6-1异步通信的数据帧格式6.3串行通行有哪几种数据传送形式,试举例说明。答:串行通信有3种数据传送形式单工方式:数据传送是单向的。半双工方式:数据传送是双向的,在同一时间只能做一个方向的传送。全双工方式:数据传送是双向的,即可同时发送,

35、又可同时接收。AB ABA单工方式b半双工方式|图6f串行通信数据传送A|B|Joc全双工方式6. 4何谓波特率?某异步通信,串行口每秒传送 波特率应为多少?答:波特率表示每秒传输的二进制数据位数。250个字符,每个字符由11位组成,其3种形式Fb=11X250=2750其波特率应为2750bps。6.5MCS节1单片机串行口有几种工作模式?如何选择?简述其特点,并说明这几种工作模式各用于什么场合?SCON 中的 SM 0、SM 1 两答:MCS节1单片机串行口有4种工作模式,由串行控制寄存器位组合来确定。模式0是同步位移寄存器方式,用于 模式1是8位异步通信方式,桢格式 模式2是9位异步通信

36、方式,桢格式 模式3是9位异步通信方式,桢格式I/O101111口的串、并转换。 位,波特率可变, 位,波特率固定, 位,波特率可变,用于双机通信。用于多机通信。用于多机远距离通信。模式1、2、3的区别主要表现在桢格式和波特率两个方面。6. 6MCS节1单片机4种工作模式的波特率如何确定?答:模式0的波特率固定:fosc42模式2的波特率固定:鱼sc/h(n=64或32)模式1、3的波特率可变:T1溢出率/h(n=32或16)6. 10设计一个MCS节1单片机的双机通信系统,并编写程序将甲机片外RAM2200H2250H的数据块通过串行口传送到乙机的片外RAM1400H1450H单元中。要求串

37、行口工作在模式2,系统晶振为6MHz,传送时进行奇校验;若出错,置F0标志为lo答:串行口工作在模式2,确定SM0D=lo未规定波特率,定时器初值任取,但两机要保持一致。甲机发送子程序:TXDA:MOVTM0D,#20H;置TI定时器工作方式2MOVTL1,#OFDH;置初值MOVTH1,#0FDH;置初值SETBTRI;启动T1MOVSCON,#90H;置串口方式2,允许接收,且SM2=0MOVPCON,#80H;置SMOD二1(SMOD不能位操作)CLRES;禁止串行中断MOVDPTR,#2200H;指发送数据区首地址MOVR2,#51H;指发送数据长度TRSA:MOVXA,DPTR;读一

38、个数据MOVC,PMOVTB8,C;置校验位MOVSBUF,A;发送JNBTI,$;等待一桢数据发送完毕CLRTI;清发送中断标志INC DPTRD JNZ R2 , TRSA;指向下一字节单元;判数据发完否?未完继续RET乙机接收子程序:RXDB: MOVTM 0D ,#20HMOVTL1,#0FDHMOVTH1,#0FDHSETBTRIMOVSCON ,#90HMOVPCON ,#80HCLRESMOVDPTR ,#1400HMOVR2,#51HSETBRENSETBF0RDSB: JNBRI,$CLRRIMOVA,SBUFMOVX DPTR ,AMOVC,RB8ANLC,PJCRDSB2

39、MOVC,RB8ORLC,PJNCRDSB2LJM PRXDBDRDSB2: INCDPTRDJNZR2,RDSBCLRF0RXDBD: RET;置T1定时器工作方式2;置初值;置初值;启动T1;置串行方式2,允许接收,且SM2=0;置SMOD二1(SMOD不能位操作);禁止串行中断;置接收数据区首地址;置接收数据长度;启动接收;先置出错标志F0为1。;等待一桢数据接收完毕;清接收中断标志;读接收数据;存接收数据;都是1,则正确;都是0,则正确;出错;指向下一数据存储单元;判数据接收完否?未完继续;正确接收,则清除出错标志F0第7章中断系统7. 1MCST1系统有几个中断源,各中断标志是如何产

40、生的,又如何清零的?CPU响应中断时,中断入口地址各是多少?答:MCS节1系统有而5、T0、而、T1和串行口共五个中断源;丽和丽的中断标志是正0和1E1,在电平方式下,当外部中断输入信号是低电平时,由硬件置1;在边沿方式下,当外部中断输入信号是下降沿时,由硬件置1;定时计数器溢出中断T0和T1的中断标志位是TFO和TF1,当定时用一数器产生溢出时,该位由硬件置1;串行口中断标志是TI或RL当单片机接收到或发送完一帧数据后,由硬件置lo外部中断硒和标的电平方式,无法清除,需采取硬件和软件相结合的方法来清除;边沿方式,在CPU响应中断后自动清除;定时/计数器0和1的溢出中断,在CPU响应中断后自动

41、清除;串行口中断(包括串行接收中断RI和串行发送中断TI),由软件清零。而而、TO、布、T1和串行口中断5个中断源分别对应的中断入口地址是:0003H、OOOBH、0013H、OO1BH、0023H。7. 2MCST1的中断系统有几个中断优先级?中断优先级是如何控制的?答:MCS51的中断系统有两个中断优先级:高优先级和低优先级。中断优先级的控制方式是:高优先级中断可以中断正在响应的低优先级中断,反之则不能。优先级中断不能互相中断。即某个中断(不论是高优先级或低优先级)一旦得到响应,与其同级的中断就不能再中断它。同一中断优先级中优先权由高到低的次序是而、TO、丽、T1和串行口中断,若有多个中断

42、源同时请求中断,CPU将先响应优先权高的中断,后响应优先权低的中断。通过中断优先级控制寄存器F可以选择5个中断源的优先级别7. 3MCST1有几个中断标志位?它们有什么相同之处,又有什么不同的地方?答:MCS-51有JEO、TFO、1E1、TFKTI和RI共6个中断标志位。相同之处是这些中断标志位都是由硬件自动产生的,不同之处是外部中断和计数/定时器中断标志的清零是由硬件自动完成的,而串行口中断标志ti、Ri)不会自动清除,必(须由用户在串行中断服务程序中用指令对TI或RI清0。7.4试编程实现,将黄设为高优先级中断,且为电平触发方式,TO溢出中断设为低优先级中断,串行口中断为高优先级中断,其

43、余中断源设为禁止状态。答:MOVE,#10010U0B;TO、而、串行口允许中断MOVF,#00010100B;同和串行口中断为高优先级CLRE1;布电平触发方式7. 5如何将定时器中断扩展为外部中断源?答:(1)置定时/H数器为工作模式2,且为计数方式,即8位的自动装载方式;(2)定时用数器的高8位和低8位初值都预置OFFH;(3)将定时/I十数器的计数输入端(P3.3、P3.4)作为扩展的外部中断请求输入;(4)在相应的中断服务程序入口开始存放外中断服务的+断服务程序。7. 8试用中断技术设计一个秒闪电路,其功能是发光二级管LED每秒闪亮400nls。主机频率为6MHzo答:主机频率6MH

44、z,定时器最大定时130nls左右,取100ms为定时时间单位,高电平包含6个单位,低电平包含4个单位,共10个单位。选用定时器T0模式1,初值:100X103x=65536=15536=3CB0H2P1.7驱动发光二极管,R7作时间单位计数器。电路如图7-1o电路中7404是反向器,P1.7输出高电平,灯不亮。P1.7400ins SOOm5图7-1 Pl门驱动发光二极苜电路编程:ORG0000HLJMPSTATORGOOOBHLJMPPTOORG1000HSTAT: CLRPl.7MOVTM OD#01HMOVTHO#3CHMOVTLO#OBOHSETBTROMOVR7#10MOV#100

45、00010BLJMPPTO: C JNER7#10, PT02SETB Pl.7;复位地址;转初始化程序;TO中断服务程序;转TO中断服务程序;初始化程序首地址;输出低电平;置TO定时器方式1;置TO初值,定时100 ms;置TO初值,定时100 ms;TO启动;计数器置初值;TO开中;等待中断;计数器值105时,灯灭LJMPPT04PT02: C JNE R7,#4, PT04CLR Pl.7;计数器值41时,灯亮PT04:DJNZR7,PTODMOVR7PTOD :RETI#10;计数器置初值;中断返回第8章MCS-51单片机的系统扩展8. 1在MCST1扩展系统中,程序存储器和数据存储器

46、共用16位地址线和8位数据线,为什么两个存储空间不会发生冲突?答:程序存储器和数据存储器虽然共用16位地址线和8位数据线,但数据存储器的读和写由丽和两信号控制,程序存储器由读选通信号会控制,两者虽然共处同一地址空间,但由于控制信号不同,故不会发生总线冲突。8. 2MCST1单片机的寻址范围是多少?8031单片机可以配置的存储器最大容量是多少?而用户可以使用的最大容量又是多少答:MCS_51单片机的寻址范围是64KB,既0000H'FFFFH;8031单片机可以配置的存储器最大容量:程序存储器64KB;片外数据存储器64KB;用户可以使用的最大容量是:64KBROM、64KBRAM、12

47、8B片内RAM及SFR。8. 3为什么单片机外扩存储器时,P0口要外接锁存器,而P2口却不接?答:单片机外扩存储器时,P0口要外接锁存器,是因为P0口是分时提供低8位地址和数据信息的,为避免低8位地址信息丢失,所以P0口要外接锁存器;而P2口不具备分时、复用功能,所以不用外接锁存器。8.4程序存储器和数据存储器的扩展有何相同点及不同点?试将8031芯片外接一片2732EPR0M和一片6116RAM组成一个扩展系统,画出连接的逻辑图。答:程序存储器和数据存储器的扩展相同点是:由P2口提供高8位地址,P0口分时提供低8位地址和8位双向数据线。程序存储器和数据存储器的扩展不相同点是:数据存储器的读和

48、写由CPU的题和赤信号控制,地址空间任意选取;程序存储器读选信号由CPU的丽控制,程序空间从0000H开始。8031与2732、6116连接的电路图如图8-1o图88031与/32、6116连接的电路图8.5设某一以8031单片机为主的系统,拟采用2片2732AEPR0M芯片,扩展成8KB程序存储器,请设计它的硬件结构图。答:8031单片机与两片2732AEPROM芯片连接如图8-2图蒙22031单片机与两片2732连接的电路图8.6设某一以8031单片机为主的系统,拟扩展4KB数据存储器,请考虑选用合适的RAM芯片,并设计它的硬件结构图。答:静态RAM6116的容量是2KB,选用2片6116

49、可满足扩展要求,8031单片机与2片6116芯片连接如图8-3。1wr40 V«pH Mi>mi小OBi_工黑011上00曹X? UN鼻Flf S.nBdPAii pis制4nlfCit apl?刖 6GSTPA7* Mniac 轴 (BOIIFii/nro ale %?小TD 岗?油一由=ASiry14 1 1riUImiX AS ;IS2J AltWRI UiFUXI 1ri i.*nyiH A14妙23图8-38031与两片6116的连接图8.8用8255芯片扩展单片机的W口,8255的A口用作输入,A口的每一位接一个开关,用B口作为输出,输出的每一位接一个显示发光二极管,现要求某个开关接1时,相应位上的发光二极管就亮(输出为0),试编写相应的程序。答:分析可编程8255的工作状况可知:A口为普通输入,B口普通输出,C口未用,可定义成普通输入,控制字为100U001B,即99H,编程如下:MOVDPTR,#8255命令口MOVA,#99HMOVXLOOP: MOVMOVXCPLDPTR,ADPTR,#8255A口A,DPTRAMOVDPTR,U8255B口MOVXD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论