单片机作业习题答案_第1页
单片机作业习题答案_第2页
单片机作业习题答案_第3页
单片机作业习题答案_第4页
单片机作业习题答案_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、作业习题答案单片机应用技术部分习题与参考答案第1章 单片机概述1-1什么是嵌入式系统?嵌入式系统的硬件和软件各包括哪些内容? 答: 以应用为中心,以计算机技术为基础,软/硬件可剪裁,针对具体应用系统,对功能、可靠性,成本、体积、功耗严格要求的专用计算机系统称为嵌入式计算机系统。简称为嵌入式系统。 嵌入式系统的硬件包括:嵌入式处理器、存储器和外部设备器件、输入输出接口、图形控制器等。软件包括操作系统和应用程序。 嵌入式系统是专用的计算机系统,嵌入式系统的核心是嵌入式处理器,单片机是嵌入式处理器的典型代表。 1-2  什么叫单片机?一个完整的单片机芯片至少有哪些部件?答:将微处理器(CP

2、U)、存储器、定时/计数器及输入输出接口电路等部件集成在一块集成电路上,称为单片微型计算机,简称单片机。一个完整的单片机芯片至少有中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、定时/计数器及I/O接口等部件。1-3嵌入式处理器有何特点?嵌入式处理器分为哪几类?答:嵌入式处理器对实时和多任务系统有和强的支持能力、对存储区保护功能强、具有可扩展的处理器结构及低功耗等特点。 嵌入式处理器分为:嵌入式微处理器、微控制器、嵌入式DSP处理器和片上系统等。1-4 单片机系统的开发过程分为那几步进行?答:1.硬件的设计与调试。2 应用程序的设计和调试。3系统联调。4程序的固化。5.脱机运

3、行。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子系列与5

4、2子系列的区别?答: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

5、子系列各增加一倍,另外,增加了一个定时/计数器和一个中断源。 第2章 MCS-51系列单片机的基本结构2-1  画出微型计算机基本结构框图,简述各部分的基本功能。 答:见教材图2-2。2-2  MCS-51单片机的引脚有何功能?在使用8031时如何接法?使用8751时如何接法?答:引脚是片内外程序存储器的选择信号。当端保持高电平时,访问内部程序存储器,但在PC(程序计数器)值超过0FFFH(对于8051/8751/80C51)或1FFFH(对于8052)时,将自动转向访问外部程序存储器。当端保持低电平时,不管是否有内部程序存储器,则只访问外部程序存储器。由于803

6、1片内没有程序存储器,所以在使用8031时,引脚必须接低电平。2-3 微型计算机的存储器普林斯顿结构和哈弗结构有什么不同?答:按微型计算机的存储器地址空间的不同分配形式分为普林斯顿结构和哈弗结构。普林斯顿结构的特点是计算机只有一个地址空间。CPU访问ROM和RAM采用相同的指令。哈弗结构将ROM和RAM安排在相互独立的两个地址空间,ROM和RAM可以有相同的地址,但采用不同的指令访问。51系列单片机采用哈弗结构。2-4 微型计算机存储器的地址线与存储的容量有什么关系?如果存储器的地址线有13条,则存储的容量为多大?答:存储的容量=2n ,(n: 存储器的地址线的条数)。213=8KB.2-5

7、89C51单片机的存储器从物理结构上分别可划分为几个空间?89C51单片机采用何种方式区分内外程序存储器和内外数据存储器?答:89C51单片机的存储器从物理结构上分别内外程序存储器和内外数据存储器。内外程序存储器采用引脚/EA、/PSEN接到不同的电平区分,内外数据存储器采用引脚/RD、/WR连接和不同的指令加以区分。2-6  MCS-51单片机的内部存储空间是怎样分配的?答:MCS-51单片机的内部存储空间分为数据存储器和程序存储器。内部数据存储器:共256字节单元,包括低128个单元和高128个单元。低128字节又分成3个区域:工作寄存器区(00H1FH),位寻址区(20H2FH

8、)和用户RAM区(30H7FH)。高128字节是供给特殊功能寄存器使用的,因此称之为特殊功能寄存器区。内部程序存储器:在8031片内无程序存储器,8051片内具有4KB掩模ROM,8751片内具有4KBEPROM。2-7  如何从MCS-51单片机的4个工作寄存器组中选择当前工作寄存器组?答:MCS-51单片机提供了4组工作寄存器,对于当前工作寄存器组的选择,是通过PSW中的RS1和RS0来进行选择。具体关系如下表: RS1RS0当前寄存器组00第0组工作寄存器01第1组工作寄存器10第2组工作寄存器11第3组工作寄存器 2-8 内部RAM低128个单元是如何划分

