ImageVerifierCode 换一换
格式:DOC , 页数:21 ,大小:223.50KB ,
资源ID:431797      下载积分:5 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-431797.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机原理及应用课后习题参考答案1~6章.doc)为本站会员(h****)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

单片机原理及应用课后习题参考答案1~6章.doc

1、单片机原理及应用习题答案 第一章 计算机基础知识 1-1 微型计算机主要由哪几部分组成?各部分有何功能? 答:一台微型计算机由中央处理单元( CPU)、存储器、 I/O 接口及 I/O 设备等组成,相互之间通过三组总线( Bus):即地址总线 AB、数据总线 DB和控制总线 CB 来连接。 CPU 由运算器和控制器组成,运算器能够完成各种算术运算和逻辑运算操作,控制器用于控制计算机进行各种操作。 存储器是计算机系统中的“记忆”装置,其功能是存放程序和数据。按其功能可分为 RAM 和 ROM。 输入 /输出( I/O)接口是 CPU 与外 部设备进行信息交换的部件。 总线是将 CPU、存储器和

2、I/O 接口等相对独立的功能部件连接起来,并传送信息的公共通道。 1-3 什么叫单片机?其主要由哪几部分组成? 答:单片机( Single Chip Microcomputer)是指把 CPU、 RAM、 ROM、定时器 /计数器以及 I/O 接口电路等主要部件集成在一块半导体芯片上的微型计算机。 1-4 在各种系列的单片机中,片内 ROM 的配置有几种形式? 用户应根据什么原则来选用? 答:单片机片内 ROM 的配置状态可分四种: ( 1)片内掩膜( Mask) ROM 型单片机(如 8051),适合于定型大批量应用产品的生产; ( 2)片内 EPROM 型单片机(如 8751),适合于研制

3、产品样机; ( 3)片内无 ROM 型单片机(如 8031),需外接 EPROM,单片机扩展灵活,适用于研制新产品; ( 4) EEPROM(或 Flash ROM)型单片机(如 89C51),内部程序存储器电可擦除,使用更方便。 1-5 写出下列各数的另两种数制的表达形式(二、十、十六进制) 1100010 1001110 01000111 10 01001001 111111 01101100 11101 101 11010111 98 20039 585 16236 29 1495 62H 4E47H 249H 3F6CH 1D 5D7 1-6 写出下列各数的 BCD 参与: 59: 0

4、1011001, 1996: 0001100110010110, 4859.2: 0100100001011001.0010 389.41: 001110001001.01000001 第二章 MCS-51 单片机的硬件结构 2-1 8052 单片机片内包含哪些主要逻辑功能部件? 答: 8052 单片机片内包括: 8 位中央处理器 CPU 一个 片内振荡器及时钟电路 256B 数据存储器 RAM。 8KB 片内程序存储空间 ROM 21 个特殊功能寄存器 SFR 4 个 8位并行 I/O 端口( 32 条线) 1 个可编程全双工串行口 可寻址 64KB 的外部程序存储空间和外部数据存储空间 3

5、 个 16位的定时器 /计数 器 6 个中断源、 2个优先级嵌套中断结构 2-2 8052 的存储器分哪几个空间?如何区别不同空间的寻址? 答: 8052 的存储器分为 6个编址空间: 片内 ROM 的容量为 8KB,其地址为 0000H1FFFH; 可扩展片外 ROM 的容量为 64KB,其地址为 0000HFFFFH; 片内 RAM 的容量为 256B,其地址为 00HFFH 分为二块: 地址 00H7FH 共128B 为片内 RAM 低区, 另 128B 为片内 RAM 高区,其地址空间为 80HFFH,其地址空间与 SFR 功能寄存器地址重叠; 可扩展片外 RAM 的容量为 64KB,

6、其地址为 0000H1FFFH; 特殊功能寄存器 SFR 的空间为 128B,其地址为 80HFFH,但实际只定义了26B 单元,这 26B 单元分散在 80HF0H。 程序存储器和数据存储器在逻辑上是完全分开的。 CPU 通过指令 MOVC 访问程序存储器。当 8052 第 31脚 EA 接高电平时, CPU将从片内程序存储器 0000H 单元开始执行,当 PC值超出片内程序存储空间,即大于 1FFFH 时,会自动转向片外程序存储空间。当 EA 接低电平时, CPU 将从片外程序存储器 ROM 的 0000H 单元开始执行。 CPU 通过 MOV 指令访问片内数据存储空间 RAM,低区 12

