《单片机原理与应用复习习题.ppt》由会员分享,可在线阅读,更多相关《单片机原理与应用复习习题.ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 阶段复习题一阶段复习题一 单片机原理及应用技术单片机原理及应用技术1.单片机从硬件角度看由(单片机从硬件角度看由()、()、()、()、()多种输入)多种输入/输出口组成。输出口组成。CPU、ROM、RAM2、P0口在访问外存储器时,分时先提供低口在访问外存储器时,分时先提供低8位(位()和提供)和提供8位双向位双向()总线)总线.地址、地址、数据数据3、MULAB指令把累加器指令把累加器A和寄存器和寄存器B中的中的8位无符号数相位无符号数相乘,乘,16位乘积的低位乘积的低8位放在位放在()中,高)中,高8位放在位放在()中。中。A、B4、MOV3FH,#40H,指令执行后(指令执行后(3F
2、H)40H5、MCS-51有有5个中断源,分别为(个中断源,分别为()、()、()、)、定时定时器器/计数器计数器0,1溢出中断和(溢出中断和()中断。)中断。INT0、INT1、串行口串行口6、存储器包括(、存储器包括()和()和()。)。ROM、RAM7、8051单片机芯片的主电源引脚单片机芯片的主电源引脚VCC接入电压为(接入电压为()。)。+5V8、当、当8031外扩外扩EPROM时,时,/EA引脚应(引脚应()。)。接地接地9、P2口通常用作高口通常用作高8位(位(),也可以作通用的),也可以作通用的I/O口使用。口使用。地址线地址线10、十进制数、十进制数126对应的十六进制数为(
3、对应的十六进制数为()。)。7EH11、8051芯片是(芯片是()位的单片机,含有()位的单片机,含有()K字节片内程序存字节片内程序存储器储器ROM,(,()个中断源。)个中断源。8、4、512、在访问外部数据存储器时,应用()、在访问外部数据存储器时,应用()(请选择请选择MOV,MOVC,MOVX之一之一)指令。指令。MOVX13、MCS-51单片机复位操作的主要功能是使单片机复位操作的主要功能是使PC指向程序存储指向程序存储器的(器的()H地址单元地址单元000014、MCS-51单片机扩展程序存储器所用的选通信号为(单片机扩展程序存储器所用的选通信号为()/PSEN15、总线分为()
4、总线、()总线和控制总线。、总线分为()总线、()总线和控制总线。数据、地址数据、地址16、MCS-51可扩展程序存储器空间最大为()可扩展程序存储器空间最大为()K。64一、一、选择题18051单片机的内部硬件结构包括了(单片机的内部硬件结构包括了()、()、()、()、()、)、和(和()以及并行)以及并行I/O口、串行口、中断控制系统、时钟电路、位口、串行口、中断控制系统、时钟电路、位处理器等部件。处理器等部件。A.CPUB.D/A转换器转换器C.程序存储器程序存储器D.数据存储器数据存储器E.定时定时/计数器计数器F.USB接口接口G.A/D转换器转换器A;C;D;E2MCS-51单片
5、机的堆栈区应建立在(单片机的堆栈区应建立在()。)。A.片内数据存储区的低片内数据存储区的低128字节单元字节单元B.片内数据存储区片内数据存储区C.片内数据存储区的高片内数据存储区的高128字节单元字节单元D.程序存储区程序存储区A3当需要从当需要从MCS-51单片机程序存储器取数据时,采用的指令为单片机程序存储器取数据时,采用的指令为(),当需要从),当需要从MCS-51单片机片外数据存储器取数据时,采用单片机片外数据存储器取数据时,采用的指令为(的指令为()或()或()。)。A.MOVA,R1B.MOVCA,A+DPTRC.MOVXA,R0D.MOVXA,DPTRB;C;D48051单片
6、机程序存储器的容量最大可扩展为(单片机程序存储器的容量最大可扩展为()。)。A.60KB.64KC.64+4KD.4KB5、已知某单片机系统的晶振为、已知某单片机系统的晶振为6MHz,则该单片机的振荡周期为,则该单片机的振荡周期为(),机器周期为(),机器周期为(),单字节双周期指令的执行时间(),单字节双周期指令的执行时间()。)。A.6sB.1/6sC.2sD.12sE.4sF.8sB;C;E6、访问片外数据存储器时,不起作用的信号是(、访问片外数据存储器时,不起作用的信号是()。)。A、RDB、WRC、PSEND、ALEC7、MCS-51单片机外扩存储器芯片(单片机外扩存储器芯片(64K
7、)时,)时,4个个I/O口中用作口中用作数据总线的是(数据总线的是(),用作地址总线的是(),用作地址总线的是()。)。A.P0口和口和P2口口B.P0口口C.P2口和口和P3口口D.P2口口B;A;8、如果、如果MCS-51中中PSW寄存器的寄存器的RS1、RS0两位分别为两位分别为0、1,则工作寄存器,则工作寄存器R0是指内存中(是指内存中()单元。)单元。A.00HB.07HC.10HD.08HD9、P1口在用作输入口时,需要先执行(口在用作输入口时,需要先执行()指令。)指令。A.MOVP1,00B.MOVP1,FFHC.MOVP1,#0FFHD.ANLP1,0FFHC10、单片机、单
8、片机8051的的XTAL1和和XTAL2引脚是(引脚是()引脚)引脚A、外接定时器、外接定时器B、外接串行口、外接串行口C、外接中断、外接中断D、外接晶振、外接晶振D11、不属于系统总线的是(、不属于系统总线的是()A、数据总线、数据总线B、地址总线、地址总线C、内部总线、内部总线D、控制总线、控制总线C12、INTEL8051CPU是(是()位的单片机)位的单片机A、16B、4C、8D、准、准16C13、对于、对于INTEL8031来说,来说,EA脚总是(脚总是()A、接地、接地B、接电源、接电源C、悬空、悬空D、不用、不用A14、单片机应用程序一般存放在(、单片机应用程序一般存放在()A、
9、RAMB、ROMC、寄存器、寄存器D、CPUB15、CPU主要的组成部部分为(主要的组成部部分为()A、运算器、控制器、运算器、控制器B、加法器、寄存器、加法器、寄存器C、运算器、寄存器、运算器、寄存器D、运算器、指令译码器、运算器、指令译码器A16、8031复位后,复位后,PC的值为(的值为()A、0000HB、0003HC、000BHD、0800HA三、间答题1、MCS-51系列单片机通过什么信号来区别访问片内外程序存储器(并以8031芯片为例说明)?当引脚EA=0时,不管PC值大小,CPU总是访问外部程序存储器,对于8031芯片,其内部没有程序存储器,必须外接EPROM。所以EA必须接地
10、,EA=0。外部程序存储器从0000H开始编地址,寻址范围为64K。当引脚EA=1时,先执行内部4K程序,满4K后接着执行外部程序,通过引脚EA来访问片内程序存储器。2、执行下列程序段后,(P1)=。MOVP1,#5DHCPLP1.1CPLP1.2CLRP1.6SETBP1.7(P1)=9BH程序如下:MOVDPTR,#5500HMOVXA,DPTRXCHA,25HMOVXDPTR,A如程序执行前,内部25H单元的内容为01H,外部RAM5500H单元的内容为0B9H,那么程序执行后,内部25H单元与外部RAM5500H单元的内容分别为多少?此程序实现的功能是什么?程序执行后,内部25H单元的
11、内容为0B9H,外RAM5500单元的内容为01H。此程序实现了内部25H单元与外部RAM5500单元的数据交换7、MCS-51单片机可以外接单片机可以外接64KB的片外程序存储器和的片外程序存储器和64KB的片的片外数据存储器。这两种片外存储器共处同一地址空间而不会发生外数据存储器。这两种片外存储器共处同一地址空间而不会发生总线冲突,主要依靠单片机外引脚上的哪些信号来区分?总线冲突,主要依靠单片机外引脚上的哪些信号来区分?答:片外程序存答:片外程序存储储器靠器靠单单片机引脚上的片机引脚上的PSEN信号访问;片外数据信号访问;片外数据存储器则靠存储器则靠RD或或WR信号访问。所以,即使地址相同
12、,但只要信号访问。所以,即使地址相同,但只要“读读”信号不相同,仍然可以惟一选中对应的存储器空间,不会混乱。信号不相同,仍然可以惟一选中对应的存储器空间,不会混乱。8、以下程序段执行后,、以下程序段执行后,A=,(30H)=。MOV30H,#0AHMOVA,#0D6HMOVR0,#30HMOVR2,#5EHANLA,R2ORLA,R0CPLA答:答:(A)=21H(30H)=0AH9、两个、两个8位无符号数分别存放在内部数据存储器位无符号数分别存放在内部数据存储器60H和和61H单元单元中,求两数之和,并将结果存在中,求两数之和,并将结果存在62H单元中。单元中。MOVA,60HADDA,61
13、HMOV62H,A10、假定(、假定(SP)=40H,(3FH)=30H,(,(40H)=50H。执行下列指令:执行下列指令:POPDPHPOPDPL后,后,DPTR的内容为的内容为,SP的内容是的内容是。DPTR的内容为的内容为5030H,SP的内容是的内容是3EH。11、当单片机运行出错或程序进入死循环,如何摆脱困境?、当单片机运行出错或程序进入死循环,如何摆脱困境?复位单片机复位单片机或系统重新上电或系统重新上电13、执行下列程序段中第一条指令后,执行下列程序段中第一条指令后,ANL P1,#73HORL P1,#38H(1)(P1.7)=,(P1.3)=,(P1.2)=;(1)(P1.
14、7)=0,(P1.3)=0,(P1.2)=0,执行第二条指令后,执行第二条指令后,(2)(P1.5)=,(P1.4)=。(2)(P1.5)=1,(P1.4)=14、将片外将片外RAM1400H单元内容和片内单元内容和片内RAM50H单元内容互换单元内容互换MOVDPTR,#1400HMOVXA,DPTRXCHA,50HMOVXDPTR,AEND二、阅读并分析程序阅读并分析程序1、以下程序段执行后,A=,(30H)=。MOV30H,#0AHMOVA,#0D6HMOVR0,#30HMOVR2,#5EHANLA,R2ORLA,R0CPLAA11010110R201011110A01010110R00
15、0001010A01011110A10100001A=A1H(30H)=0AH2假定(SP)=40H,(3FH)=30H(40H)=60H。执行下列指令:POPDPHPOPDPL后,DPTR的内容为,SP的内容是。执行第一条指令执行第一条指令执行第一条指令执行第一条指令:(40H40H)=60H=60H(DPHDPH),(SPSP)-1=3FH-1=3FH(SPSP););););把把把把60H60H弹入堆栈弹入堆栈弹入堆栈弹入堆栈DPHDPH中中中中执行第二条指令执行第二条指令执行第二条指令执行第二条指令:(3FH3FH)=30H=30H(DPLDPL),(SPSP)-1=3EH1=3EH(
16、SPSP););););把把把把30H30H弹入弹入弹入弹入DPLDPL中中中中 执行结果为执行结果为执行结果为执行结果为:(:(:(:(DPHDPH)=60H=60H,(,(,(,(DPLDPL)=30H=30H,堆栈指针堆栈指针堆栈指针堆栈指针SPSP的内容为的内容为的内容为的内容为3EH3EH 单片机原理及应用技术单片机原理及应用技术阶段复习题二阶段复习题二三、编程:三、编程:1、设计程序将片外数据存储器、设计程序将片外数据存储器3000H单元开始的单元开始的60个工个工作单元清零。作单元清零。MOVDPTR,#3000HCLEAR:CLRAMOVR2,#3CHLOOP:MOVXDPTR
17、,AINCDPTRDJNZR2,LOOPEND2、将片外、将片外RAM2400H单元内容和片内单元内容和片内RAM40H单元内容互换单元内容互换MOVDPTR,#2400HMOVXA,DPTRXCHA,40HMOVXDPTR,A3、试判断累加器中的数的正负,若为正数,存入、试判断累加器中的数的正负,若为正数,存入30H单元;单元;若为负数存入若为负数存入31H单元。单元。START:JB ACC.7,LOOPMOV30H,ASJMPLOOP1LOOP:MOV31H,ALOOP1:END4、将片外将片外RAM1400H单元内容和片内单元内容和片内RAM50H单元内容互换单元内容互换MOVDPTR
18、,#1400HMOVXA,DPTRXCHA,50HMOVXDPTR,AEND5、设内部、设内部RAM的的20H和和21H单元中有两个带符号数,将其中的大单元中有两个带符号数,将其中的大数存放在数存放在22H单元中,编出程序。单元中,编出程序。解:解:先用异或指令判两数是否同号,在同号中判断大小,异号中正数为大先用异或指令判两数是否同号,在同号中判断大小,异号中正数为大.MOVA,20HXRLA,21HANL#80HJZCMP(两数同号转移到(两数同号转移到CMP)JB20H.7,BG(20H的内容为负转到的内容为负转到BG)AG:MOV22H,20HSJMP$BG:MOV22H,21HSJMP
19、$CMP:MOVA,20HCJNEA,21H,GR GR:JNCAGMOV22H,21HSJMP$6、从内部存储器、从内部存储器20H单元开始,有单元开始,有30个数据,试编一个程序,把个数据,试编一个程序,把其中的正数,负数分别送其中的正数,负数分别送51H和和71H开始的存储单元,并分别将正开始的存储单元,并分别将正数,负数的个数送数,负数的个数送50H、70H单元。单元。MOVR0,#20HMOVR2,#30HMOV50H,#00HMOV70H,#00HMOVR1,#51HLOOP0:MOVA,R0正数处理正数处理INCR0JBACC.7,LOOP1MOVR1,AINCR1INC50HL
20、OOP1:DJNZR2,LOOP0LOP:MOVR0,#20H负数处理负数处理MOVR2,#30HMOVR1,71HLOOP2:MOVA,R0JNBACC.7,LOOP3MOVR1,AINCR1INC70HLOOP3:DJNZR2,LOOP2END七、编程已知内部编程已知内部RAM60H单元和外部单元和外部RAM5500H单元分别存储两个单元分别存储两个55字字节的无符号数,节的无符号数,60H和和5500H分别是两个多字节的低位,设计一段程序,把分别是两个多字节的低位,设计一段程序,把两个多字节无符号数相加,结果存放到外部两个多字节无符号数相加,结果存放到外部RAM5500H开始的单元内(主
21、开始的单元内(主程序存放到程序存放到6000H中中)ORG6000HMOVR0,#60HMOVDPTR,#5500HMOVR1,#37HCLRALOOP:MOVXA,DPTRADDCA,R0MOVXDPTR,AINCR0INCDPTRDJNZR1,LOOPEND八、编程完成将内部八、编程完成将内部RAM中中30H5FH的数据送到外扩数据存的数据送到外扩数据存储器储器4000H开始单元的程序操作。开始单元的程序操作。MOVR0,#30HMOVDPTR,#4000HMOVR2,#30HLOOP:MOVA,R0MOVXDPTR,AINCR0INCDPTRDJNZR2,LOOPEND九、使用简单指令序
22、列完成以下操作1.两个8位无符号数分别存放在内部数据存储器40H和41H单元中,求两数之和,并将结果存在42H单元中。MOVA,40HADDA,41HMOV42H,A片内片内RAMRAMyy(x)(x)片外片外RAMRAMx(y)x(y)(y)x60H2300H累加器A1232、将片外RAM2300H单元内容和片内RAM60H单元内容互换MOVR1,#60HMOVDPTR,#2300HMOVXA,DPTR;xAXCHA,R1;交换X(60h),yAMOVXDPTR,A;y(2300H)片外RAM3、试判断累加器中的数的正负,若为正数,存入、试判断累加器中的数的正负,若为正数,存入30H单元;单
23、元;若为负数存入若为负数存入31H单元。单元。START:JBACC.7,LOOPMOV30H,ASJMPLOOP1LOOP:MOV31H,ALOOP1:END十、设计程序将片外数据存储器十、设计程序将片外数据存储器2000H单元开始的单元开始的50个工作个工作单元清零单元清零。MOVDPTR,#2000HCLEAR:CLRAMOVR2,#32HLOOP:MOVXDPTR,AINCDPTR DJNZR2,LOOP十、一.阅读下列程序,说明其功能。MOVR0,#dataMOVA,R0RLAMOVR1,ARLARLAADDA,R1MOVR0,ARET(data)10操作十二、已知在累加器十二、已知
24、在累加器A中存放一个中存放一个BCD数数(9),请编程实现一,请编程实现一个查平方表的子程序。个查平方表的子程序。SQR:INCAMOVCA,A+PCRETTAB:DB0,1,4,9,16DB25,36,49,64,81十三、请使用位操作指令实现下列逻辑操作:BIT=(P1.0)(11HCY)2.ORLC,11HMOV12H,CMOVC,P1.0ORLC,/10HANLC,12HMOVBIT,CRET十四、已知变量X存于VAR单元,函数值Y存于FUNC单元,按下式编程求Y值。Y=MOVA,VARCJNEA,#0,COMPSJMPRES;x=0,Y=0COMP:JNCPOSI;x0,Y=1MOV
25、A,#0FFH;x0,Y=-1SJMPRESPOSI:MOVA,#01HRES:MOVFUNC,ARET十五、改错(5分)请判断下列各条指令的书写格式是否有错,如有错说明原因:1.MULR0R12.MOVA,R73.MOVA,#3000H4.MOVCA+DPTR,A5.LJMP#1000H已知在已知在R2中存放一个压缩的中存放一个压缩的BCD码,请将它拆成二个码,请将它拆成二个BCD字字节,结果存于节,结果存于SUM开始的单元中开始的单元中(低位在前低位在前)。MOVR0,#SUMMOVA,R2ANLA,#OFHMOVR0,A;存低字节BCDMOVA,R2ANLA,#0F0HSWAPAINCR
26、0MOVR0,A;存高字节BCDRET阶段复习题三阶段复习题三 单片机原理及应用技术单片机原理及应用技术1.MCS-51单片机复位操作的主要功能是把PC初始化为()。A.0100HB2080HC.0000HD.8000HC2.若单片机的振荡频率为6MHz,设定时器工作在方式1需要定时1ms,则定时器初值应为()。A.500B.1000C.216-500D.216-1000C3.定时器1工作在计数方式时,其外加的计数脉冲信号应连接到()引脚。A.P3.2B.P3.3C.P3.4D.P3.5D4.当外部中断请求的信号方式为脉冲方式时,要求中断请求信号的高电平状态和低电平状态都应至少维持()。A.1
27、个机器周期B.2个机器周期C.4个机器周期D.10个晶振周期A5.MCS-51单片机在同一优先级的中断源同时申请中断时,CPU首先响应()。A.外部中断0B.外部中断1C.定时器0中断D.定时器1中断A6.定时器若工作在循环定时或循环计数场合,应选用()。A.工作方式0B.工作方式1C.工作方式2D.工作方式3C7.MCS-51单片机的外部中断1的中断请求标志是()。A.ET1B.TF1C.IT1D.IE1D8.下列标号中,正确的标号是()。A.1BT:B.BEGIN:C.ADD:D.STAB31D:主频为主频为12MHz的单片机它的机器周期为的单片机它的机器周期为。1sMCS-51单片机在同
28、一优先级的中断源同时申请中断时,单片机在同一优先级的中断源同时申请中断时,CPU首先响应首先响应()。INT0定时器定时器/计数器的工作方式计数器的工作方式3是指得将是指得将拆成两个独立的拆成两个独立的8位计数器。而另一个定时器位计数器。而另一个定时器/计数器此时通常只可作为计数器此时通常只可作为使用。使用。T0,波特率发生器,波特率发生器如果某如果某MCS-51单片机系统的定时单片机系统的定时/计数器计数器0的中断服务程序放的中断服务程序放在程序存储区的在程序存储区的3000H地址开始的一段空间内,此时跳转到定地址开始的一段空间内,此时跳转到定时时/计数器计数器0的中断服务程序的指令的中断服
29、务程序的指令LJMP3000H应放在()开应放在()开始的中断地址区。始的中断地址区。0013H4.简述简述MCS-51单片机的中断入口地址。单片机的中断入口地址。中断入口地址为中断响应后PC的内容即中断服务的入口地址。它们是:外部中断0 0003H定时器T0中断000BH外部中断10013H定时器T1中断001BH串行口中断0023H参数计算已知一MCS51单片机系统使用10MHZ的外部晶体振荡器,计算:1)该单片机系统的状态周期与机器周期各为多少?2)当单片机的定时器0(T0)工作在方式2时,T0的最大定时时间为多少?3)当单片机的定时器0(T0)工作在方式二时,要求每记满250s便产生一
30、次定时器溢出,T0中需要预置的初始值为多少?1、系统晶振频率为、系统晶振频率为12MHZ,用定时器,用定时器/计数器计数器0产生产生65.4ms中中断断,编写初始化程序。,编写初始化程序。用定时器用定时器0方式方式1T=(216-X)Tc,Tc=1s65.4ms=(216-X)1s65400s=(216-X)1sX=65536-65400=136=0088HLED1:MOVTMOD,#01HMOVTL0,#88HMOVTH0,#00HSETBEASETBET0SETBTR0END3、编程实现下图三个发光二极管亮灭规律如下:、编程实现下图三个发光二极管亮灭规律如下:ORG1000HLOOP:MO
31、V P2,#1111000HACALLDELAYMOVP2,#11111111HACALLDELAYAJMPLOOPDELAY:MOVR6,#0FAHDL1:MOVR7,#0C7HDL2:DJNZR7,DL2DJNZR6,DL1RETEND4、设利用定时器、设利用定时器1使使8051P1.1引脚上产生引脚上产生2KHz的方波(单片机的的方波(单片机的振荡频率为振荡频率为12MHz)。请编写其初始化程序。)。请编写其初始化程序。设:定时器设:定时器1工作在方式工作在方式2,采用中断方式,定时时间到对,采用中断方式,定时时间到对P1.1端取反端取反。T=(28-X)TCTC=1s(28-X)1s=0.25ms=250sX=256-250=6=06HLED1:MOVTMOD,#20HMOVTL1,#06HMOVTH1,#06HSETBEASETBET1SETBTR1END四、设计题四、设计题1、画出、画出扩扩展展1片程序存片程序存储储器器2764的的电电路路图图,并根据,并根据设计结设计结果,写出果,写出地址范地址范围围
限制150内