9、的?答:内部RAM低128个单元按用途分成3个区域:工作寄存器区(00H1FH),位寻址区(20H2FH)和用户RAM区(30H7FH)。2-9  DPTR是什么寄存器?它的作用是什么?它由哪几个寄存器组成?答:DPTR是数据指针寄存器,是一个16位寄存器,用来存放16位存储器的地址,以便对外部数据存储器RAM中的数据进行操作。DPTR由高位字节DPH和低位字节DPL组成。2-10 什么是堆栈?堆栈有何作用?为什么在程序初始化时要对SP重新赋值?答:所谓堆栈,顾名思义就是一种以“堆”的方式工作的“栈”。堆栈是在内存中专门开辟出来的按照“先进后出,后进先出”的原则进行存取的RAM区域。

10、堆栈的用途是保护现场和断点地址。在8051单片机复位后,堆栈指针SP总是初始化到内部RAM地址07H。从08H开始就是8051的堆栈区,这个位置与工作寄存器组1的位置相同。因此,在实际应用中,通常要根据需要在程序初始化时对SP重新赋值,以改变堆栈的位置。2-11  试述程序状态字寄存器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

11、(PSW.0):奇偶标志位。2-12  P0、P1、P2、P3口的结构有何不同?使用时要注意什么?各口都有什么用途?答:P0口由一个所存器、两个三态输入缓冲器、场效应管、控制与门、反相器和转换开关组成;作为输出口时,必须外接上拉电阻才能有高电平输出,作为输入口时,必须先向锁存器写“1”;作为普通I/O口使用或低8位地址/数据总线使用。P1口内没有转换开关,但有上拉电阻;只用作普通I/O口使用。P2口比P1口多了一个转换控制开关;作为普通I/O口使用或高8位地址线使用。P3口比P1口增加了与非门和缓冲器;具有准双向I/O功能和第二功能。上述4个端口在作为输入口使用时,应注意必须先向端口

12、写“1”。2-13  请说出指令周期、机器周期、状态和拍的概念。当晶振频率为12MHz、8MHz时,一个机器周期为多少微秒?答:指令周期:执行一条指令所需要的时间。机器周期:CPU完成一个基本操作所需要的时间。状态:振荡脉冲经过二分频后,得到的单片机的时钟信号。拍:振荡脉冲的周期。当晶振频率为12MHz时,一个机器周期为1s;当晶振频率为8MHz时,一个机器周期为1.5s。2-14  什么是单片机复位?复位后单片机的状态如何?答:在时钟电路工作后,只要在单片机的RESET引脚上出现24个时钟震荡脉冲(两个机器周期)以上的高电平,单片机就能实现复位。复位后,CPU和系统都处于

13、一个确定的初始状态,在这种状态下,所有的专用寄存器都被赋予默认值,除SP=07H,P0P3口为FFH外,其余寄存器均为0。程序指针Pc=0000H。 第3章 MCS-51系列单片机的指令系统3-1  MCS-51系列单片机指令格式是怎样的? 各有何含义?答:单片机指令格式由操作码和操作数组成。操作码说明指令操作性质,操作数说明操作对象。3-2 MCS-51系列单片机有哪几种寻址方式?各种寻址方式所对应的寄存器或存储器寻址空间如何?答:MCS-51系列单片机提供了7种寻址方式:(1)立即寻址:操作数在指令中直接给出,立即数前面有“#”。(2)直接寻址:在指令中直接给出操作数地址。对应片