7、8B 地址空间 00H7FH中地址为 00H1FH 这 32 个单元分为 4 个工作寄存器组,分别用 R0R7 表示,通过工作寄存器指令进行访 问。片内 RAM 中的 20H2FH 单元除可作为一般字节寻址单元使用外,这 16 个单元共 128 位中的每一位又可单独作为软件触发器使用,具有位寻址功能,其位地址范围为 00H7FH;对片内高区 128B 寻址只能用寄存器间接寻址,而对特殊功能寄存器建起必须使用直接寻址。 CPU 通过指令 MOVX 访问片外数据存储器。 2-3 DPTR 的作用是什么?它由哪几个寄存器组成? 答:相对于地址指针, DPTR 被称为数据指针,但实际上 DPTR 中存

8、放的是一个 16 位的地址,作为访问程序存储器和外部数据存储器的地址指针。当对 64KB外部数据 存储器空间寻址时,作为间址寄存器使用,而在访问程序存储器时,作为基址寄存器使用。 DPTR是一个 16位的特殊功能寄存器,由两个 8位寄存器 DPH、DPL 组成,使用 SFR 中的 82H 和 83H 单元。 2-4 简述布尔处理存储器的空间分配。 答:在单片机中位处理又称布尔处理,允许按位处理的存储器称为布尔处理存储器。其地址空间由二部分构成:一部分是片内 RAM 中字节地址为 20H2FH的 16 字节的 128 个位,这些位编址为 00H7FH;另一部分在特殊寄存器中,其地址码能被 8整除

9、的 12 个特殊功能寄存器可以按位寻址,但其中 4 个 未定义,一共有 92位可按位寻址。这二部分结合起来形成一个具有 220 位的位寻址空间。 2-5 8052 单片机设置 4 组工作寄存器,如何选择确定和改变当前工作寄存器? 答: 8052 片内数据存储器的 00H1FH 这 32 个单元分为 4 级作为 4个工作寄存器第 0组地址 00H07H,第一组 08H0FH,第二组 10H17H,第 3 组 18H1FH。每个工作寄存器都有 8 个单元,分别用 R0R7 表示。 4组寄存器中每一组都可能被选为 CPU的工作寄存器,这是通过程序状态字 PSW的 PSW.3(RS0)和 PSW.4(

10、RS1)两位的状态 来选择决定的。见下表: PSW.4(RS1) PSW.3(RS0) 当前使用的工作寄存器组 R0R7 0 0 0 组( 00H07H) 0 1 1 组( 08H0FH) 1 0 2 组( 10H17H) 1 1 3 组( 18H1FH) 通过程序改变 RS1 和 RS0 的状态,就可方便地更换工作寄存器组。 2-6 程序状态字寄存器 PSW 的作用是什么?常用的状态标志位有哪些位?作用分别是什么? 答: PSW 是一个 8 位的特殊功能寄存器,由一些标志位组成,用于存放程序运行中的各种状态信息。它可以进行位寻址。各位的作用如 下: Cy:进位标志位。在进行加(或减)法运算时

11、,若操作结果的最高位( D7位)有进位(或借位)时, Cy 由硬件置 1,否则 Cy 清 0。在进行位操作时, Cy又是位累加器,指令助记符用 C表示。 AC:辅助进位标志位。在进行加(或减)运算时,若操作结果的低半字节( D3位)向高半字节产生进位(或借位)时, AC位将由硬件自动置 1,否则 AC 位清0。 F0:用户标志位。用户根据需要对 F0 置位或复位,作为软件标志。 RS1 和 RS0:工作寄存器组选择控制位。由用户用软件改变 RS1 和 RS0 的状态,以选择内 RAM 中的哪组工作寄存器为当 前工作寄存器组。 OV:溢出标志位。当进行补码运算时,运算结果超出 128 127 范

12、围时,产生溢出,则 OV 自动置 1,否则 OV 清 0。 PSW.1:保留位。 8051 中未定义。 P:奇偶校验标志位。每条指令执行完后,该位始终跟踪累加器 A 中 1 的数目的奇偶性。如果 A中有奇数个 1,则 P 1;否则 P 0。 2-7 8052 单片机的 EA 引脚有何功能?在使用 8032 时, EA 引脚就如何处理? 答: 8052单片机的 31脚为 EA , EA 为访问外部或内部程序存储器控制信号。当 EA引脚接高电平且 PC值小于 1FFFH 时, CPU 访问内部程序存储器读取指令,当 EA引脚接低电平时, CPU 只访问外部等量齐观存储器读取指令。 在 8032 芯

