• 611.05 KB
  • 2022-04-22 11:32:41 发布

单片机原理与接口技术 (牛昱光 李晓林 著) 电子工业出版社 课后答案

  • 48页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'单片机原理与接口技术习题与答案习题与思考题11-1微型计算机通常由哪些部分组成?各有哪些功能?答:微型计算机通常由控制器、运算器、存储器、输入/输出接口电路、输入设备和输出设备组成。控制器的功能是负责从内部存储器中取出指令并对指令进行分析、判断、并根据指令发出控制信号,使计算机有条不紊的协调工作;运算器主要完成算数运算和逻辑运算;存储器用于存储程序和数据;输入/输出接口电路完成CPU与外设之间相连;输入和输出设备用于和计算机进行信息交流的输入和输出。1-2单片微型计算机与一般微型计算机相比较有哪些区别?有哪些特点?答:与通用微型计算机相比,单片机的硬件上,具有严格分工的存储器ROM和RAM和I/O端口引脚具有复用功能;软件上,采用面向控制的指令系统和硬件功能具有广泛的通用性,以及品种规格的系列化。单片机还具备体积小、价格低、性能强大、速度快、用途广、灵活性强、可靠性高等特点。1-3简述计算机的工作过程。答:计算机的工作是由微处理器以一定的时序来不断的取指令、指令译码和执行指令的过程。1-4单片机的几个重要指标的定义。答:单片机的重要指标包括位数、存储器、I/O口、速度、工作电压、功耗和温度。1-5单片微型计算机主要应用在哪些方面?答:单片机的主要应用领域有智能化产品、智能化仪表、智能化测控系统、智能化接口等方面。1-6为什么说单片微型计算机有较高的性能价格比和抗干扰能力?答:因为单片微型计算机主要面向特定应用而设计,设计者在硬件和软件上都高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,具备较高的性能、课后答案网价格比;单片机嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中,另外单片机体积小,可以放入屏蔽设备中,从而使其具有较高的抗干扰能力。1-7简述单片机嵌入式系统的定义和特点。www.hackshp.cn答:单片机嵌入式系统是嵌入到对象体系中的专用计算机系统;其特点是面向特定应用、与各个行业的具体应用相结合、硬件和软件高效率、软件固化在存储器芯片或单片机本身和不具备自举开发能力。单片机原理与接口技术2习题与思考题22-1MCS-51单片机内部包含哪些主要功能部件?它们的作用是什么?答:MCS-51单片机在一块芯片中集成了CPU、RAM、ROM、定时/计数器、多功能I/O口和中断控制等基本功能部件。单片机的核心部分是CPU,CPU是单片机的大脑和心脏。程序存储器用于存放编好的程序或表格常数。数据存储器用于存放中间运算结果、数据暂存和缓冲、标志位等。定时/计数器实质上是加法计数器,当它对具有固定时间间隔的内部机器周期进行计数时 ,它是定时器;当它对外部事件进行计数时,它是计数器。I/O接口的主要功能包括:缓冲与锁存数据、地址译码、信息格式转换、传递状态(外设状态)和发布命令等。中断控制可以解决CPU与外设之间速度匹配的问题,使单片机可以及时处理系统中许多随机的参数和信息,同时,它也提高了其处理故障与应变能力的能力。2-2MCS-51单片机的核心器件是什么?它由哪些部分组成?各部分的主要功能是什么?答:单片机的核心部分是CPU,可以说CPU是单片机的大脑和心脏。它由运算器、控制器和布尔(位)处理器组成。运算器是用于对数据进行算术运算和逻辑操作的执行部件。控制器是CPU的大脑中枢,它的功能是逐条对指令进行译码,并通过定时和控制电路在规定的时刻发出各种操作所需的内部和外部控制信号,协调各部分的工作,完成指令规定的操作。2-3MCS-51单片机的EA、ALE和PSEN端的功能是什么?答:ALE——ALE为地址锁存允许信号,在访问外部存储器时,ALE用来锁存P0送出的低8位地址信号。PSEN——外部程序存储器的读选通信号。当访问外部ROM时,PSEN产生负脉冲作为外部ROM的选通信号;在访问外部RAM或片内ROM时,不会产生有效的PSEN信号。PSEN可驱动8个LSTTL门输入端。EA——访问外部程序存储器控制信号。对8051和8751,它们的片内有4KB的程序存储器。当EA为高电平时,CPU访问程序存储器有两种情况:一是访问的地址空间在0~4K范围内,CPU访问片内程序存储器;二是访问的地址超出4K时,CPU将自动执行外部程序存储器的程序。对于8031,EA必须接地,只能访问外部ROM。2-4程序计数器(PC)有多少位?它的主要功能是什么?答:程序计数器有16位,它的功能和一般微型计算机的相同,用来存放下一条要执行的指习题与答案3课后答案网令的地址。当按照PC所指的地址从存储器中取出一条指令后,PC会自动加l,即指向下一条指令。2-5简述MCS-51单片机片内RAM区地址空间的分配特点。答:片内数据存储器分为工作寄存器区、位寻址区和数据缓冲器区等www.hackshp.cn3个区域。工作寄存器使用内部RAM中地址为00H~1FH的32个单元,并分成4个工作寄存器组,每个组有8个工作寄存器,名称为R0~R7。对于内部RAM中地址为20H~2FH的16个单元,CPU不仅具有字节寻址功能,而且还具有位寻址功能。这16个单元共128位,每一位都赋予1个位地址,位地址范围是00H~7FH。30H~7FH是数据缓冲区,即用户RAM区,共80个单元。2-6MCS-51单片机如何实现工作寄存器组R0~R7的选择?答:每个工作寄存器组都可被选为CPU的当前工作寄存器,用户可以通过改变程序状态字寄存器(PSW)中的RS1、RS0两位来任选一个寄存器组为当前工作寄存器。RS1RS0寄存器组R0R1R2R3R4R5R6R7 000组00H01H02H03H04H05H06H07H011组08H09H0AH0BH0CH0DH0EH0FH102组10H11H12H13H14H15H16H17H113组18H19H1AH1BH1CH1DH1EH1FH2-7单片机复位后,各特殊功能寄存器中的初始化状态是什么?答:特殊功能寄存器初始状态特殊功能寄存器初始状态ACC00HTMOD00HPC0000HTCON00HPSW00HTL000HSP07HTH000HDPTR0000HTL100HP0~P30FFHTH100HIPxx000000BB00HIE0x000000BSCON00HPCON0xxx0000BSBUF不定2-8MCS-51单片机的21个特殊功能寄存器中,哪些具有位寻址能力?答:MCS-51单片机中的程序状态字寄存器(PSW),B寄存器,累加器(ACC),端口P0~P3,控制寄存器中用于中断控制的中断优先级控制寄存器(IP)和中断允许控制寄存器(IE),用于设置定时/计数器和串行口工作方式的定时/计数器控制寄存器(TCON)、串行口控制寄存器(SCON)具有位寻址能力。单片机原理与接口技术42-9程序状态字寄存器(PSW)的作用是什么?答:PSW寄存器是8位寄存器,用做程序运行状态的标志,字节地址为D0H。可以进行位寻址。课后答案网2-10MCS-51单片机的P3口具有哪些功能?答:P3口是双功能口,除了作为准双向通用I/O口使用外,每一根口线还具有第二种功能,P3口的各位如不设定为第二功能则自动处于第一功能。P3的第二功能涉及到串行口、外部中断、定时器,与特殊功能寄存器有关。www.hackshp.cn2-11MCS-51单片机的片外总线是由哪些总线构成的?答:P0口的第二功能是在访问外部存储器时,分时提供低8位地址和8位双向数据总线,这时先用做地址总线再用做数据总线。2-12MCS-51单片机对外有几条专用控制线?答:4条。有RST/VPD,ALE/PROG,PSEN和EA/VPP专用控制线。2-13单片机时钟电路有何用途?起什么作用?答:单片机工作是在统一的时钟脉冲控制下一拍一拍地进行的,这个脉冲是单片机控制器中的时序电路发出的。单片机的时序就是CPU在执行指令时所需控制信号的时间顺序。 为了保证各部件间的同步工作,单片机内部电路应在唯一的时钟信号下严格地按时序进行工作。MCS-51系列单片机内部有一个高增益反相放大器,用于构成振荡器,但要形成时钟脉冲,外部还需附加电路。2-14什么是时钟周期、状态周期、机器周期和指令周期?当单片机时钟频率为12MHz时,一个机器周期是多少?ALE引脚的输出频率是多少?答:时钟周期也称为振荡周期,定义为时钟脉冲频率(fosc)的倒数,它是计算机中最基本的、最小的时间单位。时钟周期经2分频后成为内部的时钟信号,用作单片机内部各功能部件按序协调工作的控制信号,称为状态周期,用S表示。完成一个基本操作所需要的时间称为机器周期。指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成,指令不同,所需要的机器周期数也不同。当单片机时钟频率为12MHz时,一个机器周期为1μs。ALE引脚的输出频率为2MHz。2-15什么时候需要复位操作?对复位信号有何要求?答:复位是单片机的初始化操作。单片机系统在上电启动运行时,都需要先复位。上电复位利用电容器的充电实现。在时钟电路工作后,在RST端连续给出2个机器周期的高电平就可完成复位操作。MCS-51单片机的上电加按键复位电路当复位按键按下习题与答案5后,复位端通过51Ω的小电阻与+5V电源接通,迅速放电,使RST引脚为高电平;当复位按键弹起后,+5V电源通过2kΩ电阻对22μF电容重新充电,RST引脚端出现复位正脉冲。2-16按例2-3的要求画出对应的硬件电路图。课后答案网2-17设计一个按键电路。当按键长按5s以上时,系统复位;当按键短时间按时,系统控制LED灯的开关。答:(1)电路图如下。www.hackshp.cn(2)程序如下。;51程序,当按键时间小于5S时,控制灯的亮灭,按键时间大于5S时,系统复位。单片机原理与接口技术6ORG0000HAJMPSTARTORG000BHAJMPTIME;定时器T0中断,50ms中断一次,总共100次,共5sORG0100HSTART:CLRP2.2FLAG1EQU22H;按键时间超过5S标志位 MOVIP,#02HMOVIE,#82HMOVTMOD,#01HMOVTH0,#3DHMOVTL0,#0B0HSETBEAMAIN:;主程序AAA:JNBP2.0,BBBAJMPEXITBBB:SETBTR0JBP2.0,DDDMOVA,#01HCJNEA,FLAG1,BBBCCC:;长按键CLRTR0;关闭定时器MOVTH0,#3DH;恢复定时器的初值MOVTL0,#0B0HJNBP2.0,$CLRFLAG1CLRAMOV21H,AMOV22H,AAJMP0000H;软件复位AJMPEXITDDD:CPLP2.1;短按键CLRTR0;关闭定时器课后答案网MOVTH0,#3DH;恢复定时器的初值MOVTL0,#0B0HCLRA习题与答案7MOV21H,Awww.hackshp.cnAJMPEXITTIME:PUSHPSW;中断程序PUSHACCMOVTH0,#3DHMOVTL0,#0B0HMOVA,21H;21H中存放次数ADDA,#01HMOV21H,ACLRCCJNEA,#100,TIME1 AJMPTIME2TIME1:JCTIME2MOVFLAG1,#01HCLRAMOV21H,ANOPTIME2:POPACCPOPPSWRETIEXIT:AJMPMAINEND单片机原理与接口技术8习题与思考题33-1什么是寻址方式?MCS-51指令系统有哪些寻址方式?相应的寻址空间在何处?答:在指令系统中,操作数是一个重要的组成部分,它指定了参与运算的数据或数据所在的地址单元。如何找到参与运算的这个数据或数据所在的地址就称为寻址方式。MCS-51指令系统的寻址方式主要有立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、基址加变址寻址、相对寻址和位寻址等七种。对程序存储器只能采用立即寻址和基址加变址寻址方式;对特殊功能寄存器只能采用直接寻址方式,不能采用寄存器间接寻址,对8032/8052等单片机内部RAM的高128个字节(80H~FFH),只能采用寄存器间接寻址,不能使用直接寻址方式;对位操作指令只能对位寻址区操作;外部扩展的数据存储器只能用MOVX指令访问,而内部RAM的低128个字节(00H~7FH)既能用直接寻址,也能用间接寻址。3-2访问内部RAM单元可以采用哪些寻址方式?访问外部RAM单元可以采用哪些寻址方式?访问特殊功能寄存器(SFR)可以采用哪些寻址方式?答:对特殊功能寄存器只能采用直接寻址方式,单片机内部课后答案网RAM的高128个字节(80H~FFH),只能采用寄存器间接寻址,外部扩展的数据存储器只能用MOVX指令访问,而内部RAM的低128个字节(00H~7FH)既能用直接寻址,也能用间接寻址。3-3访问外部数据存储器和程序存储器可以用哪些指令来实现?举例说明。答:访问外部数据存储器可以用以下指令实现:www.hackshp.cnMOVXA,@Ri;((Ri))→A,寄存器Ri指向的片外RAM地址中的内容送到累加器A中MOVX@Ri,A;A→((Ri)),累加器中内容送到寄存器Ri指向的片外RAM地址中MOVXA,@DPTR;((DPTR))→A,数据指针指向的片外RAM地址中的内容送到累加器A中MOVX@DPTR,A;A→((DPTR)),累加器中内容送到数据指针指向的片外RAM地址中访问程序存储器可以用以下指令实现:MOVCA,@A+DPTR;((A+DPTR))→A,表格地址单元中的内容送到累加器A中MOVCA,@A+PC;PC+1→PC,((A+PC))→A,表格地址单元中的内容送到累 加器A中习题与答案93-4试用下列3种寻址方式编程,将立即数0FH送入内部RAM的30H单元中。(1)立即寻址方式;(2)寄存器寻址方式;(3)寄存器间接寻址方式答:(1)立即寻址方式:MOV30H,#0FH(2)寄存器寻址方式:MOVR5,#0FHMOV30H,R5(3)寄存器间接寻址方式:MOV@R1,#0FHMOV30H,@R13-5SJMP指令和AJMP指令都是字节转移指令,它们有什么区别?各自的转移范围是多少?能否用AJMP指令代替程序中的所有SJMP指令?为什么?答:AJMP和SJMP的区别有:(1)跳转范围不同。AJMPaddr1;短跳转范围:2KBSJMPrel;相对跳转范围:-128~+127(2)指令长度不同。(3)指令构成不同。AJMP、LJMP后跟的是绝对地址,而SJMP后跟的是相对地址。不能用AJMP指令代替程序中的SJMP指令,因为如果改变的话,程序跳转到的新PC值指向的地址会不同,导致程序出现错误。3-6加法和减法指令影响哪些标志位?怎么影响的?答:在带进位的加法运算中,会影响进位位Cy,最终要将A中的值和其后面的值以及进位位Cy中的值相加,最终结果存在A。在带进位减法指令中,要将累加器课后答案网A的内容与第二操作数及进位标志相减,结果送回到累加器A中。在执行减法过程中,如果位7(D7)有借位,则进位标志Cy置“1”,否则清“0”;如果位3(D3)有借位,则辅助进位标志AC置“1”,否则清“0”;如位6有借位而位7没有借位,或位7有借位而位6没有借位,则溢出标志OV置“1”,否则清“0”。若要进行不带借位的减法操作,则必须先将www.hackshp.cnCy清“0”。3-7写出实现下列要求的指令或程序片段。(1)将R0的内容传送到R1;(2)内部RAM的20H单元内容传送到寄存器R1;(3)内部RAM的20H单元的D7和D3位清零,其它位保持不变;(4)外部RAM的1000H单元内容传送到内部RAM的60H单元中;(5)外部RAM的1000H单元内容传送到寄存器R2;(6)清除累加器高4位。答:(1)MOVA,R0MOVR1,A(2)MOVR1,20H(3)MOVA,20H 单片机原理与接口技术10ANLA,#77H(4)MOVDPTR,#1000HMOVXA,@DPTRMOV60H,A(5)MOVDPTR,#1000HMOVXA,@DPTRMOVR2,A(6)ANLA,#0FH3-8试编写一段程序,将内部数据存储器30H、3lH单元内容传送到外部数据存储器1000H、1001H单元中。答:MOVA,30HMOVDPTR,#1000HMOV@DPTR,AMOVA,31HMOVDPTR,#1000HMOV@DPTR,A3-9试编写一段程序,将外部数据存储器40H单元中的内容传送到0l00H单元中。答:MOVDPTR,#0040HMOVA,@DPTRMOV0100H,A3-10试编写—段程序,将R3中的数乘4(用移位指令)。答:MOVA,R3MOV23H,#02HL0:DJNZ23H,L1课后答案网L1:RLASJMPL03-11试编写—段程序,将R2中的各位倒序排列后送入R3中。答:MOVA,R2www.hackshp.cnMOV23H,#08HL0:DJNZ23H,L1L1:RLASJMPL0MOVR3,A习题与答案113-12试编写—段程序,将P1口的高5位置位,低3位不变。答:MOVA,P1ORLA,#F8H MOVP1,A单片机原理与接口技术12习题与思考题44-1MCS-51系列单片机汇编语言进行程序设计的步骤如何?答:单片机汇编语言进行程序设计的步骤:(1)分析题意,明确要求;(2)确定算法;(3)画程序流程图,用图解来描述和说明解题步骤;(4)分配内存工作单元,确定程序与数据区的存放地址;(5)编写源程序;(6)程序优化;(7)上机调试、修改和最后确定源程序。4-2常用的程序结构有哪几种?特点如何?答:常用的程序结构有顺序、分支、循环、查表及子程序结构;特点是程序的结构清晰、易于读写和验证、可靠性高。4-3子程序调用时,参数的传递方法有哪几种?答:传递方法有传递数据、传送地址和通过堆栈传递参数。4-4编写程序,将片内30H~39H单元中的内容送到以2000H为首的外部存储器。答:ORG0000HSTART:MOVR0,#30HMOVDPTR,#2000HMOVR1,#10CLRALOOP:MOVA,@R0MOVX@DPTR,ADECR1DJNZR1,LOOPEND4-5编写程序,采用算术平均值滤波法求采样平均值,设课后答案网8次采样值依次放在20H~27H的连续单元中,结果保留在A中。答:FILT:CLRAMOVR2,AMOVR3,AMOVR0,#20Hwww.hackshp.cnMOVR7,#08H;初始化FILT1:MOVA,@R0ADDA,R3习题与答案13MOVR3,ACLRAADDCA,R2MOVR2,AINCR0DJNZR7,FILT1 ;累加采样值到R3,累加进位到R2=00000xxxBFILT2:SWAPARLA;R2/8,节省一个指令周期XCHA,R3SWAPARLA;R3/8,节省一个指令周期ADDA,#80H;四舍五入ANLA,#1FH;屏蔽移位进入的前三位ADDCA,R3;结果相加END;取平均值4-6编写程序,将存放在内部RAM起始地址为20H和30H的两个3字节无符号相减,结果存放在内部RAM单元70H、71H、72H中(低位对应低字节)。答:ORG0000HSTART:MOVR0,#20HMOVR1,#30HMOVR2,#03HCLRCS0:LCALLXUMOV70H,ALCALLXUMOV70H,ALCALLXUMOV70H,AS1:MOVA,@R0SUBBA,@R1INCR0课后答案网INCR1RETEND单片机原理与接口技术www.hackshp.cn144-7编写程序,实现两个双字节无符号数的乘法运算,乘数存放在R2和R3中(R2存放高字节,R3存放低字节,以下类同),被乘数存放在R6和R7中,积存放在R4、R5、R6和R7中。答:ORG0000HDMUL:MOVA,R3MOVB,R7MULABMOVR0,AMOVR1,B;低8位*低8位MOVA,R2 MOVB,R7MULABADDA,R1MOVR1,AMOVA,BADDCA,#00HMOVR5,A;高8位*低8位MOVA,R3MOVB,R6MULABADDA,R1MOVR1,AMOVA,R5ADDCA,BMOVR5,AMOVA,#00HADDCA,#00HMOVR4,A;低8位*高8位MOVA,R3MOVB,R6MULABADDA,R5MOVR5,AMOVA,R4ADDCA,BMOVR4,A课后答案网习题与答案15;高8位*高8位MOVA,R0MOVR7,AMOVA,R1www.hackshp.cnMOVR6,A;R0、R1给R7、R6END4-8假设在R0指向的片内RAM区,存有20个16进制数的ASCII字串。将ASCII码转换为16进制数,然后两两合成一个字节,从低地址单元到高地址单元依次组合。答:ORG0000HSTART:MOVR7,#20S0:MOVA,R0MOVR1,A;R1为中间量MOVA,@R0 CLRCSUBBA,#30HMOV@R1,AJCS01MOVA,@R0SUBBA,#07HMOV@R1,AS01:INCR0MOVA,@R0CLRCSUBBA,#30HSWAPAORLA,@R1MOV@R1,AJCS02MOVA,@R0SUBBA,#07HSWAPAORA,@R1MOV@R1,AS02:INCR0DJNZR7,S0END单片机原理与接口技术164-9结合例4-24和图4-5编写线性标度变换程序。答:将256近似255,256比255做浮点运算简单很多PUSHACC课后答案网PUSHPSWMOVA,#AmMOV20H,#A0CLRCSUBBA,20H;将256近似www.hackshp.cn255,则A为小数点后的位MOV21H,#NxMOVB,21HMULAB;B为整数位,A为小数点后的位ADDA,#80H;四舍五入MOVA,BADDCA,#A0MOV38H,APOPPSWPUSHACCRET 习题与答案17习题与思考题55-1写出一个C51程序的结构。答:全局变量说明类型说明main(){声明部分语句部分}类型说明函数名1(形式参数){声明部分语句部分}类型说明函数名n(形式参数){声明部分语句部分}5-2哪些变量类型是MCS-51单片机直接支持的?答:MCS-51单片机直接支持的变量类型是:char及其数组和指针、bit、sbit、sfr和sfr16。5-3如何定义内部RAM的可位寻址区的字符变量?答:charbdata字符变量名,或bdatachar字符变量名。5-4试编写一段程序,将内部数据存储器课后答案网30H、3lH单元内容传送到外部数据存储器1000H、1001H单元中去。答:#include#includewww.hackshp.cnvoidmain(void){unsignedinttemp;单片机原理与接口技术18temp=DWORD[0x0030];XWORD[0x1000]=temp;while(1);}5-5试编写一段程序,将外部数据存储器40H单元中的内容传送到50H单元。答:方法一: #include#includevoidmain(void){XBYTE[0x0050]=XBYTE[0x0040];while(1);}方法二:#include#includevoidmain(void){unsignedcharxdata*xp;unsignedchardatatemp;xp=0x0040;temp=*xp;xp=0x0050;*xp=temp;while(1);}5-6试编写—段程序,将R3中的数乘以4。答:#include课后答案网voidmain(void){unsignedintdata*a;#pragmaasm习题与答案19www.hackshp.cnMOV30H,R3#pragmaendasma=0x30;*a=*a*4;while(1);}5-7试编写—段程序,将R2中的各位倒序排列后送入R3中。答:考虑C中没有循环移位,对于这种很低级的运算,采用嵌入汇编的方式完成。#include voidmain(void){#pragmaasmMOVR7,#08HMOVR3,#00HDEL:CLRCYMOVA,R2RLCAMOVR2,AMOVA,R3RRCAMOVR3,ADJNZR7,DEL#pragmaendasmwhile(1);}5-8试编写—段程序,将P1口的高5位置位,低3位不变。答:#includevoidmain(void){P1|=0xf8;while(1);}课后答案网单片机原理与接口技术205-9设8次采样值依次存放在20H~27H的连续单元中,采用算术平均值滤波法求采样平均值,结果保留在30H单元中。试编写程序。答:#pragmasmallwww.hackshp.cn#includevoidmain(void){unsignedchar*dp=0x20,i;floattemp=0;for(i=0;i<8;i++){temp+=*dp;dp++;} temp/=8;dp=0x30;*dp=temp;while(1);}5-10从20H单元开始有一无符号数据块,其长度在20H单元中。编写程序找出数据块中最小值,并存入21H单元。答:#pragmasmall#includevoidmain(void){unsignedchar*dp,num,min,i;dp=0x20;num=*dp;dp++;for(i=1;i*dp)min=*dp;习题与答案21}dp=0x21;课后答案网*dp=min;while(1);}5-11混合编程应注意的问题是什么?www.hackshp.cn答:(1)被调函数要在主函数中说明,在汇编程序中,要使用伪指令使CODE选项有效并声明为可再定位段类型,并且根据不同情况对函数名作转换;(2)对为其他模块使用的符号进行PUBILC声明,对外来符号进行EXTRN声明;(3)参数的传递。在混合语言编程中,关键是入口参数和出口参数的传递,C51编译器可使用寄存器传递参数,也可以使用固定存储器或使用堆栈,由于MCS-51的堆栈深度有限,因此多用寄存器或存储器传递。用寄存器传递最多只能传递三个参数,需选择固定的寄存器。5-12如何编写高效的单片机C51程序?答:(1)选择小存储模式;(2)尽可能使用最小数据类型;(3)尽量使用“unsigned” 数据类型;(4)尽量使用局部变量;(5)选择高效率的编译器。单片机原理与接口技术22习题与思考题66-1简述中断、中断源、中断嵌套及中断优先级的含义。答:所谓中断是指计算机在执行某一程序的过程中,由于计算机系统内、外的某种原因而必须终止原程序的执行,转去完成相应的处理程序,待处理结束之后再返回继续执行被终止原程序的过程。中断源指向CPU提出中断申请的设备,包括中断请求信号的产生及该信号怎样被CPU有效地识别,要求中断请求信号产生一次,只能被CPU接收处理一次,即不能一次中断申请被CPU多次响应。中断嵌套是CPU正在执行低优先级中断的服务程序时,可被高优先级中断请求所中断,去执行高优先级中断服务程序,待高优先级中断处理完毕后,再返回低优先级中断的服务程序。中断优先级指在实际应用系统中往往有多个中断源,且中断申请是随机的,有时还可能会有多个中断源同时提出中断申请,但CPU一次只能响应一个中断源发出的中断请求,CPU响应哪个中断请求,就需要用软件或硬件安排一个优先顺序,即中断优先级排队。6-2MCS-51单片机提供了几个中断源?有几级中断优先级别?各中断标志是如何产生的又如何清除这些中断标志?各中断源所对应的中断矢量地址是多少?答:MCS-51单片机提供了5个中断源,有2级中断优先级别。中断标志由特殊功能寄存器TCON和SCON的相应位锁存。(见书中图6-4、6-6)中断标志的撤消分为:1)定时/计数器中断请求的撤消中断请求被响应后,硬件会自动清TF0或TF1。2)外部中断请求的撤消课后答案网(1)跳沿方式外部中断请求的撤消是自动撤消的。(2)电平方式外部中断请求的撤消,除了标志位清“0”之外,还需在中断响应后把中断请求信号引脚从低电平强制改变为高电平。(见书中图例6-1)3)串行口中断请求的撤消响应串行口的中断后,CPUwww.hackshp.cn无法知道是接收中断还是发送中断,还需测试这两个中断标志位的状态,以判定是接收操作还是发送操作,然后才能清除。所以串行口中断请求的撤消只能使用软件的方法。CLRTI;清TI标志位CLRRI;清RI标志位各中断源对应的中断矢量地址分别为:习题与答案23中断源中断矢量外部中断00003H定时器T0中断000BH外部中断10013H 定时器T1中断001BH串行口中断0023H定时器中断T2(仅52系列有)002BH6-3外部中断源有电平触发和边沿触发两种触发方式,这两种触发方式所产生的中断过程有何不同?怎样设定?答:采用中断电平触发方式时,中断请求标志IT0=0,CPU在每个机器周期的S5P2期间采样,一旦在P3.2(INT0)引脚上检测到低电平,则有中断申请,使IE0置位(置1),向CPU申请中断。在电平触发方式中,在中断响应后中断标志位IE0的清0由硬件自动完成,但由于CPU对P3.2(INT0)引脚没有控制作用,使中断请求信号的低电平可能继续存在,在以后的机器周期采样时又会把已清0的IE0标志位重新置1,所以,在中断响应后必须采用其它方法撤消该引脚上的低电平,来撤除外部中断请求信号,否则有可能再次中断造成出错。采用边沿触发方式时,IT0=1,CPU在每个机器的S5P2期间采样,当检测到前一周期为高电平,后一周期为低电平时,使标志IE0置1,向CPU申请中断,此标志位一直保持到CPU响应中断后,才由硬件自动清除。在边沿触发方式中,为保证CPU在两个机器周期内检测到由高到低的负跳变,高电平与低电平的持续时间不得少于一个机器周期的时间。6-4试分析以下几种中断优先级的排列顺序(级别由高到低)是否可能?若可能,则应如何设置中断源的中断级别?否则,请简述不可能的理由。(1)定时器T0中断,定时T1中断,外中断1NT0,外中断INT1,串行口中断;(2)串行口中断,外中断1NT0,定时器T0中断,外中断INT1,定时器T1中断;(3)外中断INT0、定时器T1中断,外中断INT1,定时器T0中断,串行口中断。答:(1)可以,将定时器T0中断,定时T1设置为高优先级中断,将外中断1NT0,外中断课后答案网INT1,串行口中断(2)可以,将串行口中断设置为高优先级中断,将外中断1NT0,定时器T0中断,外中断INT1,定时器T1中断设置为低优先级中断;(3)不行,因为MCS-51单片机有2级中断优先级别,同级中断还存在按次序决定的第二优先级结构,由高到低依次为外中断www.hackshp.cn1NT0、定时器T0中断、外中断INT1、定时器T1中断、串行口中断。单片机原理与接口技术246-5MCS-51中断响应时间是否固定?为什么?答:MCS-51中断响应时间不固定。对一个单一中断系统,MCS-51单片机对外部中断请求的响应时间在3—8个机器周期。外部中断的最短的响应时间为3个机器周期,其中中断请求标志位查询占1个机器周期,而这个机器周期恰好又是处于指令的最后一个机器周期,该指令结束后中断即被响应 ,CPU接着执行子程序调用指令LCALL转到相应的中断服务程序入口,需2个机器周期,所以,外部中断响应最短时间为3个机器周期。外部中断响应的最长时间为8个机器周期:发生在CPU进行中断标志查询时,刚好是开始执行RETI或是访问IE或IP的指令,则需把当前指令执行完再继续执行一条指令后,才能响应中断,最长需2个机器周期。接着再执行一条指令,按最长指令(乘法指令MUL和除法指令DIV)来算,也只有4个机器周期。加上硬件子程序调用指令LCALL的执行,需要2个机器周期。所以,外部中断响应最长时间为8个机器周期。对于多级中断系统,响应时间无法计算。6-6MCS-51中若要扩充6个中断源,可采用哪些方法?如何确定它们的优先级?答:可采用硬件申请与软件查询的方法,把多个中断源通过硬件“线或”或者经或非门,引入外部中断源的输入端INT0、INT1,同时又连到某I/O口,这样,每个中断源都可能引起中断,但在中断服务程序中通过软件查询,就能确定哪一个是正在申请的中断源,其查询的次序则由中断优先级决定,这样就可实现多个外部中断源的扩展。6-7试叙述中断的作用和中断的全过程。答:中断可用于单片机测控系统、CPU与外部设备交换信息中。中断的全过程包括中断请求、中断允许、中断响应过程和中断请求撤消。6-8当正在执行某一中断源的中断服务程序时,如果有新的中断请求出现,试问在什么情况下可响应新的中断请求?在什么情况下不能响应新的中断请求?答:一个正在执行的低优先级中断程序能被高优先级的中断源所中断,但不能被另一个低优先级的中断源所中断。若CPU正在执行高优先级的中断,则不能被任何中断源所中断。6-9在下列各种中断方式中,需要外加电路来实现中断撤除的是:课后答案网(1)定时中断(2)脉冲方式的外部中断(3)外部串行中断(4)电平方式的外部中断答:(4)电平方式的外部中断6-10某系统有三个外部中断源www.hackshp.cn1、2、3,当某一中断源变低电平时便要求CPU处理,它们的优先处理次序由高到低为3、2、1,处理程序的入口地址分别为2000H、2100H、2200H。试编写主程序及中断服务程序(转至相应的入口即可)。答:对系统的三个外中断源,可利用MCS-51的2个外中断源INT0和INTI,再将定时/计习题与答案25数器T1作为扩展的外部中断使用,INT0接外中断源3,INTI接外中断源2,定时/计数器T1接外中断源1,3个中断源设置为同级中断,外中断源1、2、3依次接到P1.0、P1.1、P1.2上。汇编语言程序代码如下:ORG0000H;复位入口地址 AJMPMAIN;转主程序ORG0003HAJMPINT1ORG0100HMAIN:MOVTMOD,#60H;T1方式2MOVTH1,#0FFHMOVTL1,#0FFH;置初值SETBTR1;启动计数器T1SETBEA;CPU中断开放SETBET1;允许T1中断SETBIT0;允许外中断0产生中断SETBIT1SETBPX0;外中断0为高级中断SETBPX1SETBPT1SETBIT0;外中断0为跳沿触发方式SETBIT1LOOP1:SJMPLOOP1;等待中断;中断服务程序ORG1000HINT1:PUSHPSW;保护现场PUSHACCJBP1.0,IR1;P1.0高,外中断1有请求JBP1.1,IR2;P1.1高,外中断2有请求JBP1.2,IR3;P1.2高,外中断3有请求INTIR:POPACC;恢复现场POPPSW课后答案网RETI;中断返回ORG2000HIR1:……;外中断1的中断处理程序AJMPINTIRwww.hackshp.cn单片机原理与接口技术26ORG2100HIR2:……;外中断2的中断处理程序AJMPINTIRORG2200HIR3:……;外中断3的中断处理程序AJMPINTIREND 习题与答案27习题与思考题77-1定时/计数器有哪些专用寄存器,它们有几种工作模式?如何设置?答:有定时控制寄存器(TCON)和工作方式寄存器(TMOD),具有四种工作方式:方式0、方式1、方式2和方式3,四种方式由工作方式寄存器(TMOD)的M1和M0两位决定。7-2如果采用晶振的频率为3MHz,定时/计数器工作方式0、1、2下,其最大的定时时间为多少?答:内部定时脉冲周期=机器周期=12/3Mhz=4us工作方式0:Tmax=8192*4us=32.768ms工作方式1:Tmax=65536*4us=262.144ms工作方式2:Tmax=256*4us=1.024ms7-3定时/计数器用作定时器时,其计数脉冲由谁提供?定时时间与哪些因素有关答:其计数脉冲由单片机振荡脉冲12分频输出的机器周期脉冲提供,定时时间与工作方式、晶振频率和预置数等因素有关。7-4定时/计数器用作计数器时,对外界计数频率有何限制?答:外部输入的计数脉冲的最高频率为振荡器频率的1/24。7-5采用定时/计数器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式。定时1ms后,又转为计数方式,如此循环不止。假定MCS-51单片机的晶体振荡器频率为6MHz,请使用方式1实现,要求编写出程序。答:ORG0000H课后答案网START:CLRTR0MOVTMOD,#05HMOVTH0,#0FFHMOVTL0,#9CH;计数器初始化www.hackshp.cnS0:JBCTF0,NEXTSJMPS0NEXT:CLRTR0MOVTMOD,#01HMOVTH0,#0F8HMOVTL0,#30H单片机原理与接口技术28;定时器初始化SETBTR0S1:JBCTF0,STARTSJMPS1 END7-6定时/计数器的工作方式2有什么特点?适用于哪些应用场合?答:工作方式2具有初值自动重新加载和循环工作的特点,适用于产生固定脉宽的脉冲信号,和作为串行口波特率发生器使用。7-7编写程序,要求使用T0,采用方式2定时,在P1.0输出周期为400μs,占空比为10:1的矩形脉冲。答:本题采用晶体振荡器频率为12MHz,使用定时器配合计数器,设计成一个40μs定时将P1.0置0和一个400μs定时将P1.0置1。ORG0000H;中断入口地址AJMPSTARTORG000BH;定时器0的中断向量地址AJMPTIME0ORG0030HSTART:MOVSP,#5FHMOV30H,#00H;软件计数器清零MOVTMOD,#02H;T0工作在方式1MOVTH0,#216MOVTL0,#216SETBEASETBET0SETBTR0;任意程序段TIME0:PUSHACC;中断处理子程序PUSHPSWCLRP1.0INC30H课后答案网MOVA,30HCJNEA,#10,T0_4SETBP1.0MOV30H,#00HT0_4:POPPSWwww.hackshp.cnPOPACCRETI习题与答案29END7-8一个定时器的定时时间有限,如何实现两个定时器的串行定时,来实现较长时间的定时?答:方法一:让一个定时器先定时,溢出后,再启动另一个定时器定时;方法二:在第一个中断处理子程序中加入计数器,计数器满后,就去启动另一个定时器定时,把要处理的事件放第二个中断处理子程序中。 7-9利用定时/计数器T0产生定时时钟,由P1口控制8个指示灯。编一个程序,使8个指示灯依次一个一个闪动,闪动频率为20次/秒(8个灯依次亮一遍为一个周期)。答:本题采用晶体振荡器频率为12MHz,每个灯的闪烁周期是:50ms,采用工作方式1。ORG0000HAJMPSTARTORG000BHAJMPTIME0ORG0030HSTART:MOVSP,#5FHMOVR7,#0FEHMOVTMOD,#01H;T0在工作方式1MOVTH0,#3CHMOVTL0,#0B0HSETBEASETBET0SETBTR0S0:AJMPS0;此处放任意程序段TIME0:PUSHACCPUSHPSWMOVP1,R7MOVA,R7RLAMOVR7,AMOVTH0,#3CHMOVTL0,#0B0HPOPPSWPOPACCRETI课后答案网END单片机原理与接口技术307-10定时/计数器测量某正单脉冲的宽度,采用何种方式可得到最大量程?若时钟频率为www.hackshp.cn6MHz,求允许测量的最大脉冲宽度是多少?答:采用定时器工作方式1可得到最大量程,最大脉冲宽度:65536*12/6M=131.072ms7-11编写一段程序,功能要求为:当P1.0引脚的电平正跳变时,对P1.1的输入脉冲进行计数;当P1.2引脚的电平负跳变时,停止计数,并将计数值写入R0、R1(高位存R1,低位存R0)。答:将P1.1的输入脉冲接入T0,即使用T0计数器完成对P1.1口的脉冲计数。R2中记T0计满数的次数。程序代码如下: ORG0000HLJMPMAINORG000BHLJMPIT0MAIN:JNBP1.0,MAINMOVTMOD,#05H;定时/计数器T0为计数方式1SETBTR0;启动T0,开始计数SETBET0;允许T0中断SETBEA;CPU开中断WAIT:JBP1.2,WAITCLREACLRTR0MOVR1,TH0MOVR0,TL0AJMP$IT0:INCR2RETI7-12简述特殊功能寄存器SCON,TCON,TMOD功能。答:SCON是串行口控制寄存器,主要用于控制、监视串行口的工作状态;TCON是定时控制寄存器,主要用于控制定时/计数器的启动和停止、计数溢出标志和管理外部中断;TMOD是工作方式控制寄存器,主要用于设定定时/计数器的的工作方式和选定定时还是计数以及门控INT0非信号。7-13串行数据传送的主要优点和用途是什么?答:相对于并行通信,串行数据传送节省通信线路,传输距离远,工程实现上造价低;其用途是双机通信、多机通信和计算机互联网等。课后答案网习题与答案317-14简述串行口接收和发送数据的过程。答:MCS-51单片机内部有一个全双工的异步串行通信口,即串行接收和发送缓冲器(SBUF),这两个在物理上独立的接收发送器,既可以接收数据,也可以发送数据,串行口发www.hackshp.cn送的过程是:先从累加器A中读入8位数据到SBUF,随后在串行口有硬件自动加入起始位和停止位,构成一个完整的帧格式,然后在移位脉冲的控制下,由TXD端串行输出,一个字符帧发送完后,使TXD输出线维持在1状态下,并将SCON寄存器的TI置1,通知CPU可以发送下一个字符帧。串行口接收的过程是:SCON的REN位应处于允许接收状态(REN=1),在此前提下,串行口采样RXD端,当采样到从1向0的状态跳变时,就认定是接收到起始位,随后在移位脉冲的控制下,把通过位采样脉冲接收到的数据位移入接收寄存器中,直到停止位到来之后把停止位送入RB8中,并置位中断标志位RI,通知CPU从SBUF取走接收到的一个字符。7-15帧格式为1个起始位,8个数据位和1个停止位的异步串行通信方式是方式几?。答:是异步串行通信方式1。 7-16简述串行口通信的第9数据位的功能。答:在工作方式2和3下,才有第9数据位,既可作为奇偶校验位使用,也可作为控制位使用。7-17通过串行口发送或接收数据时,在程序中应使用下列哪类指令?(1)MOVC指令(2)MOVX指令(3)MOV指令(4)XCHD指令答:MOV指令。7-18为什么定时/计数器T1用做串行口波特率发生器时,应采用方式2?若已知时钟频率、通信波特率,如何计算其初值?答:因为方式2是有自动重装载计数值的功能,从而可以产生精确的波特率。串行工作方式0和方式2波特率是固定的,所以不用设初值;串行工作方式1和方式3时:波特率:BR=(2SMOD×Td)/32溢出一次的时间:1/Td=(256-TH1)*12/fosc溢出率:Td=fosc/[12×(256-TH1)]初值:TH1=256-fosc/(12*Td)7-19若晶体振荡器为11.059MHz,串行口工作于方式1,波特率为4800b/s,写出用T1作为波特率发生器的方式控制字和计数初值。答:MOVTMOD,#20HMOVTH1,#0FAHMOVTL1,#0FAHSETBTR1MOVSCON,#50H单片机原理与接口技术课后答案网327-20利用单片机串行口扩展24个发光二极管和8个按键,要求画出电路图并编写程序使24个发光二极管按照不同的顺序发光(发光的时间间隔为1s)。答:ORG1000HSTART:MOVSCON,#00Hwww.hackshp.cn;串行口工作方式0MOVR0,#00HMOVR7,#03HMOVR6,#24HCLRP1.0;关闭并行输出LOOP:MOVA,@R0MOVDPTR,#TAB;查表取数,送出MOVCA,@A+DPTRMOVSBUF,AOUT0:JNBTI,OUT0INCR0CLRTI DJNZR7,LOOPSETBP1.0;开启并行输出ACALLDELAYDJNZR6,STARTAJMPLOOPDELAY:MOVR2,#250D1:MOVR3,#100D2:MOVR4,#20D3:DJNZR4,D3DJNZR3,D2DJNZR2,D1RETTAB:DB00000000B,00000000B,00000001B,00000000BDB00000000B,00000010B,00000000B,00000000BDB00000100B,00000000B,00000000B,00001000BDB00000000B,00000000B,00010000B,00000000BDB00000000B,00100000B,00000000B,00000000BDB01000000B,00000000B,00000000B,10000000BDB00000000B,00000001B,00000000B,00000000BDB00000010B,00000000B,00000000B,00000100BDB00000000B,00000000B,00001000B,00000000BDB00000000B,00010000B,00000000B,00000000B习题与答案33DB00100000B,00000000B,00000000B,01000000BDB00000000B,00000000B,10000000B,00000000BDB00000001B,00000000B,00000000B,00000010BDB00000000B,00000000B,00000100B,00000000B课后答案网DB00000000B,00001000B,00000000B,00000000BDB00010000B,00000000B,00000000B,00100000BDB00000000B,00000000B,01000000B,00000000BDB00000000B,10000000B,00000000B,00000000BENDwww.hackshp.cnXTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD1 38P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT0课后答案网12P3.3/INT113P3.4/T014www.hackshp.cnP3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124 P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C52SRG8RC1/->&1D1324561081112913U274LS164SRG8RC1/->&1D课后答案网132456www.hackshp.cn1081112913U374LS164SRG8RC1/-> &1D1324561081112913U474LS1647-21简述利用串行口进行多机通信的原理。答:单片机构成的多机系统常使串行口工作在方式2和方式3。(1)主机置SM2位为0,所有从机的SM2位置1,处于接收地址帧状态;(2)主机发送一地址帧,其中,8位是地址,第9位为1表示该帧为地址帧;(3)所有从机收到地址帧后,都将接收的地址与本机的地址比较。对于地址相符的从机,使自己的SM2位置0(以接收主机随后发来的数据帧),并将本站地址发回主机作为应答;对于地址不符的从机,仍保持SM2=1,对主机随后发来的数据帧不予理睬;(4)从机发送数据结束后,要发送一帧校验和,并置第9位(TB8)为1,作为从机数据传送结束的标志;(5)主机接收数据时先判断数据接收标志(RB8),若接收帧的RB8=0,则存储数据到缓冲区,并准备接收下帧信息。若RB8=1,表示数据传送结束,并比较此帧校验和,若正确则回送正确信号00H,此信号命令该从机复位(即重新等待地址帧);若校验和出错,则发送课后答案网0FFH,命令该从机重发数据;(6)主机收到从机应答地址后,确认地址是否相符,如果地址不符,发复位信号(数据帧中单片机原理与接口技术34TB8=1);如果地址相符,则清TB8,开始发送数据;(7)从机收到复位命令后回到监听地址状态(SM2=1)。否则开始接收数据和命令。www.hackshp.cn习题与答案35习题与思考题88-1画图说明单片机系统总线扩展方法。答:单片机系统扩展总线原理如下图所示,扩展后由P0口经锁存器形成低8位地址,P2口形成高8位地址,共同形成16位地址总线;P0口形成8位数据线,/WR、/RD及/PSEN形成控制总线。8-2单片机应用系统中为什么要进行系统扩展?答:8031、8032等单片机不提供用户程序存储器,必须进行程序存储器的扩展,以存放控制程序、数据表格等;8751等单片机虽然向用户提供EPROM程序存储器,但程序存储 器空间容量不大,程序存储空间不足时,还必须扩展外部程序存储器。MCS-51系列单片机内部通常有128B至256B的片内数据存储器,用于一般的控制及运算是足够的,但若用于数据存储,其容量是不足的,在这种情况下,必须扩展数据存储器。MCS-51系列单片机对外提供32条I/O口线,但其P0口作为地址/数据复用口,P2口用于提供高8位地址,而其P3口具有第二功能,若扩展了程序存储器或数据存储器,单片机的I/O口往往也不够用,有时必须进行I/O口的扩展。应用系统中有时还涉及到数据的输入、输出、人机交互信息等接口问题,必须进行有关接口电路扩展。单片机原理与接口技术368-3说明程序存储器扩展的一般原理。答:程序程序存储器扩展原理如下图所示,从图中可以看出,程序存储器扩展实际上是将程序存储器挂在单片机扩展的系统总线上,需要注意的是,单片机的/PSEN引脚连接至程序存储器的/OE端,保证/PSEN有效时能读出程序存储器中数据(含取指令),而程序存储器的/CS端直接接地,即始终有效,保证始终可以取指令。锁存器P0口P2口PSENMCS--51数据总线地址低位地址高位程序存储器选择控制D0-D7课后答案网A0-A7A8-A15OECS程序www.hackshp.cn存储器ALE8-4根据图8.15,说明数据存储器扩展的一般原理。答:数据存储器扩展原理如下图所示,从图中可以看出,数据存储器扩展实际上是将数据存储器挂在单片机扩展的系统总线上,单片机的/WR、/RD引脚连接至数据存储器的/WR及/RD端,数据存储器的片选信号由不用的高8位地址信号(经译码)形成。需要注意的是,设备占用外部数据存储器地址空间,因而要合理分配物理存储器与外部设备地址。锁存器 P0口P2口RDMCS--51数据总线地址低位地址高位D0-D7A0-A7A8-A15RDCS数据存储器ALEWRWR习题与答案378-5EPROM器件与EEPROM器件的主要区别是什么?说明它们的主要应用场合。答:主要区别:(1)EPROM编程时需外加较高编程电压,EEPROM则不必外加该电压;(2)EPROM不能在线写入,而EEPROM可以在线写入。主要应用场合:(1)在不需要写入的场合,EPROM、EEPROM可以相互代替;(2)需要在线写入时使用课后答案网EEPROM,不需要在线写入时尽可能使用EPROM;(3)在线写入时注意EEPROM写入速度及寿命限制。8-6说明单片机应用系统中LED显示器的两种显示方式?答:常用LED显示方式有两种,即动态显示方式和静态显示方式。动态显示方式是指将待显示数据分时送到各显示位并保持一定时间,任何时刻只能有一位显示器通电,其它显www.hackshp.cn示位靠余辉维持发光,因而动态显示方式需不断进行刷新。静态显示方式是指将待显示数据分别送到显示器的各位,各显示位同时通电,因单片机的数据端口不能一直被占用,因而要求显示器与单片机数据端口之间有具有数据锁存功能的单元电路,即每一位LED输入端加一个锁存器(或使用有数据锁存功能的IO端口),因而硬件电路比动态显示方式复杂,但不需要刷新,可以节省CPU时间,显示数据可以一直维持到下一次更新。8-7说明LCD显示器件的工作原理?答:LCD是一种被动式的显示器,由于功耗低、抗干扰能力强,在低功耗单片机系统中得到广泛应用。LCD本身不发光,通过调节光的亮度进行显示。LCD工作过程如下:在玻璃电极上加上电压之后,在电场的作用下,液晶的扭曲结构消失,其旋光作用也消 失,偏振光便可以直接通过。去掉电场之后,液晶分子又恢复其扭曲结构,把这样的液晶置于两个偏振片之间,改变偏振片的相对位置(正交或平行),就可以得到白底黑字或黑底白字的显示形式。8-8说明行列式键盘扫描原理?答:行列键盘是设置两组互不连接的行线和列线,在行线与列线的交叉处设置一个按键开关,无按键时,行线与列线不连接,有按键时,行线与列线接通。3*3行列式键盘结构如下图所示。图中列线通过电阻接+5V电源,当键盘上没有键闭合时,所有的行线和列线断开,列线Y0--Y2都呈高电平。当键盘上某一健闭合时,则该键所对应的列线与行线短路。以4号键为例,当4号按键闭合时,行线X1和列线Y1短路,此时Y1的电平由行线X1的电平决定。如果把列线接到微机的输入口,行线接到微机的输出口,则在程序的控制下,使行线X0为低电平,X1、X2都为高电平,则为低电平的列线与X0的交叉处的健处于闭合状态;否则X0这一行上没有键处于闭合状态,依此类推,最后使行线X2为低电平,其余的行线为高电平,检查X2这一行上是否有健闭合。这种逐行逐列地检查键单片机原理与接口技术38盘状态的过程称为对键盘的一次扫描。CPU对键盘的扫描可以采用程序控制的随机方式,CPU空闲时扫描键盘,也可以采取定时控制方式,每隔一定的时间,CPU对键盘进行一次扫描。还可以采用中断方式,每当键盘上有健闭合时,向CPU请求中断,CPU响应键盘输入中断,对键盘扫描,以识别哪一个键处于闭合状态,并对键输入信息作出相应的处理。CPU对键盘上闭合健健号的确定,可以根据行线和列线的状态计算求得,也可查表求得。Vcc012643678X0X1课后答案网X2Y0Y1Y28-9以8031单片机为核心的单片机应用系统中要扩展www.hackshp.cn32KB数据存储器(由SRAM构成),并要求具有24条独立IO口线。(1)选择存储器件及并行IO接口器件;(2)画出原理电路图,说明单片机IO口资源使用情况;(3)列出各器件地址;(4)编程,将扩展RAM中1000H-10FFH单元内容移至1100H开始的256个单元中。答:(1)选择6264作为外扩数据存储器,32/8=4(片),选择8255A扩展并行接口,24/24=1(片);74LS138作为译码器。(2)单片机的P0、P2口用于形成地址/数据总线,对于存储器,每芯片8KB存储空间使用13条地址线,P2.7-P2.5经3-8译码器译码产生8255A及各存储器芯片的片选信号。原理如下图所示。 (3)器件地址1#6264:0000H-1FFFH;2#6264:2000H-3FFFH;3#6264:4000H-5FFFH;4#6264:6000H-7FFFH;8255A:8000H-8003H。(4)程序清单如下:EX8_9:MOVDPTR,#1000H;DPTR指向源首地址习题与答案39MOVR2,#0;数据块长度LOOP:MOVXA,@DPTR;取源数据INCDPH;DPTR指向目的地址MOVX@DPTR,A;数据传至目的地址DECDPH;恢复DPTRINCDPTR;DPTR指向下一数据DJNZR2,LOOP;长度控制RET8-10以8031为核心的单片机应用系统中扩展程序存储器至16KB。(1)选择存储器件;(2)画出原理电路;(3)说明各器件占用存储空间。答:(1)选用EPROM存储器作为程序存储器,可选用1片27128或2片2764,本题选两片6264作为程序存储器。(2)原理电路如下图所示。(3)由于8031单片机内部没有程序程序器,外扩程序存储器地址必须从课后答案网0000H开始,并且单片机的/EA引脚应接地。从图中可以看出,1#2764的地址范围为0000-1FFFH,2#2764的地址范围为2000H-3FFFH.单片机原理与接口技术www.hackshp.cn408-11设计单片机应用系统的显示部分,将片内RAM的30-35H单元(30H为最高位,35H为最低位)的6位非压缩BCD码显示在6位动态LED显示器上。(1)选择元器件;(2)画出原理电路图;(3)编程。答:(1)结合原理图对所选元件进行说明:选择8031单片机为控制核心,因而必须外扩程序存储器,图中未画出。图中扩展一片8255A作为显示器及键盘接口,键盘部分未画出。图中LED应为共阴极数码管,由于采用动态显示方式,因而需对LED进行刷新处理。(2)原理图如下图所示。 (3)从图中可以看出,8255A的A口、B口、C口及控制口的地址分别为8000H-8003H。程序清单如下:EX9_11:MOVDPTR,#8003H;DPTR指向8255A控制口习题与答案41MOVA,#80H;8255A工作在基本输入输出方式,A口B口C口输出MOVX@DPTR,A;初始化8255AMOVR0,#30H;R0指向显示缓冲区首地址MOVR2,#6;显示位数MOVR3,#80H;显示模型LOOP:MOVDPTR,#SEGTAB;DPTR指向七段码表MOVA,@R0;取待显示数据INCR0;R0指向下一个待显示数据ANLA,#0FH;保留低4位MOVCA,@A+DPTR;取得待显示数据的七段码MOVDPTR,#8001H;DPTR指向8255A的端口BMOVX@DPTR,A;送出七段码DECDPTR;DPTR指向8255A的A端口MOVA,R3RLA;修改显示模型MOVR3,AMOVX@DPTR,A;选中待显示位LCALLDL1;延时,使选中LED达一定亮度DJNZR2,LOOPRETDL1:MOVR7,#2DL2:MOVR6,#0FFH课后答案网DL3:DJNZR6,DL3DJNZR7,DL2RETSEGTAB:DB3FH,06H,5BH,4FH,66H,6DH;七段码表DB7DH,07H,7FH,6FHwww.hackshp.cn单片机原理与接口技术42习题与思考题99-1A/D及D/A转换的含义是什么?答:A/D转换是指将模拟信号转换为数字信号,主要用于微机控制系统的模拟信号数据采集。D/A转换是指将数字信号转换为模拟信号,主要用于恢复模拟信号或进行模拟控制。9-2DAC0832器件有哪些主要技术指标?其含义是什么?答:DAC0832是将数字信号转换为模拟信号的器件。它的主要技术指标及含义如下:分辨率:8位,可以将8位数字量转换为模拟量;建立时间:1µS,即从数字量写入8位DAC寄存器到产生与输入数字量对应的模拟量输 出的时间;输入信号:与TTL电平兼容的二进制信号;输出信号:与输入二进制信号对应的电流信号;电源:单一+5V电源;9-3ADC0809器件有哪些主要技术指标?其含义是什么?答:ADC0809是将模拟信号转换为数字信号的AD器件,它的主要技术指标及含义如下:分辨率:8位,可以将输入模拟量转换为与之对应的8位数字量;信号输入范围:0-5V;转换时间:即完成一次A/D转换所需时间,与外加时钟信号频率有关,外部时钟信号为500KHz时转换时间为128µS;输出信号:与输入模拟信号对应的8位二进制数字量,信号电平与TTL电平兼容;电源:单一+5V电源;9-4设计D/A转换接口电路时应注意哪些问题?答:主要注意问题:(1)D/A转换器对主电源及参考电源的要求;(2)D/A转换器是否有输入缓冲器;(3)D/A器件的分辨率,若高于8位要注意输入数据的顺序;(4)D/A器件对输入数据格式的要求等。9-5设计A/D转换接口电路时应注意哪些问题?答:主要注意问题:(1)A/D转换器对主电源及参考电源的要求;(2)A/D转换器是否具有输出锁存器;(3)模拟信号的输入范围;习题与答案43(4)分辨率是否满足要求;课后答案网(5)高于8位的A/D转换器要注意读出控制;(6)输出数据的格式等。9-6利用DAC0832双缓冲结构特性,设计一个接口电路并编制相应程序,实现双路模拟信号同时输出。www.hackshp.cn答:(1)接口电路原理如下图所示。图中选用两片0832作为双路模拟信号输出转换器,由图中的连接关系可以看出,1#0832第一级缓冲器地址为8000H,2#0832第一级缓冲器地址为4000H,1#0832和2#0832的第二级缓冲器的地址为2000H。采用线选法。(2)程序清单DA2:MOVDPTR,#8000H;DPTR指向1#0832第一级缓冲器MOVA,@R0;取1#0832转换数据MOVX@DPTR,AMOVDPTR,#4000H;DPTR指向2#0832第一级缓冲器MOVA,@R1;取2#0832转换数据 MOVX@DPTR,AMOVDPTR,#2000H;DPTR指向1#0832、2#0832第二级缓冲器MOVX@DPTR,A;同时选通第二级缓冲器RET单片机原理与接口技术449-7利用ADC0809设计一个接口电路,每隔5秒对8个模拟通道各采样一次,并将采样结果保存在内部RAM的30H开始单元。画出原理图并编制相应程序。答:(1)原理图如下图所示。设fosc=6MHz,则fALE=1MHz,图中0809所需时钟信号可由fALE经二分频获得,在该频率下,ADC0809完成五次转换所需时间约128μS。由图中连接关系可知,8个模拟输入通道IN0-IN7的地址为8000H-8007H。5秒采样间隔可由T0定时获得,在fosc=6MHz时,T0最长定时时间约131ms,可令T0定时100ms,则T0溢出50次的时间为5秒,设R4为软定时器,则R4初值为50。定时器溢出一次则R4减1,当R4减至0时,5秒时间到,置时间到标志,主程序开始采样。T0工作在方式1,16位计数,其定时时间常数为x:100000=(216-x)*12/fosc,x=15536,(TH0)=3CH,(TL0)=B0H(2)程序清单ORG0000HLJMPMAINORG000BH课后答案网LJMPT0INTORG0100HMAIN:NOPMOVSP,#6FH;堆栈区设置在70-7FHMOVTMOD,#01H;T0www.hackshp.cn工作在方式1MOVTH0,#3CHMOVTL0,#0B0HSETBC习题与答案45MOVF0,C;设置5秒时间到标志(F0=1)SETBTR0;启动T0SETBET0;允许T0中断SETBEALOOP:JBCF0,SAMPNOPSJMPLOOP;采样间隔时间不到,等待 SAMP:CALLSAMPPRG;采样并保存数据SJMPLOOPSAMPPRG:PUSH0;保护现场PUSH1PUSH2PUSH3MOVR3,#8;8个模拟通道MOVR0,#30H;设置AD结果存放区指针SAMP1:MOVDPTR,#8000H;DPTR指向通道0LOOP:MOVX@DPTR,A;启动AD转换MOVR2,#20;绕过TEOC时间DJNZR2,$JBP3.2,$;等待AD转换结束MOVXA,@DPTR;读AD结果MOV@R0,A;保存到指定位置INCDPTR;指向下一通道INCR0;指向下一位置DJNZR3,LOOP;8通道未完,继续POP3;恢复现场POP2POP1POP0RETT0INT:NOPDJNZR4,RETU;溢出次数未达到50次SETBF0;设置时间到标志MOVR4,#50;重新设置软计数器初值,为下一次采样做准备RETU:RET课后答案网END单片机原理与接口技术www.hackshp.cn469-8说明I2C总线主机从机数据传输过程。答:I2C总线数据传输过程如下图所示。SDASCL起始位结束位SDASCL 数据保持数据变化一次信息传输过程传输的信息包含6部分:(1)起始位:表示信息传输开始;(2)目标地址:7位,被寻址的设备的地址;(3)操作性质:即读写控制位,1位,该位为1表示主控设备进行读操作,为0进表示主控设备进行写操作;(4)应答信号:1位,由被叫IC产生,低电平表示应答信号,高电平表示非应答信号,数据接收方可以接收数据时,产生应答信号,不能接收数据时,产生非应答信号;(5)数据部分:以8位为一个数据单位,进行传输的数据,根据信息传输方式不同,传输的数据单位数不同。数据接收方每接收一个数据都产生一个应答信号;(6)结束位,由主控设备产生,表示此次通信过程结束。9-98563芯片主要应用在什么场合?使用该芯片应注意哪些问题?答:8563是日历时钟芯片,它可以自动解决闰年及2000年问题,并且可以对外提供多种定时中断信号,因而它不仅可以应用于需要日历时钟信号的场合,也可以作为监视定时器而应用于微机系统,同时,在电表、水表、气表、电话、传真机、便携式仪器以及电池供电的仪器仪表等智能产品中也得到了广泛的应用。主要注意事项:(1)使用8563须外加32768Hz晶振器件;(2)通过编程将7个初值参数写入芯片;(3)对外提供定时信号及时钟信号;(4)读出的日历时钟参数需经调整。9-10试说明SLE4442IC卡的读、写工作过程。答:SLE4442IC卡是一种逻辑加密存储卡,它具有256字节的存储容量和完全独立的可编程代码存储器(PSC),高电压芯片采用单一+5V供电,低电压芯片可以使用+2.7V电源供电。256字节的存储容量能够满足一般应用领域的需要,存储器具有至少课后答案网10000次的习题与答案47擦写周期,数据保持时间至少10年。对4442卡进行读操作不需要进行密码核对,其操作过程描述为:(1)IC卡上电;(2)IC卡复位;www.hackshp.cn(3)设置读卡起始地址;(4)发出读主存储器命令;(5)接收IC卡数据;(6)结束卡操作;(7)IC卡下电,卡操作结束。4442卡写操作过程描述如下:(1)IC卡上电;(2)IC卡复位;(3)核对密码;(4)设置写卡起始地址并准备待写数据;(5)发出修改主存储器命令; (6)结束IC卡操作;(7)IC卡下电,卡操作结束。单片机原理与接口技术48习题与思考题1010-1简述干扰的定义及与噪声的区别。答:叠加在有用信号上,使原来有用信号发生畸变的变化电量称作噪声,由于噪声在一定条件下影响和破坏设备或系统的正常工作,所以经常把具有危害性的噪声称为干扰。通常,以危害性干扰量为对象进行研究时,多使用噪声这个词,以干扰电量所造成的危害作用为对象进行研究时,多使用干扰这个词。10-2简述干扰的种类及其来源。答:干扰一般通过导线或者通过空间和大地传播,通过这些耦合通道对单片机测控系统发生电磁干扰作用,如串模干扰与共模干扰。串模干扰来源一般是周围较强的交变磁场,使系统受周围交变磁场影响而产生交流电动势形成干扰,共模干扰的来源一般是设备对地漏电、地电位差、线路本身具有对地干扰等。10-3简述各种干扰的特点及其主要抑制措施。答:干扰有经导线侵入的,如串模干扰与共模干扰,其抑制措施应从电路设计和接地技术两方面解决;干扰有经空间侵入的,如通过辐射与感应方式侵入,此时应采用屏蔽技术来抑制;干扰有经地线传导的,此时应选择合适的接地方式来抑制。10-4简述干扰对单片机应用系统的影响。答:(1)数据采集误差增大(2)控制状态失灵(3)数据受干扰发生变化(4)程序运行失常10-5简述串模干扰的概念、干扰来源、干扰对系统的影响及其主要抑制措施。答:串模干扰是指串联于信号回路中的干扰。这种干扰表现为噪声信号和有效信号串联叠加在一起作用于电路中,噪声往返于两条线路间。这种干扰可能是信号源本身产生的,也可能是引线上感应的。它叠加于有用信号之上,成为有用信号的一部分,直接送至系统课后答案网的输入端。10-6简述共模干扰的概念、干扰来源、干扰对系统的影响及其主要抑制措施。答:共模干扰是干扰电压同时叠加于两条信号线上出现的干扰。干扰侵入线路和地线之间,噪声电流在两条线上各流过一部分,以地为公共回路而信号电流只在往返两条线路中流过。这种干扰出现在输入信号端和系统本体接地之间,主要是由于两者接地之间存在干www.hackshp.cn扰电压引起的。通常,输入输出线与大地或机壳之间发生的噪声都是共模干扰,信号线受到静电感应时产生的干扰也多为共模干扰,抑制共模干扰的方法常采用屏蔽、接地和隔离等技术。10-7简述由电容构成的低通滤波器结构特点、参数选择及其主要应用场合。答:图10-4(a)由电容构成的低通滤波器,结构简单,接在干扰源线间能衰减串模干扰,接在干扰源和地线间能衰减共模干扰,接在印刷电路板中的直流电源间能抑制电源干扰习题与答案49。图(b)中电容器中点接地,能够将干扰电流旁路入地,消除共模干扰。(c)中的电容C接在电源线间,能有效地抑制共模(由C1、C2完成)和串模干扰(由C完成)。10-8简述由RC构成的低通滤波器结构特点、参数选择及其主要应用场合。由RC构成的低通滤波器,其结构分别为L型、π型和T型,如图10-5 10-9简述由LC构成的低通滤波器结构特点、参数选择及其主要应用场合。答:由LC构成的低通滤波器如图10-6。10-10简述有源滤波器结构特点、参数选择及其主要应用场合。答:由电阻、电容、电感和有源元件如晶体管、线性运算放大器等构成的滤波器为有源滤波器。如图10-7。10-11简述去耦电路中电容的作用及其选取原则。答:去耦电容的作用是降低系统中尖峰电流的影响。通常可按C=l/f选用去耦电容,其中f为电路频率,即10MHz取0.1µF,100MHz取0.01µF。对单片机控制系统,C一般取0.1~0.01µF。10-12简述屏蔽的作用及其基本方法。答:屏蔽是指用屏蔽体把通过空间进行电场、磁场或电磁场耦合的部分隔离开来,割断其空间场的耦合通道。屏蔽的方法通常是用低电阻材料作成屏蔽体,把需要隔离的部分包围起来。被隔离的部分既可以是干扰源,也可以是易受干扰的部分。这样,既屏蔽了被隔离部分向外施加干扰,也屏蔽了被隔离部分接受外来的干扰。10-13简述双绞线和金属屏蔽线的使用答:屏蔽信号线的方法,一种是采用双绞线,其中一根用作屏蔽线,另一根用作信号传输线;另一种是采用金属网状编织的屏蔽线,金属编织网作屏蔽外层,芯线用来传输信号。一般的原则是:抑制静电感应干扰采用金属网的屏蔽线,抑制电磁感应干扰用双绞线。10-14简述隔离技术中光电耦合器的使用。答:光电隔离是由光电耦合器件来完成的,光电耦合器是以光为媒介传输信号的器件。其输入端配置发光源,输出端配置受光器,因而输入和输出在电气上是完全隔离的。输入和输出之间无电接触,能有效地防止输入端的电磁干扰以电耦合的方式进入单片机测控系统。同时,由于在光电耦合器的输入回路和输出回路之间有近500~1000V甚至更高的耐压值,所以还能起到很好的安全保障作用。光电耦合器可根据需求不同由不同种类的发光元件和受光元件组合成许多系列的光电耦合器。目前广泛使用的是发光二极管与光敏三极管组合的光电耦合器。10-15简述接地技术中接地的含义、种类及其主要特点。答:电气设备中的“地”,通常有两种含义:一种是“大地”,另一种是“工作基准地”。所课后答案网谓“大地”,这里是指电气设备的金属外壳、线路等通过接地线、接地极与地球大地相连接。这种接地可以保证设备和人身安全,提供静电屏蔽通路,降低电磁感应噪声。而“工作基准地”是指信号回路的基准导体,如系统电源的零电位,又称“系统地”。这时的所谓接地是指将装置内部各单元电路信号返回线与基准导体之间的连接。这种接地目的是www.hackshp.cn为电路提供稳定的基准电位。对这种接地的要求是尽量减小接地回路中的公共阻抗压降,以减小系统中干扰信号施加于公共阻抗的耦合。单片机原理与接口技术5010-16简述单片机系统中常用的接地方法。答:在单片机测控系统中,通常把数字系统和模拟系统的工作基准地浮空,而设备外壳或机箱采用屏蔽接地。浮地方式可使测控系统不受大地电流的影响,提高了系统的抗干扰性能。由于强电设备大都采用保护接地,浮地技术切断了强电与弱电的联系,系统运行安全可靠。单片机系统设备外壳或机箱采用屏蔽接地,无论从防止静电干扰和电磁感应干扰的角度,或是从人身设备安全的角度,都是十分必要的措施。10-17简述单片机系统中一点接地与多点接地原则。答:在高频电路中,地线上具有电感、因而增加了地线阻抗,而且地线变成了天线,向外辐 射干扰信号,因此要多点就近接地。在低频电路中,接地电路要避免形成环路,所以应一点接地。10-18简述软件抗干扰的一般方法。答:对于模拟信号输入,由于叠加其上的噪声干扰,导致较大的测量误差。由于这些噪声的随机性,可以通过软件滤波剔除虚假信号,求取真值。对于输入的数字信号,可以通过重复检测的方法,将随机干扰引起的虚假输入状态信号滤除掉。当系统受到于扰后,往往使可编程的输出端口状态发生变化,因此可以通过反复向这些端口定期重写控制字、输出状态字来维持既定的输出端口状态。窜入测控系统的干扰作用于CPU部位时,将使系统失控。最典型的故障是破坏程序计数器PC的状态,导致程序从一个区域跳转到另一个区域,或者程序在地址空间内“乱飞”,或者陷入“死循环”。因此,必须尽可能早地发现并采取补救措施。将“乱飞”程序拦截,或程序摆脱“死循环”,使运行程序纳入正规,转到指定程序入口。常用的软件抗干扰措施包括数字滤波、输入口信号重复检测、输出端口数据刷新、软件拦截技术如指令冗余、软件陷阱和“看门狗”技术等。10-19简述指令冗余的目的及其主要方法。答:CPU复位后,首先取指令的操作码,然后顺序取出操作数。当一条完整指令执行完后,紧接着取下条指令的操作码、操作数,操作时序完全由程序计数器PC控制。因此一旦PC因干扰出现错误,程序便脱离正常运行轨道,出现“乱飞”、出现将操作数当做操作码的错误。当程序“乱飞”到某个单字节指令上时,便自动纳入正轨;当“乱飞”到某双字节指令上时,若恰好在取指令时刻落到其操作数上,从而将操作数当作操作码,程序仍将出错;当程序“乱飞”到某个3字节指令上时,因为它们有两个操作数,误将其操作数当作操作码的出错机率更大。为了使“乱飞”程序在程序区迅速纳入正轨,应该多用单字节指令,并在关键地方人为地插入一些单字节指令NOP,或将有效单字节指令重写,称之为指令冗余。此外,对系统流向起重要作用的指令如RET、RETI、LCALL、LJMP、JC等指令之前插入两条NOP,也可将乱飞程序纳入正轨,确保这些重要指令的执行。采用指令冗余技术使PC纳入正确轨道的条件是:跑飞的PC必须指向程序运行区,并且必须执行到冗余指令。10-20简述设置软件陷阱的目的、方法及其设置软件陷阱的位置。课后答案网答:当乱飞程序进入非程序区,如EPROM未使用的空间或表格区时,采用冗余指令使程序入轨条件便不满足。此时可以设定软件陷阱,拦截乱飞程序,将其迅速引向一个指定位置,在那里有一段专门对程序运行出错进行处理的程序。习题与答案51软件陷阱,是指将乱飞的程序引向指定位置,再进行出错处理。通常用转移指令强行将www.hackshp.cn捕获到的乱飞程序引向指定入口地址,在那里有一段专门处理错误的程序,使程序纳入正轨。因此先要合理设计陷阱,再将陷阱安排适当的位置。通常软件陷阱将安排在如下几个位置。(1)未使用的中断区(2)未使用的EPROM空间(3)非EPROM芯片空间(4)运行程序区(5)中断服务程序区(6)RAM数据保护的条件陷阱10-21简述看门狗技术及其实现方法。答:PC受到干扰而失控,引起程序乱飞,也可能使程序陷入“死循环”。指令冗余技术、软 件陷阱技术不能使失控的程序摆脱“死循环”,通常采用“看门狗”(WATCHDOGTIMER)技术,又称程序监视技术,使程序脱离“死循环”。“看门狗”技术可由硬件实现,也可由软件实现,也可由两者结合来实现。10-22简述数字滤波技术及其常用的滤波算法。答:当随机干扰信号混入输入信号时,通过一定的算法可以滤除干扰信号。数字滤波是将一组输入数字序列进行一定的运算转换成另一组输出数字序列,经过数字滤波转化后的输出数字序列更平滑、更易于处理。常用的数字滤波方法有(1)程序判断滤波法(2)中值滤波法(3)算术平均滤波法(4)递推平均滤波法(5)防脉冲干扰平均值滤波法单片机原理与接口技术52习题与思考题1111-1一般情况下,单片机应用系统的开发过程有哪些步骤?答:准备工作、应用系统设计过程、撰写设计总结报告。其中应用系统设计过程又包括系统的总体方案设计、系统硬件设计、系统软件设计、系统仿真调试、系统安装运行。11-2单片机应用系统软件开发大体包括哪些方面?应注意哪些要点?答:软件开发大体包括程序结构设计、程序流程图设计、编写各模块程序、总体程序连接。注意点包括实时性、灵活性和通用性、可靠性。11-3单片机应用系统的调试分哪些部分?上机实践Keil软件的使用。答:硬件调试、软件调试、脱机运行调试。11-4试设计一个顺序开关灯控制器,要求当按钮K第一次按下时,灯A立刻亮,灯B在延时11秒钟后亮,在灯B课后答案网亮后15秒,灯C亮;当按钮K第2次按下时,灯C立刻灭,延时17秒后灯B灭,灯B灭后12秒,灯A灭。#include#defineuintunsignedintunsignedcharsum=0;voiddelay(char);www.hackshp.cnsbitasight=P1^0;/*A灯*/sbitbsight=P1^1;/*B灯*/sbitcsight=P1^2;/*C灯*/voidkey1(){asight=1;/*A灯亮*/delay(11);bsight=1;/*B灯亮*/delay(15);csight=1;/*C灯亮*/} voidkey2(){csight=0;/*C灯灭*/delay(17);bsight=0;/*B灯灭*/习题与答案53delay(12);asight=0;/*A灯灭*/}voidin_0()interrupt0using0{switch(sum){case0:{key1();sum++;EX0=1;/*由于在执行中断之后EX和EA会硬件自动置0*/EA=1;break;}case1:key2();break;}}voiddelay_1_s()/*延时1s*/{charwt=10;课后答案网uintj;while(wt--){j=9050;while(j--);www.hackshp.cn}}voiddelay(chars)/*延时N秒,参数s为需要延时的秒数*/{while(s--){delay_1_s();}}voidmain(){ P1=0x00;单片机原理与接口技术54EX0=1;EA=1;while(1){;}}习题与答案55习题与思考题1212-1什么是嵌入式系统?答:嵌入式系统是以应用为中心、以计算机技术为基础、软/硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。12-2与通用型计算机相比,嵌入式系统有哪些特点?答:与通用型计算机系统相比,嵌入式计算机系统具有以下特点:(1)功能单一。嵌入式系统通常是面向特定应用的,一个嵌入式系统通常只能重复执行一个特定的功能。(2)严格的约束。所有的计算机系统在设计指标上都有一些约束,但对嵌入式系统而言,这些约束尤为严格。(3)反应性与实时性。很多嵌入式系统都需要不断地对所处环境的变化做出反应,而且要实时地得出计算结果,不能延迟。(4)综合技术学科。嵌入式系统是将计算机技术、半导体技术、电子技术和自动控制技术与各个行业的具体应用相结合后的产物,是一门综合技术学科。(5)专用开发工具。嵌入式系统本身不具备自主开发能力,即使设计完成以后用户通常也不能对其中的程序功能进行修改,必须有一套开发工具和开发环境才能进行开发。12-3根据嵌入式系统的复杂程度,嵌入式系统可分为哪几类?课后答案网答:根据嵌入式系统的复杂程度,可以将嵌入式系统分为以下3类。(1)单个微处理器的系统。这类系统一般由单片嵌入式处理器组成,嵌入式处理器一般以某种微处理器内核为核心并集成了存储器、I/O设备、接口设备(如A/D转换器)等,嵌入式处理器加上简单的元件如电源、时钟元件等就可以工作。(2)嵌入式处理器可扩展的系统。这类嵌入式系统使用的处理器根据需要,可以扩展www.hackshp.cn存储器,也可以使用片上的存储器,处理器一般容量在64KB左右,字长为8位或16位。在处理器上扩充少量的存储器和外部接口,以构成嵌入式系统。(3)复杂的嵌入式系统。组成这样的嵌入式系统的嵌入式处理器一般是16位、32位等,用于大规模的应用,由于软件量大,因此要扩展存储器。扩展存储器一般在1MB以上,外部设备接口一般仍然集成在处理器上。12-4举例介绍嵌入式处理器有哪几类。答:嵌入式处理器可以分成嵌入式微处理器(EMPU)、嵌入式微控制器(EMCU)、嵌入式DSP处理器(EDSP)和嵌入式片上系统(ESoC)4类。(1)嵌入式微处理器(EmbeddedMicroprocessorUnit,EMPU) 嵌入式微处理器的基础是通用计算机中的CPU。在应用中,将微处理器及其存储器、总单片机原理与接口技术56线、外设等装配在专门设计的电路板上,成为单板计算机,如STD-BUS、PC104等。(2)嵌入式微控制器(EmbeddedMicrocontrollerUnit,EMCU)嵌入式微控制器又称单片机,顾名思义,就是将整个计算机系统集成到一块芯片中。嵌入式微控制器一般以某一种微处理器内核为核心,芯片内部集成ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A、FlashRAM、EEPROM等各种必要的功能和外设。目前,嵌入式微控制器的品种和数量最多,比较有代表性的通用系列包括8051、P51XA、MCS-251、MCS-96/196/296、C166/167、MC68HC05/11/12/16、68300等。(3)嵌入式DSP处理器(EmbeddedDigitalSignalProcessor,EDSP)DSP处理器对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也较高。嵌入式DSP处理器比较有代表性的产品是美国德州仪器(TexasInstruments,TI)公司的TMS320系列和摩托罗拉(Motorola)公司的DSP56000系列,以及性能更高的C6000和C8000,DSP56100,DSP56200和DSP56300等几个不同系列的处理器。(4)嵌入式片上系统(EmbeddedSystemonChip,ESoC)随着EDI的推广和VLSI设计的普及化,以及半导体工艺的迅速发展,在一个硅片上实现一个更为复杂的系统的时代已经来临,这就是SoC。例如Infineon的TriCore,Motorola的M-Core,某些ARM系列器件,Echelon和Motorola联合研制的Neuron芯片等都属于SoC。12-5简述嵌入式系统的组成并画出简图。答:在不同的应用场合下,嵌入式系统虽然外观和形状有所差别,但是通过对其内部结构的分析,一个嵌入式系统一般都是由嵌入式计算机系统和执行装置组成,如下图所示。其中嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、软件层和功能层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作任务。课后答案网1.硬件层。硬件层由嵌入式微处理器、存储器系统、通用设备接口和I/O接口(A/D、D/A、I/O等)组成。2.中间层。硬件层和软件层之间为中间层,也称为硬件抽象层(HardwareAbstractLayer,HAL)或板级支持包(BoardSupportPackage,BSP),它把系统软件与底层硬件部分隔离,使得系统的底层设备驱动程序与硬件无关,一般应具有相关硬件的初始化、数据www.hackshp.cn的输入/输出操作和硬件设备的配置等功能。3.软件层。软件层由实时多任务操作系统(RTOS)、文件系统、图形用户接口(GUI)、网络系统及通用组件模块组成。RTOS是嵌入式应用软件的基础和开发平台。RTOS实际上是一段嵌入式目标代码中的程序,系统复位后首先执行,相当于用户的主程序,用户的其他应用程序都建立在RTOS上。4.功能层。功能层由基于RTOS开发的应用程序组成,用来完成对被控对象的控制功能。功能层是面向被控对象和用户的,为方便用户操作,往往需要提供一个友好的人机界面。习题与答案575.执行装置。执行装置是指那些可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务的设备和装置。在不同的应用领域中,嵌入式系统的执行装置一般是 不同的,应该根据具体的应用场合和系统所要求实现的功能选择不同的设备和执行装置。12-6嵌入式系统的设计与传统系统设计相比具有哪些异同点?答:嵌入式系统的设计与传统系统的设计相比具有一些共同点,他保持了许多传统系统设计的良好习惯。但是由于嵌入式系统运行的目标应用环境的特殊性,该目标环境主要是针对特定的应用领域,所以系统的功能比较专一。嵌入式系统只能完成预期要完成的功能,而且出于对系统成本、性能和功耗等各方面的考虑,嵌入式系统的CPU、存储器、外围设备等资源应用得都恰到好处。嵌入式系统的设计具有自身的特点。(1)嵌入式系统通常是面向特定应用的系统(2)嵌入式系统的硬件和软件都必须高效地设计(3)嵌入式系统设计需要交叉开发环境(4)嵌入式系统的程序需要固化(5)嵌入式系统的软件开发难度较大嵌入式系统还需要提供强大的硬件开发工具和软件包的支持,需要设计者从速度、功能和成本综合考虑。此外,嵌入式系统对稳定性、可靠性、功耗、抗干扰性、重量体积等方面的性能要求都比通用系统的要求更为严格和苛刻。12-7结合嵌入式系统的典型组成,试分析常见的嵌入式产品(MP3、手机等)大体的硬件结构组成。答:以MP3随身听为例,嵌入式微处理器采用ARM7TDMI芯片,存储器系统有SDRAM、ROM等,通用设备接口包括IDE连接器、USB、RS-232,输入输出接口包括键盘、单片机原理与接口技术58LCD等。通过USB接口将MP3格式的文件下载到MP3随身听中,经MP3解码、DAC转换及音频放大器播放出来。MP3随身听的硬件组成如下图所示。课后答案网12-8设计实现一个MCS-51系列单片机最小系统,完成步进马达驱动功能,具体要求自己确定。答:设某四相步进电机每步转角1.5°,采用二相激励方式,电机转动所需要的输入序列表如下表所示,用8051直接控制步进电机,要求先正转www.hackshp.cn60°,然后反转30°。序列ABAB1++——2—++—3——++4+——+5++——下图给出了步进电机与8051相连的硬件电路图。步进电机的旋转方向可以人工控制,如果P2.4引脚接地,电机按逆时针方向旋转,否则按顺时针方向旋转。因8051的端口不能直接提供驱动电机所需的电流,所以通过增加缓冲器来解决,图中给出了缓冲器的一种实现方法。由于8051本身不能驱动步进电机,可以增加几个晶体管,以增加流入 步进电机的电流,Q1是MJE3055TPNP晶体管,而Q2是MJE2955TNPN晶体管,图中的C连到8051单片机,D连到步进电机。习题与答案59软件程序代码为:sbitnotA=P2^0;sbitisA=P2^1;sbitnotB=P2^2;sbitisB=P2^3;sbitdir=P2^4;voiddelay(){inti,j;for(i=0;i<5000;i++)for(j=0;j<10000;j++)}voidmove(intdir,intsteps){inta,b;if(dir==1){for(a=0;a<=steps;a++{for(b=0;b<=19;b+=4){isA=lookup[b];isB=lookup[b+1];notA=lookup[b+2];课后答案网notB=lookup[b+3];单片机原理与接口技术60delay();}}www.hackshp.cn}if(dir==0){for(a=0;a<=steps;a++{for(b=19;b>=0;b-=4){isA=lookup[b];isB=lookup[b-1];notA=lookup[b-2];notB=lookup[b-3]; delay();}}}}intloopup[20]={1,1,0,0,0,1,1,0,0,0,1,1,1,0,0,1,1,1,0,0};voidmain(){while(1){move(1,8);/*电机正转60°*/move(0,4);/*电机反转30°*/}}课后答案网www.hackshp.cn'