14、内低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

15、)位寻址:对可寻址的位单独进行操作。对应位寻址区20H2FH单元的128位和字节地址能被8整除的特殊功能寄存器的相应位。3-4 若访问特殊功能寄存器,可使用那些寻址方式?答:直接寻址方式。3-5 若访问外部RAM单元,可使用那些寻址方式? 答:寄存器间接寻址方式。3-6 若访问内部RAM单元,可使用那些寻址方式?答:立即寻址方式,直接寻址方式,寄存器寻址方式,寄存器间接寻址方式,位寻址方式。3-7 若访问内外程序存储器,可使用那些寻址方式?答:变址寻址方式3-8 外部数据传送指令有几条?试比较下面每一组中两条指令的区别。(1) MOVX A,R1 , MOVX A,DPTR(2) MOVX A

16、,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,AMOVX A,Ri           MOVX   Ri,AMOVC   A,A+DPTR      MOVC   A,A+PC(1)MOVX 

17、; A,R1          MOVX   A,DPTR都是访问片外RAM,但二者寻址范围不同。前1条指令是对片外RAM低256个单元的“读”操作。后1条指令是对片外RAM64KB空间的“读”操作。(2)MOVX  A,DPTR      MOVX   DPTR,A访问空间相同,但数据传送方向不同。前1条指令是对片外RAM64KB空间的“读”操作。后1条指令是对片外RAM64KB空间的“写”操作。(3)M

18、OV   R0,A        MOVX   R0,A二者访问的空间不同。前1条指令是对片内RAM低128个单元的“写”操作。后1条指令是对片外RAM低256个单元的“写”操作。(4)MOVC A,A+DPTR MOVX A,DPTR二者访问的空间不同,寻址方式不同。前1条指令是变址寻址方式,对ROM操作。后1条指令是寄存器间接寻址方式,对片外RAM操作。3-9 已知(30H)=40H,(40H)=10H,(10H)=32H,(P1)=EFH,试写出执行以下程序段后有关单元的内容。M

19、OV  R0, #30HMOV  A, R0MOV  R1, A MOV  B, R1MOV  R1,  P1MOV  P2, P1MOV  10H,#20HMOV  30H, 10H答: R030H,(R0)=30HA(R0),(A)=40HR1(A),(R1)=40HB(R1),(B)=10H(R1)(P1),(R1)=(40H)=EFHP2(P1),(P2)=EFH10H20H,(10H)=20H30H(10H),(30H)=20H结果:(R0)=30H,(A)=40H,(R1)=40H,(B)=1