13、片中没有内部程序存储器,因此, 8032 芯片的 31脚 EA 只能接地。 2-8 8052 内部 RAM 中低 128 B 单元划分为哪几个主要部分?各部分主要功能是什么? 答: 8052内部数据存储器 RAM 中低 128B 单元 地址空间 00H7FH 被划分为三个部分。第一部分 地址为 00H1FH 这 32个单元分为 4个工作寄存器组,分别用R0R7 表示,通过工作寄存器指令进行访问。片内 RAM 中的第二部分 20H2FH 单元除可作为一般字节寻址单元使用外,这 16 个单元共 128 位中的每一位又可单独作为软件触发器使用,具有位寻址功能,其位地址范围为 00H7FH;第三部分地

14、址 30H7FH,这部分存储区域可作为 8位数据缓冲区使用,一般地,用户把堆栈就设置在这部分区域。 2-9 8052 内部 RAM 中高 128B 单元与特殊功能寄存器区地址空间重叠,使用中是如何区分这两个空间的? 答:对 8052 片内高区( 80H0FFH) 128B 只能 采用寄存器间接寻址,而对特殊功能寄存器 SFR 建起必须采用直接寻址。 2-10 什么叫堆栈?堆栈指针 SP 的作用是什么? 答:堆栈是按照“先进后出,后进先出”的原则来存取数据的一个内部 RAM区域,这个存储器区域的一端是固定的(栈底),另一端是活动的(栈顶),每个存储单元是不能按字节任意访问的。 堆栈指针 SP 始

15、终指向栈顶单元,栈顶随着数据入栈和出栈上下浮动。 2-12 什么是时钟周期、机 器周期和指令周期? 答: ( 1)时钟周期(又称为振荡周期)是指振荡器产生一个振荡脉冲信号所用的时间,是振荡频率的倒数,称为拍节。 ( 2)机器周期是指 CPU 完成某一个规定操作所需的时间, 8051 单片机的一个机器周期包含 6 个状态,并依次表示为 S1 S6,每个状态分为 2 个节拍。因此一个机器周期包含 12 个时钟周期(振荡周期),依次表示为: S1P1、 S1P2、S2P1、 S6P1、 S6P2。 ( 3)指令周期是指 CPU 执行一条指令所需要的时间称为指令周期。 MCS-51单片机指令周期根据指

16、令的不同,可包含有 1 或 2或 4个 机器周期。 第三章 MCS-51 单片机指令系统 3-1 指出下列每一条指令的寻址方式及其完成的操作。 MOV 2FH,#40H ;立即寻址,将 40H 移入片内 2FH 单元 MOV A,2FH ;直接寻址,将片内 2FH 单元的数移入累加器 A MOV R1,#2FH ;立即寻址,将 2FH 移入当前寄存器组的 R1 单元 MOV A,R1 ;寄存器间接寻址,将寄存器 R1 中所存地址中的值移入累加器 A MOV 2FH,A ;隐含寻址,将累加器 A中的值移入片内 2FH 单元 3-2 内部 RAM的 4FH 单元,可用哪几种寻址方式?分别 举例说明

17、。 答: 直接寻址: MOV R1, 4FH 间接寻址: MOV R1, #4FH 寄存器间接寻址: MOV A, R1 3-3 指出下列各条指令中, 45H 代表什么? MOV A,#45H ;数值 MOV A,45H ;源地址 MOV 45H,46H ;目标地址 MOV 45H,#45H ;目标地址和数值 MOV C,45H ;源 地址 3-4 已知:( A) =7AH,(R0)=30H,( 30H) =0A5H,( PSW) =80H,请写出下列各条指令的执行结果: 答: PSW 的各位为 11110000,即 Cy=1,AC=1,F0=1,RS1=1,RS0=0,OV=0,P=0 (1

18、)SUBB A,30H 结果:( A) =D4H, CY=1, AC=0, OV=1, P=0 ( 2) SUBB A,#30H 结果:( A) =49H, CY=0, AC=0, OV=0, P=1 ( 3) ADD A, R0 结果:( A) =AAH, CY=0, AC=0, OV=1,P=0 ( 4) ADD A, 30H 结果:( A) =1FH, CY=1,AC=0, OV=0,P=1 ( 5) ADD A,#30H 结果:( A) =AAH, CY=0, AC=0, OV=1,P=0 ( 6) ADDC A, 30H 结果:( A) =20H, CY=1,AC=1,OV=0,P=

