单片机原理及接口技术 梅丽凤 习题解答(课后答案).doc_第1页
单片机原理及接口技术 梅丽凤 习题解答(课后答案).doc_第2页
单片机原理及接口技术 梅丽凤 习题解答(课后答案).doc_第3页
单片机原理及接口技术 梅丽凤 习题解答(课后答案).doc_第4页
单片机原理及接口技术 梅丽凤 习题解答(课后答案).doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

单片机原理及接口技术教材习题全部解答第1章 绪论1-1解答:第一台计算机的研制目的是为了计算复杂的数学难题。它的特点是:计算机字长为12位,运算速度为5 000次/s,使用18 800个电子管,1 500个继电器,占地面积为150 m2,重达30 t,其造价为100多万美元。它的诞生,标志着人类文明进入了一个新的历史阶段。1-2解答:单片微型计算机简称单片机。一个完整的单片机芯片至少有中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、定时/计数器及I/O接口等部件。1-3解答:单片机的发展大致经历了四个阶段:第一阶段(19701974年),为4位单片机阶段;第二阶段(19741978年),为低中档8位单片机阶段;第三阶段(19781983年),为高档8位单片机阶段;第四阶段(1983年至今),为8位单片机巩固发展阶段及16位单片机、32位单片机推出阶段。1-4解答:Intel公司的MCS-48系列、MCS-51系列、MCS-96系列产品;Motorola公司的6801、6802、6803、6805、68HC11系列产品;Zilog公司的Z8、Super8系列产品;Atmel公司的AT89系列产品;Fairchild公司的F8和3870系列产品;TI公司的TMS7000系列产品;NS公司的NS8070系列产品;NEC公司的COM87(PD7800)系列产品;National公司的MN6800系列产品;Hitachi公司的HD6301、HD63L05、HD6305。1-5解答:(1)8031/8051/8751三种型号,称为8051子系列。8031片内没有ROM,使用时需在片外接EPROM。8051片内含有4KB的掩模ROM,其中的程序是生产厂家制作芯片时烧制的。8751片内含有4KB的EPROM,用户可以先用紫外线擦除器擦除,然后再利用开发机或编程器写入新的程序。(2)8032A/8052A/8752A是8031/8051/8751的增强型,称为8052子系列。其中片内ROM和RAM的容量比8051子系列各增加一倍,另外,增加了一个定时/计数器和一个中断源。(3)80C31/80C51/87C51BH是8051子系列的CHMOS工艺芯片,80C32/80C52/87C52是8052子系列的CHMOS工艺芯片,两者芯片内的配置和功能兼容。1-6解答:8052子系列片内ROM和RAM的容量比8051子系列各增加一倍,另外,增加了一个定时/计数器和一个中断源。1-7解答:AT89系列单片机是美国Atmel公司的8位Flash单片机产品。它的最大特点是在片内含有Flash存储器,在系统的开发过程中可以十分容易地进行程序的修改,使开发调试更为方便。AT89系列单片机以8031为内核,是与8051系列单片机兼容的系列。1-8解答:高档型单片机有AT89S51、AT89S52、AT89S53和AT89S8252等型号,其中AT89S51有4KB可下载Flash存储器,AT89S52、AT89S8252有8KB可下载Flash存储器,AT89S53有12KB可下载Flash存储器。第2章 MCS-51系列单片机的结构及原理2-1解答:MCS-51单片机由8个部件组成:中央处理器(CPU),片内数据存储器(RAM),片内程序存储器(ROM/EPROM),输入/输出接口(I/O口,分为P0口、P1口、P2口和P3口),可编程串行口,定时/计数器,中断系统及特殊功能寄存器(SFR)。中央处理器(CPU):单片机的核心部分,它的作用是读入和分析每条指令,根据每条指令的功能要求,控制各个部件执行相应的操作。片内数据存储器(RAM):存放各项操作的临时数据。片内程序存储器(ROM/EPROM):存放单片机运行所需的程序。输入/输出接口(I/O口):单片机与外设相互沟通的桥梁。可编程串行口:可以实现与其它单片机或PC机之间的数据传送。定时/计数器:具有可编程功能,可以完成对外部事件的计数,也可以完成定时功能。中断系统:可以实现分时操作、实时处理、故障处理等功能。特殊功能寄存器(SFR):反映单片机的运行状态,包含了单片机在运行中的各种状态字和控制字,以及各种初始值。2-2解答:引脚是片内外程序存储器的选择信号。当端保持高电平时,访问内部程序存储器,但在PC(程序计数器)值超过0FFFH(对于8051/8751/80C51)或1FFFH(对于8052)时,将自动转向访问外部程序存储器。当端保持低电平时,不管是否有内部程序存储器,则只访问外部程序存储器。由于8031片内没有程序存储器,所以在使用8031时,引脚必须接低电平。2-3解答:在MCS-51单片机中,除P3口具有第二功能外,还有3条控制线具有第二功能。P3口的第二功能:P3.0RXD:串行数据接收端P3.1TXD:串行数据发送端P3.2:外部中断0申请输入端P3.3:外部中断1申请输入端P3.4T0:定时器0计数输入端P3.5T1:定时器1计数输入端P3.6:外部RAM写选通P3.7:外部RAM读选通3条控制线的第二功能:ALE:片内EPROM编程脉冲。片内具有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。RESETVPD:备用电源。VCC掉电期间,此引脚可接备用电源,以保持内部RAM数据不丢失。VPP:片内EPROM编程电源。在对片内具有EPROM的芯片进行编程时,此引脚用于施加21V编程电源。2-4解答:MCS-51单片机的内部存储空间分为数据存储器和程序存储器。内部数据存储器:共256字节单元,包括低128个单元和高128个单元。低128字节又分成3个区域:工作寄存器区(00H1FH),位寻址区(20H2FH)和用户RAM区(30H7FH)。高128字节是供给特殊功能寄存器使用的,因此称之为特殊功能寄存器区。内部程序存储器:在8031片内无程序存储器,8051片内具有4KB掩模ROM,8751片内具有4KBEPROM。2-5解答:MCS-51单片机提供了4组工作寄存器,对于当前工作寄存器组的选择,是通过PSW中的RS1和RS0来进行选择。具体关系如下表:RS1RS0当前寄存器组00第0组工作寄存器01第1组工作寄存器10第2组工作寄存器11第3组工作寄存器2-6解答:内部RAM低128个单元按用途分成3个区域:工作寄存器区(00H1FH),位寻址区(20H2FH)和用户RAM区(30H7FH)。2-7解答:DPTR是数据指针寄存器,是一个16位寄存器,用来存放16位存储器的地址,以便对外部数据存储器RAM中的数据进行操作。DPTR由高位字节DPH和低位字节DPL组成。2-8解答:所谓堆栈,顾名思义就是一种以“堆”的方式工作的“栈”。堆栈是在内存中专门开辟出来的按照“先进后出,后进先出”的原则进行存取的RAM区域。堆栈的用途是保护现场和断点地址。在8051单片机复位后,堆栈指针SP总是初始化到内部RAM地址07H。从08H开始就是8051的堆栈区,这个位置与工作寄存器组1的位置相同。因此,在实际应用中,通常要根据需要在程序初始化时对SP重新赋值,以改变堆栈的位置。2-9解答:程序状态字寄存器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口由一个所存器、两个三态输入缓冲器、场效应管、控制与门、反相器和转换开关组成;作为输出口时,必须外接上拉电阻才能有高电平输出,作为输入口时,必须先向锁存器写“1”;作为普通I/O口使用或低8位地址/数据总线使用。P1口内没有转换开关,但有上拉电阻;只用作普通I/O口使用。P2口比P1口多了一个转换控制开关;作为普通I/O口使用或高8位地址线使用。P3口比P1口增加了与非门和缓冲器;具有准双向I/O功能和第二功能。上述4个端口在作为输入口使用时,应注意必须先向端口写“1”。2-11解答:指令周期:执行一条指令所需要的时间。机器周期:CPU完成一个基本操作所需要的时间。状态:振荡脉冲经过二分频后,得到的单片机的时钟信号。拍:振荡脉冲的周期。当晶振频率为12MHz时,一个机器周期为1s;当晶振频率为8MHz时,一个机器周期为3s。2-12解答:在时钟电路工作后,只要在单片机的RESET引脚上出现24个时钟震荡脉冲(两个机器周期)以上的高电平,单片机就能实现复位。复位后,CPU和系统都处于一个确定的初始状态,在这种状态下,所有的专用寄存器都被赋予默认值,除SP=07H,P0P3口为FFH外,其余寄存器均为0。2-13解答:8051单片机应用系统的电压检测电路监测到电源下降时,触发外部中断,在中断服务子程序中将外部RAM中的有用数据送入内部RAM保存。(内部RAM由备用电源供电)80C51单片机应用系统的电压检测电路监测到电源降低时,也出发外部中断,在中断服务子程序中,除了要将外部RAM中有用的数据保存以外,还要将特殊功能寄存器的有用内容保护起来,然后对电源控制寄存器PCON进行设置。2-14解答:单片机退出空闲状态有两种方法:中断退出和硬件复位退出。第3章 MCS-51系列单片机的指令系统3-1解答:指令是规定计算机进行某种操作的命令,一台计算机所能执行的指令集合称为该计算机的指令系统。计算机内部只识别二进制数,因此,能别计算机直接识别、执行的指令时使用二进制编码表示的指令,这种指令别称为机器语言指令。以助记符表示的指令就是计算机的汇编语言指令。3-2解答:标号: 操作数 ;注释3-3解答: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解答:寄存器间接寻址方式。3-6解答:立即寻址方式,直接寻址方式,寄存器寻址方式,寄存器间接寻址方式,位寻址方式。3-7解答:变址寻址方式3-8解答:对于8052单片机内部RAM的高128B,必须采用寄存器间接寻址方式进行访问。3-9解答:外部数据传送指令有6条:MOVXA,DPTRMOVXDPTR,AMOVXA,RiMOVXRi,AMOVCA,A+DPTRMOVCA,A+PC(1)MOVXA,R1MOVXA,DPTR 都是访问片外RAM,但二者寻址范围不同。 前1条指令是对片外RAM低256个单元的“读”操作。 后1条指令是对片外RAM64KB空间的“读”操作。(2)MOVXA,DPTRMOVXDPTR,A 访问空间相同,但数据传送方向不同。 前1条指令是对片外RAM64KB空间的“读”操作。 后1条指令是对片外RAM64KB空间的“写”操作。(3)MOVR0,AMOVXR0,A 二者访问的空间不同。 前1条指令是对片内RAM低128个单元的“写”操作。 后1条指令是对片外RAM低256个单元的“写”操作。(4)MOVCA,A+DPTRMOVXA,DPTR 二者访问的空间不同,寻址方式不同。 前1条指令是变址寻址方式,对ROM操作。 后1条指令是寄存器间接寻址方式,对片外RAM操作。3-10解答: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)=10H,(40H)=EFH,(P2)=EFH,(10H)=20H,(30H)=20H3-11解答:(1)由于在工作寄存器与工作寄存器之间不能直接传送数据,所以需要借助累加器A。MOVA,R1MOVR0,A(2)片外RAM向片内RAM传送数据,不能直接进行,需要借助累加器A。由于片外RAM是60H单元,地址小于FFH,所以间址寄存器使用Ri即可。MOVR1,#60HMOVXA,R1MOVR0,A(3)MOVR1,#60HMOVXA,R1MOV40H,A(4)片外数据不能直接送入片外单元,需要先将片外数据读入累加器,然后再送到片外。MOVDPTR,#1000HMOVXA,DPTRMOVR1,#40HMOVXR1,A(5)ROM中的数据需要使用查表指令才能读出来,所以此题不能使用一般的传送指令从ROM中读数据。MOVDPTR,#2000HMOVA,#00HMOVCA,A+DPTRMOVR2,A(6)MOVDPTR,#2000HMOVA,#00HMOVCA,A+DPTRMOV40H,A(7)MOVDPTR,#2000HMOVA,#00HMOVCA,A+DPTRMOVDPTR,#0200HMOVXDPTR,A3-12解答:片外RAM与片内RAM之间的数据传送不能直接进行,需要借助累加器A。数据交换需要使用数据交换指令XCH。MOVDPTR,#1000HMOVXA,DPTRXCHA,60HMOVXDPTR,A3-13解答:本题需要采用查表指令。ORG0200HMOVDPTR,#TABMOVA,R7MOVCA,A+DPTRORG0300HTAB:DB0,1,4,9,16,25,36,49,64,813-14解答:(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)=01H3-15解答:(1)该组指令执行后(A)=00H,不影响CY位。(2)该组指令执行后(A)=00H,影响CY位。说明:单独执行INC指令,只影响奇偶标志位P,不影响半进位标志位AC和进位位CY位。执行ADD指令后,将影响CY、AC和P位。3-16解答:本题涉及的是16位数的减法运算,首先应让低8位相减,然后让高8位带着借位相减。注意:应在低8位相减前将进位位CY清空0。CLRCMOVA,#56HSUBBA,#78HMOVR0,AMOVA,#23HSUBBA,#45HMOVR1,A3-17解答:A(A)23H,(A)=03H42H(42H)(A),(42H)=37HA(A)(R0),(A)=34HA(),(A)=CBH结果:(A)=CBH3-18解答:(1)MOVDPTR,#1000HMOVXA,DPTRCPLAMOVXDPTR,A(2)MOVR0,#60HMOVXA,R0ANLA,#3FHXRLA,#03HMOVXR0,A3-19解答:DA A指令的作用是对A中刚进行的两个BCD码的加法结果进行修正,即继续使BCD码加法运算的结果保持为BCD码。使用时,DA A指令只能使用在加法指令后,即ADD指令和ADDC指令。3-20解答:MOVDPTR,#1000HMOVXA,DPTRMOVB,#10MULABMOV30H,AMOV31H,BMOVDPTR,#2000HMOVXA,DPTRMOVB,#32MULABADDA,30HMOV30H,AMOVA,BADDCA,31HMOV31H,A3-21解答:MOVR7,#10MOVDPTR,#block1MOVR0,#block2LOOP:MOVXA,DPTRMOVR0,AINCDPTRINCR0DJNZR7,LOOP3-22解答:MOVA,#01HLOOP:MOVP0,ARLALCALLDELAYSJMPLOOPDELAY:MOVR7,#00HDELAY1:MOVR6,#00HDJNZR6,$DJNZR7,DELAY1RET3-23解答:ORLC,11HMOV11H,CMOVC,P1.0ORLC,10HANLC,11HMOVP1.0,C3-24解答:(1)正确。(2)错误。原因:清零指令只能用于累加器ACC和位操作,而本题中E0H只能是字节地址(位地址的范围是00H7FH),所以该条指令错误。(3)错误。原因:ACC是直接字节地址,不能用于清零指令。(4)正确。ACC.0是一个位,可以应用到清零指令中。(5)正确。(6)错误。原因:取反指令只能用于累加器ACC和位操作,而本题中E0H只能是字节地址(位地址的范围是00H7FH),所以该条指令错误。(7)错误。原因:ACC是直接字节地址,不能用于取反指令。(8)正确。ACC.0是一个位,可以应用到取反指令中。3-25解答:ANLA,BORLA,CMOVF,C3-26解答:指令LJMPaddr16是长转移指令,指令中提供了16位目的地址,寻址范围是64KB。指令AJMPaddr11是绝对转移指令,指令中11位目的地址,其中a7a0在第二字节,a10a8则占据第一字节的高3位,寻址范围是与PC当前值(本指令所在地址+本条指令所占用的字节数2)在同一个2K的区域内。3-27解答:(1)MOVP1,#0CAH;P1CAH,P1=CAH=11001010BMOVA,#56H;A56H,A=56H=01010110BJBP1.2,L1;若P1.2=1,则转移至L1JNBACC.3,L2;若ACC.3=0,则转移至L2L1:L2:执行完本段程序后将转移至L2,因为P1.2=0,ACC.3=0,所以转至L2。(2)MOVA,#43H;A43H,A=43H=01000011BJBACC.2,L1;若ACC.2=1,则转移至L1JBCACC.6,L2;若ACC.6=1,则转移至L2,同时将ACC.6清零L1:L2:执行完本段程序后将转移至L2,因为ACC.2=0,ACC.6=1,所以转至L2,并且将ACC.6清零。3-28解答:(1)MOVA,P1CPLAANLA,#0F0HSWAPAMOVP1,A(2):LOOP:JNBP1.4,L1;JNBP1.5,L2;JNBP1.6,L3;JNBP1.7,L4;LJMPLOOP;L1:MOVP1,#01H;LJMPLOOP;L2:MOVP1,#02H;LJMPLOOP;L3:MOVP1,#03H;LJMPLOOP;L4:MOVP1,#04H;LJMPLOOP;第4章 汇编语言程序设计4-1解答:ORG0100HMOVA,21HADDA,23HMOV25H,AMOVA,20HADDCA,22HMOV24H,ARET4-2解答:ORG0200HMOVA,51HMOVB,#20MULABMOV53H,AMOV52H,BMOVA,50HMOVB,#3MULABADDA,53HMOV53H,AMOVA,BADDCA,52HMOV52H,ARET4-3解答:XA暂存A20?A50?2B5B1BABAAFUNC保存结果开始返回YNYN题图4-1 习题4-3流程图ORG0300HMOVA,DATACJNEA,#20,LOP1LOP1:JCLOP3CJNEA,#50,LOP2LOP2:JCLOP4MOVB,#1LJMPLOP5LOP3:MOVB,#2LJMPLOP5LOP4:MOVB,#5LOP5:MULABMOVFUNC,ARET4-4解答:ORG0400HMOVA,mun+1JNBACC.7,LOOPCLRCMOVA,numSUBBA,#01HCPLAMOVnum,AMOVA,#num+1SUBBA,#00HCPLAMOVnum+1,ALOOP:RET4-5解答:ORG0500HMOVDPTR,#JPTABMOVA,R2RLAJMPA+DPTRJPTAB:AJMPKEY0AJMPKEY1AJMPKEY2AJMPKEY15KEY0:KEY1:KEY2:KEY15:4-6解答:ORG0600HMOVR0,#40HMOVDPTR,#2000HMOVR7,#21HLOOP:MOVA,R0MOVXDPTR,AINCR0INCDPTRDJNZR7,LOOPRET4-7解答:ORG0700HMOVDPTR,#DATAMOVR7,#10LOOP:MOVXA,DPTRORLA,#80HMOVXDPTR,AINCDPTRDJNZR7,LOOPRET4-8解答:ORG0800HMOVDPTR,#3000HMOVR0,#30HMOVR7,#7LOOP:MOVXA,DPTRMOVR0,AINCDPTRINCDPTRINCR0DJNZR7,LOOPRET4-9解答:ORG0900HMOVDPTR,#1000HMOVR1,#30HMOVR7,#31HLOOP:MOVXA,DPTRMOVR1,ACLRAMOVXDPTR,AINCDPTRINCR1DJNZR7,LOOPRET4-10解答:ORG0A00HMOVR1,#DAT1MOVDPTR,#DAT2MOVR6,#10HLOOP1:MOVA,R1CJNEA,#0DH,LOOP2LJMPLOOP3LOOP2:MOVXDPTR,AINCR1INCDPTRDJNZR6,LOOP1LOOP3:RET4-11解答:ORG0B00HMOVDPTR,#3000HMOVR7,#100MOVone,#00HMOVtwo,#00HMOVthree,#00HLOP1:MOVXA,DPTRJZLOP2JNBACC.7,LOP3INCthreeLJMPLOP4LOP2:INCtwoLJMPLOP4LOP3:INConeLOP4:INCDPTRDJNZR7,LOP1RET4-12解答:ORG0C00HMOVR0,#50HMOVA,#00HMOVR7,#10LOP:ADDA,R0INCR0DJNZR7,LOPMOVB,#10DIVABMOV5AH,ARET4-13解答:ORG0D00HMOVR0,#40HMOVA,R0MOVR7,#47LOOP:INCR0MOV30H,R0CJNEA,30H,CHKCHK:JCLOOP1MOVA,R0LOOP1:DJNZR7,LOOPMOVMIN,ARET4-14解答:ORG0E00HSTART:MOVR0,#40HMOVR7,#19CLR00HLOOP:MOVA,R0MOV30H,AINCR0MOV31H,R0CLRCSUBBA,R0JNCNEXTMOVR0,30HDECR0MOVR0,31HINCR0SETB00HNEXT:DJNZR7,LOOPJB00H,STARTMOVR0,#40HMOVDPTR,#2000HMOVR7,#20LOP1:MOVA,R0MOVXDPTR,AINCR0INCDPTRDJNZR7,LOP1RET4-15解答:ORG0F00HMOVDPTR,#2000HMOVR7,#100LOOP1:MOVXA,DPTRCJNEA,#44H,LOOP2MOV30H,DPLMOV31H,DPHMOVDPTR,#20A0HMOVA,30HMOVXDPTR,AINCDPTRMOVA,31HMOVXDPTR,ALJMPLOOP3LOOP2:INCDPTRDJNZR7,LOOP1LOOP3:RET4-16解答:ORG1000HMOVR0,#30HMOVR1,#50HMOVR7,#20LOP1:MOVA,R0CJNEA,#0AH,LOP2LOP2:JNCLOP3ADDA,#30HLJMPLOP4LOP3:ADDA,#37HLOP4:MOVR1,AINCR0INCR1DJNZR7,LOP1RET4-17解答:ORG1100HMOVR0,#40HMOVR1,#60HMOVR7,#NLOP1:MOVA,R0CJNEA,#41H,LOP2LOP2:JNCLOP3CLRCSUBBA,#30HLJMPLOP4LOP3:CLRCSUBBA,#37HLOP4:MOVR1,AINCR0INCR1DJNZR7,LOP1RET4-18解答:ORG1200HMOVDPTR,#2000HMOVR0,#30HMOVR7,#5LOP1:MOVXA,DPTRANLA,#0FHADDA,#30HMOVR0,AINCR0MOVXA,DPTRANLA,#0F0HSWAPAADDA,#30HMOVR0,AINCR0INCDPTRDJNZR7,LOP1MOVDPTR,#2005HMOVR0,#30HMOVR7,#10LOP2:MOVA,R0MOVXDPTR,AINCR0INCDPTRDJNZR7,LOP2RET4-19解答:ORG1300HMOVDPTR,#2000HMOVR0,#30HMOVR7,#10LOP1:MOVXA,DPTRCLRCSUBBA,#30HMOVR0,AINCDPTRMOVXA,DPTRCLRCSUBBA,#30HSWAPAORLA,R0MOVR0,AINCDPTRINCR0DJNZR7,LOP1MOVDPTR,#3000HMOVR0,#30HMOVR7,#10LOP2:MOVA,R0MOVXDPTR,AINCR0INCDPTRDJNZR7,LOP2RET4-20解答:ORG1400HMOVA,40HMOVB,AMULABMOV31H,AMOVA,30HMOVB,AMULABCLRCSUBBA,31HMOV30H,ARET4-21解答:ORG1500HMOVA,#80HLOOP:MOVP1,ALCALLDELRRASJMPLOOPDEL:MOVR7,#100DEL1:MOVR6,#198DJNZR6,$DJNZR7,DEL1RET4-22解答:ORG1600HMOVA,#55HLOOP:MOVP1,ALCALLDELRLASJMPLOOPDEL:MOVR7,#250DEL1:MOVR6,#198DJNZR6,$DJNZR7,DEL1RET第5章 定时/计数器5-1解答:51系列单片机的内部设有两个定时/计数器。分别有两种工作方式:定时器方式和计数器方式。由TMOD(定时器模式控制寄存器)中的控制位进行选择。定时器方式的脉冲来自于内部时钟脉冲,每个机器周期是计数器的值增1;计数器方式的脉冲来自于外部输入引脚T0(P3.4)或T1(P3.5)。5-2解答: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中,使用了TLX中低5位与THX中的8位构成13位计数器,TLX中的高3位弃之未用。5-4解答:对于T1,设置为模式3,将使它停止计数并保持原有的计数值,其作用如同使TR1=0,因此,没有什么实质意义。对于T0,设置为模式3时,16位计数器被分成两个互相独立的8位计数器TL0和TH0,其中TL0利用了定时/计数器0本身的一些控制位:、GATE、TR0、和TF0。它既可以按照计数方式工作,也可以按照定时方式工作。而TH0被规定只可用作定时器方式,借用了T1的控制位TR1和TF1。5-5解答:(TMOD)=27H=00100111B此时,T1工作于模式2,定时方式(即波特率发生器方式)。T1工作于模式3,TL0和TH0同为计数方式。5-6解答:单片机系统复位后(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解答:ORG0000HLJMPSTARTORG0200HSTART:MOVTMOD,#20HMOVTL1,#231SETBTR1LOOP:SETBP1.2MOVTH1,#81LOP1:JBCTF1,LOP2SJMPLOP1LOP2:CLRP1.2MOVTH1,#231LOP3:JBCTF1,LOOPSJMPLOP3END5-8解答:ORG0000HLJMPSTARTORG0300HSTART:MOVTMOD,#51HLOOP:CLRTR0MOVTL1,#18HMOVTH1,#0E0HSETBTR1LOP1:JBCTF1,LOP2SJMPLOP1LOP2:CLRTR1MOVTL0,#18HMOVTH0,#0E0HSETBTR0LOP3:JBCTF0,LOOPSJMPLOP3END5-9解答:TF0为定时/计数器T0的溢出标志位。TF1为定时/计数器T1的溢出标志位。TF2为定时/计数器T2的溢出中断标志位。EXF2为定时/计数器T2的外部触发中断标志位。当定时/计数器T0或T1溢出时TF0或TF1由硬件置1,使用查询方式时,此位做状态位供查询,查询有效后需由软件清零;使用中断方式时,此位做中断申请标志位,进入中断服务后被硬件自动清零。当定时/计数器T2计数溢出或外部触发时,TF2或EXF2置1,并申请中断,但该两位只能靠软件清除。5-10解答:RCLK为接收时钟选择位,靠软件置位或清除,用以选择定时/计数器2或1做串行口接收波特率发生器。TCLK为发送时钟选择位,靠软件置位或清除,用以选择定时/计数器2或1做串行口发送波特率发生器。如果两者都被清零,则T2工作在定时/计数器方式。此时当=0时,TH2和TL2计的是机器周期数,做定时器使用;当=1时,计数脉冲来自T2(P1.0)引脚,TH2和TL2做外部信号脉冲计数用。5-11解答:52系列单片机的T0、T1和T2对外来脉冲进行计数时,T0的外来脉冲引入引脚为P3.4;T1的外来脉冲引入引脚为P3.5;T2的外来脉冲引入引脚为P1.0。5-12解答:为捕获或重装载标志,由软件设置或清除。当=1时选择捕获功能,这时若EXEN2=1,且T2EX端的信号负跳变时,发生捕获操作,即把TH2和TL2的内容传递给RCAP2H和RCAP2L;当=0时,选择重装载功能,这时若定时器2溢出,或在EXEN2=1条件下T2EX端信号有负跳变,都会造成自动重装载操作,即把RCAP2H和RCAP2L的内容传送给TH2和TL2。5-13解答:初值=65 536fose/(波特率216) =65 536(11.059 2106)/(19 200216) =65 53618 =65518 =FFEEH即T2的重复装载常数为:TH2=0FFH,TL2=0EEH第6章 串行接口61解答: 计算机与外界信息交换的基本方式可分为并行通信与串行通信:并行通信是数据的各位同时传送,并行通信的特点是传送速度快,但不适用长距离传输;串行通信是数据的各位依次逐位传送,串行通信的特点是传送速度较慢,但传输距离较长。并行通信适合近距离的CPU之间或设备之间快速进行数据交换;串行通信适合长距离的CPU之间或设备之间进行数据交换,或近距离的慢速数据交换。62解答:异步通信依靠起始位、停止位、保持通信同步。特点是数据在线路上的传送不连续,传送时,字符间隔不固定,各个字符可以是连续传送,也可以间断传送,这完全取决于通信协议或约定。 串行异步通信的数据帧格式如图6-1:一位起始位“0”电平;其后是5位、6位、7位或8位数据位,低位在前,高位在后;后面是一位奇偶校验位;最后是停止位“1”电平。起始位D0D1D

温馨提示

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

评论

0/150

提交评论