微机原理习题答案参考(给学生)

2020-04-14 22:53

微机原理习题答案参考

第一章 微处理机概述

根据自己原来的电路基础,自选第一章部分习题作为作业。

第二章 51单片机硬件结构

习 题:2-8,2-12,2-14思考题:2-3,2-6,2-10,2-11,2-16 补充题:

1、MCS-51单片机由哪几部分功能模块组成?2、概述MCS-51单片机的引脚功能,以及三总线的组成。 3、请叙述51单片机I/O口的应用特性。

1、习题2-8简述MCS-51的片内数据存储器的分区特点。(P38-40) 2、习题2-12简述PSW中各位的意义。(P33) 3、习题2-14简述指令执行中的四种周期及其意义。(振荡周期、状态周期、机器周期、指令周期。P45-46) 4、思考题2-3 51子系列和52子系列的片内资源有何区别?(P31)

5、思考题2-6 8051单片机的片内数据和程序存储器寻址范围各是多少?(P31) 6、思考题2-10 MCS-51中有多少SFR,它们是怎样分布的?(P41)

7、思考题2-11谈谈MCS-51是怎么避免存储空间重叠而产生数据冲突的?(P36)

8、思考题2-16为什么要复位?MCS-51有哪些复位电路?复位后SFR的值各为多少?(P44~45) 9、补充题1 MCS-51单片机由哪几部分功能模块组成?(P31 2.3.1硬件资源) 10、补充题2概述MCS-51单片机的引脚功能,以及三总线的组成。(P33-35 、P46-47) 11、补充题3请叙述51单片机I/O口的应用特性。(P34)

第三章 51单片机指令系统

习题:3-2、3-3、3-4、3-6、3-8、3—11、3-13、3-14

1、习题3-2 MCS-51有哪些寻址方式?各有什么特点?试举例说明。(P52-55) 2、习题3-3已知R0=32H,A=48H,(32H)=80H,(40H)=08H。指出执行下列程序段后上述各单元内容的变化。

MOV A, @R0 ;A=80H MOV @R0, 40H ;(32H)=08H MOV 40H, A ;(40H)=80H MOV R0, #35H ;R0=35H

3、习题3-4已知A=7AH,R0=30H,(30H)=A5H,PSW=80H,请指出以下各条指令的执行结果。

①XCH A, R0 ;A=30H,R0=7A H,PSW=81H ②XCH A, 30H ;A= A5H,(30H)=7A H,PSW=80H ③XCH A, @R0 ;A= A5H,(30H)=7A H,PSW=80H ④XCHD A, @R0 ;A=75H,(30H)=AAH,PSW=81H ⑤SWAP A ;A=A7H,PSW=81H ⑥XCHD A, R0 ;XCHD无此寻址方式 ⑦ADD A, 30H ;A=1FH,(30H)=A5H ,PSW=81H(CY=1 AC=0 OV=0 P=1) ⑧ADD A, #30H ;A=AAH,PSW=04H( CY=0 AC=0 OV=1 P=0) ⑨ADDC A, 30H ;A=20H,(30H)=A5H,PSW=C1H(CY=1 AC=1 OV=0 P=1 ) ⑩SUBB A, 30H ;A=D4H,(30H)=A5H,PSW=84H(CY=1 AC=0 OV=1 P=0)

4、习题3-6试编出把外部RAM的2050H单元中的内容和2060H单元中内容互相交换的程序。

ORG 0000H LJMP START

ORG 0100H

START: MOV DPTR,#2050H

MOVX A,@DPTR MOV R0,A

MOV DPTR,#2060H MOVX A,@DPTR MOV DPTR,#2050H MOVX @DPTR,A MOV A,R0

MOV DPTR,#2060H MOVX @DPTR,A

SJMP $ END

5、习题3-8 已知SP=60H,(30H)=24H,(31H)=10H,试分析执行下列指令后各存储单元中的内容以及相应堆栈区域有何变化。