19、1 (7)SWAP A 结果:( A) =A7H,对标志位无影响 ( 8) XCHD A,R0 结果:( A) =75H,( 30H) =AAH,( R0) =AAH, P=1 ( 9) XCH A, 30H 结果:( A) =0A5H,( 30H) =7AH, P=0 ( 10) XCH A,R0 结果:( A) =30H,( R0) =7AH, P=0 ( 11) MOV A,R0 结果:( A) =0A5H, P=0 ( 12) XCH A,R0 结果:( A) =0A5H, (30H)=7AH, P=0 3-5 试分析以下程序段的执行结果: MOV SP,#3AH MOV A,#20H

20、 MOV B,#30H PUSH ACC PUSH B POP ACC POP B 结果:( SP) =3AH,( A) =30H,( B) =20H,( 3BH) =20H,( 3CH) =30H 3-6 指出下列指令的执行结果,并写出每条指令的机器码。 MOV 30H,#52H ;(30H)=52H 01110101(753052H) MOV A,#70H ;(A)=70H 01110100(7470H) MOV A,30H ;(A)=52H 11100101(E530H) MOV R0,#30H ;(R0)=30H 10101000(7830H) MOV A,R0 ;A=52H 1110

21、0010(E6H) 3-7 分析下列指令的执行结果,并写出每条指令的机器码。 MOV A,#70H ;(A)=70H 01110100(74H) MOV DPTR,#2030H ;(DPTR)=2030H 10010000(90H) MOVX DPTR,A ;(2030H)=70H 11110000(F0H) MOV 30H,#40H ;(30H)=40H 01110101(75H) MOV R0,#30H ;(R0)=30H 01111000(78H) MOV A,R0 ;(A)=40H 11100110(E6H) 3-8 设 R0 的内容为 32H, A的内容为 48H,内部 RAM 的

22、32H 单元内容为 80H,40单元内容为 08H,指出在执行下列程序段后上述各单元内容的变化。 MOV A,R0 MOV R0,40H MOV 40H,A MOV R0,#35H 结果: (R0)=35H,(A)=80,(32H)=08H,(40H)=80H 3-9 已知: (A)=81H,(R0)=20H,(20H)=35H,指出执行完下列程序段后 A 的内容。 ANL A,#17H ;( A) =00000001 ORL 20H,A ;(20H)=00110101 XRL A,R0 ;(A)=00110100 CPL A ;(A)=11001011 结果: (A)=CBH 3-10 用指

23、令实现下述数据传送 : (1)内部 RAM20H 单元送内部 RAM40H 单元。 答: MOV 40H,20H (2)外部 RAM20H 单元送 R0 寄存器。 答: MOV R1,#20H MOVX A,R1 MOV R0,A (3)外部 RAM20H 单元送内部 RAM20H 单元 答: MOV R1,#20H MOVX A,R1 MOV 20H,A (4)外部 RAM1000H 单元送内部 RAM20H 单元 答: MOV DPTR,#1000H MOVX A,DPTR MOV 20H,A (5)外部 ROM1000H 单元送内部 RAM20H 单元。 答: MOV DPTR,#100

24、0H MOV A,#00H MOVC A,A+DPTR MOV 20H,A (6) 外部 ROM1000H 单元送外部 RAM20H 单元。 答: MOV DPTR,#1000H MOV A,#00H MOVC A,A+DPTR MOV R1,#20H MOVX R1,A 3-11 已知 16 位二进制数的高 8 位和低 8 位分别存放在 20H 和 21H 单元,请编写将其右移一们的程序。 CLR C MOV A,20H RRC A MOV 20H,A MOV A,21H RRC A MOV 21H,A 3-12 编程实现内部 RAM R0R7 的内容传递到 20H27H 单元。 3-13

25、试编程进行两个 16 位数的减法, 6F5DH-13B4H,结果存入内部 RAM 的30H 和 31H 单元, 30H 存放差的低 8位。 CLR C MOV A,#5DH SUBB A,#B4H MOV 30H,A MOV A,#6FH SUBB A,13H MOV 31H,A 3-14 编写程序,若累加器 A 的内容分别满足下列条件时,程序则至 LABEL存储单元,设 A 中存放的是无符号数。 A=10 A0 (A)=10 CJNE A,#10H,LAB JNZ LABEL MOV R0,A LAB:JNC LABEL MOV A,#10 . . CJNE A,R0,LAB LABEL:

