单片机原理及应用试卷和答案(三套试卷和答案).doc
Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date单片机原理及应用试卷和答案(三套试卷和答案)单片机原理及接口技术试卷试卷一一、填空题(20分,每小题2分)1、19D的二进制的补码表示为 11101101B 。2、89C51含 4KB 掩膜ROM, 128B的RAM,在物理上有 4个 独立的存储器空间。3、通过堆栈操作实现子程序调用,首先要把 PC 的内容入栈,以进行断点保护。调用返回时再进行出栈操作,把保护的断点弹回 PC 。4、74LS138是具有3个输入的译码器芯片,其输出作为片选信号时,最多可以选中 8 块芯片。5、PSW中RS1 RS0=10H时,R2的地址为 12H 。6、假定DPTR的内容为8100H,累加器A的内容为40H,执行下列指令:MOVC A,A+DPTR 后,送入A的是程序存储器 8140H 单元的内容。7、设SP=60H,片内RAM的(30H)=24H,(31H)=10H,在下列程序段注释中填执行结果。 PUSH 30H ;SP=61H,(SP)=24H PUSH 31H ;SP=62H,(SP)=10H POP DPL ;SP=61H,DPL=10H POP DPH ;SP=60H,DPH=24H MOV A,#00H MOVX DPTR,A 最后执行结果是 执行结果将0送外部数据存储器的2410H单元 。8、在中断系统中,T0和T1两引脚扩展成外部中断源时,计数初值应当是(TH)=(TL)= 0FFH 。9、12根地址线可寻址 4KB 存储单元。二、选择题(10分,每小题1分)1、MCS-51响应中断时,下面哪一个条件不是必须的 (C) (A)当前指令执行完毕 (B)中断是开放的 (C)没有同级或高级中断服务 (D)必须有RETI2、执行PUSH ACC指令,MCS-51完成的操作是 (A) (A)SP+1SP,(ACC)(SP);(B)(ACC)(SP),SP1SP (C)SP1SP,(ACC)(SP);(D)(ACC)(SP),SP+1SP3、89C51是 (C) (A)CPU (B)微处理器 (C)单片微机 (D)控制器4、关于MCS-51的堆栈操作,正确的说法是 (C) (A)先入栈,再修改栈指针 (B)先修改栈指针,再出栈(C)先修改栈指针,再入栈 (D)以上都不对5、某种存储器芯片是8KB×4片,那么它的地址线根数是 (B) (A)11根 (B)13根 (C)12根 (D)14根6、MOV C,#00H的寻址方式是 (A) (A)位寻址 (B)直接寻址 (C)立即寻址 (D)寄存器寻址7、必须进行十进制调整的十进制运算 (C) (A)有加法和减法 (B)有乘法和除法 (C)只有加法 (D)只有减法8、ORG 0000H AJMP 0040H ORG 0040H MOV SP,#00H 当执行完左边的程序后,PC的值是 (C) (A)0040H (B)0041H (C)0042H (D)0043H9、MCS-51复位时,下述说法正确的是 (D) (A)(20H)=00H (B)SP=00H (C)SBUF=00H (D)TH0=00H三、简答分析题(30分,每小题10分)1、简述89C51定时器的四种工作模式的特点,如何选择和设定。答:89C51定时器的四种工作模式有,模式1,模式2,模式3。模式0时:选择定时器的高8位和低5位组成13位定时器/计数器。TL低5位溢出时向TL进位,TH溢出时向中断标志位TF0进位,并申请中断。 定时时间t=(213初值)×振荡周期×12;计数长度为213=8192个外部脉冲。模式1时:当TMOD中的M1M0置成01时,定时器工作于方式1,构成16位定时器/计数器。定时时间t=(216初值)×振荡周期×12;计数长度为216=65536个外部脉冲。模式2时:把TL0和TL1配置成一个可以自动重装载的8位定时器/计数器。TL担任8位计数器,TH保存初值,TL溢出时不仅使TF0置1,而且还自动将TH中的内容重新装载在TL中。定时时间t=(28初值)×振荡周期×12;计数长度为28=256个外部脉冲。模式3时:方式3是两个8位定时/计数器模式,只适用于T0。TH0和TL0成为两个独立的8位计数器。TL0为8位计数器,功能与模式0和模式1相同,可定时可计数。TH0仅用作简单的内部定时功能,它占用了定时器T1的控制位TR1和中断标志位TF1,启动和关闭受TR1的控制。T1无此模式。选择和设定:由定时器的2个控制寄存器TMOD和TCON,由软件写入TMOD和TCON 两个8位寄存器,设置各个定时器的操作模式和控制功能。2、位地址7CH与字节地址7CH如何区别?位地址7CH具体在片内RAM中的什么位置?答:字节地址是片内RAM的单元地址,而位地址是片内RAM单元的某一位。 7CH字节地址RAM的7CH单元,而7CH位地址是RAM 2FH单元中的D4位。四、编程题(任选2题,20分,每题10分)1、编写一程序,实现下图中的逻辑运算电路。其中P3.1、P1.1、P1.0分别是单片机端口线上的信息,RS0、RS1是PSW寄存器中的两个标志位,30H、31H是两个位地址,运算结果由P1.0输出。 ORG 0000HMOV C,P3.1 ANL C,P1.1 CPL C MOV 20H,C;暂存数据MOV C,30H ORL C,/31HANL C,RS1ANL C,20HANL C,RS0MOVP 1.0,C;输出结果SJMP $2、写一个软件延时1S和1min的子程序。设fosc=6MHz,则1个机器周期=2s。解:(1)1s=2s×5×105 5×105=250×2000=250×200×5×2ORG 0000H DELAY1S:MOV R5,#5DEL1: MOV R6,#200DEL2: MOV R7,#250DEL3: DJNZ R7,DEL3 DJNZ R6,DEL2 DJNZ R5,DEL1RET (3)1min=60S,调用上面1s子程序60次ORG 0100H DELAY1M:MOV R0,#60LOOP: LCALL DELAY1S DJNZ R0,LOOP RET3、编一子程序,从串行接口接受一个字符解: START: MOV TMOD,#20H ;定时器T1工作于模式2 MOV TH1,#0E6H ;设置波特率为1 200b/s MOV TL1,#0E6H SETB TR1 ;启动T1 MOV SCON,#50H ;串行接口工作于方式1,允许接收 L1: JNB RI,L1 ;等待接收数据,末接收到数据,继续等待 CLR RI ;接收到数据,清RI MOV A,SBUF ;接收到数据送A RET五、设计题(任选1题,20分,评分标准硬件设计、程序设计各10分)1、利用89C51的P0口控制8个发光二极管LED。相邻的4个LED为一组,使2组每隔1s交替发光一次,周而复始。设计出硬件电路图,编写程序。解:(1)程序设计(设fosc=12MHz)ORG 0100H MOV A,#0FH ABC: MOV P0,A ACALL DELAY1S SWAP A SJMP ABC DELAY1S:MOV R5,#04DEL1:MOV R6,#250DEL2:MOV R7,#250DEL3:NOP NOP DJNZ R7,DEL3 DJNZ R6,DEL2 DJNZ R5,DEL1RET;END(2)硬件电路图如图:2、现有一蜂鸣器,用89C51设计一系统,使蜂鸣器周而复始地响20ms,停20ms,编程。解:设fosc=12MHz,电路图如下: 定时时间:应用公式t =(2X)×foscX=216-t(fosc /12) =216-20000=45536=B1E0H程序清单:ORG 0000HLJMP STARTORG 0040H START:MOV TMOD,#01HMOV TL0,#OB1HMOV THO,#OE0HSETB TR0LOOP: JNB TFO,DONECLR TF0DONE: MOV TL0,#OB1HMOV THO,#OE0HCPL P1.0SJMP LOOP试卷二一、填空题(20分,每小题2分)1、十进制数47用8位二进制补码表示为 11010001B 。2、汇编语言中可以使用伪指令,它们不是真正的指令,只是用来对汇编过程进行某种控制。3、JBC 00H,rel 操作码的地址为2000H,rel=70H,它的转移目的地址为2073H。4、一个机器周期= 12时钟周期,一个时钟周期=2个振荡周期,一个振荡周期=1个节拍。5、用串口扩展并行口时,串行接口工作方式应选为方式0。6、A/D转换器的三个最重要指标是转换速度、分辨率、转换精度。7、当89C51的RST引脚上保持2 个 机器周期以上的低电平,8051即发生复位。8、MCS-51中,外部中断请求标志位是IE0和IE1。9、假定(SP)=60H,(ACC)=30H,(B)=70H。执行下列指令: PUSH ACC PUSH B 后,SP的内容为 62H ,61H单元的内容为 30H ,62H单元的 内容为 70H。10、在直接寻址方式中,以 8 位二进制数作为直接地址,因此其寻址对象只限于 片内RAM 。二、选择题(10分,每小题2分)1、MCS-51在响应中断时,下列哪种操作不会发生 (A) (A)保存累加器A (B)保护PC (C)找到中断入口 (D)保护PC转入中断入口2、MCS-51上电复位后,SP的内容是 (B) (A)00H (B)07H (C)60H (D)70H3、PC中存放的是 (A) (A)下一条指令的地址 (B)当前正在执行的指令 (C)当前正在执行的指令的地址 (D)下一条要执行的指令4、当8031外扩程序存储器8KB时,需使用EPROM 2716 (C) (A)2片 (B)3片 (C)4片 (D)5片5、可以为访问程序存储器提供或构成地址的有 (C) (A)只有程序计数器PC (B)只有PC和累加器A (C)只有PC、A和数据指针DPTR (D)PC、A、DPTR和SP6、对程序存储器的读操作,只能使用 (D) (A)MOV指令 (B)PUSH指令 (C)MOVX指令 (D)MOVC指令7、下面哪种设备不是输入设备 (C) (A)A/D转换器 (B)键盘 (C)打印机 (D)扫描仪8、要访问MCS-51的特殊功能寄存器应使用的寻址方式是 (A) (A)直接寻址 (B)寄存器间接寻址 (C)变址寻址 (D)相对寻址9、执行MOVX A,DPTR指令时,MCS-51产生的控制信号 (C) (A)/PSEN (B)ALE (C)/RD (D)/WR10、下面哪种指令将MCS-51的工作寄存器置成3区 (B) (A)MOV PSW,#13H (B)MOV PSW,#18H (C)SETB PSW.4 CLR PSW.3 (D)SETB PSW.3 CLR PSW.4三、简答分析题(30分,评分标准:每小题各10分)1、89C51单片机片内设有几个定时器/计数器?它们是由哪些特殊功能寄存器组成?作定时器时,定时时间与哪些因数有关?作计数器时,对外界计数频率有何限制?答: 8051单片机片内设有2个定时器/计数器:定时器/计数器1和定时器/计数器0,由THO、TLO、TH1、TL1、TMOD、TCON特殊功能寄存器组成。作定时器时,定时时间与定时器的工作模式、定时器的计数初值以及单片机的晶振频率有关。作计数器时,对外界计数频率不能高于振荡频率的1/24。2、简述程序状态字寄存器PSW中各位的含义。并说出选择工作寄存器组位的编码。答: 程序状态字寄存器PSW:程序状态字寄存器PSW:是一个8位寄存器,用来存放当前指令执行后操作结果的某些特征,以便为下一条指令的执行提供依据。定义格式如下。其中,CY:进借位标志;AC:辅助进借位标志; F0:软件标志;OV:溢出标志;F1:用户标志位;P:奇偶校验标志; RS1、RS0:工作寄存器组选择(如表所示)。表 工作寄存器组选择控制表RS1 RS0寄存器组对应RAM地址0 0000H07H0 1108 H0FH1 0210 H17H1 1318 H1FH3、阅读下列程序,并要求:(1) 说明程序功能;(2) 写出涉及的寄存器及片内RAM单元的最后结果 MOV R0,#40HMOV A,R0INC R0ADD A,R0INC R0MOV R0,ACLR AADDC A,#0INC R0MOV R0,A 答:(1) 功能:将40H,41H单元中的内容相加结果放在42H单元,进位放在43H, (2) (R0)=43H; (A)=1; (40H)=98H,(41H)=AFH;(42H)=47H,(43H)=01H。四、编程题(任选2题,20分,评分标准:每小题各10分)1、将以7000H为首址的连续100个单元清零。解: MAIN:MOV DPTR,#7000H MOV R0,#100 CLR A NEXT:MOVX DPTR, AINC DPTRDJNZ R0,NEXTRET2、在AT89S51片内RAM20H3FH单元中有32B数据,若采用方式1进行串行通讯,波特率为1200波特,fOSC=12MHz,编写发送/接收程序对。解:(1)T1工作于方式2作为波特率发生器,取SMOD=0,T1的计数如下: 波特率=1200=得: X=230=E6H (2)发送程序:(采用查询方式编程) ORG 0000H LJMP START ORG 0030H START:MOV TMOD,#20H MOV TH1,#0E6H MOV TL1,#0E6H SETB TR1 MOV SCON,#40H MOV R0,#20H MOV R7,#32 LOOP:MOV SBUF,R0 JNB TI,$ CLR TI INC R0 DJNZ R7,LOOP SJMP $ (3)接收程序 ORG 0000H LJMP START ORG 0030H START:MOV TMOD,#20H MOV TH1,#0E6H MOV TL1,#0E6H Loop1: SETB TR1 MOV SCON,#50H MOV R0,#20H MOV R7,#32 LOOP:JNB RI,$ CLR RI MOV R0,SBUF INC R0 DJNZ R7,LOOP1 SJMP $3、设单片机采用89C51,未扩展片外ROM,片外RAM采用一片6116,编程将其片内ROM从0100H单元开始的10B得内容依次外接到片外RAM从100H单元开始的10B中去。解: MOV R2,#00H ;源数据缓冲器地址偏移量00HMOV R3,#0AH ;字节长度R3MOV DPTR,#0100H ;源数据缓冲区首地址DPTRMOV A,R2 ;源地址偏移量 AL1: MOVC A,A+DPTR ;传送一个数据MOVX DPTR,AINC DPTR ;源地址(目的地址)加1DJNZ R3,L1 ;数据全部传送完?没传送完,转L1继续传送SJMP $ ;结束五、设计题(20分)设计89C51和ADC0809接口,采集2通道10个数据,存入内部RAM的50H59H单元,画出电路图,编出程序,IN2的地址。解:硬件电路设计如图:(评分标准:10分)IN2的地址为7FFAH,P1.0查询转换结束信号。(评分标准:2分)程序设计如下:(评分标准:8分) ORG 0100H MOV R7,#0AH MOV R0,#50H MOV DPTR,#7FFAH NEXT: MOVX DPTR,A JB P1.0.$ MOVX A,DPTR MOV R0,A INC R0DJNZ R7, NEXT SJMP $试卷三一、填空题(20分,评分标准:每小题各2)1、十进制数29的8位补码表示为 11100011B 。2、MCS-51有 7 种寻址方式,特殊功能寄存器只能采用 直接寻址方式。3、MCS-51串行接口有 4 种工作方式,这可在初始化程序中用软件填写特殊功能寄存器 SCON 加以选择。4、MCS-51有 5个中断源,有 2 个中断优先级,优先级由软件填写特殊功能寄存器 IP 加以选择。5、假定(A)=56H,(R5)=67H。执行指令: ADD A,R5 DA A后,累加器A的内容为 23H ,CY的内容为 1 。6、假定标号qaz的地址为0100H,标号qwe值为0123H(即跳转的目标地址为0123H)。执行指令: qaz:SJMP qwe 该指令的相对偏移量为 0123H0102H=21H 。7、MCS-51单片机访问片外存储器时,利用 ALE信号锁存来自 P0口的低8位地址信号。8、MCS-51单片机片内RAM的工作寄存器区共有 32个单元,分为 4 组寄存器,每组 8个单元,以 R0R7 作为寄存器名。9、MCS-51单片机中 P0 口作地址/数据总线,传送地址码的 低8 位; P2 口作地址总线,传送地址码的 高8 位。二、选择题(20分,评分标准:每小题各2分)1、在中断服务程序中,至少应有一条 (D) (A)传送指令 (B)转移指令 (C)加法指令 (D)中断返回指令2、ORG 2000H LCALL 3000H 0RG 3000H RET 左边程序执行完RET指令后,PC= (C)(A)2000H (B)3000H (C)2003H (D)3003H3、要使MCS-51能够响应定时器T1中断、串行接口中断,它的中断允许寄存器IE的内容应是 (A) (A)98H (B)84H (C)42H (D)22H4、若某存储器芯片地址线为12根,那么它的存储容量为 (C) (A)1KB (B)2KB (C)4KB (D)8KB5、下面哪种外设是输出设备 (A) (A)打印机 (B)纸带读出机 (C)键盘 (D)A/D转换器6、下面哪一个部件不是CPU的指令部件 (C) (A)PC (B)IR (C)PSW (D)ID7、以下运算中对溢出标志OV没有影响或不受OV影响的运算是 (A) (A)逻辑运算(B)符号数加减法运算(C)乘法运算(D)除法运算8、以下指令中,属于单纯读引脚的指令是 (C) (A)MOV P1,A (B)ORL P1,#0FH (C)MOV C,P1.5 (D)DJNZ P1,short-lable9、在异步通讯接口,其帧格式由1个起始位(0)、7个数据位、1个偶校验和1个停止位“1”组成。当该接口每分钟传送1800个字符时,传送波特率为 (D) (A)1800b/s (B)10b/s (C)3000b/s (D)300b/s10、各中断源发出的中断请求信号,都会标记在MCS-51系统的 (B) (A)TMOD (B)TCON/SCON (C)IE (D)IP三、判断题(10分,评分标准:每小题各1分)1、MCS-51的程序存储器只是用来存放程序的。 (×)2、当MCS-51上电复位时,堆栈指针(SP)=00H。 (×)3、判断以下指令段的正误。 (×) MOV P2,#30H MOV R2,#57H MOVX A,R2 4、0070H 80 FE HERE:SJMP HERE 执行该指令后,程序将原地踏步。 ()5、51单片机内部有两片寄存器,既是工作寄存器和专用寄存器,因在同片内RAM,则它们是统一编址。 ()6、要进行多机通讯,MCS-51串行接口的工作方式应选方式1。 (×)7、定时器工作于方式2,若GATE=1、TR0=1、INT0=1就可启动定时/计数器。 ()8、使用89C51且/EA=1时,仍可外扩64KB的程序存储器。 (×)9、MCS-51的相对转移指令最大负跳距是127B。 (×)10、PC存放的是当前正在执行的指令。 (×)四、简答分析编程题(任选3题,30分,评分标准:每小题各10分) 1、89C51单片机片内设有几个定时器/计数器?它们是由哪些SFR组成?定时器/计数器作定时和计数时,其计数脉冲分别由谁提供?答:89C51单片机片内设有2个定时器/计数器:定时器/计数器0和定时器/计数器1。由TH0、TL0、TH1、TL1、TMOD、TCON特殊功能寄存器组成。 作定时器时,计数脉冲来自单片机内部,其频率为振荡频率的1/12;作计数器时,计数脉冲来自单片机外部,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数,当输入脉冲信号从1到0的负跳变时,计数器就自动加1。计数的最高频率一般为振荡频率的1/24。2、简述89C51单片机的中断响应过程。答:单片机如查询到某个中断标志为1,将按优先级进行中断处理。中断得到响应后 ,对于有些中断源,CPU在响应中断后会自动清除中断标志,由硬件将程序计数器PC内容压入堆栈保护,然后将对应的中断矢量装入程序计数器PC,使程序转向中断矢量地址单元中去执行相应的中断服务程序。3、编程实现多字节无符号数加法解:编程说明:多字节运算一般是按从低字节到高字节的顺序依次进行的入口:(R0)=被加数低位地址指针(R1)=加数低位地址指针(R2)=字节数出口:(R0)=和数低位地址指针程序清单如下: ADDBIN:CLR C LOOP1:MOV A,R0ADDC A,R1MOV R0,AINC R0INC R1DJNZ R2,LOOP1JNC LOOP2MOV R0,#01HRET LOOP2:DEC R0RET4、将定时器/计数器做脉冲信号发生器。编程利用定时器T0定时,在P1.0端输出周期性方波信号,方波周期为2ms,已知晶振频率为6MHz。答: 1)T0工作模式的设定: 选择模式1(16位方式)(最大定时131ms) 2)定时初值的设定: X=216-(1ms×6×106/12 )=65036=FE0CH,即:TH0应装0FEH,TL0应装0CH。 程序清单如下:ORG 0000HLJMP MAINORG 000BHLJMP HUANG主程序: ORG 0500H MAIN:MOV TMOD,#01H MOV TL0,#OCH MOV TH0,#0FEH SETB EA SETB ET0 SETB TR0 HERE:SJMP HERE中断服务程序:HUANG:MOV TL0,#OCH MOV TH0,#0FEH CPL P1.0 RETI五、设计题(任选1题,20分)1、设计一个2×2行列式键盘,并编写键盘扫描程序。(评分标准:硬件电路10分,软件程序20分)解:(1)逻辑电路如下:(2)判断是否有键按下:有列线P1.0、P1.1送全0,查P0.0、P0.1是否为0。判断哪一个键按下:逐列送0电平信号,再逐行扫描是否为0。键号=行首号+列号KEY: LCALL KS JZ KEY LCALL T10ms LCALL KS JZ KEYMOV R2,#0FEH MOV R4,#00HLK1: MOV P1,R2 JB P0.0,ONE MOV A,#00H LJMP KPONE: JB P0.1, NEXT MOV A,#02HKP: ADD A,R4 PUSH ACCLK: LCALL KS JNZ LK POP ACC RETNEXT: INC R4 MOV A,R2 JNB ACC.1,KND RL A MOV R2,A AJMP LK4KND: AJMP KEY1KS: MOV P1,#0FCH MOV A,P0 CPL AANL A,#03HRETT10ms: MOV R7,#10HTS1: MOV R6,#0FFHTS2: DJNZ R6,TS2 DJNZ R7,TS1 RET2、设计一个由AT89C51单片机与一片ADC0809组成的数据采集系统,ADC0809的地址为7FF8H7FFFH。画出硬件逻辑电路图,简述启动ADC0809的工作过程,并编制轮流采集8个通道数据,其采样值存入片外RAM 30H开始的存储单元中。(评分标准:硬件电路5分,工作过程5分,软件程序10分)解:(1)逻辑电路如下:(2)启动ADC0809的工作过程为:先送通道号地址到ADDAADDC,有ALE信号锁存通道号地址后,让START有效启动A/D转换,即执行一条MOVXDPTR,A指令产生 信号,使ALE、START有效,锁存通道号并启动A/D转换。A/D转换完后,EOC端发出一正脉冲,接着执行MOVXA,DPTR产生 信号,使OE端有效,打开锁存器三态门,8位数据就读入到CPU中。(3)利用中断方式,分别对8路模拟信号轮流采样一次,转换结果依次存放在首址为30H的片外数据RAM中 ORG 0000H AJMP MAIN ORG 0013H AJMP INT1MAIN: MOV R1,#30H MOV R7,#08H MOV DPTR,#07FF8H SET IT1 SET EX1 SET EAMOVX DPTR,AHERE: SJMP HERE中断服务程序:INT1: MOVX A,DPTR MOVX R1,A INC R1 INC DPTR DJNZ R7,READ RETIREAD: MOVX DPTR,A RETI-