PUSH 30H ;SP=61H,(61H)=24H PUSH 31H ;SP=62H,(62H)=10H POP DPL ;DPL=10H,SP=61H POP DPH ;DPH=24H,SP=60H

6、习题3-11 查指令表,写出下列两条指令的机器码,并比较一下机器码中操作数排列次序的特点。

MOV 78H, 80H ;85 80 78 (H) MOV 78H, #80H ;85 78 80 (H)

7、习题3-13已知外部RAM中以2000H为始址的存储区有20个带符号补码数,请编程把正数和零取出来存放到内部RAM以20H为始址的存储区,负数不作处理。

ORG 0000H LJMP START

ORG 0100H

START: MOV R0,#20H

MOV DPTR,#2000H MOV R7,#20

READ: MOVX A,@DPTR JB ACC.7,NEG

MOV @R0,A INC R0

NEG: INC DPTR DJNZ R7,READ

SJMP $

END

8、习题3-14已知SP=60H,PC=2030H,试问执行指令LCALL 2348H 后堆栈指针和堆栈中的内容有什么变化,此时机器调用何处子程序?

SP=61H,(61H)=33H SP=62H,(62H)=20H PC=2348 即调用PC=2348处子程序

第四章 汇编语言程序设计

4-3、4-4;4-5、4-6、4-8;4-10、4-12、4-14、4-15 习题4-3若有两个无符号数x、y分别存放在内部存储器的50H、51H单元中,试编写一个程序实现x×10+y,结果送入52H、53H两个单元。

ORG 0000H LJMP START

ORG 0100H

START: MOV A,50H

MOV B,#10 MUL AB

ADD A,51H

JNC SAVE ;加法中无进位,则直接存结果 INC B ;加法中有进位,则高位加1

SAVE: MOV 53H,A ;存结果低位入(53H)

MOV 52H,B ;存结果高位入(52H) SJMP $

END

习题4-4设内部RAM 20H单元有两个非零BCD数,请编出求两个BCD数的积并把积送入21H单元的程序。

方法1: ORG 0000H

LJMP START

ORG 0100H

START: MOV A,20H

ANL A,#0FH

MOV B,A ;分离出BCD数的低位送B MOV A,20H ANL A,#0F0H

SWAP A ;分离出BCD数的高位 MUL AB

MOV 21H,A SJMP $

END

方法2: ORG 0000H

LJMP START

ORG 0100H

START: CLR A

MOV R0,#20H XCHD A,@R0

XCH A,@R0

SWAP A ;分离出BCD数的高位 MOV B,@R0 ;分离出BCD数的低位送B MUL AB

MOV 21H,A SJMP $

END

习题4-5请利用MCS-51带进位左移指令实现将内部RAM 30H~32H三字节内容左移6位,移出的部分存入R2中。试用双循环程序设计方法,给出程序框图和源程序清单,并加入必要的注释。

R2?(30H)?(30H)?(32H)

ORG 0000H LJMP START

ORG 0100H

START: MOV R2,#00H

MOV R7,#06H ;循环左移6位

LOOP : CLR C

MOV R6,#03H ;每一位循环要对三个字节操作,先32H左移、再31H、30H MOV R0,#32H LOOP1: MOV A,@R0

RLC A MOV @R0,A DEC R0

DJNZ R6,LOOP1 MOV A,R2 RLC A ;R2带CY位左移,将30H移出的位左移进R2 MOV R2,A DJNZ R7,LOOP SJMP $ END

习题4-6已知在DATA1单元中有一个带符号的8位二进制数x,试编一程序,按以下关系计算y值,结果送入DATA2单元。

x+5 x>0x x=0x-5 x<0y=

ORG 0000H LJMP START

ORG 0100H

DATA1 EQU 20H DATA2 EQU 30H START: MOV A,DATA1

CJNE A,#00H,NEZ ;DATA≠0,转NEZ ZZ: MOV DATA2,A ;DATA=0, A?DATA2

SJMP $

