单片机课后习题_第1页
单片机课后习题_第2页
单片机课后习题_第3页
单片机课后习题_第4页
单片机课后习题_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

第一章1.给出下列有符号数的原码、反码和补码(假设计算机字长为8位)。+45-89-6+112答:【+45】原=,【+45】反=,【+45】补=【-89】原=,【-89】反=,【-89】补=【-6】原=,【-6】反=,【-6】补=【+112】原=,【+45】反=,【+45】补=2.指明下列字符在计算机内部的表示形式。AsENdfJFmdsv120答:41H73H45H4EH64H66H4AH46H6DH64H73H76H31H32H30H10.什么是单片机?答:单片机是把微型计算机中的微处理器、存储器、I/O接口、定时器/计数器、串行接口、中断系统等电路集成到一个集成电路芯片上形成的微型计算机。因而被称为单片微型计算机,简称为单片机。11.单片机的主要特点是什么?答:主要特点如下:1)在存储器结构上,单片机的存储器采用哈佛(Harvard)结构2)在芯片引脚上,大部分采用分时复用技术3)在内部资源访问上,采用特殊功能寄存器(SFR)的形式4)在指令系统上,采用面向控制的指令系统5)内部一般都集成一个全双工的串行接口6)单片机有很强的外部扩展能力12.指明单片机的主要应用领域。答:单机应用:1)工业自动化控制;2)智能仪器仪表;3)计算机外部设备和智能接口;4)家用电器多机应用:功能弥散系统、并行多机处理系统和局部网络系统。第二章1.MCS-51单片机由哪几个部分组成?答:MCS-51单片机主要由以下部分组成的:时钟电路、中央处理器(CPU)、存储器系统(RAM和ROM)、定时/计数器、并行接口、串行接口、中断系统及一些特殊功能寄存器(SFR)。2.MCS-51的标志寄存器有多少位,各位的含义是什么?答:MCS-51的标志寄存器PSW有8位; D D 6 5 4 3 2 1 0 c 0 S1 R soR V含义如下:C(PSW.7):进位或借位标志位。AC(PSW.6):辅助进位或借位可标志位。F0(PSW.5):用户标志位。是系统预留给用户自己定义的标志位。RS1、RS0(PSW.4、PSW.3):寄存器组选择位。可用软件置位或清零,用于从四组工作寄存器中选定当前的工作寄存器组。OV(PSW.2):溢出标志位。在加法或减法运算时,如运算的结果超出8位二进制数的范围,则OV置1,标志溢出,否则OV清零。P(PSW.0):奇偶标志位。用于记录指令执行后累加器A中1的个数的奇偶性。若累加器A中1的个数为奇数,则P置位,若累加器A中1的个数为偶数,则P清零。其中PSW.1未定义,可供用户使用。3.在8051的存储器结构中,内部数据存储器可分为几个区域?各有什么特点?答:片内数据存储器按功能可以分成以下几个部分:工作寄存器组区、位寻址区、一般RAM区和特殊功能寄存器区,其中还包含堆栈区。工作寄存器组区,00H1FH单元,可用R0R7等8个寄存器访问;位寻址区,20H2FH单元,可按位方式访问;一般RAM区,30H7FH单元;堆栈区,可从08到7F单元;特殊功能寄存器区位于80HFFH单元。4.什么是堆栈?说明MCS-51单片机的堆栈处理过程。答:堆栈是按先入后出、后入先出的原则进行管理的一段存储区域。CS-51单片机的堆栈是向上生长型的,存入数据是从地址低端向高端延伸,取出数据是从地址高端向低端延伸。入栈和出栈数据是以字节为单位的。入栈时,SP指针的内容先自动加1,然后再把数据存入到SP指针指向的单元;出栈时,先把SP指针指向单元的数据取出,然后再把SP指针的内容自动减1。5.简述内部ROM的工作寄存器组情况,系统默认是第几组?答:51单片机有4组工作寄存器,每组8个,用寄存器R0R7表示,标志寄存器PSW的RS1、RS03两位用于从四组工作寄存器中选定当前的工作寄存器组,默认是第0组。6.51单片机的程序存储器64KB空间在使用时有那几个特殊地址?答:51单片机程序存储器的64KB存储空间使用时有7个特殊的地址,第一个是0000H,它是系统的复位地址,51单片机复位后PC的值为0000H,复位后从0000H单元开始执行程序,由于后面几个地址的原因,用户程序一般不直接从0000H单元开始存放,而是放于后面,通过在0000H单元放一条绝对转移指令转到后面的用户程序。后面6个为6个中断源的入口地址,51单片机中断响应后,系统会自动的转移到相应中断入口地址去执行程序。7.简述什么是51单片机的特殊功能寄存器?答:特殊功能寄存器(SFR)也称为专用寄存器,专门用于控制、管理片内算术逻辑部件、并行I/O接口、串行口、定时/计数器、中断系统等功能模块的工作。用户在编程时可以给其设定值,但不能移作他用。SFR分布在80H0FFH的地址空间,与片内随机存储块统一编址。除PC外,51子系列有18个特殊功能寄存器,其中3个为双字节,共占用21个字节;52子系列有21个特殊寄存器,其中5个为双字节,共占用26个字节。8.MCS-51单片机有多少根I/O线?它们和单片机的外部总线有什么关系?答:MCS-51单片机有32根I/O线,由P0口经地址锁存器提供低8位(A7A0),P2口提供高8位(A15A8)而形成。数据总线宽度为8位,由P0口直接提供。控制总线由第二功能状态下的P3口和4根独立的控制线RST、EA、ALE和PSEN组成。9.简述PSEN、EA、RST和ALE引脚的功能。答:ALE:地址锁存信号输出端。ALE在每个机器周期内输出两个脉冲。下降沿用于控制锁存P0输出的低8位地址。PSEN:片外程序存储器读选通信号输出端,低电平有效。在从外部程序存储器读取指令或常数期间,该信号有效。RST:复位信号。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机回复到初始状态。EA:片外程序存储器选用端。该引脚为低电平时,选用片外程序存储器,高电平或悬空时选用片内程序存储器。10.什么是机器周期?什么是指令周期?MCS有效。-51单片机的一个机器周期包括多少个时钟周期?答:机器周期:机器周期是单片机的基本操作周期,每个机器周期包含S1、S2、S66个状态,每个状态包含两拍P1和P2,每一拍为一个时钟周期(振荡周期)。因此,一个机器周期包含12个时钟周期。11.复位的作用是什么?51单片机复位有几种方式?答:复位使单片机回复到初始状态。在时钟电路工作以后,当外部电路使得RST端出现两个机器周期(24个时钟周期)以上的高电平,系统内部复位。复位有两种方式:上电复位和按钮复位,12.时钟周期的频率为6MHz,机器周期和ALE信号的频率为多少?答:2MHZ 第三章1在MCS-51单片机中,寻址方式有几种?其中对片内RAM可以用哪几种寻址方式?对片外RAM可以用哪几种寻址方式?答:寻址方式可分为数的寻址和指令寻址,数的寻址有:常数寻址(立即寻址)、寄存器数寻址(寄存器寻址)、存储器数寻址(直接寻址方式、寄存器间接寻址方式、变址寻址方式)和位寻址,指令的寻址有绝对寻址和相对寻址。片内RAM寻址有:寄存器寻址、直接寻址方式和寄存器间接寻址方式。片外RAM寻址有:寄存器间接寻址方式。2在对片外RAM单元寻址中,用Ri间接寻址与用DPTR间接寻址有什么区别?答:片外数据存储器寻址中,用Ri间接寻址只能访问低端的256字节单元,而用DPTR作指针间接访问可访问整个64K字节。3在位处理中,位地址的表示方式有哪几种?答:1直接位地址(00H0FFH)。例如:20H2字节地址带位号。例如:20H.3表示20H单元的3位。3特殊功能寄存器名带位号。例如:P0.1表示P0口的1位。4位符号地址。例如:TR0是定时/计数器T0的启动位。4写出完成下列操作的指令。(1)R0的内容送到R1中。MOVA,R0MOVR1,A(2)片内RAM的20H单元内容送到片内RAM的40H单元中。MOV40H,20H(3)片内RAM的30H单元内容送到片外RAM的50H单元中。MOVA,30HMOVR0,#50HMOVXR0,A(4)片内RAM的50H单元内容送到片外RAM的3000H单元中。MOVA,50HMOVDPTR,#3000HMOVXDPTR,A(5)片外RAM的2000H单元内容送到片外RAM的20H单元中。MOVDPTR,#2000HMOVXA,DPTRMOV20H,A(6)片外RAM的1000H单元内容送到片外RAM的4000H单元中。MOVDPTR,#1000HMOVXA,DPTRMOVDPTR,#4000HMOVDPTR,A(7)ROM的1000H单元内容送到片内RAM的50H单元中。MOVA,#0MOVDPTR,#1000HMOVCA,A+DPTRMOV20H,A(8)ROM的1000H单元内容送到片外RAM的1000H单元中。MOVA,#0MOVDPTR,#1000HMOVCA,A+DPTRMOVXDPTR,A5区分下列指令有什么不同?(1)MOVA,20H和MOVA,#20H答:前者源操作数是直接寻址,后者源操作数立即寻址。(2)MOVA,R1和MOVXA,R1答:前者源操作数是访问片内数据存储器,后者源操作数访问片外数据存储器低256字节。(3)MOVA,R1和MOVA,R1答:前者源操作数是寄存器寻址,后者源操作数寄存器间接寻址。(4)MOVXA,R1和MOVXA,DPTR答:前者源操作数是访问片外数据存储器低256字节,后者源操作数访问片外数据存储器整个64K字节。(5)MOVXA,DPTR和MOVCA,A+DPTR答:前者源操作数是访问片外数据存储器,后者源操作数访问程序数据存储器。6设片内RAM的(20H)=40H,(40H)=10H,(10H)=50H,(P1)=0CAH。分析下列指令执行后片内RAM的20H、40H、10H单元以及P1、P2中的内容。MOVR0,#20HMOVA,R0;A=40HMOVR1,A;R1=40HMOVA,R1;A=10HMOVR0,P1;(40H)=0CAHMOVP2,P1P2=0CAHMOV10H,A(10H)=10HMOV20H,10H(20H)=10H结果:(20H)=10H、(10H)=10H、(40H)=0CAH、P2=0CAH和P1=0CAH7已知(A)=02H,(R1)=7FH,(DPTR)=2FFCH,片内RAM(7FH)=70H,片外RAM(2FFEH)=11H,ROM(2FFEH)=64H,试分别写出以下各条指令执行后目标单元的内容。(1)MOVA,R1 结果:累加器A等于70H(2)MOVXDPTR,A 结果:片外RAM(2FFCH)单元等于02H(3)MOVCA,A+DPTR 结果:累加器A等于64H(4)XCHDA,R1 结果:累加器A等于00H,片内RAM(7FH)单元等于72H8已知:(A)=78H,(R1)=78H,(B)=04H,CY=1,片内RAM(78H)=0DDH,(80H)=6CH,试分别写出下列指令执行后目标单元的结果和相应标志位的值。(1)ADDA,R1; 累加器A等于55H,CY等于1(2)SUBBA,#77H; 累加器A等于00H,CY等于0(3)MULAB; 累加器A等于E0H,B寄存器等于01H,CY等于1,OV等于0(4)DIVAB; 累加器A等于1EH,B寄存器等于00H,CY、OV等于0(5)ANL78H,#78H; 片内RAM(78H)单元等于58H(6)ORLA,#0FH; 累加器A等于7FH(7)XRL80H,A; 片内RAM(80H)等于14H9设(A)=83H,(R0)=17H,(17H)=34H,分析当执行完下面指令段后累加器A、R0、17H单元的内容。ANLA,#17H;A=03HORL17H,A;(17H)=37HXRLA,R0;A=34HCPLA;A=CBH结果:A=CBH,(R0)=17H,(17H)=37H10写出完成下列要求的指令。(1)累加器A的低2位清零,其余位不变。ANLA,#B(2)累加器A的高2位置“1”,其余位不变。ORLA,#B(3)累加器的高4位取反,其余位不变。XRLA,#B(4)累加器第0位、2位、4位、6位取反,其余位不变。XRLA,#B11说明LJMP指令与AJMP指令的区别?答:LJMP指令后面提供的是16位目标地址,所以可以转移到64KB程序存储器的任意位置,缺点是:执行时间长,字节数多。AJMP指令后带的是11位直接地址,执行时,先将程序指针PC的值加2(该指令长度为2字节),然后把指令中的11位地址addr11送给程序指针PC的低11位,而程序指针的高5位不变,只能在当前2K范围内转移。12设当前指令CJNEA,#12H,10H的地址是0FFEH,若累加器A的值为10H,则该指令执行后的PC值为多少?若累加器A的值为12H呢?答:指令执行后的PC值为1011H,若累加器A的值为12H,则指令执行后的PC值为1001H。13用位处理指令实现P1.4=P1.0(P1.1P1.2)/P1.3的逻辑功能。程序:MOVC,P1.1ORLC,P1.2ANLC,P1.0ORLC,/P1.3MOVP1.4,C14下列程序段汇编后,从1000H单元开始的单元内容是什么?ORG1000HTAB:DB12H,34HDS3DW5567H,87H答:(1000H)=12H,(1001H)=34H,(1002H)=00H,(1003H)=00,(1004H)=00,(1005H)=67H,(1006H)=55H,(1007H)=87H,(1008H)=00H15试编一段程序,将片内RAM的20H、21H、22H单元的内容依次存入片外RAM的20H、21H、22H中。程序:MOVR0,#20HMOVR2,#03HLOOP:MOVA,R0MOVXR0,AINCR0DJNZR2,LOOPSJMP$16编程实现将片外RAM的2000H2030H单元的内容,全部搬到片内RAM的20H单元开始位置,并将源位置清零。程序:MOVR0,#20HMOVDPTR,#2000HMOVR2,#30HLOOP:MOVXA,DPTRMOVR0,AMOVA,#00MOVXDPTR,AINCDPTRINCR0DJNZR2,LOOPSJMP$17编程将片外RAM的1000H单元开始的100个字节数据相加,结果放于R7R6中。程序:MOVDPTR,#1000HMOVR2,#100MOVR7,#00MOVR6,#00LOOP:MOVXA,DPTRADDA,R6MOVR6,AMOVA,R7ADDCA,#0MOVR7,AINCDPTRDJNZR2,LOOPSJMP$18编程实现R4R3R2,结果放于R7R6R5中。程序:ORG0100HMUL1:MOVA,R2MOVB,R3MULAB;R2R3,结果的低字节直接存入积的R5MOVR5,A;结果的高字节存入R6中暂存起来MOVR6,BMUL2:MOVA,R2MOVB,R4MULAB;R2R4,结果的低字节与R6相加后,再存入R6中ADDA,R6MOVR6,AMOVA,B;结果的高字节加上进位位后存入R7中ADDCA,#00MOVR7,ASJMP$19编程实现把片内RAM的20H单元的0位、1位,21H单元的2位、3位,22H单元的4位、5位,23H单元的6位、7位,按原位置关系拼装在一起放于R2中。程序:MOVC,20H.0MOVA.0,CMOVC,20H.1MOVA.1,CMOVC,21H.2MOVA.2,CMOVC,21H.3MOVA.3,CMOVC,22H.4MOVA.4,CMOVC,22H.5MOVA.5,CMOVC,23H.6MOVA.6,CMOVC,23H.7MOVA.7,CMOVR2,A20用查表的方法实现一位十六进制数转换成ASCII。程序:(设一位十六进制数放在R2中,轮换的ASCII也放于R2中)C16STASC:MOVDPTR,#TABMOVA,R2MOVCA,A+DPTRMOVR2,ARETTAB:DB30H,31H,32H,33H,34H,35H,36H,37HDB38H,391H,41H,42H,43H,44H,45H,46H21编程统计从片外RAM2000H开始的100个单元中“0”的个数放于R2中。程序:MOVDPTR,#2000HMOVR3,#100MOVR2,#00LOOP:MOVXA,DPTRJNZNEXTINCR2NEXT:INCDPTRDJNZR3,LOOPSJMP$第四章1.C51特有的数据类型有哪些?答:C51特有的数据类型有特殊功能寄存器型和位类型。2.C51中的存储器类型有几种,它们分别表示的存储器区域是什么?答:C51中的存储器类型有6种,分别如下:data:直接寻址的片内RAM低128B,访问速度快bdata:片内RAM的可位寻址区(20H2FH),允许字节和位混合访问idata:间接寻址访问的片内RAM,允许访问全部片内RAMpdata:用Ri间接访问的片外RAM低256Bxdata:用DPTR间接访问的片外RAM,允许访问全部64KB片外RAMcode:程序存储器ROM64KB空间3.在C51中,bit位与sbit位有什么区别?答:bit位类型符用于定义一般的位变量。存储器类型只能是bdata、data、idata,只能是片内RAM的可位寻址区,严格来说只能是bdata。sbit位类型符用于定义在可位寻址字节或特殊功能寄存器中的位,定义时需指明其位地址,可以是位直接地址,可以是可位寻址变量带位号,也可以是特殊功能寄存器名带位号。4.位变量和特殊功能寄存器变量有什么作用?答:特殊功能寄存器变量是C51中特有的一种变量。通过特殊功能寄存器变量可访问MCS-51系列单片机的特殊功能寄存器。访问时需通过sfr或sfr16类型说明符进行定义,定义时需指明它们所对应的特殊功能寄存器的地址。位变量也是C51中的一种特有变量。通过位变量可访问MCS-51系列单片机的可位寻址位。使用时需用位类型符进行定义。位类型符有两个:bit和sbit。可以定义两种位变量。5.在C51中,通过绝对地址来访问的存储器有几种?答:通过绝对地址来访问存储器有三种方法:1.使用C51运行库中预定义宏。2.通过指针访问。3.使用C51扩展关键字_at_6.什么是存储模式,存储模式和存储器类型有什么关系?答:C51中有三种存储模式:SMALL模式、COMPACT模式和LARGE模式。不同的存储模式对变量默认的存储器类型不一样。(1)SMALL模式。SMALL模式称为小编译模式,在SMALL模式下,编译时变量被默认在片内RAM中,存储器类型为data。(2)COMPACT模式。COMPACT模式称为紧凑编译模式,在COMPACT模式下,编译时变量被默认在片外RAM的低256B空间,存储器类型为pdata。(3)LARGE模式。LARGE模式称为大编译模式,在LARGE模式下,编译时变量被默认在片外RAM的64B空间,存储器类型为xdata。在程序中变量存储模式的指定通过#pragma预处理命令来实现。如果没有指定,则系统都隐含为SMALL模式。7.在C51中,修饰符usingn有什么作用?答:usingn修饰符,用于指定本函数内部使用的工作寄存器组,其中n的取值为03,表示寄存器组号。8.在C51中,中断函数与一般函数有什么不同?答:中断函数在定义时后面带interruptm修饰符,m的取值为031,对应的中断情况如下:0外部中断0,1定时/计数器T0,2外部中断1,3定时/计数器T1,4串行口中断,5定时/计数器T2,其他值预留。编写MCS-51中断函数需要注意如下几点。(1)中断函数不能进行参数传递,如果中断函数中包含任何参数声明都将导致编译出错。(2)中断函数没有返回值。(3)在任何情况下都不能直接调用中断函数(4)如果在中断函数中调用了其他函数,则被调用函数所使用的寄存器必须与中断函数相同,否则会产生不正确的结果。(5)C51编译器对中断函数编译时会自动在程序开始和结束处加上相应的内容。(6)C51编译器从绝对地址8m+3处产生一个中断向量,其中m为中断号,也即interrupt后面的数字。该向量包含一个到中断函数入口地址的绝对跳转。(7)中断函数最好写在文件的尾部,并且禁止使用extern存储类型说明。防止其他程序调用。9.按给定的存储类型和数据类型,写出下列变量的说明形式。(1)在data区定义字符变量val1。chardataval1;(2)在idata区定义整型变量val2。intidataval2;(3)在xdata区定义无符号字符型数组val34。unsignedcharxdataval34;(4)在xdata区定义一个指向char类型的指针px。charxdata*px;(5)定义可寻址位变量flag。bitflag;(6)定义特殊功能寄存器变量P3。sfrP3=0xa0;(7)定义特殊功能寄存器变量SCON。sfrSCON=0x98;(8)定义16位的特殊功能寄存器T0。sfr16T0=0x8a;第七章1.何为“准双向I/O接口”?在MCS-51单片机的四个并口中,哪些是“准双向I/O接口”?答:准双向I/O接口是能实现输入输出功能,但在使用时只能从输入和输出中选择一个。MCS-51单片机的四个并口中P1、P2、P3是准双向I/O接口。2.80C51单片机内部有几个定时/计数器?它们由哪些功能寄存器组成?怎样实现定时功能和计数功能?答:80C51单片机内部有两个16位的可编程定时/计数器,由TH0,TL0,TH1,TL1,TMOD和TCON功能寄存器组成。通过TMOD中的C/T位选择对机器周期计数实现计数功能,选择对外部脉冲计数实现计数功能。3.定时/计数器T0有几种工作方式?各自的特点是什么?答:有四种工作方式,特点见下表:答:有四种工作方式,特点见下表:M1 M0 工作方式方式说明00013位定时/计数器01116位定时/计数器1028位自动重置定时/计数器113两个8位定时/计数器(只有T0有)4.定时/计数器的四种工作方式各自的计数范围是多少?如果要计100个单位,不同的方式初值应为多少?答:有四种方式。方式0计数范围:18192;方式1计数范围:165536;方式2计数范围:1256;方式3计数范围:1256。如果计100个单位,方式0初值为:8192-100=8092;方式1初值为:65536-100=65436;方式2初值为:256-100=156;方式2初值为:256-100=156。5.设振荡频率为6MHz,如果用定时/计数器T0产生周期为10ms的方波,可以选择哪几种方式,其初值分别设为多少?答:只能选择方式1,初值为65536-10000=55536。6.何为同步通信?何为异步通信?各自的特点是什么?答:异步通信方式的特点是数据在线路上传送时是以一个字符(字节)为单位,未传送时线路处于空闲状态,空闲线路约定为高电平“1”。特点是对发送时钟和接收时钟的要求相对不高,线路简单,但传送速度较慢。同步通信方式的特点是数据在线路上传送时以字符块为单位,一次传送多个字符,传送时须在前面加上一个或两个同步字符,后面加上校验字符。特点是对发送时钟和接收时钟要求较高,往往用同一个时钟源控制,控制线路复杂,传送速度快。7.单工、半双工和全双工有什么区别?答:单工方式只有一根数据线,信息只能单向传送;半双工方式也只有一根数据线,但信息可以分时双向传送;全双工方式有两根数据线,在同一个时刻能够实现数据双向传送。8.设某异步通信接口,每帧信息格式为10位,当接口每秒传送1000个字符时,其波特率为多少?答:10000波特9.串行口数据寄存器SBUF有什么特点?答:发送数据寄存器和接收数据寄存器合起用一个特殊功能寄存器SBUF(串行口数据寄存器),执行MOVSBUF,A发送时为发送数据寄存器,执行MOVA,SBUF接收时为接收数据寄存器。10.MCS-51单片机串行口有几种工作方式?各自特点是什么?答:有四种工作方式,分别是方式0、方式1、方式2和方式3。其中:方式0,称为同步移位寄存器方式,一般用于外接移位寄存器芯片扩展I/O接口。方式1,称为8位的异步通信方式,通常用于双机通信。方式2和方式3,称为9位的异步通信方式,通常用于多机通信。11.说明SM2在方式2和方式3对数据接收有何影响。答:通过SM2对方式2和方式3数据接收进行控制,SM2=1,那么只有接收的第9位为“1”才接收有效。如SM2=0,接收的第9位无论为1还是0都接收有效。12.怎样来实现利用串行口扩展并行输入/输出口?答:利用串行口在方式0时,当外接一个串入并出的移位寄存器,就可以扩展并行输出口;当外接一个并入串出的移位寄存器时,就可以扩展并行输入口。13.什么是中断、中断允许和中断屏蔽?答:在计算机中,由于计算机内外部的原因或软硬件的原因,使CPU从当前正在执行的程序中暂停下来,而自动转去执行预先安排好的为处理该原因所对应的服务程序。执行完服务程序后,再返回被暂停的位置继续执行原来的程序,这个过程称为中断,实现中断的硬件系统和软件系统称为中断系统。中断允许是允许中断请求送CPU产生中断,中断屏蔽是禁止中断请求信号送CPU产生中断。14.8051有几个中断源?中断请求如何提出?答:MCS-51单片机提供5个硬件中断源:两个外部中断源INT0(P3.2)和INT1(P3.3),两个定时/计数器T0和T1中断;1个串行口中断。外部中断源INT0和INT1的中断请求信号从外部引脚P3.2和P3.3输入;两个定时/计数器T0和T1的溢出中断TF0和TF1定时/计数器T0(或T1)溢出时提出;串行口中断由发送中断标志T1和接收中断标志R1产生。15.8051的中断源中,哪些中断请求信号在中断响应时可以自动清除?哪些不能自动清除?应如何处理?答:工作在边沿触发方式下的两个外部中断源和两个定时/计数器中断中断请求信号在中断响应时可以自动清除,工作在电平触发方式下的两个外部中断源和串行口中断不能自动清除。工作在电平触发方式下的两个外部中断源的中断请求信号通过外加硬件和加软件的方式清除,串行口中断标志T1和标志R1完全由软件清除。16.8051的中断优先级有几级?在形成中断嵌套时各级有何规定?答:8051的中断优先级有两级;形成中断嵌套时规定(1)正在进行的中断过程不能被新的同级或低优先级的中断请求所中断,直到该中断服务程序结束,返回了主程序且执行了主程序中的一条指令后,CPU才响应新的中断请求。(2)正在进行的低优先级中断服务程序能被高优先级中断请求所中断,实现两级中断嵌套。(3)CPU同时接收到几个中断请求时,首先响应优先级最高的中断请求。17.设8051的P1中各位接发光二极管,分别用汇编语言和C语言编程实现逐个轮流点亮二极管,并循环显示。参考程序:ORG0000HLJMPMAINORG0100H;主程序MAIN:MOVA,#01HLOOP:MOVP1,ACALLDELAYRLASJMPLOOPSJMP$DELAY:MOVR7,#0FFHDJNZR7,$RETENDC语言程序:#include/包含特殊功能寄存器库voiddelay(unsignedintx);voidmain()unsignedchari,j;while(1)i=01;for(j=0;j8;j+)P1=i;delay(100);i=i*2;voiddelay(unsignedintx)unsignedcharj;while(x-)for(j=0;j125;j+);18.8051系统中,已知振荡频率为12MHz,用定时/计数器T0,实现从P1.0产生周期为2ms的方波。要求分别用汇编语言和C语言进行编程。解:分析:从P1.0输出周期为2ms的方波,只须P1.0每1ms取反一次则可。当系统时钟为12MHZ,定时/计数器T0工作于方式1时,最大的定时时间为65.536ms,满足1ms的定时要求,方式控制字应设定为B(01H)。定时1ms,计数值N为1000,初值X=65536-1000=64536,则TH0=FCH,TL0=18H。采用中断处理方式:程序如下:ORG0000HLJMPMAINORG000BH;中断处理程序MOVTH0,#0FCHMOVTL0,#18HCPLP1.0RETIORG0100H;主程序MAIN:MOVTMOD,#01HMOVTH0,#0FCHMOVTL0,#18HSETBEASETBET0SETBTR0SJMP$ENDC语言程序:#include/包含特殊功能寄存器库sbitP1_0=P10;voidmain()TMOD=0x01;TH0=0xFC;TL0=0x18;EA=1;ET0=1;TR0=1;while(1);voidtime0_int(void)interrupt1/中断服务程序TH0=0xFC;TL0=0x18;P1_0=!P1_0;19.8051系统中,已知振荡频率为6MHz,用定时/计数器T1,实现从P1.1产生周期为2s的方波。要求分别用汇编语言和C语言进行编程。解:从P1.1产生2s的方波,应产生500ms的周期性的定时,定时到对P1.1取反就可实现。由于定时时间较长,一个定时/计数器T1不能直接实现,采用定时/计数器T1产生周期性为10ms的定时,然后用一个寄存器R2对10ms计数100次来实现。系统时钟为12MHZ,定时/计数器T1定时10ms,计数值N为10000,只能选方式1,方式控制字为B(10H),初值X:X=65536-10000=55536=10000B则TH1=B=D8H,TL1=B=F0H。定时/计数器T1采用中断处理方式。汇编程序:ORG0000HLJMPMAINORG001BHLJMPINTT1ORG0100HMAIN:MOVTMOD,#10HMOVTH1,#0D8HMOVTL1,#0F0HMOVR2,#00HSETBEASETBET1SETBTR1SJMP$INTT1:MOVTH1,#0D8HMOVTL1,#0F0HINCR2CJNER2,#64H,NEXTCPLP1.1MOVR2,#00HNEXT:RETIENDC语言程序:#include/包含特殊功能寄存器库sbitP1_1=P11;chari;voidmain()TMOD=0x10;TH1=0xD8;TL1=0xf0;EA=1;ET1=1;i=0;TR1=1;while(1);voidtime0_int(void)interrupt3/中断服务程序TH1=0xD8;TL1=0xf0;i+;if(i=100)P1_1=!P1_1;i=0;20.8051系统中,已知振荡频率为12MHz,用定时/计数器T1,实现从P1.1产生高电平宽度为10ms,低电平宽度为20ms的矩形波。要求分别用汇编语言和C语言进行编程。解:本题处理方式有多种,这里采用对定时/计数器T1形成10ms周期定时,用R2对10ms计数,当计到1,则对P1.1置1,当计到2和3,则对P1.1置0来实现。用定时/计数器T1形成10ms周期定时见上题。程序如下:ORG0000HLJMPMAINORG001BHLJMPINTT1ORG0100HMAIN:MOVTMOD,#10HMOVTH1,#0D8HMOVTL1,#0F0HMOVR2,#00HSETBEASETBET1SETBTR1SJMP$INTT1:MOVTH1,#0D8HMOVTL1,#0F0HINCR2CJNER2,#01H,NEXTSETBP1.1SJMPEXITNEXT:CJNER2,#02H,NEXT1CLRP1.1SJMPEXITNEXT1:CJNER2,#03H,NEXTSETBP1.1MOVR2,#00EXIT:RETIENDC语言程序:#include/包含特殊功能寄存器库sbitP1_1=P11;chari;voidmain()TMOD=0x10;TH1=0xD8;TL1=0xf0;EA=1;ET1=1;i=0;TR1=1;while(1)if(i=0)P1_1=1;if(i=1)P1_1=0;if(i=2)P1_1=0;voidtime0_int(void)interrupt3/中断服务程序TH1=0xD8;TL1=0xf0;i+;if(i=3)i=0;21.用8051单片机的串行口扩展并行I/O接口,控制16个发光二极管依次发光,画出电路图,用汇编语言和C语言分别编写相应的程序。解:采用在串口连接两个CD4094来实现,电路图如下:程序如下;ORG0000HLJMPMAINORG0100HMAIN:MOVSCON,#00HMOVR4,#10HMOVR3,#00HMOVR2,#01HCLRP1.0START:MOVA,R3MOVSBUF,ALOOP:JNBTI,LOOPMOVA,R2MOVSBUF,ALOOP1:JNBTI,LOOP1SETBP1.0ACALLDELAYCLRTICLRCMOVA,R2RLCAMOVR2,AMOVA,R3RLCAMOVR3,ACLRP1.0DJNZR4,START1SJMPMAINDELAY:MOVR7,#05HLOOP2:MOVR6,#0FFHLOOP1:DJNZR6,LOOP1DJNZR7,LOOP2RETENDC语言程序:#includevoiddelay(unsignedintx);unionunsignedintword;structunsignedcharhigh;unsignedcharlow;bytes;number;voidmain()inti;SCON=0x00;while(1)number.word=0x01;for(i=0;i16;i+)SBUF=number.bytes.low;while(!TI);TI=0;SBUF=number.bytes.high;while(!TI);TI=0;delay(10);number.word=number.word*2;voiddelay(unsignedintx)unsignedcharj;while(x-)for(j=0;j125;j+);第八章1.什么是MCS-51单片机的最小系统?答:所谓最小系统,是指一个真正可用的单片机的最小配置系统。对于单片机内部资源已能够满足系统需要的,可直接采用最小系统。3.简述存储器扩展的一般方法。答:存储器芯片与单片机扩展连接具有共同的规律。即不论何种存储器芯片,其引脚都呈三总线结构,与单片机连接都是三总线对接。另外,电源线接电源线,地线接地线。4.什么是部分译码法?什么是全译码法?它们各有什么特点?用于形成什么信号?答:部分译码就是存储器芯片的地址线与单片机系统的地址线顺次相接后,剩余的高位地址线仅用一部分参加译码。部分译码使存储器芯片的地址空间有重叠,造成系统存储器空间的浪费。全译码就是存储器芯片的地址线与单片机系统的地址线顺次相接后,剩余的高位地址线全部参加译码。这种译码方法中存储器芯片的地址空间是唯一确定的,但译码电路要相对复杂。译码形成存储器芯片的片选信号线CE.5.采用部分译码为什么会出现地址重叠情况,它对存储器容量有何影响?答:部分译码就是存储器芯片的地址线与单片机系统的地址线顺次相接后,剩余的高位地址线仅用一部分参加译码。参加译码的地址线对于选中某一存储器芯片有一个确定的状态,而与不参加译码的地址线无关。也可以说,只要参加译码的地址线处于对某一存储器芯片的选中状态,不参加译码的地址线的任意状态都可以选中该芯片。正因为如此,部分译码使存储器芯片的地址空间有重叠,造成系统存储器空间减少。6.存储器芯片的地址引脚与容量有什么关系?答:容量(Q)与地址线数目(N)满足关系式:Q=2N。7.MCS-51单片机的外部设备是通过什么方式访问的?答:MCS-51单片机扩展的外部设备与片外数据存储器统一编址,即外部设备占用片外数据存储器的地址空间。按片外数据存储器的访问方式访问。8.何为键抖动?键抖动对键位识别有什么影响?怎样消除键抖动?答:按键时,无论按下键位还是放开键位都会产生抖动,如果对抖动不作处理,必然会出现按一次键而输入多次,为确保按一次键只确认一次,必须消除按键抖动。消除按键抖动通常有硬件消抖和软件消抖两种方法。9.矩阵键盘有几种编码方式?怎样编码?答:通常有以下两种方法进行编码;(1)用连接键盘的I/O线的二进制组合进行编码。(2)顺序排列编码。10.简述对矩阵键盘的扫描过程。答:矩阵式键盘的工作过程可分为两步:第一步是CPU首先检测键盘上是否有键按下;第二步是识别哪一个键按下。(1)检

温馨提示

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

评论

0/150

提交评论