20、0H,(40H)=EFH,(P2)=EFH,(10H)=20H,(30H)=20H3-10  试写出完成以下数据传送的的指令序列。(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

21、A,R1MOV R0,A(2)片外RAM向片内RAM传送数据,不能直接进行,需要借助累加器A。由于片外RAM是60H单元,地址小于FFH,所以间址寄存器使用Ri即可。MOV R1,#60HMOVX A,R1MOV R0,A(3) MOV R1,#60HMOVX   A,R1MOV    40H,A(4)片外数据不能直接送入片外单元,需要先将片外数据读入累加器,然后再送到片外。MOV DPTR,#1000HMOVX   A,DPTRMOV    R1,#40HMOVX   R1

22、,A(5)ROM中的数据需要使用查表指令才能读出来,所以此题不能使用一般的传送指令从ROM中读数据。MOV    DPTR,#2000HMOV    A,#00HMOVC   A,A+DPTRMOV    R2,A(6)   MOV    DPTR,#2000H         MOV    A,#00H  

23、       MOVC   A,A+DPTR         MOV    40H,A(7)   MOV    DPTR,#2000H         MOV    A,#00H      

24、   MOVC   A,A+DPTR         MOV    DPTR,#0200H         MOVX   DPTR,A3-11  试编程,将外部RAM 1000H单元中的数据与内部RAM 60H单元中的数据相互交换。答:片外RAM与片内RAM之间的数据传送不能直接进行,需要借助累加器A。数据交换需要使用数据交换指令XCH。

25、         MOV    DPTR,#1000H         MOVX   A,DPTR         XCH    A,60H         MOVX   DPTR

26、,A3-12 已知(A)=5BH,(R1)=40H,(40H)=C3H,(PSW)=81H,试写出各条指令的执行结果,并说明程序状态字的状态。(1) XCH  A, R1                 (2) XCH  A,  40H(3) XCH  A,R1           

27、60;    (4) XCHD  A, R1(5) SWAP  A                     (6) ADD  A,   R1(7) ADD   A,  40H         

28、0;   (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)=(

29、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

30、)=1AH,(PSW)=01H3_13 已知(A)=5BH,(R1)=40H,(40H)=C3H,(PSW)=81H,试写出各条指令的执行结果,并说明程序状态字的状态。(1) XCH  A, R1                 (2) XCH  A,  40H(3) XCH  A,R1         &#

31、160;      (4) XCHD  A, R1(5) SWAP  A                     (6) ADD  A,   R1(7) ADD   A,  40H       

32、60;     (8) ADD  A,  #40H(9) ADDC  A,  40H            (10) SUBB  A, 40H (11)SUBB  A,  #40H 答:指令LJMP     addr16是长转移指令,指令中提供了16位目的地址,寻址范围是64KB。指令AJMP    

33、; addr11是绝对转移指令,指令中11位目的地址,其中a7a0在第二字节,a10a8则占据第一字节的高3位,寻址范围是与PC当前值(本指令所在地址+本条指令所占用的字节数2)在同一个2K的区域内。3-14  试分析以下两段程序中各条指令的作用。程序执行完将转向何处?    (1) MOV   P1,#0CAH          MOV   A,#56H      

34、                JB    P1.2 ,L1                        JNB  ACC.3,L2      &#

35、160;                        L1:      L2:             (2) MOV   A,#43H      

36、               JB   ACC.2 ,L1                 JBC  ACC.6,L2                

37、             L1:           L2:             答:(1)     MOV     P1,#0CAH     &

38、#160;   ;P1CAH,P1=CAH=11001010B         MOV     A,#56H       ;A56H,A=56H=01010110B         JB     P1.2,L1      

39、0;   ;若P1.2=1,则转移至L1         JNB    ACC.3,L2         ;若ACC.3=0,则转移至L2         L1:     L2:     执行完本段程序后将转移至L2,因为P1.2

40、=0,ACC.3=0,所以转至L2。(2)     MOV     A,#43H       ;A43H,A=43H=01000011B         JB     ACC.2,L1         ;若ACC.2=1,则转移至L1   

41、      JBC    ACC.6,L2         ;若ACC.6=1,则转移至L2,同时将ACC.6清零         L1:     L2:     执行完本段程序后将转移至L2,因为ACC.2=0,ACC.6=1,所以转至L2,并且将ACC.6清零。 第

42、4章 汇编语言程序设计4-1  什么是伪指令?伪指令和指令有何区别?它们的用途是什么4-2 基本程序结构有哪几种?各有何特点?4-3  存放在内部RAM的DATA单元中的变量X是一个无符号整数,试编程计算下面函数的函数值并存放到内部RAM的FUNC单元中。                          答: 

43、60;         ORG    0300H          MOV    A,DATA         CJNE   A,#20,LOP1LOP1:   JC     LOP3    

44、;     CJNE   A,#50,LOP2LOP2:   JC     LOP4         MOV    B,#1         LJMP   LOP5LOP3:   MOV    B,#2 

45、60;       LJMP   LOP5LOP4:   MOV    B,#5LOP5:   MUL    AB         MOV    FUNC,A         RET4-5  某单片机应用系统有4

46、5;4键盘,经键盘扫描程序得到被按键的键值(00H0FH)存放在R2中,16个键的键处理程序入口地址分别为KEY0、KEY1、KEY2、KEY15。试编程实现,根据被按键的键值,转对应的键处理程序。答:   ORG    0500H         MOV    DPTR,#JPTAB         MOV    A,R2&#

47、160;        RL     A         JMP    A+DPTR JPTAB:  AJMP   KEY0         AJMP   KEY1      &#

48、160;  AJMP   KEY2                  AJMP   KEY15KEY0:   KEY1:   KEY2:     KEY15:  4-6  试编程将片内 40H60H单元中内容传送到外部RAM以2000H为首地址的存储区中。答:   ORG

49、0;   0600H         MOV    R0,#40H         MOV    DPTR,#2000H         MOV    R7,#21HLOOP:   MOV    A,

50、R0         MOVX   DPTR,A         INC    R0         INC    DPTR         DJNZ   R7,LOOP 

51、;        RET4-7  试编程将片内 40H60H单元中内容传送到外部RAM以2000H为首地址的存储区中。答:   ORG    0700H         MOV    DPTR,#DATA         MOV    R7,#10L

52、OOP:   MOVX   A,DPTR         ORL    A,#80H         MOVX   DPTR,A         INC    DPTR      

53、   DJNZ   R7,LOOP         RET4-8  编写程序将外部RAM 3000H开始的13个单元中的数据隔一个传送到内部RAM 30H开始的区域。答:   ORG    0800H         MOV    DPTR,#3000H    

54、0;    MOV    R0,#30H         MOV    R7,#7LOOP:   MOVX   A,DPTR         MOV    R0,A         INC 

55、   DPTR         INC    DPTR         INC    R0         DJNZ   R7,LOOP         RET4-9 

56、编程将片外RAM地址为1000H1030H的数据块,全部搬迁到片内RAM 30H60H中,并将原数据区全部清0。答:   ORG    0900H         MOV    DPTR,#1000H         MOV    R1,#30H       

57、  MOV    R7,#31HLOOP:   MOVX   A,DPTR         MOV    R1,A         CLR    A         MOVX   DPTR,A

58、0;        INC    DPTR         INC    R1         DJNZ   R7,LOOP         RET4-10  试编程把长度为10H的字符串从内部RAM

59、首地址为DAT1的存储器中向外部RAM首地址为DAT2的存储器进行传送,一直进行到遇见字符CR或整个字符串传送完毕结束。答:   ORG    0A00H         MOV    R1,#DAT1         MOV    DPTR,#DAT2      &#

60、160;  MOV    R6,#10HLOOP1:  MOV    A,R1         CJNE   A,#0DH,LOOP2         LJMP   LOOP3LOOP2:  MOVX   DPTR,A      

61、   INC    R1         INC    DPTR         DJNZ   R6,LOOP1LOOP3:  RET4-11  设在外部RAM 2000H2004H单元中,存放有5个压缩BCD码,试编程将它们转换成ASC码,存放到以2005H单元为首地址的存储区中。答:   ORG

62、    1200H         MOV    DPTR,#2000H         MOV    R0,#30H         MOV    R7,#5LOP1:   MOVX   A,DPT

63、R         ANL    A,#0FH         ADD    A,#30H         MOV    R0,A         INC   

64、 R0         MOVX   A,DPTR         ANL    A,#0F0H         SWAP   A         ADD    A,#30H

65、60;        MOV    R0,A         INC    R0         INC    DPTR         DJNZ   R7,LOP1 &

66、#160;       MOV    DPTR,#2005H         MOV    R0,#30H         MOV    R7,#10LOP2:   MOV    A,R0    &#

67、160;    MOVX   DPTR,A         INC    R0         INC    DPTR         DJNZ   R7,LOP2     

68、60;   RET     4-12  已知内部RAM 30H和40H单元分别存放着一个数a、b,试编写程序计算a2 b2,并将结果送入30H单元。设a、b均是小于10的数。答:   ORG    1400H         MOV    A,40H         MOV &#

69、160;  B,A         MUL    AB         MOV    31H,A         MOV    A,30H         MOV 

70、60;  B,A         MUL    AB         CLR    C         SUBB   A,31H         MOV   

71、30H,A         RET4-13  P1口连接8个LED发光二极管,设计灯亮移位程序,要求8个发光二极管每次亮一个,点亮时间为40ms。顺次一个一个地循环右移点亮,循环不止。答:   ORG    1500H         MOV    A,#80HLOOP:   MOV    P1,A

72、         LCALL  DEL         RR     A         SJMP   LOOPDEL:    MOV    R7,#100DEL1:   MOV  

73、0; R6,#198         DJNZ   R6,$         DJNZ   R7,DEL1         RET         RET 第5章 定时/计数器5-1  51系列单片机的内部设有几个定时/

74、计数器?有哪几种工作方式?由哪位选择?不同方式下,脉冲来源是否一样?答:51系列单片机的内部设有两个定时/计数器。分别有两种工作方式:定时器方式和计数器方式。由TMOD(定时器模式控制寄存器)中的控制位进行选择。定时器方式的脉冲来自于内部时钟脉冲,每个机器周期是计数器的值增1;计数器方式的脉冲来自于外部输入引脚T0(P3.4)或T1(P3.5)。5-2  51系列单片机的定时/计数器有哪几种工作模式?各有什么区别?答:51系列单片机的定时/计数器有四种工作模式。分别由TMOD中的M1和M0进行选择。特点如下: M1  M0特   &#

75、160;    点 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&

76、#160; 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被规定只

77、可用作定时器方式,借用了T1的控制位TR1和TF1。5-5  试问当(TMOD)=27H时,是怎样定义T0和T1的?答:(TMOD)=27H=00100111B此时,T1工作于模式2,定时方式(即波特率发生器方式)。T1工作于模式3,TL0和TH0同为计数方式。5-6  系统复位后执行下述指令,试问T0的定时时间为多长?MOV      TH0,#06H               &#

78、160;     MOV      TL0,#00H                     SETB     TR0              &#

79、160;      答:单片机系统复位后(TMOD)=00H,即T0工作在模式0,使用的是TL0的低5位和TH0构成13位定时/计数器,由于(TH0)=06H,(TL0)=00H,所以定时的初值为:X=0000011000000B=192假设系统晶振频率为6MHz,机器周期T=2s,则定时时间为:定时值=(M-X)T=(213-192)×2s=16000s=16ms5-7  已知51系列单片机的系统晶振频率为6 MHZ,请利用定时器T和P1.2输出矩形脉冲。答:   ORG  

80、0; 0000H         LJMP   START         ORG    0200HSTART:  MOV    TMOD,#20H         MOV    TL1,#231   

81、0;     SETB   TR1LOOP:   SETB   P1.2         MOV    TH1,#81LOP1:   JBC    TF1,LOP2         SJMP   LOP1LOP2:  

82、CLR    P1.2         MOV    TH1,#231LOP3:   JBC    TF1,LOOP         SJMP   LOP3         END  第6章  串行接

83、口61  并行通信和串行通信各有什么特点?它们分别适用于什么场合?答: 计算机与外界信息交换的基本方式可分为并行通信与串行通信:并行通信是数据的各位同时传送,并行通信的特点是传送速度快,但不适用长距离传输;串行通信是数据的各位依次逐位传送,串行通信的特点是传送速度较慢,但传输距离较长。并行通信适合近距离的CPU之间或设备之间快速进行数据交换;串行通信适合长距离的CPU之间或设备之间进行数据交换,或近距离的慢速数据交换。62  什么是串行异步通信?它有哪些特点?串行异步通信的数据帧格式是怎样的?答:异步通信依靠起始位、停止位、保持通信同步。特点是数据在线路上的传送不连续,传送

84、时,字符间隔不固定,各个字符可以是连续传送,也可以间断传送,这完全取决于通信协议或约定。 串行异步通信的数据帧格式如图6-1:一位起始位“0”电平;其后是5位、6位、7位或8位数据位,低位在前,高位在后;后面是一位奇偶校验位;最后是停止位“1”电平。 起始位D0D1D2D3D4D5D6D7奇偶校验位停止位                       

85、0;             图6-1 异步通信的数据帧格式63  串行通行有哪几种数据传送形式,试举例说明。答:串行通信有3种数据传送形式单工方式:数据传送是单向的。半双工方式:数据传送是双向的,在同一时间只能做一个方向的传送。全双工方式:数据传送是双向的,即可同时发送,又可同时接收。图6-2串行通信数据传送3种形式64  何谓波特率?某异步通信,串行口每秒传送250个字符,每个字符由11位组成,其波特率应为多少?答:波特率表示每秒传输的二进制数据位数。

86、Fb11×2502750   其波特率应为2750bps。65  MCS-51单片机串行口有几种工作模式?如何选择?简述其特点,并说明这几种工作模式各用于什么场合?答:MCS-51单片机串行口有4种工作模式,由串行控制寄存器SCON 中的SM0、SM1 两位组合来确定。模式0是同步位移寄存器方式,用于I/O口的串、并转换。模式1是8位异步通信方式,桢格式10位,波特率可变,用于双机通信。模式2是9位异步通信方式,桢格式11位,波特率固定,用于多机通信。模式3是9位异步通信方式,桢格式11位,波特率可变,用于多机远距离通信。模式1、2、3的区别主要表现在桢

87、格式和波特率两个方面。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的数据块通过串行口传送到乙机的片外RAM1400H1450H单元中。要求串行口工作在模式2,系统晶振为6 MHz,传送时进行奇校验;若出错,置F0标志为1。答:串行口工作在模式2,确定SMOD1。未规定波特率,定时器初值任取,但两机要保持一致。甲

88、机发送子程序:TXDA:MOV       TMOD,     #20H           ;置T1定时器工作方式2      MOV        TL1,     #0FDH      

89、0;   ;置初值      MOV        TH1,     #0FDH         ;置初值     SETB       TR1        

90、              ;启动T1MOV        SCON,     #90H           ;置串口方式2,允许接收,且SM2=0MOV        PCON, 

91、;    #80H           ;置SMOD=1(SMOD不能位操作)CLR        ES                        ;禁止串行中断MO

92、V        DPTR,     #2200H         ;指发送数据区首地址MOV        R2,       #51H            ;指发送

93、数据长度TRSA:MOVX      A,        DPTR          ;读一个数据     MOV        C,P      MOV       

94、TB8,C                   ;置校验位MOV        SBUF,      A             ;发送JNB   &

95、#160;     TI,       $             ;等待一桢数据发送完毕CLR         TI               &

96、#160;       ;清发送中断标志INC        DPTR                      ;指向下一字节单元DJNZ        R2,  &#

97、160;   TRSA           ;判数据发完否?未完继续RET                                  ;乙机接

98、收子程序:RXDB:MOV       TMOD,     #20H           ;置T1定时器工作方式2      MOV        TL1,     #0FDH     &#

99、160;   ;置初值      MOV        TH1,     #0FDH         ;置初值     SETB       TR1       

100、0;              ;启动T1MOV        SCON,     #90H           ;置串行方式2,允许接收,且SM2=0MOV        PCON,

101、60;    #80H           ;置SMOD=1(SMOD不能位操作)CLR        ES                        ;禁止串行中断

102、MOV        DPTR,    #1400H          ;置接收数据区首地址MOV        R2,       #51H           ;置接收数据长度

103、SETB       REN                       ;启动接收SETB      F0             

104、60;                          ;先置出错标志F0为1。RDSB:JNB       RI,        $       

105、      ;等待一桢数据接收完毕CLR        RI                        ;清接收中断标志MOV        A,  

106、60;     SBUF           ;读接收数据MOVX        DPTR,     A            ;存接收数据MOV        C,RB

107、8ANL        C,PJC         RDSB2                       ;都是1,则正确MOV        C,RB8OR

108、L        C,PJNC         RDSB2                      ;都是0,则正确LJMP        RXDBD 

109、60;                    ;出错RDSB2:INC        DPTR                    

110、60; ;指向下一数据存储单元DJNZ       R2,       RDSB           ;判数据接收完否?未完继续CLR        F0                                  

温馨提示

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

最新文档

评论

0/150

提交评论