NEZ: JC NEG ;DATA<0,转NEG ADD A,#05H ;DATA>0,A=A+5 AJMP ZZ NEG: CLR C SUBB A,#05H ;DATA<0,A=A-5 AJMP ZZ

END

习题4-8若晶振为6MHz,试编写一个延时2ms的子程序。

当晶振频率为6MHz时,一个机器周期为2μs,执行一条DJNZ指令需2个机器周期,时间为4μs。相应延时程序如下:

ORG 0300H

DEL: MOV R7, # 10 ;1个机器周期 DEL1: MOV R6, # 50 ;1个机器周期

DEL2: DJNZ R6, DEL2 ;4×50=200μs ,2个机器周期 DJNZ R7, DEL1 ;200×10=2ms ,2个机器周期 RET ;2个机器周期 它的实际延迟时间为(200+2+4)×10+2+4=2.066ms。

习题4-10将DATA单元存放的以ASCII码表示的十六进制数转换成十进制数,结果存入DATA+1单元。请编出相应程序。

0—9的ASCII码为30H—39H,A—F的ASCII码为41H—46H。

先将该ASCII码减去30H,所得数若小于10,则为0H—9H,即得结果;

所得数若大于10,则为11H—16H,再减去1,即得结果。

ORG 0100H

DATA EQU 20H START: CLR C ;准备相减 MOV A,DATA BUBB A,#30H CJNE A,#0AH,L2 ;若A中值≠0,转L2 L2: JC L1 ;若A中值<0,转L1 BUBB A,#01H ;若A中值≥0,A?A-1 L1: MOV DATA+1,A RET

习题4-12试编一采用查表法求1~20的平方数的子程序。已知,x∈[1,20]存在在累加器A中,查得平方数高位存入R6、低位存入R7。

ORG 0400H

RL A ;操作数左移1位即乘2 MOV R3,A ;保护操作数乘2后的值 MOV DPTR,#TABM ;指针指向平方值表首址 MOVC A,@A+DPTR ;读取平方值的低位结果 MOV R7,A ;存放低位结果 MOV A,R3 ;重取操作数乘2后的值 INC A ;指向其下一单元(即高位) MOVC A,@A+DPTR ;读取平方值的高位结果 MOV R6,A ;存放高位结果 SJMP $ ;表示程序结束的自循环 ORG 1000H

TABM: DB 00H,00H,01H,00H,04H,00H,09H,00H DB 10H,00H,19H,00H,24H,00H,31H,00H DB 40H,00H,51H,00H,……

习题4-14请编写带符号数除法程序。已知被除数以补码形式放在R2内,除数以补码形式放在R3内,所得结果商存入R4,余数存入R5。

习题4-15试编程从片内RAM的表中顺序检索出关键字,并给出关键字在表中的序号。当找遍整个表而无关键字时,序号为00H。已知表首地址为KTAB,表长为LEN。 设关键字为KEY,放在(20H)中,LEN为200,序号放在(30H)中。 ORG 0000H

LJMP START

ORG 0100H

KEY EQU 20H LEN EQU 200H

START: MOV TEST,KEY MOV R2,#LEN

MOV 30H,#00H MOV DPTR,#KTAB ;取表首地址

FIND: INC 30H ;每取一个数,序号加1 MOV A,#00H MOVC A,@A+DPTR ;取数 CJNZ A,TEST,L1 ;比较,不是关键字转L1 DONE: SJMP DONE ;是关键字,停止。(30H)中是序号 L1: INC DPTR ;取下一个数地址 DJNZ R2,FIND ;未取完,继续 MOV 30H,#00H ;已取完,但没找到关键字则序号为0 AJMP DONE END KTAB:DB XXH …….

第六章 输入输出与中断 6-2、6-7、6-9

补充题:请简单归纳51单片机中断系统的优先级性、中断触发方式、中断入口地址、中断控制字的特性和实验方法。 习题6-2 习题6-7 习题6-9


微机原理习题答案参考(给学生).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:湖南省道路客货运输经营质量信誉考核实施细

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: