《单片机原理及应用》课后习题_第1页
《单片机原理及应用》课后习题_第2页
《单片机原理及应用》课后习题_第3页
《单片机原理及应用》课后习题_第4页
《单片机原理及应用》课后习题_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

第1章1-1什么是单片机?它与一般微型计算机在结构上何差别?答:单片微型计算机简称为单片机(SingleChipComputer),又称为微控制器(MCU即Micro-ControllerUnit)。它是在一块芯片上集成了中央办理器(CPU)、储存器(RAM、ROM)、准时器/计数器、中止控制、各样输入/输出(I/O)接口(如并行I/O口、串行I/O口和A/D变换器)等为一体的器件。微型计算机的基本结构由CPU(运算器、控制器)、储存器、输入设施和输出设施五大多数构成,各部分经过外面总线连结而成为一体。单片机的结构是在一块芯片上集成了中央办理器(CPU)、储存器、准时器/计数器、中止控制、各样输入/输出接口(如并行I/O口、串行I/O口和A/D变换器)等,它们经过单片机内部部总线连结而成为一体。1-2MCS-51系列单片机内部资源配置如何?试举例说明8051与51兼容的单片机的异同。答:MCS-51系列单片机内部资源配置AT89S5312KB256B3×163219/2SPI,WDT,2个数据指Flash针ROMW77E5832KB256B+3×1636212/2扩展了4位I/O口,双Flash1024B数据指针,WDT。ROM1-3新式8位单片机,主要在哪几方面发展了?使用新式8位单片机能带来什么利处?1、运算速度大大提升;2、RAM、ROM容量增大;3、精简指令集,指令比51少好多;4、更多的IO口;5、更多的其余功能,比方自带AD,DA,自带SPI,自带看门狗,自带大容量EEPROM等等;6、中止的种类更细更多,有20几此中止向量的俯拾皆是,准时器/计数器的功能,数目都更多。简化电路,节俭成本,降低功耗,提升系统的靠谱性。第2章2-1MCS-51系列单片机内部有哪些主要的逻辑零件?答:一个8位CPU;一个片内振荡器及时钟电路;4K字节ROM程序储存器;128字节RAM数据储存器;两个16位准时器/计数器;可寻址64K外面数据储存器和64K外面程序储存器空间的控制电路;32条可编程的I/O线(四个8位并行I/O端口);一个可编程全双工串行口;拥有五此中止源、两个优先级嵌套中止结构12-2MCS-51设有4个8位端口(32条I/O线),实质应用中8位数据信息由哪一个端口授送?16位地点线如何形成?P3口有何功能?答:实质应用中8位数据信息由P0口授送。16位地点线由P0口输出低8位地址A7~A0,P2口输出高8位地点A15~A8。P3口是一个多用途的端口,也是一个准双向口,作为第一功能使用时,其功能同P1口;看作第二功能使用时,P3.0—RXD串行输入(数据接收)口,P3.1—TXD串行输出(数据发送)口,P3.2—INT0外面中止0输入线,P3.3—INT1外面中止1输入线,P3.4—T0准时器0外面输入,P3.5—T1准时器1外面输入,P3.6—WR外面数据储存器写选通讯号输出,P3.7—RD外面数据储存器读选通讯号输入。2-3MCS-51的储存器结构与一般的微型计算机有何不一样?程序储存器和数据储存器各有何作用?答:MCS-51储存器结构与常有的微型计算机的配置方式不一样,它把程序储存器和数据储存器分开,各有自已的寻址系统、控制信号和功能。程序储存器用来寄存程序和一直要保存的常数,如经汇编后所编程序的机器码。数据储存器往常用来寄存程序运转中所需要的常数或变量,比如模/数变换时及时收集的数据等。2-4MCS-51内部RAM区功能结构如何分派?4组工作寄存器使用时如何采纳?位寻址地区的字节地点范围是多少?答:MCS-51系列单片机内部数据储存器:00H~7FH单元构成的低128字节地点空间的RAM区,又分为为工作寄存器区(00H~1FH)、位寻址区(20H~2FH)和用户RAM区(30H~7FH)。80H~FFH(128~255)单元构成的高128字节地点空间的特别功能寄存器(又称SFR)区。关于8032、8052、8752的单片机还有80H~FFH单元构成的高128字节地点空间的RAM区。4组工作寄存区是由程序状态字PSW(特别功能寄存器,字节地点为0D0H)中的D4、D3位(RS1和RS0)来决定的。位寻址地区的字节地点范围是20H~2FH(对应的位地点范围是00H~7FH)。2-5特别功能寄存器中哪些寄存器能够位寻址?它们的字节地点是什么?答:P0字节地点80H,TCON字节地点88H,P1字节地点90H,SCON字节地点98H,P2字节地点A0H,IE字节地点A8H,P3字节地点B0H,IP字节地点B8H,PSW字节地点D0H,ACC字节地点E0H,B字节地点F0H。2-6简述程序状态字PSW中各位的含义。答:CY(PSW·7)进位标记,AC(PSW·6)协助进位标记,F0(PSW·5)用户标记位,RS1、RS0(PSW·4、PSW·3)寄存器区选择控制位,OV(PSW·2)溢出标记,P(PSW.0)奇偶标记,每个指令周期都由硬件来置位或清“0,”以表示累加器A中1的位数的奇偶数。2-7复位后,各内部寄存器的内容是什么?22-8一个时钟频次为6MHz的单片机应用系统,它的振荡信号周期、时钟周期、机器周期分别是多少?答:振荡信号周期=1/6us、时钟周期=1/3us、机器周期=2us。2-9货仓有何功能?货仓指针的作用是什么?二者的关系?为何在程序设计时,要对SP从头赋值?答:货仓的主要功能:保护断点和程序现场,保存用户数据。货仓指针的作用是:货仓指针SP是一个8位特别功能寄存器,指示出货仓顶部在内部RAM中的地点。二者的关系:货仓指针SP给定目前的栈顶,SP的初始值越小,货仓深度就越深。系统复位后,SP初始化为07H,使得货仓事实上由08H单元开始。考虑到08H~1FH单元分属于工作寄存器区1~3,若程序设计中要用到这些区,则最好把SP值改置为1FH或更大的值如60H,SP的初始值越小,货仓深度就越深,货仓指针的值能够由软件改变,所以货仓在内部RAM中的地点比较灵巧。第3章3-4:(1)ORG0000HAJMPSTARTORG0100HSTART:MOVA,#21HADDA,#45HADDA,#78HSJMP$END(2)ORG0000HAJMPSTARTORG0100HSTART:MOVA,#78HADDA,#45HCLRC;SUBBA,#21HSUBBA,#09HSJMP$END(3)ORG0000HAJMPSTART3ORG0100HSTART:MOVA,#34HADDA,#0ABHMOVR0,AMOVA,12ADDCA,#21HMOVR1,ASJMP$END(3)ORG0000HAJMPSTARTORG0100HSTART:CLRC;MOVA,#0BCHSUBBA,#0CDHMOVR0,AMOVA,1#2AHSUBBA,#0FHMOVR1,ASJMP$END3-5:请编程实现:将片内20H储存单元的8位二进制数变换成BCD码,并存放在片外以2000H开端的单元中,2000H单元寄存变换后的BCD码的百位,2001H单元寄存变换后的BCD码的十位/个位。ORG0000HAJMPSTARTORG0050HSTART:MOVA,20H;A←被除数MOVB,#100;B←除数100DIVAB;A÷B,A←商(百位数BCD码),B←余数MOVX2000H,A;(2000H)←将百位数BCD码MOVA,B;A←余数作被除数MOVB,#10;B←除数10DIVAB;A÷B,A←商(十位数BCD码),B←余数(个位BCD码)SWAPA;十位BCD码调整到A中高4位ADDA,B;A中压缩成2位BCD码MOVX2001H,A;(2001H)←十位、个位BCD码SJMP$END3-6:将片内RAM20H,21H,22H,23H(千/百/十/个位)中的十进制的ascii码转4换成bcd码,并压缩放于片内30H,31H两个单元,此中31H中放bcd码的十位/个位,30H中放bcd码的千位/百位。MOVA,#00H;这一句不是一定MOVR0,#20HMOVR1,#21HXCHDA,@R0;A←(20H)SWAPA;A高4位←(20H)的BCD码数字XCHDA,@R1;A低4位←(21H)的BCD码数字MOV30H,AMOVA,#00H;这一句不是一定MOVR0,#22HMOVR1,#23HXCHDA,@R0;A←(22H)SWAPA;A高4位←(22H)的BCD码数字XCHDA,@R1;A低4位←(21H)的BCD码数字MOV31H,A3-7:片内RAM的30H~32H单元中连续寄存了6个压缩BCD码,编制程序将它们变换为ASCII码,存入片外3000H开始的连续储存区中MOVR0,#30HMOVDPTR,3000HLOOP:MOVA,@R0SWAPAANLA,#0FHADDA,#30H;30H='0'MOVX@DPTR,AINCDPTRMOVA,@R0ANLA,#0FHADDA,#30HMOVX@DPTR,AINCDPTRINCR0CJNER0,#33H,LOOP3-9:从外面RAM2000H单元开始寄存着100个无符号数,编写程序统计出:(1)最大数;(2)最小数;(6)大于50,小于50,等于50的个数。(1)MOVDPTR,#2000HMOV30H,#0;先用0当成最大数(求最小数时,用255)MOVR2,#100LOOP:MOVXA,@DPTRCJNEA,20H,TTT;(A)-(20H)5TTT:JNCNEXT;不够减转移(求最小数时,用JNCNEXT)MOV30H,A;够减,这个数是大数,给(20H)NEXT:INCDPTRDJNZR2,LOOPSJMP$END(6)ORG0600HMOVDPTR,#2000HMOVR2,#100;总数MOVR3,#0;小于50的数的个数MOVR4,#0;等于50的数的个数MOVR5,#0;大于50的数的个数LOOP:MOVXA,@DPTRCLRCSUBBA,#50JZEQU_50JNCBIGINCR3;小于50的个数JMPNEXTEQU_50:INCR4JMPNEXTBIG:INCR5NEXT:INCDPTRDJNZR2,LOOPMOV30H,R3;小于50的数的个数MOV31H,R4;等于50的数的个数MOV32H,R5;大于50的数的个数SJMP$3-10MCS-51片外RAM区1000H~1007H单元中存有8个无符号数,编程求其均匀值,将结果存于1008H中。%先加,加的结果可能高出8位,所以储存结果于(30H)和(40H)单元中。MOVDPTR,#1000HMOVR7,#08HMOV30H,#00HMOV40H,#00HSS1:MOVXA,@DPTR6ADDA,30HMOV30H,ACLRAADDCA,40HMOV40H,AINCDPTRDJNZR7,SS1MOVR7,#03H;移位3次,等于除以8SS2:CLRCMOVA,40HRRCAMOV40H,AMOVA,30HRRCAMOV30H,ADJNZR7,SS2MOVX@DPTR,A23-11下边是以数学公式,X值存于片内20H,Y值存于21H单元中。Y=X(X>0)MAIN:MOVA,20HJZSULJBACC.7,NEGMOVB,AMULABSJMPSULNEG:CLRCRLCASUL:MOV21H,A3-12试编写程序,将外面RAM2000H~20FFH数据块,传递到3000H~30FFH地区。MOVR6,#0FFHMOVR2,#00HMOVR3,#20H;暂存2000H地点MOVR4,#00HMOVR5,#30H;暂存3000H地点NEXT:MOVDPL,R2MOVDPH,R3MOVXA,@DPTRMOVDPL,R4MOVDPH,R5MOVX@DPTR,AINCR2INCR47DJNZR6,NEXT3-13:振荡频次:6MHz(机器周期:2us),(1)1ms延时ORG2000HMOVR7,#125LOP1:NOPNOPDJNZR7,LOP1RET(2)100ms延时ORG2000HMOVR6,#100LOP2:MOVR7,#125LOP1:NOPNOPDJNZR7,LOP1DJNZR6,LOP2RET(3)1s延时ORG2000HMOVR5,#10LOP3:MOVR6,#100LOP2:MOVR7,#125LOP1:NOPNOPDJNZR7,LOP1DJNZR6,LOP2DJNZR5,LOP3RET3-14:片内RAM30H有一数(0~15),查表求平方值,存入31H中。ORG1000HMAIN:MOVDPTR,#TABMOV30H,#13;NUMB=0~15MOVA,30HMOVCA,@A+DPTRMOV31H,ASJMP$TAB:DB0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,255第4章84-4试编程实现,将INT0设为高优先级中止,且为电平触发方式;T0溢出中止设为低优先级中止,串行口中止为高优先级中止,其余中止源设为严禁状态。SETBPX0CLRIT0CLRPT0SETBPSMOVIE,#93H4-9试用中止技术设计一个秒闪电路,其功能是发光二极管LED每秒闪亮400ms。主机频次为6MHz。(仿真见exercise4_9.ms11)题意可理解为LED每次亮400ms,灭600ms。设使用准时器T1,准不时间为100ms,用P1.0作输出,设P1.0为高时灯灭。ORG0000HAJMPSTARTORG000BHAJMPT0INTORG0050HSTART:MOVSP,#30HMOVTMOD,#01H;T0方式1计数,MOVTH1,#3CHMOVTL1,#0B0H;准时100msMOVR0,#04HSETBF0;灯亮(1)、灭(0)的变换标记MOVIE,#88HSETBP1.0SETBTR1SJMP$ORG0100HT0INT:MOVTH1,#3CHMOVTL1,#0B0HDJNZR0,NEXTJNBF0,TURNON;F0为0转TURNOFF:CPLP1.0CLRF0MOVR0,#06HSJMPNEXTTURNON:CPLP1.0SETBF0MOVR0,#04HNEXT:RETIEND94-1简述中止、中止源、中止源的优先级及中止嵌套的含义。答:当CPU正在办理某项事件的时,假如外界或内部发生了紧迫状况,要求CPU暂停正在办理的工作转而去办理这个紧迫状况,待办理完此后再回到本来被中止的地方,持续履行本来被中止了的程序,这样的过程称为中止。向CPU提出中止恳求的源称为中止源。当系统有多此中止源时,便可能出现同时有几此中止源申请中止,而CPU在一个时刻只好响应并办理中止优先高的恳求。在实质应用系统中,当CPU正在办理某此中止源,即正在履行中止服务程序时,会出现优先级更高的中止源申请中止。为了使更紧迫的级别高的中止源及时获得服务,需要临时中止(挂起)目前正在履行的级别较低的中止服务程序,去办理级别更高的中止源,待办理完此后,再返回到被中止了的中止服务程序持续履行,但级别同样或级别低的中止源不可以中止级别高的中止服务,这就是所谓的中止嵌套。4-2MCS-51单片机能供给几此中止源?几此中止优先级?各此中止的源的优先级如何确立?在同一优先级中各此中止源的优先级如何确立?答:MCS-51单片机能供给五此中止源,两此中止优先级。中止优先级是由片内的中止优先级寄存器IP(特别功能寄存器)控制的。PS:串行口中止优先级控制位。PS=1,串行口定义为高优先级中止源;PS=0,串行口定义为低优先级中止源。PT1:T1中止优先级控制位。PT1=1,准时器/计数器1定义为高优先级中止源;PT1=0,准时器/计数器1定义为低优先级中止源。PX1:外面中止1中止优先级控制位。PX1=1,外中止1定义为高优先级中止源;PX1=0,外中止1定义为低优先级中止源。PT0:准时器/计数器0(T0)中止优先级控制位,功能同PT1。PX0:外面中止0中止优先级控制位,功能同PX1。在同一优先级中,循环轮番排队。不分级别高低,所有中止源优先级都一律同等,CPU轮番响应各此中止源的中止恳求。4-3简述MCS-51单片机中止响应过程。答:CPU在每个机器周期的S5P2时刻采样中止标记,而在下一个机器周期对采样到的中止进行查问。假如在前一个机器周期的S5P2有中止标记,则在查问周期内便会查问到并按优先级高低进行中止办理,中止系统将控制程序转入相应的中止服务程序。4-4MCS-51单片机外面中止有哪两种触发方式?如何选择?对外面中止源的触发脉冲或电平有何要求?答:MCS-51单片机外面中止有:负边缘触发方式和电平触发方式。外面中止1(INT1)触发方式控制位。假如IT1为1,则外中止1为负边缘触发方式(CPU在每个机器周期的S5P2采样INT1脚的输入电平,假如在一个周期中采样到高电平,在下个周期中采样到低电平,则硬件使IE1置1,向CPU恳求中止);假如IT1为0,则外中止1为电平触发方式。采纳电平触发时,输入到INT1的外面中止源10一定保持低电平有效,直到该中止被响应。同时在中止返回前一定使电平变高,不然将会再次产生中止。4-5在MCS-51单片机的应用系统中,假如有多个外面中止源,如何进行办理?答:当系统有多此中止源时,便可能出现同时有几此中止源申请中止,而CPU在一个时刻只好响应并办理一此中止恳求,为此,要进行排队。排队的方式有:(1)按优先级排队。(2)循环轮番排队。MCS-51单片机优先级比较简单,只有两级,能够经过优先级控制寄存器设置不一样的优先级。当优先级同样时,商定有5此中止源优先级次序由高到低分别为:外面中止0、准时器/计数器0溢出、外面中止1、准时器/计数器1溢出、串行口中止。4-6MCS-51有哪几种扩展外面中止源的方法?各有什么特色?答:1)利用准时器作为外面中止使用特色:把MCS-51的两个准时器/计数器(T0和T1)选择为计数器方式,每当P3.4(T0)或P3.5(T1)引脚上发生负跳变时,T0和T1的计数器加1。能够把P3.4和P3.5引脚作为外面中止恳求输入线,而准时器的溢出中止作为外面中止恳求标记。2)采纳中止和查问相联合的方法扩大外面中止源特色:这类方法是把系统中多个外面中止源经过与门连结到一个外面中止输入端(比如INT1),并同时还接到一个I/O口,中止恳求由硬件电路产生,而中止源的辨别由程序查问来办理,查问次序决定了中止源的优先级。4-7MCS-51单片机响应外面中止的典型时间是多少?在哪些状况下,CPU将推迟对外面中止恳求的响应?答:响应外面中止的典型时间是起码需要3个完好的机器周期。1、外面中止INT0和INT1的电平在每个机器周期的S5P2时被采样并锁存到IE0和IE1中,这个置入到IE0和IE1的状态在下一个机器周期才被其内部的查问电路查问,未产生了一此中止恳求。2、没有知足响应的条件,CPU没有响应中止。3、没有由硬件生成一条长调用指令转到相应的服务程序进口。第5章5-1MCS-51单片机准时/计数器作准时和计数用时,其计数脉冲分别由谁供给?准时:计数脉冲由系统振荡器产生的内部时钟信号12分频后供给。准不时间与时钟频次和准时初值有关。计数:外面输入脉冲计数,接相应的外面输入引脚T0(P3.4)或T1(P3.5)5-2MCS-51单片机内设有几个准时/计数器?它们是由哪些特别功能寄存器构成?答:MCS-51单片机内部有两个16位可编程的准时器/计数器,即准时器T0和准时器T1。11准时/计数器T0由特别功能寄存器TH0、TL0(字节地点分别为8CH和8AH)构成,准时/计数器T1由特别功能寄存器TH1、TL1(字节地点分别为8DH和8BH)构成。其内部还有一个8位的准时器方式寄存器TMOD和一个8位的准时器控制寄存器TCON。TMOD主假如用于选定准时器的工作方式,TCON主假如用于控拟订时器的启动和停止。5-3准时/计数器作准时器用时,其准不时间与哪些要素有关?作计数器用时,对外界计数频次有何限制?答:①准时器/计数器作准时用时,其准不时间与下边要素有关:晶体振荡器的频次、机器周期、计数器的长度、准时器/计数器初值。②用做"计数器"时,对外面输入端T0、T1上1到0的跳变进行加1计数。在计数状态下,每个机器周期的S5P2时刻采样外面输入,当第一个机器周期采样为高电平,而在第二个机器周期采样为低电平常,内部计数器加1。新的计数值在紧接着采样到跳变后的下一机器周期的S3P1出此刻计数器中。因为检测一个1到0的跳变需要2个机器周期,即24个振荡周期,因其余部计数的最迅速率为振荡频次的1/24。外面输入信号的速率向下能够不受限制,可是脉冲宽度一定保证在其电平变化以前能被采样到一次,即起码保持一个完好的机器周期,不然,将会因为采样不到而出现漏计现象。3-1设内部RAM中59H单元的内容为50H,写出当履行以下程序段后寄存器A,R0和内部RAM中50H,51H单元的内容为何值?MOVA,59H;A=50HMOVR0,A;R0=50HMOVA,#00H;A=00HMOV@R0,A;50H=00HMOVA,#25H;A=25HMOV51H,A;51H=25HMOV52H,#70H;52H=70HA=25HR0=50H50H=00H51H=25H3-2接见外面数据储存器和程序储存器能够用哪些指令来实现?举例说明。答:接见外面数据储存器指令有:MOVX@DPTR,AMOVDPTR,#0100HMOV@DPTR,AMOVXA,@DPTRMOVDPTR,#0200HMOVA,@DPTRMOVXA,@RiMOVXA,@R0MOVX@Ri,AMOVX@R1,A接见程序储存器指令有:MOVCA,@A+PCMOVCA,@A+DPTR3-3设货仓指针SP中的内容为60H,内部RAM中30H和31H单元的内容分别为24H和10H,履行以下程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化?PUSH30H;61H=24HPUSH31H;62H=10HSP=62HPOPDPL;DPL=10HPOPDPH;DPH=24HSP=60HMOV30H,#00H;30H=00H12MOV31H,#0FFH;31H=0FFH3-4设(A)=40H,(R1)=23H,(40H)=05H。履行以下两条指令后,累加器A和R1以及内部RAM中40H单元的内容各为何值?XCHA,R1;A=23HR1=40HXCHDA,@R1;A=25H40H=03H3-5两个四位BCD码数相加,被加数和加数分别存于50H,51H和52H,53H单元中(千位、百位在低地点中,十位、个位在高地点中),和寄存在54H,55H和56H中(56H用来寄存最高位的进位),试编写加法程序。ORG0000HLJMPSTARTORG0100HSTART:MOVA,53HADDA,51HDAAMOV55H,AMOVA,52HADDCA,50HDAAMOV56H,CSJMP$END3-6设(A)=01010101B,(R5)=10101010B,分别写出履行以下指令后结果。ANLA,R5;00000000BORLA,R5;11111111BXRLA,R5;11111111B3-7指令SJMPrel中,设rel=60H,并假定该指令寄存在2114H和2115H单元中。当该条指令履行后,程序将跳转到何地点?答:2116H+60H=2176H3-8简述转移指令AJMPaddr11、SJMPrel、LJMPaddr16及JMP@A+DPTR的应用处合。答:AJMPaddr11为2K字节范围内的无条件转跳指令,把程序的履行转移到指定的地点。SJMPrel是无条件转跳指令,履行时在PC加2后,把指令中补码形式的偏移量值加到PC上,并计算出转向目标地点。转向的目标地点能够在这条指令前128字节到后127字节之间。LJMPaddr16履行这条指令时把指令的第二和第三字节分别装入PC的高位和低位字节中,无条件地转向指定地点。转移的目标地点能够在64K程序储存器地点空间的任何地方,不影响任何标记。JMP@A+DPTR指令的功能是把累加器中8位无符号数与数据指针DPTR中的16位数相加,将结果作为下条指令地点送入PC,利用这条指令能实现程序的散转。3-9试剖析以下程序段,当程序履行后,位地点00H,01H中的内容将为何值?P1口的8条I/O线为何状态?CLRC;CY=013MOVA,#66H;A=66HJCLOOP1CPLC;CY=1SETB01H;20H.1=1LOOP1:ORLC,ACC.0;CY=1JBACC.2,LOOP2;CLR00HLOOP2:MOVP1,A;P1=01100110BSJMP$20H.0=020H.1=1P1=66H3-10查指令表,写出以下两条指令的机器码,并比较一下机器码中操作数摆列序次的特色。MOV58H,80H85(80)(58)直接寻址字节送直接寻址字节:汇编时源操作数在目标操作数以前。MOV58H,#80H75(58)(80)立刻数送直接寻址字节:汇编时目标操作数在原操作数以前。第4章4-1什么是单片机的程序设计语言。答:单片机的程序设计语言是指计算机能理解和履行的语言,人与CPU、MCU沟通的语言。MCS-51系列单片机的程序设计语言,依据语言的结构及其功能能够分为三种:机器语言、汇编语言、高级语言。4-2单片机的程序设计包含哪几个步骤。答:程序设计步骤以下:1)剖析问题。即认真剖析任务书中要实现的功能和性能指标。2)确立算法。即找到解决问题思路、方法。3)分派内存单元。即确立数据结构。这一步常常与算法同时考虑。4)依据算法和数据结构,画出程序流程图。5)依据流程图编写汇编语言源程序。编写录入,保存为*.ASM文件。6)汇编。清除语法错误。7)调试(DEBUG)。找犯错误并改正,再调试,直至经过。8)编写有关说明文档。4-3画出单片机的三种基本程序结构。答:14A条件建立吗?条件建立吗?是否是否BABA次序结构流程图分支结构流程图循环结构流程图4-4单片机的分支结构程序指令有哪几条?答:分支结构程序指令有JB、JNB、JC、JNC、JZ、JNZ、CJNE、JBC4-5什么是单片机的程序嵌套?生活中有哪些现象与单片机的嵌套近似?答:一个程序中还会调用其余程序,这称为程序嵌套。生活例子:在学习,有电话了,去接电话,水开了,放下电话去关掉电水壶,接着打电话,打完电话,接着学习。4-6可否从一个子程序内部使用转移指令直接跳转到另一个子程序履行?答:能够,为了保证正确地从子程序2返回子程序1,再从1返回主程序,每次调用子程序时一定将下条指令地点保存起来,返回时按后进先出原则挨次拿出旧PC值。4-7可否使用转移指令从主程序跳到子程序?答:不可以够,当主程序需要履行某子程序的功能时,只需履行一条调用指令。而并不是使用转移指令4-8可否使用转移指令从子程序跳到主程序?RET或RETI,以保证子程答:不可以够,子程序的最后一条指令应当是返回指令序能够正确返回主程序。履行RET指令时单片机将本来存在货仓中的断点地点弹出给PC,保证子程序返回主程序中调用子程序的地方持续履行主程序。子程序从子程序的标号开始,到RET或RETI指令结束。RET指令是一般子程序的返回指令。RETI指令是中止服务子程序的返回指令。4-9画出主程序的一般流程图。答:主程序流程图15上电/复位初始化模块人机接口(键盘显示)模块输入模块运算模块输出模块4-10画出子程序的一般流程图。答:子程序流程图4-11子程序的规范化设计包含那几个部分?答:子程序的规范化设计包含:1)子程序名称。给子程序起名字,起名的原则是子程序名能够反应子程序功能,该名字就是子程序的进口地点表记符。2)子程序功能,对子程序的功能赐予简要的描绘。3)进口参数,子程序所要运算或办理的数据(加工前的原料),在调用子程序以前,主程序要先准备好进口参数。4)出口参数,子程序运算或办理的结果(加工达成的数据),子程序结束以前,最后结果(出口参数)寄存在商定的RAM单元,供主程序取用。5)资源占用状况,指出该子程序运转时所使用的片内工作寄存器(R0~R7)、SFR(特别功能寄存器)、片内RAM单元及片外RAM单元,以便在主程序调用该子程序以前,考虑将这些资源中的哪些字节保护入栈。4-12在片内RAM地点40H到4FH的储存单元中存有16个无符号数,找出此中的最大值,放入50H单元,请用“循环结构”和“分支结构”编程。答:流程图:开始初始化:R2=15赋判断次数,R0指针指向40H单元指针加116B@R0+1N判断A>B?YY源程序:ORG0000HLJMPMAINORG0100HMAIN:MOVR2,#0FHMOVR0,#40HMOVA,@R0SUB:INCR0MOVB,@R0CJNEA,B,NEXTNEXT:JCNEXT1DJNZR2,SUBJMPLASTNEXT1:MOVA,BDJNZR2,SUB17JMPLASTLAST:MOV50H,ASJMP$4-13将片内若干个RAM单元的内容复制到片外RAM单元,请用“主程序”调用“子程序”编程,要求子程序进口参数为:R0寄存片内RAM开端地点,DPTR寄存片外RAM开端地点,R1寄存字节数。请分别编写主程序和子程序。答:流程图主程序初始化常数R0←40HDPTR←0200HR1←10H调用复制子程序结束源程序:ORG0000HLJMPMAINORG0100HMAIN:MOVR1,#10HMOVR0,#40HMOVDPTR,#0000HLCALLCOPYSJMP$COPY:NEXT:MOVA,@R0MOVX@DPTR,AINCR0INCDPLDJNZR1,NEXT

