还剩30页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
MCS-51单片机原理及接口技术习题参考答案第一章绪论1-1解答第一台计算机的研制目的是为了计算复杂的数学难题它的特点是计算机字长为12位,运算速度为5000次/s,使用18800个电子管,1500个继电器,占地面积为150m2,重达30t,其造价为100多万美元它的诞生,标志着人类文明进入了一个新的历史阶段1-2解答单片微型计算机简称单片机一个完整的单片机芯片至少有中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、定时/计数器及I/O接口等部件1-3解答单片机的发展大致经历了四个阶段第一阶段(1970—1974年),为4位单片机阶段;第二阶段(1974—1978年),为低中档8位单片机阶段;第三阶段(1978—1983年),为高档8位单片机阶段;第四阶段(1983年至今),为8位单片机巩固发展阶段及16位单片机、32位单片机推出阶段1-4解答Intel公司的MCS-48系列、MCS-51系列、MCS-96系列产品;Motorola公司的
6801、
6802、
6803、
6805、68HC11系列产品;Zilog公司的Z
8、Super8系列产品;Atmel公司的AT89系列产品;Fairchild公司的F8和3870系列产品;TI公司的TMS7000系列产品;NS公司的NS8070系列产品;NEC公司的μCOM87(μPD7800)系列产品;National公司的MN6800系列产品;Hitachi公司的HD
6301、HD63L
05、HD63051-5解答
(1)8031/8051/8751三种型号,称为8051子系列8031片内没有ROM,使用时需在片外接EPROM8051片内含有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解答高档型单片机有AT89S
51、AT89S
52、AT89S53和AT89S8252等型号,其中AT89S51有4KB可下载Flash存储器,AT89S
52、AT89S8252有8KB可下载Flash存储器,AT89S53有12KB可下载Flash存储器第二章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口的第二功能P
3.0—RXD串行数据接收端P
3.1—TXD串行数据发送端P
3.2—外部中断0申请输入端P
3.3—外部中断1申请输入端P
3.4—T0定时器0计数输入端P
3.5—T1定时器1计数输入端P
3.6—外部RAM写选通P
3.7—外部RAM读选通3条控制线的第二功能ALE—片内EPROM编程脉冲片内具有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲RESET—VPD备用电源VCC掉电期间,此引脚可接备用电源,以保持内部RAM数据不丢失—VPP片内EPROM编程电源在对片内具有EPROM的芯片进行编程时,此引脚用于施加21V编程电源2-4解答MCS-51单片机的内部存储空间分为数据存储器和程序存储器内部数据存储器共256字节单元,包括低128个单元和高128个单元低128字节又分成3个区域工作寄存器区(00H~1FH),位寻址区(20H~2FH)和用户RAM区(30H~7FH)高128字节是供给特殊功能寄存器使用的,因此称之为特殊功能寄存器区内部程序存储器在8031片内无程序存储器,8051片内具有4KB掩模ROM,8751片内具有4KBEPROM2-5解答MCS-51单片机提供了4组工作寄存器,对于当前工作寄存器组的选择,是通过PSW中的RS1和RS0来进行选择具体关系如下表RS1RS0当前寄存器组00第0组工作寄存器01第1组工作寄存器10第2组工作寄存器11第3组工作寄存器2-6解答内部RAM低128个单元按用途分成3个区域工作寄存器区(00H~1FH),位寻址区(20H~2FH)和用户RAM区(30H~7FH)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时,一个机器周期为1μs;当晶振频率为8MHz时,一个机器周期为3μs2-12解答在时钟电路工作后,只要在单片机的RESET引脚上出现24个时钟震荡脉冲(两个机器周期)以上的高电平,单片机就能实现复位复位后,CPU和系统都处于一个确定的初始状态,在这种状态下,所有的专用寄存器都被赋予默认值,除SP=07H,P0~P3口为FFH外,其余寄存器均为02-13解答8051单片机应用系统的电压检测电路监测到电源下降时,触发外部中断,在中断服务子程序中将外部RAM中的有用数据送入内部RAM保存(内部RAM由备用电源供电)80C51单片机应用系统的电压检测电路监测到电源降低时,也出发外部中断,在中断服务子程序中,除了要将外部RAM中有用的数据保存以外,还要将特殊功能寄存器的有用内容保护起来,然后对电源控制寄存器PCON进行设置2-14解答单片机退出空闲状态有两种方法中断退出和硬件复位退出第三章MCS-51系列单片机的指令系统3-1解答指令是规定计算机进行某种操作的命令,一台计算机所能执行的指令集合称为该计算机的指令系统计算机内部只识别二进制数,因此,能别计算机直接识别、执行的指令时使用二进制编码表示的指令,这种指令别称为机器语言指令以助记符表示的指令就是计算机的汇编语言指令3-2解答[标号]操作码[操作数][;注释]3-3解答MCS-51系列单片机提供了7种寻址方式
(1)立即寻址操作数在指令中直接给出,立即数前面有“#”
(2)直接寻址在指令中直接给出操作数地址对应片内低128个字节单元和特殊功能寄存器
(3)寄存器寻址以寄存器的内容作为操作数对应的寄存器有R0~R
7、A、AB寄存器和数据指针DPTR
(4)寄存器间接寻址以寄存器的内容作为RAM地址,该地址中的内容才是操作数对应片内RAM的低128个单元采用R
0、R1作为间址寄存器,片外RAM低256个单元可用R
0、R1作为间址寄存器,整个64KB空间可用DPTR作为间址寄存器
(5)变址寻址以DPTR或PC作为基址寄存器,以累加器A作为变址寄存器,并以两者内容相加形成的16位地址作为操作数地址对应片内、片外的ROM空间
(6)相对寻址只在相对转移指令中使用对应片内、片外的ROM空间
(7)位寻址对可寻址的位单独进行操作对应位寻址区20H~2FH单元的128位和字节地址能被8整除的特殊功能寄存器的相应位3-4解答直接寻址方式3-5解答寄存器间接寻址方式3-6解答立即寻址方式,直接寻址方式,寄存器寻址方式,寄存器间接寻址方式,位寻址方式3-7解答变址寻址方式3-8解答对于8052单片机内部RAM的高128B,必须采用寄存器间接寻址方式进行访问3-9解答外部数据传送指令有6条MOVXA,@DPTRMOVX@DPTR,AMOVXA,@RiMOVX@Ri,AMOVCA,@A+DPTRMOVCA,@A+PC
(1)MOVXA,@R1MOVXA,@DPTR都是访问片外RAM,但二者寻址范围不同前1条指令是对片外RAM低256个单元的“读”操作后1条指令是对片外RAM64KB空间的“读”操作
(2)MOVXA,@DPTRMOVX@DPTR,A访问空间相同,但数据传送方向不同前1条指令是对片外RAM64KB空间的“读”操作后1条指令是对片外RAM64KB空间的“写”操作
(3)MOV@R0,AMOVX@R0,A二者访问的空间不同前1条指令是对片内RAM低128个单元的“写”操作后1条指令是对片外RAM低256个单元的“写”操作
(4)MOVCA,@A+DPTRMOVXA,@DPTR二者访问的空间不同,寻址方式不同前1条指令是变址寻址方式,对ROM操作后1条指令是寄存器间接寻址方式,对片外RAM操作3-10解答R0←30H,(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)=20H3-11解答
(1)由于在工作寄存器与工作寄存器之间不能直接传送数据,所以需要借助累加器AMOVA,R1MOVR0,A
(2)片外RAM向片内RAM传送数据,不能直接进行,需要借助累加器A由于片外RAM是60H单元,地址小于FFH,所以间址寄存器使用Ri即可MOVR1,#60HMOVXA,@R1MOVR0,A
(3)MOVR1,#60HMOVXA,@R1MOV40H,A
(4)片外数据不能直接送入片外单元,需要先将片外数据读入累加器,然后再送到片外MOVDPTR,#1000HMOVXA,@DPTRMOVR1,#40HMOVX@R1,A
(5)ROM中的数据需要使用查表指令才能读出来,所以此题不能使用一般的传送指令从ROM中读数据MOVDPTR,#2000HMOVA,#00HMOVCA,@A+DPTRMOVR2,A
(6)MOVDPTR,#2000HMOVA,#00HMOVCA,@A+DPTRMOV40H,A
(7)MOVDPTR,#2000HMOVA,#00HMOVCA,@A+DPTRMOVDPTR,#0200HMOVX@DPTR,A3-12解答片外RAM与片内RAM之间的数据传送不能直接进行,需要借助累加器A数据交换需要使用数据交换指令XCHMOVDPTR,#1000HMOVXA,@DPTRXCHA,60HMOVX@DPTR,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)0~3←→((R1))0~3,(A)=53H,((R1))=(40H)=CBH,(PSW)=80H
(5)结果(A)0~3←→(A)4~7,(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清空0CLRCMOVA,#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,@DPTRCPLAMOVX@DPTR,A
(2)MOVR0,#60HMOVXA,@R0ANLA,#3FHXRLA,#03HMOVX@R0,A3-19解答DAA指令的作用是对A中刚进行的两个BCD码的加法结果进行修正,即继续使BCD码加法运算的结果保持为BCD码使用时,DAA指令只能使用在加法指令后,即ADD指令和ADDC指令3-20解答MOVDPTR,#1000HMOVXA,@DPTRMOVB,#10MULABMOV30H,AMOV31H,BMOVDPTR,#2000HMOVXA,@DPTRMOVB,#32MULABADDA,30HMOV30H,AMOVA,BADDCA,31HMOV31H,A3-21解答MOVR7,#10MOVDPTR,#block1MOVR0,#block2LOOP MOVXA,@DPTRMOV@R0,AINCDPTRINCR0DJNZR7,LOOP3-22解答MOVA,#01HLOOP MOVP0,ARLALCALLDELAYSJMPLOOPDELAY MOVR7,#00HDELAY1MOVR6,#00HDJNZR6,$DJNZR7,DELAY1RET3-23解答ORLC,11HMOV11H,CMOVC,P
1.0ORLC,10HANLC,11HMOVP
1.0,C3-24解答
(1)正确
(2)错误原因清零指令只能用于累加器ACC和位操作,而本题中E0H只能是字节地址(位地址的范围是00H~7FH),所以该条指令错误
(3)错误原因ACC是直接字节地址,不能用于清零指令
(4)正确ACC.0是一个位,可以应用到清零指令中
(5)正确
(6)错误原因取反指令只能用于累加器ACC和位操作,而本题中E0H只能是字节地址(位地址的范围是00H~7FH),所以该条指令错误
(7)错误原因ACC是直接字节地址,不能用于取反指令
(8)正确ACC.0是一个位,可以应用到取反指令中3-25解答ANLA,BORLA,CMOVF,C3-26解答指令LJMPaddr16是长转移指令,指令中提供了16位目的地址,寻址范围是64KB指令AJMPaddr11是绝对转移指令,指令中11位目的地址,其中a7~a0在第二字节,a10~a8则占据第一字节的高3位,寻址范围是与PC当前值(本指令所在地址+本条指令所占用的字节数2)在同一个2K的区域内3-27解答
(1)MOVP1,#0CAH;P1←CAH,P1=CAH=11001010BMOVA,#56H;A←56H,A=56H=01010110BJBP
1.2,L1;若P
1.2=1,则转移至L1JNBACC.3,L2;若ACC.3=0,则转移至L2…L1…L2…执行完本段程序后将转移至L2,因为P
1.2=0,ACC.3=0,所以转至L2
(2)MOVA,#43H;A←43H,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 JNBP
1.4,L1;JNBP
1.5,L2;JNBP
1.6,L3;JNBP
1.7,L4;LJMPLOOP;L1MOVP1,#01H;LJMPLOOP;L2MOVP1,#02H;LJMPLOOP;L3MOVP1,#03H;LJMPLOOP;L4MOVP1,#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解答ORG0300HMOVA,DATACJNEA,#20,LOP1LOP1JCLOP3CJNEA,#50,LOP2LOP2JCLOP4MOVB,#1LJMPLOP5LOP3MOVB,#2LJMPLOP5LOP4MOVB,#5LOP5MULABMOVFUNC,ARET4-4解答ORG0400HMOVA,mun+1JNBACC.7,LOOPCLRCMOVA,numSUBBA,#01HCPLAMOVnum,AMOVA,#num+1SUBBA,#00HCPLAMOVnum+1,ALOOP RET4-5解答ORG0500HMOVDPTR,#JPTABMOVA,R2RLAJMP@A+DPTRJPTAB AJMPKEY0AJMPKEY1AJMPKEY2……AJMPKEY15KEY0…KEY1…KEY2………KEY15…4-6解答ORG0600HMOVR0,#40HMOVDPTR,#2000HMOVR7,#21HLOOP MOVA,@R0MOVX@DPTR,AINCR0INCDPTRDJNZR7,LOOPRET4-7解答ORG0700HMOVDPTR,#DATAMOVR7,#10LOOP MOVXA,@DPTRORLA,#80HMOVX@DPTR,AINCDPTRDJNZR7,LOOPRET4-8解答ORG0800HMOVDPTR,#3000HMOVR0,#30HMOVR7,#7LOOP MOVXA,@DPTRMOV@R0,AINCDPTRINCDPTRINCR0DJNZR7,LOOPRET4-9解答ORG0900HMOVDPTR,#1000HMOVR1,#30HMOVR7,#31HLOOP MOVXA,@DPTRMOV@R1,ACLRAMOVX@DPTR,AINCDPTRINCR1DJNZR7,LOOPRET4-10解答ORG0A00HMOVR1,#DAT1MOVDPTR,#DAT2MOVR6,#10HLOOP1MOVA,@R1CJNEA,#0DH,LOOP2LJMPLOOP3LOOP2MOVX@DPTR,AINCR1INCDPTRDJNZR6,LOOP1LOOP3RET4-11解答ORG0B00HMOVDPTR,#3000HMOVR7,#100MOVone,#00HMOVtwo,#00HMOVthree,#00HLOP1MOVXA,@DPTRJZLOP2JNBACC.7,LOP3INCthreeLJMPLOP4LOP2INCtwoLJMPLOP4LOP3INConeLOP4INCDPTRDJNZR7,LOP1RET4-12解答ORG0C00HMOVR0,#50HMOVA,#00HMOVR7,#10LOP ADDA,@R0INCR0DJNZR7,LOPMOVB,#10DIVABMOV5AH,ARET4-13解答ORG0D00HMOVR0,#40HMOVA,@R0MOVR7,#47LOOP INCR0MOV30H,@R0CJNEA,30H,CHKCHK JCLOOP1MOVA,@R0LOOP1DJNZR7,LOOPMOVMIN,ARET4-14解答ORG0E00HSTART MOVR0,#40HMOVR7,#19CLR00HLOOP MOVA,@R0MOV30H,AINCR0MOV31H,@R0CLRCSUBBA,@R0JNCNEXTMOV@R0,30HDECR0MOV@R0,31HINCR0SETB00HNEXT DJNZR7,LOOPJB00H,STARTMOVR0,#40HMOVDPTR,#2000HMOVR7,#20LOP1MOVA,@R0MOVX@DPTR,AINCR0INCDPTRDJNZR7,LOP1RET4-15解答ORG0F00HMOVDPTR,#2000HMOVR7,#100LOOP1MOVXA,@DPTRCJNEA,#44H,LOOP2MOV30H,DPLMOV31H,DPHMOVDPTR,#20A0HMOVA,30HMOVX@DPTR,AINCDPTRMOVA,31HMOVX@DPTR,ALJMPLOOP3LOOP2INCDPTRDJNZR7,LOOP1LOOP3RET4-16解答ORG1000HMOVR0,#30HMOVR1,#50HMOVR7,#20LOP1MOVA,@R0CJNEA,#0AH,LOP2LOP2JNCLOP3ADDA,#30HLJMPLOP4LOP3ADDA,#37HLOP4MOV@R1,AINCR0INCR1DJNZR7,LOP1RET4-17解答ORG1100HMOVR0,#40HMOVR1,#60HMOVR7,#NLOP1MOVA,@R0CJNEA,#41H,LOP2LOP2JNCLOP3CLRCSUBBA,#30HLJMPLOP4LOP3CLRCSUBBA,#37HLOP4MOV@R1,AINCR0INCR1DJNZR7,LOP1RET4-18解答ORG1200HMOVDPTR,#2000HMOVR0,#30HMOVR7,#5LOP1MOVXA,@DPTRANLA,#0FHADDA,#30HMOV@R0,AINCR0MOVXA,@DPTRANLA,#0F0HSWAPAADDA,#30HMOV@R0,AINCR0INCDPTRDJNZR7,LOP1MOVDPTR,#2005HMOVR0,#30HMOVR7,#10LOP2MOVA,@R0MOVX@DPTR,AINCR0INCDPTRDJNZR7,LOP2RET4-19解答ORG1300HMOVDPTR,#2000HMOVR0,#30HMOVR7,#10LOP1MOVXA,@DPTRCLRCSUBBA,#30HMOV@R0,AINCDPTRMOVXA,@DPTRCLRCSUBBA,#30HSWAPAORLA,@R0MOV@R0,AINCDPTRINCR0DJNZR7,LOP1MOVDPTR,#3000HMOVR0,#30HMOVR7,#10LOP2MOVA,@R0MOVX@DPTR,AINCR0INCDPTRDJNZR7,LOP2RET4-20解答ORG1400HMOVA,40HMOVB,AMULABMOV31H,AMOVA,30HMOVB,AMULABCLRCSUBBA,31HMOV30H,ARET4-21解答ORG1500HMOVA,#80HLOOP MOVP1,ALCALLDELRRASJMPLOOPDEL MOVR7,#100DEL1MOVR6,#198DJNZR6,$DJNZR7,DEL1RET4-22解答ORG1600HMOVA,#55HLOOP MOVP1,ALCALLDELRLASJMPLOOPDEL MOVR7,#250DEL1MOVR6,#198DJNZR6,$DJNZR7,DEL1RET第5章定时/计数器5-1解答51系列单片机的内部设有两个定时/计数器分别有两种工作方式定时器方式和计数器方式由TMOD(定时器模式控制寄存器)中的控制位进行选择定时器方式的脉冲来自于内部时钟脉冲,每个机器周期是计数器的值增1;计数器方式的脉冲来自于外部输入引脚T0(P
3.4)或T1(P
3.5)5-2解答51系列单片机的定时/计数器有四种工作模式分别由TMOD中的M1和M0进行选择特点如下M1M0特点00模式0TLX中低5位与THX中的8位构成13位计数器计满溢出时,13位计数器回零01模式1TLX与THX构成16位计数器计满溢出时,16位计数器回零10模式28位自动重装载的定时/计数器,每当计数器TLX溢出时,THX中的内容重新装载到TLX中11模式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、TR
0、和TF0它既可以按照计数方式工作,也可以按照定时方式工作而TH0被规定只可用作定时器方式,借用了T1的控制位TR1和TF15-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=2μs,则定时时间为定时值=(M-X)T=(213-192)×2μs=16000μs=16ms5-7解答ORG0000HLJMPSTARTORG0200HSTART MOVTMOD,#20HMOVTL1,#231SETBTR1LOOP SETBP
1.2MOVTH1,#81LOP1JBCTF1,LOP2SJMPLOP1LOP2CLRP
1.2MOVTH1,#231LOP3JBCTF1,LOOPSJMPLOP3END5-8解答ORG0000HLJMPSTARTORG0300HSTART MOVTMOD,#51HLOOP CLRTR0MOVTL1,#18HMOVTH1,#0E0HSETBTR1LOP1JBCTF1,LOP2SJMPLOP1LOP2CLRTR1MOVTL0,#18HMOVTH0,#0E0HSETBTR0LOP3JBCTF0,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(P
1.0)引脚,TH2和TL2做外部信号脉冲计数用5-11解答52系列单片机的T
0、T1和T2对外来脉冲进行计数时,T0的外来脉冲引入引脚为P
3.4;T1的外来脉冲引入引脚为P
3.5;T2的外来脉冲引入引脚为P
1.05-12解答为捕获或重装载标志,由软件设置或清除当=1时选择捕获功能,这时若EXEN2=1,且T2EX端的信号负跳变时,发生捕获操作,即把TH2和TL2的内容传递给RCAP2H和RCAP2L;当=0时,选择重装载功能,这时若定时器2溢出,或在EXEN2=1条件下T2EX端信号有负跳变,都会造成自动重装载操作,即把RCAP2H和RCAP2L的内容传送给TH2和TL25-13解答初值=65536-fose/(波特率×2×16)=65536-(
11.0592×106)/(19200×2×16)=65536-18=65518=FFEEH即T2的重复装载常数为TH2=0FFH,TL2=0EEH第6章串行接口6.1解答计算机与外界信息交换的基本方式可分为并行通信与串行通信并行通信是数据的各位同时传送,并行通信的特点是传送速度快,但不适用长距离传输;串行通信是数据的各位依次逐位传送,串行通信的特点是传送速度较慢,但传输距离较长并行通信适合近距离的CPU之间或设备之间快速进行数据交换;串行通信适合长距离的CPU之间或设备之间进行数据交换,或近距离的慢速数据交换6.2解答
①异步通信依靠起始位、停止位、保持通信同步
②特点是数据在线路上的传送不连续,传送时,字符间隔不固定,各个字符可以是连续传送,也可以间断传送,这完全取决于通信协议或约定
③串行异步通信的数据帧格式如图6-1一位起始位“0”电平;其后是5位、6位、7位或8位数据位,低位在前,高位在后;后面是一位奇偶校验位;最后是停止位“1”电平起始位D0D1D2D3D4D5D6D7奇偶校验位停止位图6-1异步通信的数据帧格式6.3解答串行通信有3种数据传送形式单工方式数据传送是单向的半双工方式数据传送是双向的,在同一时间只能做一个方向的传送全双工方式数据传送是双向的,即可同时发送,又可同时接收图6-2串行通信数据传送3种形式6.4解答波特率表示每秒传输的二进制数据位数Fb=11×250=2750其波特率应为2750bps6.5解答MCS-51单片机串行口有4种工作模式,由串行控制寄存器SCON中的SM
0、SM1两位组合来确定模式0是同步位移寄存器方式,用于I/O口的串、并转换模式1是8位异步通信方式,桢格式10位,波特率可变,用于双机通信模式2是9位异步通信方式,桢格式11位,波特率固定,用于多机通信模式3是9位异步通信方式,桢格式11位,波特率可变,用于多机远距离通信模式
1、
2、3的区别主要表现在桢格式和波特率两个方面6.6解答模式0的波特率固定fosc/12模式2的波特率固定fosc/n(n=64或32)模式
1、3的波特率可变T1溢出率/n(n=32或16)6.7解答定时器T1模式2是自动装载初值模式,波特率精度高若已知系统晶振频率、通信选用的波特率,其初值6.8解答MCS-51单片机串行口的模式0是同步位移寄存器方式,用于I/O口的串、并转换扩展并行I/O口时,需要对串行控制寄存器SCON进行初始化设置;串行口需外接移位寄存器,串行口的TXD端作为同步时钟端,RXD作为串行数据的I/O端6.9解答多机通信时,主机发送的信息可传送到各个从机,而各从机发送的信息只能被主机接收,利用SCON中的TB8/RB8和SM2可实现多机通信多机通信过程
①所有从机在初始化时置SM2=1,都处于只能接收主机发送的地址桢(RB8=1)
②主机发送地址桢(TB8=1),指出接收从机的地址
③所有从机接收到主机发送的地址桢后,与自身地址相比较,相同则置SM2=0;相异则保持SM2=1不变
④主机发送数据桢(TB8=0),由于指定的从机已将SM2=0,能接收主机发送的数据桢,而其它从机仍置SM2=1,对主机发送的数据桢不予理睬
⑤被寻址的从机与主机通信完毕,重置SM2=1,恢复初始状态6.10解答串行口工作在模式2,确定SMOD=1未规定波特率,定时器初值任取,但两机要保持一致甲机发送子程序TXDA MOVTMOD,#20H;置T1定时器工作方式2MOVTL1,#0FDH;置初值MOVTH1,#0FDH;置初值SETBTR1;启动T1MOVSCON,#90H;置串口方式2,允许接收,且SM2=0MOVPCON,#80H;置SMOD=1(SMOD不能位操作)CLRES;禁止串行中断MOVDPTR,#2200H;指发送数据区首地址MOVR2,#51H;指发送数据长度TRSA MOVXA,@DPTR;读一个数据MOVCPMOVTB8C;置校验位MOVSBUF,A;发送JNBTI,$;等待一桢数据发送完毕CLRTI;清发送中断标志INCDPTR;指向下一字节单元DJNZR2,TRSA;判数据发完否?未完继续RET;乙机接收子程序RXDB MOVTMOD,#20H;置T1定时器工作方式2MOVTL1,#0FDH;置初值MOVTH1,#0FDH;置初值SETBTR1;启动T1MOVSCON,#90H;置串行方式2,允许接收,且SM2=0MOVPCON,#80H;置SMOD=1(SMOD不能位操作)CLRES;禁止串行中断MOVDPTR,#1400H;置接收数据区首地址MOVR2,#51H;置接收数据长度SETBREN;启动接收SETBF0;先置出错标志F0为1RDSB JNBRI,$;等待一桢数据接收完毕CLRRI;清接收中断标志MOVA,SBUF;读接收数据MOVX@DPTR,A;存接收数据MOVCRB8ANLCPJCRDSB2;都是1,则正确MOVCRB8ORLCPJNCRDSB2;都是0,则正确LJMPRXDBD;出错RDSB2INCDPTR;指向下一数据存储单元DJNZR2,RDSB;判数据接收完否?未完继续CLRF0;正确接收,则清除出错标志F0RXDBD RET;第7章中断系统7.1解答
①MCS-51系统有、T
0、、T1和串行口共五个中断源;
②和的中断标志是IE0和IE1,在电平方式下,当外部中断输入信号是低电平时,由硬件置1;在边沿方式下,当外部中断输入信号是下降沿时,由硬件置1;定时计数器溢出中断T0和T1的中断标志位是TF0和TF1,当定时/计数器产生溢出时,该位由硬件置1;串行口中断标志是TI或RI,当单片机接收到或发送完一帧数据后,由硬件置1
③外部中断和的电平方式,无法清除,需采取硬件和软件相结合的方法来清除;边沿方式,在CPU响应中断后自动清除;定时/计数器0和1的溢出中断,在CPU响应中断后自动清除;串行口中断(包括串行接收中断RI和串行发送中断TI),由软件清零
④、T
0、、T1和串行口中断5个中断源分别对应的中断入口地址是0003H、000BH、0013H、001BH、0023H7.2解答MCS-51的中断系统有两个中断优先级高优先级和低优先级中断优先级的控制方式是
①高优先级中断可以中断正在响应的低优先级中断,反之则不能
②优先级中断不能互相中断即某个中断(不论是高优先级或低优先级)一旦得到响应,与其同级的中断就不能再中断它
③同一中断优先级中优先权由高到低的次序是、T
0、、T1和串行口中断,若有多个中断源同时请求中断,CPU将先响应优先权高的中断,后响应优先权低的中断通过中断优先级控制寄存器IP可以选择5个中断源的优先级别7.3解答
①MCS-51有IE
0、TF
0、IE
1、TF
1、TI和RI共6个中断标志位
②相同之处是这些中断标志位都是由硬件自动产生的,不同之处是外部中断和计数/定时器中断标志的清零是由硬件自动完成的,而串行口中断标志(TI、RI)不会自动清除,必须由用户在串行中断服务程序中用指令对TI或RI清07.4解答MOVIE#10010110B;T
0、、串行口允许中断MOVIP#00010100B;和串行口中断为高优先级CLRIT1;电平触发方式7.5解答
(1)置定时/计数器为工作模式2,且为计数方式,即8位的自动装载方式;
(2)定时/计数器的高8位和低8位初值都预置0FFH;
(3)将定时/计数器的计数输入端(P
3.
3、P
3.4)作为扩展的外部中断请求输入;
(4)在相应的中断服务程序入口开始存放外中断服务的中断服务程序7.6解答保护断点是调用子程序或中断程序之前,将主程序的当前位置(PC值)压入堆栈当中不需要软件处理,硬件自动完成保护现场是保护在子程序和中断服务程序中可能与主程序发生冲突的累加器、PSW寄存器以及其它一些寄存器,是把断点处有关寄存器的内容压入堆栈进行保护,需要软件完成7.7解答中断由IE寄存器控制,开中断是指IE寄存器中对应的控制位置1;关中断是指IE寄存器中对应的控制位置07.8解答
①主机频率6MHz,定时器最大定时130ms左右,取100ms为定时时间单位,高电平包含6个单位,低电平包含4个单位,共10个单位选用定时器T0模式1,初值P
1.7驱动发光二极管,R7作时间单位计数器电路如图7-1电路中7404是反向器,P
1.7输出高电平,灯不亮
②编程ORG0000H;复位地址LJMPSTAT;转初始化程序ORG000BH;T0中断服务程序LJMPPT0;转T0中断服务程序ORG1000H;初始化程序首地址STAT CLRP
1.7;输出低电平MOVTMOD,#01H;置T0定时器方式1MOVTH0,#3CH;置T0初值,定时100msMOVTL0,#0B0H;置T0初值,定时100msSETBTR0,;T0启动MOVR7,#10;计数器置初值MOVIE,#10000010B;T0开中LJMP$;等待中断PT0CJNER7,#10PT02SETBP
1.7;计数器值10~5时,灯灭LJMPPT04PT02CJNER7,#4PT04CLRP
1.7;计数器值4~1时,灯亮PT04DJNZR7,PT0DMOVR7,#10;计数器置初值PT0D RETI;中断返回7.9解答由于未规定波特率,A、B机保持一致则可取串行口工作在模式2,SMOD=1A机发送子程序TXDA MOVTMOD,#20H;置T1定时器工作方式2MOVSCON,#40H;置串行方式1,禁止接收MOVPCON,#80H;置SMOD=1(SMOD不能位操作)CLRES;禁止串行中断MOVR0,#40H;置发送数据区首地址MOVR2,#20H;置发送数据长度TRSA MOVA,@R0;读一个数据MOVCPMOVTB8C;置校验位MOVSBUF,A;发送JNBTI,$;等待一桢数据发送完毕CLRTI;清发送中断标志INCR0;指向下一字节单元DJNZR2,TRSA;判数据发完否?未完继续RET;B机接收子程序RXDB MOVTMOD,#20H;置T1定时器工作方式2MOVSCON,#40H;置串行方式1,禁止接收SM2=0MOVPCON,#80H;置SMOD=1(SMOD不能位操作)CLRES;禁止串行中断MOVR0,#60H;置接收数据区首地址MOVR2,#20H;置接收数据长度SETBREN;启动接收SETBF0;先置出错标志F0为1RDSB JNBRI,$;等待一桢数据接收完毕CLRRI;清接收中断标志MOVA,SBUF;读接收数据MOV@R0,A;存接收数据MOVCRB8ANLCPJCRDSB2;都是1,则正确MOVCRB8ORLCPJNCRDSB2;都是0,则正确LJMPRXDBD;出错RDSB2INCR0;指向下一数据存储单元DJNZR2,RDSB;判数据接收完否?未完继续CLRF0;正确接收,则清除出错标志F0RXDBD RET;第8章MCS-51单片机的系统扩展8.1解答程序存储器和数据存储器虽然共用16位地址线和8位数据线,但数据存储器的读和写由和信号控制,程序存储器由读选通信号控制,两者虽然共处同一地址空间,但由于控制信号不同,故不会发生总线冲突8.2解答MCS-51单片机的寻址范围是64KB,既0000H~FFFFH;8031单片机可以配置的存储器最大容量程序存储器64KB;片外数据存储器64KB;用户可以使用的最大容量是64KBROM、64KBRAM、128B片内RAM及SFR8.3解答单片机外扩存储器时,P0口要外接锁存器,是因为P0口是分时提供低8位地址和数据信息的,为避免低8位地址信息丢失,所以P0口要外接锁存器;而P2口不具备分时、复用功能,所以不用外接锁存器8.4解答程序存储器和数据存储器的扩展相同点是由P2口提供高8位地址,P0口分时提供低8位地址和8位双向数据线程序存储器和数据存储器的扩展不相同点是数据存储器的读和写由CPU的和信号控制,地址空间任意选取;程序存储器读选信号由CPU的控制,程序空间从0000H开始8031与
2732、6116连接的电路图如图8-18.5解答8031单片机与两片2732AEPROM芯片连接如图8-28.6解答静态RAM6116的容量是2KB,选用2片6116可满足扩展要求,8031单片机与2片6116芯片连接如图8-3图8-38031与两片6116的连接图8.7解答由于题中没有片选要求,所以取P
2.7作片选扩展I/O口作普通输入、输出这里随机定义为A、B口输出、C口输入控制字为00000011B(03H)8031与8155连接的硬件电路图如图8-4图8-48031与8155连接的电路图初始化程序MOVDPTR,#7FF8H;命令口地址MOVA,#03H;控制字MOVX@DPTR,A;控制字送入命令口8.8解答分析可编程8255的工作状况可知A口为普通输入,B口普通输出,C口未用,可定义成普通输入,控制字为10011001B,即99H,编程如下MOVDPTR#8255命令口MOVA#99HMOVX@DPTRALOOP:MOVDPTR#8255A口MOVXA@DPTRCPLAMOVDPTR#8255B口MOVX@DPTRALJMPLOOP8.9解答8155工作方式控制字的作用是使可编程的A口、B口、C口工作在需要的方式下以及控制定时器的启动和停止各位的功能定义如图8-5所示TM2TM1IEBIEAPC2PC1PBPA0A口定义为输入方式1A口定义为输出方式0B口定义为输入方式1B口定义为输出方式00方式1A、B口基本输入输出,C口输入方式01方式2A、B口基本输入输出,C口输出方式10方式3A口选通输入输出、B口基本输入输出方式PC0AINTR,PC1ABF,PC2/ASTBPC(3~5)输出11方式4A口、B口都为选通输入输出PC0AINTR,PC1ABF,PC2/ASTBPC3BINTR,PC4BBF,PC5/BSTB00空操作,不影响定时/计数器操作01停止定时/计数器操作10若定时/计数器正在计数,长度减为1时停止计数11启动,置定时/计数器方式和长度后立即启动,若正在计数,溢出后按新的方式和长度计数0禁止A口中断1允许A口中断0禁止B口中断1允许B口中断图8-58155控制字8.10解答设定时计数器的输入脉冲fin=500kHz,定时10mS(100次/秒),相当于进行5k分频,计数为1388H,工作在模式3(连续脉冲),初值为D388H编程8155初始化子程序STR8155:MOVDPTR#7F84H;指向定时计数器低位寄存器MOVA#88H;MOVX@DPTRA;低位寄存器赋值INCDPTR;指向定时计数器高位寄存器MOVA#0D3H;MOVX@DPTRA;高位寄存器赋值(方式3)MOVDPTR#7F80H;指向8155命令寄存器MOVA#11001001B;A口选通输出,B口基本输入,C口作联络MOVX@DPTRA;命令寄存器赋值,定时器立即启动RET8.11解答设fosc=12MHz,定时计数器T0工作在模式2,定时时间为2504µs,中断40,000次达到10S,采用两个单元存放中断次数(40,000=200×200),定时器初值x=28-250=6编程ORG0000H;复位后入口地址LJMPSTRORG000BH;T0中断入口地址LJMPPT0ORG0100H;主程序首地址STR:MOVSP#50H;片内RAM50H单元开始设为堆栈区MOVTMOD#02H;T0工作在模式2MOVTH0#6;定时250uSMOVTL0#6;定时250uSMOVIE#82H;CPU开中断,T0开中断MOV33H#06;计数器送初值MOV30H#200;30H、31H中断计数40,000次MOV31H#200;30H、31H中断计数40,000次MOVDPTR#IOD;8255命令口MOVA#80H;控制字MOVX@DPTRA;控制字送到8255命令口SETBTR0;启动定时器MN:JNBF0$;等待10S时间到CLRF0;清除标志MN2:MOVDPTR#GLIST;工序对应输出表首地址MOVA33H;计数器DECA;计数器-1=偏移量MOVCA@A+DPTR;查表得到工序输出要求MOVDPTR#IOA;8255A口MOVX@DPTRA;状态输出DJNZ33HMN;下一个工序号MOV33H#6;重新置工序号LJMPMN;等待下一工序时间GLIST:DB20H10H08H04H02H01H;工序启、停控制PT0:DJNZ30HPT0D;40,000次计数MOV30H#200;40,000次计数DJNZ31HPT0D;40,000次计数MOV31H#200;40,000次计数SETBF0;10S时间到,标志F0=1PT0D:RETI;中断返回第9章MCS–51单片机的接口技术9.1解答由于机械触点的弹性作用,键盘操作在闭合及断开瞬间均有抖动过程,会出现一系列负脉冲抖动时间的长短,与开关的机械特性有关,一般为5~10ms通常去抖动影响的措施有硬件和软件两种
①采用硬件去除抖动影响的方法是加入RC滤波或D触发器电路
②采用软件去除抖动影响可节省硬件开销方法是检测到有键按下时,执行一个10ms的延时程序后,再确认该键是否按下9.2解答键盘的工作方式一般有编程扫描方式和中断扫描方式两种编程扫描方式是利用CPU在完成其他工作的空余,调用键盘扫描子程序,来响应按键输入要求这种方式不管键盘上有无键按下,CPU总要定时扫描键盘,因此CPU经常处于空扫描状态中断扫描工作方式是当键盘上有键闭合时产生中断请求,CPU响应中断请求后,转去执行中断服务程序,在中断服务程序中判别键盘上闭合键的键号,并作相应的处理9.3解答键盘的操作,无论是按键或键盘都是利用机械触点的合、断作用通过机械触点的闭合、断开过程产生一个电压信号由于机械触点的弹性作用,在闭合及断开瞬间均有抖动过程,抖动时间的长短,与开关的机械特性有关,一般为5~10ms这样会出现一系列脉冲为了保证CPU对键的一次闭合,仅作一次键输入处理,必须去除抖动影响9.4解答无论是LCD还是LED,其显示方式都有静态显示和动态显示两种显示方式所谓静态显示,就是当显示器显示某一字符时,相应段的发光二极管恒定地导通或截止,并且显示器的各位可同时显示静态显示时,较小的驱动电流就能得到较高的显示亮度所谓动态显示就是一位一位地轮流点亮显示器的各个位(扫描),对于显示器的每一位而言,每隔一段时间点亮一次显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关9.5解答设计数据采集系统时应考虑以下问题
①采样速度在一个数据采集系统中,采样速度表示了采集系统的实时性能采样速度由模拟信号带宽、数据通道数和每个周期的采样数决定奈奎斯特采样定理是实现采样数据无损再现的必要条件
②孔径误差由于从模拟信号到数字信号有一个过程,对于一个动态信号,在模/数转换器接通的孔径时间里,输入的模拟信号是不确定的,从而引起输出的不确定性误差
③系统通过率系统的通过率由模拟多路选择器、输入放大器的稳定时间、采样/保持电路的采集时间以及A/D转换器的稳定和转换时间确定
④模/数转换精度前向通道的总误差应小于等于A/D转换器的量化误差,否则选取高分辨率A/D转换器失去意义9.6解答A/D转换器的主要技术指标包括
①量化误差与分辨率分辨率是以输出二进制位数或者BCD码位数表示测量误差和分辨率是统一的,量化误差是由于A/D转换器的有限字长引起的量化误差理论上为一个单位分辨率,即±1/2LSB提高分辨率可减少量化误差
②转换精度A/D转换器的转换精度反映了一个实际A/D转换器在量化值上与理想A/D转换器进行A/D转换的差值,可表示成绝对误差和相对误差
③转换时间与转换速率A/D转换器完成一次A/D转换所需要的时间为A/D转换时间通常A/D转换速率是转换时间的倒数目前A/D转换最快的是高速全并行式A/D转换器
④失调(零点)和增益温度系数这两项指标都是表示A/D转换器受环境温度影响的程度,一般用每摄氏度温度变化所产生的相对误差作为指标,以ppm/℃为单位表示
⑤对电源电压变化的抑制比A/D转换器对电源电压的抑制比(PSRR)用改变电源电压使数据发生±1LSB变化时所对应的电源电压变化范围来表示9.7解答在确定A/D转换器时,应遵循下述原则
①根据前向通道的总误差,选择A/D转换器的精度和分辨率
②根据信号的变化率及转换精度要求,确定A/D转换速度,以保证系统的实时性要求为减少孔径误差,若对变化速度非常快的信号进行A/D转换,可考虑加入采样/保持电路
③根据环境条件来选择A/D转换器的些环境参数要求,如工作温度、功耗、可靠性等级等性能
④根据计算机接口特征,考虑选择A/D转换器的输出形式例如,A/D转换器是并行输出还是串行输出,是二进制码还是BCD码;是用外部时钟、内部时钟还是不用时钟;有无转换结束状态标志;与TTL、CMOS及ECL电路的兼容性等等
⑤还要考虑到芯片的成本、货源、是否是主流芯片等诸因素9.8解答
①MC14433主要特点MC14433是单通道廉价型3(1/2)双积分A/D转换器,抗干扰性好,精度较高,但速度慢,转换速度约1~10次/秒,适合在一些非快速过程的前向通道中应用
②ADC0809主要特点8通道8位分辨率;由外部加入参考电源及转换时钟源,当时钟fc=640kHz时,典型转换时间100µs,是中速廉价型产品适合多路信号输入、精度和速度要求不高的场合
③MAX197主要特点8通道12位分辨率;电压
5.0V,并行接口;转换时间6,内置参考电源及转换时钟源;可编程自动通道扫描测量范围0~5V,可选择单极性输入和双极性输入适合多路信号输入、精度要求高、速度较快的场合,尤其是双极性信号,电路简单
④TLV2548主要特点8通道12位分辨率;电压
2.7-
5.0V,低电流、低功耗,SPI串行接口;转换时间4µs,内置参考电源、8个12位结果缓冲区及转换时钟源;可编程自动通道扫描适合多路信号输入、精度要求高、转换速度快的场合9.9解答MAX197是8通道12位分辨率、并行接口的A/D转换器;模拟信号电压量程为多种,适合多路信号输入、精度要求高、速度快且并行接口的场合,MAX197与单片机是采用并行接口方式连接,其硬件电路比串行接口复杂TLV2548是8通道12位分辨率、串行接口的A/D转换器;模拟信号电压为0~5V,适合多路信号输入、精度要求高、速度要求高且串行接口的场合,由于TLV2548与单片机是以串行接口方式连接,使其硬件电路简单9.10解答当模拟信号电压为0~
1.999V或0~
199.9mV,只有一路模拟信号输入,并且对A/D转换精度要求高,对转换速度无要求的场合下,可选择低速、廉价型3(1/2)双积分A/D转换器MC14433;当模拟信号电压为0~5V,有多路模拟信号输入,并且对A/D转换精度和速度要求不高的场合下,可选择ADC08099.11解答当有多路模拟信号输入,模拟信号电压为0~5V,并且要求较高的转换精度和极快的转换速度的场合下,可选择TLV2548当有多路模拟信号输入,模拟信号电压量程为多种,可以为±5V,±10V,0~5V,0~10V,并且要求较高的转换精度和极快的转换速度的场合下,可选择MAX1979.12解答D/A转换器的选择原则包括D/A转换器的主要性能指标和结构特性
①D/A转换器的主要性能指标D/A转换器的主要性能指标有静态指标,包括各项精度指标和动态指标;增益温度系数;转换精度和转换时间其中转换精度和转换时间是用户首要考虑的
②D/A转换器结构特性主要表现为芯片内部的配置情况,主要有数字输入特性中的接收数码制、数据格式、逻辑电平等;模拟输出特性中的参考电压、参考电阻、满码输出,以及最大输出短路电流和输出电压范围;锁存特性及转换特性;影响输出电压的参考源这些会给接口设计带来很大的影响9.13解答
①分辨率当输入数字发生单位数码变化时,即LSB位产生一次变化时,所对应的输出模拟量(电压或电流)的变化量
②量程和实际满量程标称满量程(NFS)是指相应于数字量标称值2n的模拟输出量但实际数字量最大为2n–1,要比标称值小一个LSB,因此实际满量程(AFS)要比标称满量程(NFS)小一个LSB的增量
③精度D/A转换器的转换精度与D/A转换芯片的结构和接口配置的电路有关一般说来,不考虑其D/A转换误差时,D/A转换器的转换精度即为其分辨率的大小但D/A转换器的转换精度还与外电路的配置有关,当外电路的器件或电源有较大的误差时,会造成较大的D/A转化误差
④建立时间(ts)输入数字量变化后模拟输出量稳定到相应数值范围内所需的时间
⑤尖峰输入码发生变化时刻产生的瞬间误差9.14解答
①DAC0832主要特点DAC0832是廉价、中速、并行接口的D/A转换器;是单通道、8位、电流输出型,要获得电压输出,则需外接转换电路;内部无参考电源,需外接参考电源;双缓冲结构,可以实现多通道D/A转换的同步输出
②TLV5630主要特点TLV5630是快速、SPI串行接口的D/A转换器;是8通道、12位、电压输出型;低电压供电
2.7-
5.0V,低功耗;内置参考电源,无需外接参考电源,使硬件电路简单
③MAX508主要特点MAX508是快速、并行接口的D/A转换器;是单通道、12位、电压输出型;可以双电源供电,有3种输出供选择;内置参考电源,无需外接参考电源,使硬件电路简单9.15解答TLV5630和MAX508都是快速、高精度(12位)电压输出型的D/A转换器,内置参考电源,二者的区别是TLV5630是8通道串行接口的D/A转换器;可以低电压供电
2.7~
5.0V,是低功耗产品而MAX508是单通道并行接口的D/A转换器;可以双电源供电,有3种输出供选择9.16解答对D/A转换输出精度和速度要求不高的场合,可选择中速、廉价的DAC0832如果对D/A转换输出精度要求高、速度快,且需要多种输出的场合,可选择MAX5089.17解答当只需一路模拟输出信号,并且对D/A转换输出精度和速度要求不高的场合,可选择中速、廉价的DAC0832当需要多路模拟输出信号,低电压供电,并且要求较高的转换精度和极快的转换速度的场合,可选择TLV5630X→A暂存A20A502→B5→B1→BA×B→AA→FUNC保存结果开始返回YNYN题图4-1习题4-3流程图400ms600ms图7-1P
1.7驱动发光二极管电路P
1.7图8-18031与
2732、6116的电路图图8-28031单片机与两片2732连接的电路图。