26、LABEL: LAB:JNC LABEL . LABEL: 3-15 已知 ( SP) =25H,(PC)=2345H,(24H)=12H,(25H)=34H,(26H)=56H.问此时执行 “ RET” 指令后 , (SP)=?,(PC)=? 答 : (SP)=23H,(PC)=3412H 执行 RET 时, PCH (SP),SP SP-1,PCL (SP),SP SP-1 3-16 若 ( sp) =25H,(PC)=2345H,标号 LABEL 所在的地址为 3456H, 问执行调用指令 “ LCALL LABEL” 后 , 堆栈指针和堆栈内容发生什么变化 ?( PC) 的值等于什么

27、? 答:最后堆栈指针 SP=27H。堆栈指针 SP=26H 处 SP 内容为 45H,指针 SP=27H处内容为 23H。最后程序计数器指针 PC=3456H。 执行 LCALL 后, PC PC+3, SP SP+1,(SP) PCL,SP SP+1,( SP) PCH,PC addr16。 3-17 试编写程序,查找在内部 RAM 的 20H50H 单元中是否有 0AAH 这一数据。若有,则将 51H 单元置 01H,若 未找到,则将 51H 单元置 00H。 MOV 51H,#00H ;先设没找到 MOV R0,#20H ;起始地址 LOOP: MOV A,R0 ;取出数字 CJNE A

28、,#0AAH,NEXT ;不相等就跳转 INC 51H ;相等将 51 单元置 1 SJMP EEE ;找到转去结束 NEXT: INC R0 ;下一个地址 CJNE R0,#51H,LOOP ;地址没找完就继续 EEE: SJMP $ ;暂停 3-18 试 编写程序,统计在外部 RAM 2000H205FH 单元中出现 00H 的次数,并将统计结果丰收入内部 RAM 50H 单元。 MOV R0,#00H ;RO 设为计数器,初始为 0 MOV DPTR,#2000H ;置片外 RAM 起始地址 MOV R1,#60H ;置传送数据个数 LOOP: MOVX A,DPTR ;外部 RAM 单

29、元内容送 A JNZ NEXT ;传送数据不为 0 跳转 INC R0 ;传送数据为 0,计数器加 1 NEXT: INC DPTR ;下一个地址 DJNZ R1,LOOP ;地址没 找完就继续 MOV 50H,R0 ;统计结果存入 50H 单元 SJMP $ ;暂停 3-19 已知 R3 和 R4 中存有一个 16位的二进制数,高位在 R3 中代位在 R4中。请编程将其求补,并存回原处。 答:首先假设 R3、 R4 中是原码,根据原码求补的方法当最高位( R3 的 D7位)为 0时表示为正数,那么补码与原码相同,当最高位为 1时,表明是负数,负数的补码是最高位不变,其余位取反加 1. MOV

30、 A,R3 JB ACC.7,NEG SJMP $ NEG: MOV A,R4 CPL A CLR C ADD A,#01H MOV R4,A MOV A,R3 CPL A ADDC A,#00H SETB ACC.7 MOV R3,A SJMP $ 3-20 编写一个程序,把片外 RAM 从 2000H 开始存放的 10 个数传送到片内RAM 30H 开始 单元。 START: MOV R0,#30H MOV R1,#10H MOV DPTR,#2000H LOOP: MOVX A,DPTR MOV R0,A INC R0 INC DPTR DJNZ R1,LOOP SJMP $ 3-21

31、试编程将内部 RAM 的 30H 至 4FH 单元的内容分别传送到外部 RAM 的2040H205FH 单元。 START: MOV R0,#30H MOV R1,#20H MOV DPTR,#2040H LOOP: MOV A,R0 MOVX DPTR,A INC DPTR INC R0 DJNZ R1,LOOP SJMP $ 3-22 若外部 RAM 的 ( 2000H) =X,( 2001H) =Y,编程实现 Z=3X+2Y,结果存入内部 RAM 的 20H 单元 , 设 Z=255。 START: MOV DPTR,#2000H MOVX A,DPTR MOV B,#03H MUL AB MOV R0,A INC DPTR MOVX A,DPTR ADD A,A ADD A,R0 MOV 20H,A 3-23 试对内部 RAM 20H 单元的内容进行判断,若为正数,转向 2100H 若为负数 ,转向 2200H;若为 0,转向 2300H。 START: MOV A,20H JB ACC.7,NEG ;为负数

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。