子程序开始R0单元送DPTR指针加1NR1-1=0?Y返回18RET第5章5-1简述中止、中止源、中止源的优先级及中止嵌套的含义。答:当CPU正在办理某项事件的时,假如外界或内部发生了紧迫状况,要求CPU暂停正在办理的工作转而去办理这个紧迫状况,待办理完此后再回到本来被中止的地方,持续履行本来被中止了的程序,这样的过程称为中止。向CPU提出中止恳求的源称为中止源。当系统有多此中止源时,便可能出现同时有几此中止源申请中止,而CPU在一个时刻只好响应并办理中止优先高的恳求。在实质应用系统中,当CPU正在办理某此中止源,即正在履行中止服务程序时,会出现优先级更高的中止源申请中止。为了使更紧迫的级别高的中止源及时获得服务,需要临时中止(挂起)目前正在履行的级别较低的中止服务程序,去办理级别更高的中止源,待办理完此后,再返回到被中止了的中止服务程序持续履行,但级别同样或级别低的中止源不可以中止级别高的中止服务,这就是所谓的中止嵌套。5-2MCS-51单片机能供给几此中止源?几此中止优先级?各此中止的源的优先级如何确立?在同一优先级中各此中止源的优先级如何确立?答:MCS-51单片机能供给五此中止源,两此中止优先级。中止优先级是由片内的中止优先级寄存器IP(特别功能寄存器)控制的。PS:串行口中止优先级控制位。PS=1,串行口定义为高优先级中止源;PS=0,串行口定义为低优先级中止源。PT1:T1中止优先级控制位。PT1=1,准时器/计数器1定义为高优先级中止源;PT1=0,准时器/计数器1定义为低优先级中止源。PX1:外面中止1中止优先级控制位。PX1=1,外中止1定义为高优先级中止源;PX1=0,外中止1定义为低优先级中止源。PT0:准时器/计数器0(T0)中止优先级控制位,功能同PT1。PX0:外面中止0中止优先级控制位,功能同PX1。在同一优先级中,循环轮番排队。不分级别高低,所有中止源优先级都一律同等,CPU轮番响应各此中止源的中止恳求。5-3简述MCS-51单片机中止响应过程。答:CPU在每个机器周期的S5P2时刻采样中止标记,而在下一个机器周期对采样到的中止进行查问。假如在前一个机器周期的S5P2有中止标记,则在查问周期内便会查问到并按优先级高低进行中止办理,中止系统将控制程序转入相应的中止服务程序。5-4MCS-51单片机外面中止有哪两种触发方式?如何选择?对外面中止源的触发脉冲或电平有何要求?答:MCS-51单片机外面中止有:负边缘触发方式和电平触发方式。外面中止1(INT1)触发方式控制位。假如IT1为1,则外中止1为负边缘触发方式(CPU在每个机器周期的S5P2采样INT1脚的输入电平,假如在一个周期中采样到高电平,19在下个周期中采样到低电平,则硬件使IE1置1,向CPU恳求中止);假如IT1为0,则外中止1为电平触发方式。采纳电平触发时,输入到INT1的外面中止源一定保持低电平有效,直到该中止被响应。同时在中止返回前一定使电平变高,不然将会再次产生中止。5-5在MCS-51单片机的应用系统中,假如有多个外面中止源,如何进行办理?答:当系统有多此中止源时,便可能出现同时有几此中止源申请中止,而CPU在一个时刻只好响应并办理一此中止恳求,为此,要进行排队。排队的方式有:(1)按优先级排队。(2)循环轮番排队。MCS-51单片机优先级比较简单,只有两级,能够经过优先级控制寄存器设置不一样的优先级。当优先级同样时,商定有5此中止源优先级次序由高到低分别为:外面中止0、准时器/计数器0溢出、外面中止1、准时器/计数器1溢出、串行口中止。5-6MCS-51有哪几种扩展外面中止源的方法?各有什么特色?答:1)利用准时器作为外面中止使用特色:把MCS-51的两个准时器/计数器(T0和T1)选择为计数器方式,每当P3.4(T0)或P3.5(T1)引脚上发生负跳变时,T0和T1的计数器加1。能够把P3.4和P3.5引脚作为外面中止恳求输入线,而准时器的溢出中止作为外面中断恳求标记。2)采纳中止和查问相联合的方法扩大外面中止源特色:这类方法是把系统中多个外面中止源经过与门连结到一个外面中止输入端(比如INT1),并同时还接到一个I/O口,中止恳求由硬件电路产生,而中止源的辨别由程序查问来办理,查问次序决定了中止源的优先级。5-7MCS-51单片机响应外面中止的典型时间是多少?在哪些状况下,CPU将推迟对外面中止恳求的响应?答:响应外面中止的典型时间是起码需要3个完好的机器周期。1、外面中止INT0和INT1的电平在每个机器周期的S5P2时被采样并锁存到IE0和IE1中,这个置入到IE0和IE1的状态在下一个机器周期才被其内部的查问电路查问,未产生了一此中止恳求。2、没有知足响应的条件,CPU没有响应中止。3、没有由硬件生成一条长调用指令转到相应的服务程序进口。第6章6-18051单片机内设有几个可编程的准时器/计数器?它们能够有4种工作方式,如何选择和设定?各有什么特色?答:MCS-51单片机内部有两个16位可编程的准时器/计数器,即准时器T0和定20时器T1M1M0:准时器/计数器四种工作方式选择6-28051单片机内的准时/计数器T0、T1工作在模式3时,有何不一样?答:方式3对准时器T0和准时器T1是不同样的。若T1设置为方式3,则停止工作。方式3只合用于T0。当T0设置为方式3时,将使TL0和TH0成为两个互相独立的8位计数器,TL0利用了T0自己的一些控制方式,它的操作与方式0和方式1近似。而TH0被规定为用作准时器功能,对机器周期计数,并借用了T1的控制位TR1和TF1。在这类状况下TH0控制了T1的中止。6-3已知单片机时钟振荡频次为6MHz,利用T0准时器,在P1.1引脚上输出连续方波,波形以下:P1.100μs150μs计算准经常数:100us方式0Tc=FE0E;方式1Tc=FFCE;方式2Tc=CE150us方式0Tc=FD15;方式1Tc=FFB5;方式2Tc=B5方法一:采纳方式一,准时器中止。开始开始YN初始化T0,设置20H.0=1?工作方式T0赋初值150usT0赋初值100us开T0中止,设置标记位20H.0P1.1=0P1.1=1开准时器T0,P1.1=1取反20H.0取反20H.0等候中止中止返回中止返回主程序流程图:中止子程序流程图:21源程序:LJMPTINT0ORG0100HSTART:MOVTMOD,#01HMOVTL0,#0CEHMOVTH0,#0FFHSETBTR0SETBEASETBET0SETB20H.0SETBP1.1SJMP$TINT0:JNB20H.0,NEXTMOVTL0,#0B5HMOVTH0,#0FFHCLRP1.1CPL20H.0SJMPLASTNEXT:MOVTL0,#0CEHMOVTH0,#0FFHSETBP1.1CPL20H.0LAST:RETI方法二:采纳方式2准时器中止加延时程序源程序:LJMPSTARTORG000BHLJMPTINT0ORG0100HSTART:MOVTMOD,#02HMOVTL0,#0CEHMOVTH0,#0CEHSETBTR0SETBEASETBET0SETB20H.0SETBP1.1SJMP$22TINCLRTR0CLRP1.1LCALLDELAYCPL20H.0SETBTR0SJMPLASTNEXT:SETBP1.1CPL20H.0LAST:RETIDELAY:MOVR7,#8DELAY1:DJNZR7,DELAY1RET初始化T0,设置工作方式开T0中止,设置标记位20H.0开准时器T0,P1.1=1

