《2022年微机原理与接口技术第三章试题及答案 .pdf》由会员分享,可在线阅读,更多相关《2022年微机原理与接口技术第三章试题及答案 .pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第三章3-1 选择题1、MOVX A,DPTR 指令中源操作数的寻址方式是(B)(A)寄存器寻址(B)寄存器间接寻址(C)直接寻址(D)立即寻址2 ORG 0003H LJMP 2000H ORG 000BH LJMP 3000H 当 CPU 响应外部中断0 后, PC 的值是( B)(A)0003H (B)2000H (C)000BH (D)3000H 3 执行 PUSH ACC 指令, MCS-51 完成的操作是(A)(A)SP+1 SP (ACC)(SP) (B) (ACC )( SP)SP-1 SP (B)(C)SP-1 SP (ACC )(SP) (D) (ACC )(SP)SP+1
2、 SP 4、LCALL指令操作码地址是2000H,执行完相子程序返回指令后,PC=(D)(C)2000H ( B)2001H (C)2002H (D)2003H 5、51 执行完 MOV A,#08H 后, PSW 的一位被置位(D)(A) (A)C (B)F0 ( C)OV (D)P 6、下面条指令将MCS-51 的工作寄存器置成3 区( B)(A)MOV PSW,#13H (B)MOV PSW,#18H (B)SETB PSW.4 CLR PSW.3 (d) SETB PSW.3 CLR PSW.4 7、执行 MOVX A,DPTR 指令时, MCS-51 产生的控制信号是(C)(D)/P
3、SEN (B)ALE ( C)/RD (D)/WR 8、MOV C ,#00H 的寻址方式是(A)(A)位寻址(B)直接寻址(C)立即寻址(D)寄存器寻址9、ORG 0000H AJMP 0040H ORG 0040H MOV SP ,#00H 当执行完左边的程序后,PC 的值是( C)(A)0040H (B)0041H (C)0042H (D)0043H 10、对程序存储器的读操作,只能使用(D)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - -
4、 - - - - (A)MOV 指令(B)PUSH 指令(C)MOVX 指令( D)MOVC 指令3-2 判断题 。4 MCS-51 的相对转移指令最大负跳距是127B。 (错) 128B 5 当 MCS-51 上电复位时,堆栈指针SP=00H。 ( SP=07H) (错)6 调用子程序指令(如:CALL )及返回指令(如:RET)与堆栈有关但与PC 无关。(错)子序的转返与PC 也有关( PC 入栈与出栈)7 MOV R1,#80H (错) 5、INC DPTR (对) 6、CLR R0 (错)指令系统中没有。7、MOV R1,#80H (对)8、ANL R1,#0FH (错)9、ADDC
5、A,C (错)10、XOR P1,#31H (对) 3-3 简答题1 简述 MCS-51 汇编语言指令格式。答: MCS-51 汇编语言格式如下:标号: 操作码助记符操作数 1 操作数 2 操作数 3注释 标号是用户定义的符号,其值代表这条指令的地址。操作码助记符是指令系统规定的代表特定指令功能的英文缩写符。每条指令都有操作码记符。指令的操作数最多有3 个,也有无操作数的指令。注释字段是用户对程序的说明,便于对程序的阅读和理解。简答2 MCS-51 指令系统主要有哪几种寻址方式?试举例说明。答: MCS-51 指令操作数主要有以下7 种寻址方式:寻址方式举例立即寻址MOV A,#16 名师资料
6、总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - 直接寻址MOV 20H,P1 寄存器寻址MOV A,R0 寄存器间接寻址MOVX A, DPTR 变址寻址MOVC A, A+DPRT 相对寻址SJMP LOOP 位寻址ANL C,70H 3 对访问内部RAM 和外部 RAM ,各应采用哪些寻址方式?答:对内部RAM 的寻址方式有直接寻址、寄存器间接寻址和可对位寻址的位寻址。对外部RAM 的寻址方式只能用寄存器R0/R1(8 位地址)或D
7、PTR (16 位地址)间接寻址。4 设内部RAM (30H)=5AH , (5AH )=40H , (40H)=00H ,端口P1=7FH ,问执行下列指令后,各有关存储单元(即 R0,R1,A,B,P1,30H,40H 及 5AH 单元)的内容如何?MOV R0,#30H ;R0=30H MOV A,R0 ;A=5AH MOV R1,A ;R1=5AH MOV B,R1 ;B=5AH MOV R1,P1 ;(5AH)=7FH MOV A,P1 ;A=7FH MOV 40H,#20H ;(40H)=20H MOV 30H,40H ;(30H)=20H 解:每一条指令执行后的结果如注释字段所标
8、。最后结果为:R0=30H,R1=5AH , A=7FH ,B=5AH ,P1=7FH, (30H)=20H, (40H)=20H, ( 5AH)=7FH。5 SJMP (短转移)指令和AJMP (绝对转移)指令的主要区别。前者提供了以SJMP 的下一条指令的起始地址为中心的256 字节范围的转移(-128+127) , 后者的转移目标地址必须在与AJMP 的下一条指令的第一字节相同的2KB 区的程序储存器中。短转移方便了可重定位编码。SJMP 方便了 PC 可重定位编码,但转移范围小。而 ASJMP 转移范围大, 但存在跳区的限制,AJMP 指令只能位于2KB 区的最后2 个字节处时,才可跳
9、到下一个区去。因此用 AJMP 指令来代替SJMP 指令是有条件的,也就是目标地名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - 址必须与它下面的指令存放地址在同一个2KB 区域内。3-4 编程题1 编程将片内RAM30H单元开始的B 的数据传送到片外RAM3000H开始的单元中去。解: STRAT:MOV R0,#30H MOV R7,#0FH MOV DPTR,#3000H LOOP: MOV A,R0 MOVX DPTR,A
10、 INC R0 INC DPTR DJNZ R7,LOOP RET 2 片内 RAM30H开始的单元中有10B 的二进制数,请编程求它们之和(和256 ) 解ADDIO :MOV R0,30H MOV R7,#9 MOV A,R0 LOOP: INC R0 ADD A,R0 DJNZ R7,LOOP MOV 30H,A RET 3 编一个程序,将累加器中的一个字符从串行接口发送出去解SOUT:MOV SCON,#40H ;设置串行接口为工作方式MOV TMOD,#20H ;定时器 T1 工作于模式MOV TL1,#0E8H; ;设置波特率为1200b/s MOV TH1,#0E8H 名师资料总
11、结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 8 页 - - - - - - - - - SETB TR1 MOV SBUF,A JNB T1,$ CLB T1 RET 4 用查表法编一子程序,将R3 中的 BCD 码转换成ASCII 码. 解MAIN: MOV A,R3 ;待转换的数送A MOV DPTR,#TAR ;表首地址送DPTR MOVC A,A+DPTR ;查 ASCII 码表MOV R3,A ;查表结果送R3 RET TAR DB 30H,31H,32H,33H,3
12、4H DB 35H,36H,37H,38H,39H 5 片内 RAM40H开始的单元内有10B 二进制数,编程找出其中最大值并存于50H 单元中解START: MOV R0,#40H ;数据块首地址送R0 MOV R7,#09H ;比较次数送MOV A,R0 ;取数送LOOP: INC R0 MOV 30H,R0 ;取数送 H CJNE A,30H,NEHT ;( A)与( 30H)相比NEXT: JNC BIE1 (A) (30H)转 BIR1 MOV A,30H ;(A) (30H), 大数送 A BIE1: DJNZ R7,LOOP ;比较次数减1,不为 0,继续比较MOV 50H,A
13、;比较结束,大数送50H RET 6 编一子程序,从串行接口接受一个字符名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 8 页 - - - - - - - - - 解: START: MOV TMOD,#20H ;定时器 T1 工作于模式2 MOV TH1,#0E8H ;设置波特率为1 200b/s MOV TL1,#0E8H SETB TR1 ;启动 T1 MOV SCON,#50H ;串行接口工作于方式1,充许接收L1: JNB RI,L1 ;等待接收数据, 末接收到
14、数据,继续等待CLR RI ;接收到数据,清RI MOV A,SBUF ;接收到数据送A RET 7 利用调子程序的方法,进行两个无符号数相加。请编主程序及子程序。解用 R0 和 R1 作数据指针, R0 指向第一个加数,并兼作“和”的指针,指向另一个加数,字节存放到中作计数初值。主程序:JAFA: MOV R0,#20H ;指向加数最低字节MOV R1,#29H ;指向另一加数最低字节MOV R2,#04H ;字节数作计数值ACALL JASUB ;调用加法子程序AJMP $ RTE 多字节加法子程序:JASUB: CLR C JASUB1: MOV A,R0 ;取出加数的一个字节(无符号数
15、加数)ADDC A,R1 ;加上另一数的一个字节MOV R0,A ;保存和数INC R0 ;指向加数的高位INC R1 ;指向另一加数的高位DJNZ R2,JASUB1 ;全部加完了吗?RET 8 若图数据块是有符号数,求正数个数,编程并注释。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 8 页 - - - - - - - - - 解ORG 0030H START: MOV 20H,#00H ;计正数个数计数器MOV DPTR,#0000H ; MOVX A,DPTR
16、;数据块长度 10H MOV 10H,A INC DPTR ;DPTR 指向第一个数的地址TWO: MOVX A,DPTR ;取数 A JB ACC.7,ONE ;是负数转ONE,准备取下一个数INC 20H ;是正数,正数计数器加ONE: INC DPTR ;地址指针加DJNZ 10H,TW ;数据块长度减不等于,继续寻找RET 9 编制一个循环闪烁灯的程序。有8 个发光二极管,每次其中某个灯闪烁点亮10 次后,转到下一个闪烁10 次,循环不止。画出电路图。解本程序的硬件连接如图所示。当P1.0 输出高电平时,LED 灯亮,否则不亮。其程序如下:MOV A,#01H ;灯亮初值SHIFT:
17、LCAIL FLASH ;调闪亮 10 次子程序RR A ;右移一位SJMP SHIFT ;循环FLASH: MOV R2,#0AH 闪烁 10 次计数FLASH1; MOV P1,A ;点亮P1.0 8013 P1.7 D0 Q0 74LS240 D7 Q7 5V 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 8 页 - - - - - - - - - LCALL DELAY ;延时MOV P1,#00H ;熄灭LCALL DELAY ;延时DJNZ R2,FLASH1 ;循环RET 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 8 页 - - - - - - - - -