YP1.1=0,关准时器调用50us延时取反20H.0,开准时器

开始NP1.1=1取反20H.0返回等候中止返回主程序流程图

中止子程序流程图6-4准时器/计数器的工作方式2有什么特色?合用于什么应用处合?23答:方式2把TL0配置成一个能够自动恢复初值的8位计数器,TH0作为常数缓冲器,TH0由软件预置值。当TL0产生溢出时,一方面使溢出标记TF0置1,同时把TH0中的8位数据从头装入TL0中。方式2常用于准时控制,作串行口波特率发生器。6-5准时器/计数器丈量某正单脉冲的宽度,采纳何种方式可获得最大批程?若时钟频次为6MHz,求同意丈量的最大脉冲宽度是多少?答:采纳方式1可获得最大批程。最大脉宽=2us×655366-6准时器/计数器作为外面中止源使用时,需要如何初始化,以T0为例经过程序说明。答:初始化MOVTMOD,#06HMOVTL0,#0FFHMOVTH0,#0FEHSETBTR0SETBEASETBET0第7章习7-1波特率的含义是什么?答:所谓波特率是每秒钟传递信号的数目,单位为波特(Baud)。7-2什么是串行异步通讯?它有哪些特色?答:通讯时接收器和发送器有各自的时钟。特色:异步通讯的长处是不需要传递同步脉冲,靠谱性高,所需设施简单,弊端是字符帧中因包含有开端位和停止位而降低了有效数据的传输速率7-3单片机的串行接口由哪些功能零件构成?各有什么作用?答:MCS-51单片机串行口主要由两个物理上独立的串行数据缓冲寄存器SBUF、发送控制器、接收控制器、输入移位寄存器和输出控制门构成。作用:SBUF为串行口的收发缓冲寄存器,它是可寻址的专用寄存器,此中包含了发送寄存器SBUF(发送)和接收寄存器SBUF(接收),能够实现全双工通讯。7-4简述串行接口接收和发送数据的过程。答:发送:发送操作是在TI=0下进行的,此时发送缓冲寄存器“SBUF(发送)”相当于一个并入串出的移位寄存器。CPU经过指令MOVSBUF,A,将数据写入“SBUF(发送)”,立刻启动发送,将8位数据以设定波特率从RXD输出,低位在前,高位在后。发送完一帧数据后,发送中止标记TI由硬件置位,并可向CPU发出中止恳求。接收:接收过程是在RI=0且REN=1条件下启动的,此时接收缓冲寄存器“SBUF(接收)”相当于一个串入并出的移位寄存器。接收时,先置位同意接收控制位REN,此时,RXD为串行数据输入端。当RI=0和REN=1同时知足时,开始接收。当接收到第8位数据时,将数据移入接收缓冲寄存器“SBUF(接收)”,并由硬件置位RI,同时向CPU发出中止恳求。CPU查到RI=1或响应中止后,经过指令MOVA,SBUF,将“SBUF(接收)”接收到的数据读入累加器A。7-58051串行接口有几种工作方式?有几种帧格式?各工作方式的波特率如何24确立?答:方式0、1、2、3.8帧10帧11帧三种格式。波特率:①方式0的波特率固定为系统晶振频次的1/12,其值为fosc/12。此中,fosc为系统主机晶振频次。②方式2的波特率由PCON中的选择位SMOD来决定,可由下式表示:波特率(2SMOD/64)fosc即:当SMOD=l时,波特率为fosc/32;当脚SMOD=0时,波特率为fosc/64。③方式1和方式3的波特率由准时器Tl的溢出率控制。因此波特率是可变的。准时器TI作为波特率发生器,相应公式以下:波特率=2SMOD准时器T1溢出率()32T1溢出率=T1计数率/产生溢出所需的周期数=(fosc/12)/(2kTC)式中K:准时器T1的位数,K的值等于8、13、16;TC:准时器T1的预置初值。第8章8-1MCS-51单片机外面程序储存器和数据储存器地点范围都是0000H~FFFFH,在实质使用时如何划分?答:接见(读)ROM时(程序储存器),经过PSEN引脚有效选中程序储存器,PC指针指向程序储存器的地点指针。接见外面RAM(数据储存器),经过RD、WR引脚有效选中数据储存器(DPTR为外面RAM储存器的地点指针)8-2接见8051片外数据储存器MOVX指令采纳的是间接寻址方式。访问片外程序储存器MOVC指令采纳的是基址加变址寻址方式。8-3MCS-51单片机能够外接64KB的程序储存器和64KB数据储存器。这两种片外储存器地点重叠而不发生总线矛盾,主要依赖单片机引脚上的那些信号来划分?答:同8-1.8-4给8031单片机扩展一片2716和6116,请画出系统连结图。方法一:地点自定:(此中一种解法以下)设2716地点:0000H—07FFH6116地点:0000H—07FFH(不用译码器)P2.0~P2.2A8~A10A8-A10258051地点A0-A7锁存器373A0~A7P0.0~P0.7方法二:采纳部分译码如:2716的地点0000H—07FFH6116的地点0800H—08FFHP2.5CP2.4BY0P2.3A74LS138Y1+5VP2.0—P2.28051地点锁存器P0.0~P0.7GALEPSENRDWR

A8-A10CEA0~A72716D0~D7OE

A8~A10CEA0~A76116D0~D7WEOE26方法三:采纳全译码如:2716的地点0000H—07FFH6116的地点0800H—08FFHP2.5CP2.4BY0P2.3A74LSY1138+5VGP2.6G2AP2.7G2BP2.0-P2A8-A10CEA8~A10CE8051地点锁存器A0~A7A0~A7P0.0~P0.7G

61162716ALED0~D7D0~D7WEPSENOEOERDWR8-5试画出MCS-51系列8051最小应用系统的原理结构图。答:8051最小应用系统以下图。这类最小应用系统只需将单片机的时钟电路和复位电路接上,同时EA接高电平,系统就能够工作。此类XTAL1应用系统只好用P0作一些小型的控制单元。其应用特色是:C18051C28751P1XTAL2(1)所有I/O口线均可供用户用。C3P2+5VRESET(2)内部储存器容量有限(只有4KB地点空间)。RP3(3)应用系统开发拥有特别性。8-6如何结构MCS-51单片

温馨提示

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

最新文档

评论

0/150

提交评论