单片机课后习题答案64060[学习类别]_第1页
单片机课后习题答案64060[学习类别]_第2页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、分享参考# 习习 题题 答答 案案 习题 0 1单片机是把组成微型计算机的各功能部件即(微处理器(微处理器(CPU)、(存储器(存储器(ROM 和和 RAM)、(总线总线)、(定时器定时器/计数器计数器)、(输入输入/输出接口(输出接口(I/O 口)口)及(中断系中断系 统统)等部件集成在一块芯片上的微型计算机。 2什么叫单片机?其主要特点有哪些? 将微处理器(CPU) 、存储器(存放程序或数据的 ROM 和 RAM) 、总线、定时器/计数 器、输入/输出接口(I/O 口) 、中断系统和其他多种功能器件集成在一块芯片上的微型计机, 称为单片微型计算机,简称单片机。 单片机的特点:可靠性高、便于

2、扩展、控制功能强、具有丰富的控制指令、低电压、 低功耗、片内存储容量较小、集成度高、体积小、性价比高、应用广泛、易于产品化等。 3. 单片机有哪几个发展阶段? (1)第一阶段(19741976 年):制造工艺落后,集成度低,而且采用了双片形式。 典型的代表产品有 Fairchild 公司的 F8 系列。其特点是:片内只包括了 8 位 CPU,64B 的 RAM 和两个并行口,需要外加一块 3851 芯片(内部具有 1KB 的 ROM、定时器/计数器和 两个并行口)才能组成一台完整的单片机。 (2)第二阶段(19771978 年):在单片芯片内集成 CPU、并行口、定时器/计数器、 RAM 和

3、ROM 等功能部件,但性能低,品种少,应用范围也不是很广。典型的产品有 Intel 公司的 MCS-48 系列。其特点是,片内集成有 8 位的 CPU,1KB 或 2KB 的 ROM,64B 或 128B 的 RAM,只有并行接口,无串行接口,有 1 个 8 位的定时器/计数器,中断源有 2 个。 片外寻址范围为 4KB,芯片引脚为 40 个。 (3)第三阶段(19791982 年): 8 位单片机成熟的阶段。其存储容量和寻址范围 增大,而且中断源、并行 I/O 口和定时器/计数器个数都有了不同程度的增加,并且集成有 全双工串行通信接口。在指令系统方面增设了乘除法、位操作和比较指令。其特点是,

4、片 内包括了 8 位的 CPU,4KB 或 8KB 的 ROM,128B 或 256B 的 RAM,具有串/并行接口, 2 个或 3 个 16 位的定时器/计数器,有 57 个中断源。片外寻址范围可达 64KB,芯片引 脚为 40 个。代表产品有 Intel 公司的 MCS-51 系列,Motorola 公司的 MC6805 系列,TI 公 司的 TMS7000 系列,Zilog 公司的 Z8 系列等。 (4)第四阶段(1983 年至今): 16 位单片机和 8 位高性能单片机并行发展的时代。 16 位机的工艺先进,集成度高,内部功能强,运算速度快,而且允许用户采用面向工业控 制的专用语言,其

5、特点是,片内包括了 16 位的 CPU,8KB 的 ROM,232B 的 RAM,具有 串/并行接口,4 个 16 位的定时器/计数器,有 8 个中断源,具有看门狗(Watchdog) ,总线 控制部件,增加了 D/A 和 A/D 转换电路,片外寻址范围可达 64KB。代表产品有 Intel 公司 的 MCS-96 系列,Motorola 公司的 MC68HC16 系列,TI 公司的 TMS9900 系列,NEC 公司 的 783系列和 NS 公司的 HPC16040 等。然而,由于 16 位单片机价格比较贵,销售量不 大,大量应用领域需要的是高性能、大容量和多功能的新型 8 位单片机。 近年

6、来出现的 32 位单片机,是单片机的顶级产品,具有较高的运算速度。代表产品有 Motorola 公司的 M68300 系列和 Hitachi(日立)公司的 SH 系列、ARM 等。 4在实际应用中,如何选择单片机的类型? 选择原则:主要从指令结构、运行速度、程序存储方式和功能等几个方面选择单片机。 MCS-51 为主流产品。 Motorola 是世界上最大的单片机厂商。品种全、选择余地大、新产品多。其特点是噪 声低,抗干扰能力强,比较适合于工控领域及恶劣的环境。 Microchip 单片机是市场份额增长较快的单片机。它的主要产品是 PIC 系列 8 位单片机。 其特点是运行速度快,低价位,适用

7、于量大、档次低、价格敏感的产品。 分享参考# 美国德州仪器(TI)公司生产的 MSP430 系列单片机是一种特低功耗的 Flash 微控制 器。主要用于三表及超低功耗场合。 在嵌入式系统低端的单片机领域,Intel 公司的 MCS-51 形成了既具有经典性又不乏生 命力的一个单片机系列。许多半导体厂家、电器公司以 MCS-51 系列中的 8051 为基核,推 出了许多兼容性的 CHMOS 单片机-80C51 系列。 此外,还有 Zilog、EM78、Senix、NEC、Epson、NS、三星、富士通、华邦、 Philips、ARM 等单片机。 5试比较 MCS-51, MSP430, EM78

8、, PIC, M6800 及 AVR 等系列单片机的特点。 MCS-51 为主流产品。 MSP430 的功能较强。是一种特低功耗的 Flash 微控制器。主要用于三表及超低功耗场 合。 EM78 系列单片机采用高速 CMOS 工艺制造,低功耗设计为低功耗产品,价格较低。 具有三个中断源、R-OPTION 功能、I/O 唤醒功能、多功能 I/O 口等。具有优越的数据处理 性能,采用 RISC 结构设计。 PIC 系列 8 位单片机是 Microchip 公司的产品。CPU 采用 RISC 结构,运行速度快,价 格低适于用量大、档次低、价格敏感的产品。 Motorola 是世界上最大的单片机生产厂

9、家之一,品种全、选择余地大、新产品多。其 特点是噪声低,抗干扰能力强,比较适合于工控领域及恶劣的环境。 AVR 是增强 RISC 内载 Flash 的单片机,单片机内部 32 个寄存器全部与 ALU 直接连 接,突破瓶颈限制,每 1MHz 可实现 1MIPS 的处理能力,为高速、低功耗产品。端口有较 强的负载能力,可以直接驱动 LED。支持 ISP、IAP,I/O 口驱动能力较强。 6举例说明生活中应用单片机的例子。 生活中单片机无处不在:如洗衣机的控制主板、太阳能的温度控制器,电动车的控制 器,电磁炉、 (高级)电冰箱的控制系统、手机、电视遥控器、空调、洗衣机、微波炉、冰 箱、热水器、电子称

10、、电子表、计算器、汽车钥匙、可视门禁、公交车报站器、公交车刷 卡器、红绿灯控制器等等。欧美日等国家,一个家庭中所拥有的单片机数量平均到 100- 120 颗。 单片机有着广泛的应用领域 : (1) 单片机在智能仪器仪表中的应用; (2) 单片机在工业测控中的应用; (3) 单片机在计算机网络和通讯技术中的应用; (4) 单片机在日常生活及家电中的应用; (5) 单片机在办公自动化方面。 目前单片机渗透到我们生活的各个领域,几乎很难找到 哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各 种仪表的控制,计算机的网络通讯与数据传输,工业自动 化过程的实时控制和数据处理,广泛使用的各种智能 IC 卡

11、, 民用豪华轿车的安全保障系统,录象机、摄象机、全自动 洗衣机的控制,以及程控玩具、电子宠物、自动控制领域 的机器人、智能仪表、医疗器械等等。 1MCS51 单片机是基于(Harvard(哈佛)(哈佛) )结构的,其特点是(程序存储器和数据存储程序存储器和数据存储 器是分开的器是分开的) 。 2. CPU 由(运算器运算器)和(控制器控制器)组成。 3. 若不使用 MCS-51 片内程序存储器,引脚(EA)必须接地.。 分享参考# 4. 在 MCS-51 单片机中,如果采用 6MHz 晶振,一个机器周期为(2us) 。 5. 8051 内部 RAM 位寻址区的单元地址范围为(20H2FH) ,

12、其位地址范围为 (00H7FH) 。 6. 8051 芯片的引脚可以分为三类:(电源线电源线) 、 (端口线端口线)和(控制线控制线) 。 7. 若 A 中的内容为 63H,那么,P 标志位的值为(0) 。 8. 8031 单片机复位后,R4 所对应的存储单元的地址为(04H) ,因上电时 PSW=(00H) 。 这时当前的工作寄存器区是(0)组工作寄存器区。 9. 8051 型单片机内部有( A )的 ROM。 A:4KB B:6KB C:256B D:8KB 10. MCS-51 上电复位后,SP 的内容应是( B ) 。 A:00H B:07H C:60H D:70H 11. PC 用来

13、存放( C ) 。 A:指令 B:上一条的指令地址 C:下一条的指令地址 D:正在执行的指令地址 12. 采用 8031 单片机必须扩展( B ) 。 A:数据存储器 B:程序存储器 C:I/O 接口 D:显示接口 13. PSW=18H 时,则当前工作寄存器是( D ) 。 A:0 组 B:1 组 C:2 组 D:3 组 14MCS-51 系列单片机在片内集成了哪些主要逻辑功能部件?各个逻辑部件的主要功能 是什么? MCS-51 单片机在片内集成了中央处理器(CPU) 、程序存储器(ROM) 、数据存储器 (RAM) 、定时器/计数器、并行 I/O 接口、串行 I/O 接口、中断系统等几大单

14、元。 CPU 是整个单片机的核心部件,由运算器和控制器组成。运算器可以完成算术运算和 逻辑运算,其操作顺序在控制器控制下进行。控制器是由程序计数器 PC(Program Counter) 、指令寄存器 IR(Instruction Register) 、指令译码器 ID(Instruction Decoder) 、定 时控制逻辑和振荡器 OSC 等电路组成。CPU 根据 PC 中的地址将欲执行指令的指令码从存 储器中取出,存放在 IR 中,ID 对 IR 中的指令码进行译码,定时控制逻辑在 OSC 配合下 对 ID 译码后的信号进行分时,以产生执行本条指令所需的全部信号。 程序存储器(ROM)

15、用于存储程序、常数、表格等。 数据存储器(RAM)用于存储数据。 8051 内部有两个 16 位可编程序的定时器/计数器 T0 和 T1,均为二进制加 1 计数器。 可用于定时和对外部输入脉冲的计数。 8051 的中断系统主要由中断允许控制器 IE 和中断优先级控制器 IP 等电路组成。可实 现对 5 个中断源的管理。8051 的中断系统主要由中断允许控制器 IE 和中断优先级控制器 IP 等电路组成。其中,IE 用于控制 5 个中断源中哪些中断请求被允许向 CPU 提出,哪些 中断源的中断请求被禁止;IP 用于控制 5 个中断源的中断请求的优先权级别。 I/O 接口是 MCS-51 单片机对

16、外部实现控制和信息交换的必经之路,用于信息传送过程 中的速度匹配和增加它的负载能力。可分为串行和并行 I/O 接口。 中断系统用于处理中断过程。 15. MCS-51 系列单片机的引脚中有多少根 I/O 线?它们与单片机对外的地址总线和数据总 线之间有什么关系?其地址总线和数据总线各有多少位?对外可寻址的地址空间有多大? 80C51 单片机有 4 个 I/O 端口,每个端口都是 8 位双向口,共占 32 根引脚。每个端口 都包括一个锁存器(即专用寄存器 P0P3) 、一个输入驱动器和输入缓冲器。通常把 4 个 端口称为 P0P3。在无片外扩展的存储器的系统中,这 4 个端口的每一位都可以作为双

17、向 通用 I/O 端口使用。在具有片外扩展存储器的系统中,P2 口作为高 8 位地址线,P0 口分时 作为低 8 位地址线和双向数据总线。对外可寻址空间为 64KB。 16. 8051 单片机的控制总线信号有哪些?各有何作用? 控制线一共有 6 条: (1)ALE/:地址锁存允许/编程线,配合 P0 口引脚的第二功能使用。在访问片外存PROG 分享参考# 储器时,8051CPU 在 P0.7P0.0 引脚上输出片外存储器低位地址的同时在 ALE/ 上输出一个高电位脉冲,用于把这个片外存储器低位地址锁存到外部专用地址锁PROG 存器,以便空出 P0.7P0.0 引脚线去传送随后而来的片外存储器读

18、写数据。在不访问片外 存储器时,8051 自动在 ALE/上输出频率为 fosc/6 的脉冲序列。该脉冲序列可用作外PROG 部时钟源或作为定时脉冲源使用。 (2)/Vpp:允许访问片外存储器编程电源线,可以控制 8051 使用片内 ROM 还是使EA 用片外。若,则允许使用片内 ROM;若则允许使用片外 ROM。EAEA (3):片外 ROM 选通线,在执行访问片外 ROM 的指令 MOVC 时,8051 自动在PSEN 上产生一个负脉冲,用于为片外 ROM 芯片的选通。其他情况下线均为高电平PSENPSEN 封锁状态。 (4)RST/VPD:复位备用电源线,可以使 8051 处于复位工作状

19、态。 17. 什么是指令?什么是程序?简述程序在单片机中的执行过程。 指令:人为输入计算机,由计算机识别并执行一步步操作的命令的形式称为指令。 程序:一系列指令的有序集合称为程序。 程序在计算机中是按序执行的,CPU 通过程序计数器 PC 控制程序的执行顺序,一般 情况下程序是按序执行的,当执行转移、调用、返回等指令时,程序转移到相应的目的地 址处执行。CPU 根据程序计数器 PC 中的地址将欲执行指令的指令码从存储器中取出,存 放在 IR 中,ID 对 IR 中的指令码进行译码,定时控制逻辑在 OSC 配合下对 ID 译码后的信 号进行分时,产生执行本条指令所需的全部信号,完成本条指令的执行

20、。 18. 8051 单片机的存储器组织采用何种结构?存储器地址空间如何划分?各地址空间的地 址范围和容量如何?在使用上有何特点? (1)80C51 在结构上的特点 80C51 采用将程序存储器和数据存储器截然分开,分别寻址的结构,称为 Harvard 结 构。 (2)在物理和逻辑上的地址空间 存储器上设有 4 个存储器空间:片内程序存储器、片外程序存储器、片内数据存储器、 片外数据存储器。 在逻辑上有 3 个存储器地址空间:片内、片外统一的 64KB 程序存储器地址空间,片 内 256B 数据存储器地址空间,片外 64KB 的数据存储器地址空间。 (3)访问格式 访问片内 RAM 采用 MO

21、V 格式 访问片外 RAM 采用 MOVX 格式 19. 8051 片内 RAM 低 128 单元划分为哪三个主要部分?各部分主要功能是什么? 片内 RAM 低 128 单元划分及主要功能如下: (1)工作寄存器组(00H1FH) 这是一个用寄存器直接寻址的区域,内部数据 RAM 区的 031,共 32 个单元。它是 4 个通用工作寄存器组,每个组包含 8 个 8 位寄存器,编号为 R0R7。 (2)位寻址区(20H2FH) 16 个字节单元,共包含 128 位,这 16 个字节单元既可以进行字节寻址,又可以实现 位寻址。主要用于位寻址。 (3)堆栈与数据缓冲区(30H7FH) 用于设置堆栈、

22、存储数据。 20. 8051 单片机的片内、片外存储器如何选择? 程序存储器通过/Vpp 引脚选择。若,则允许使用片内 ROM;若EAEAEA 则允许使用片外 ROM。 数据存储器通过指令区分:访问片内 RAM 采用 MOV 指令,访问片外 RAM 采用 MOVX 指令。 21. 何为堆栈指针?堆栈操作有何规定? 堆栈是一个特殊的存储区。主要功能是暂时存放数据和地址,通常用来保护断点和现 分享参考# 场。它的特点是按照“先进后出”的存取数据。堆栈指针 SP 是一个 8 位寄存器,是用于指示 堆栈的栈顶地址的寄存器,它决定了堆栈在内部 RAM 中的物理位置。 22. 8051 单片机有多少个特殊

23、功能寄存器?这些特殊功能寄存器能够完成什么功能?特殊 功能寄存器中的哪些寄存器可以进行位寻址? 8051 有 21 个特殊功能寄存器(PC 除外) ,它们被离散地分布在内部 RAM 的 80HFFH 地址单元中,共占据了 128 个存储单元,其中有 83 位可以位寻址。特殊功能寄 存器 SFR 的分布和功能见下表。 特殊功能寄存器功 能 名 称物 理 地 址可否位寻址 B寄存器 BF0H可以 A(ACC)累加器E0H可以 PSW程序状态字(标志寄存器)D0H可以 IP中断优先级控制寄存器B8H可以 P3P3 口数据寄存器B0H可以 IE中断允许控制寄存器A8H可以 P2P2 口数据寄存器A0H

24、可以 SBUF串行口发送/接收数据缓冲寄存器99H不可以 SCON串行口控制寄存器98H可以 P1P1 口数据寄存器90H可以 TH1T1 计数器高 8 位寄存器8DH不可以 TH0T0 计数器高 8 位寄存器8CH不可以 TL1T1 计数器低 8 位寄存器8BH不可以 TL0T0 计数器低 8 位寄存器8AH不可以 TMOD定时器/计数器方式控制寄存器89H不可以 TCON定时器控制寄存器88H可以 PCON电源控制寄存器87H不可以 DPH数据指针寄存器高 8 位83H不可以 DPL数据指针寄存器低 8 位82H不可以 SP堆栈指针寄存器81H不可以 P0P0 口数据寄存器80H可以 23

25、. DPTR 是什么寄存器?它的作用是什么? 数据指针 DPTR 是 16 位的专用寄存器,它由两个 8 位的寄存器 DPH(高 8 位)和 DPL(低 8 位)组成。专门用来寄存片外 RAM 及扩展 I/O 口进行数据存取时的地址。编程 时,既可以按 16 位寄存器来使用,也可以按两个 8 位寄存器来使用(即高位字节寄存器 DPH 和低位字节寄存器 DPL) 。 DPTR 主要是用来保存 16 位地址,当对 64KB 外部数据存储器寻址时,可作为间址寄 存器使用, 24. 8051 单片机的 PSW 寄存器各位标志的意义如何? 程序状态字 PSW 是 8 位寄存器,用于存放程序运行的状态信息

26、,PSW 中各位状态通 常是在指令执行的过程中自动形成的,但也可以由用户根据需要采用传送指令加以改变。 各个标志位的意义如下: PSW.7(Cy):进位标志位。 PSW.6(AC):辅助进位标志位,又称为半进位标志位。 PSW.5(F0):用户标志位。 PSW.4、PSW.3(RS1 和 RS0):寄存器组选择位。 PSW.2(OV):溢出标志位。 PSW.1(空缺位):此位未定义。 PSW.0(P):奇偶校验位。 分享参考# 25. 开机复位后,CPU 使用的是哪组工作寄存器(R0-Rn)?它们的地址是什么?CPU 如何 确定和改变当前工作寄存器组(R0-Rn)? 开机复位后,CPU 使用的

27、是第组工作寄存器。它们的地址是 00H07H。CPU 通过 对程序状态字 PSW 中 RS1 和 RS0 的设置来确定和改变当前工作寄存器组。 26. 8051 单片机的片内、片外存储器如何选择? 程序存储器通过/Vpp 引脚选择。若,则允许使用片内 ROM;若EAEAEA 则允许使用片外 ROM。 数据存储器通过指令区分:访问片内 RAM 采用 MOV 指令,访问片外 RAM 采用 MOVX 指令。 27. MCS-51 单片机的时钟周期、机器周期、指令周期是如何定义的?当主频为 12MHz 的 时候,一个机器周期是多长时间?执行一条最长的指令需要多长时间? 时钟周期又称为振荡周期,由单片机

28、内部振荡电路 OSC 产生,定义为 OSC 时钟频率 的倒数。时钟周期又称为节拍(用 P 表示) 。时钟周期是时序中的最小单位。一个状态有两 个节拍, 机器周期定义为实现特定功能所需的时间。MCS-51 的机器周期由 12 个时钟周期构成。 执行一条指令所需要的时间称为指令周期,指令周期是时序中的最大单位。由于机器 执行不同指令所需的时间不同,因此不同指令所包含的机器周期数也不尽相同。MCS-51 的指令可能包括 14 个不等的机器周期。 当 MCS-51 的主频为 12MHz 时,一个机器周期为 1s。执行一条指令需要的最长时间 为 4s。 28. 8051 单片机复位后,各寄存器的初始状态

29、如何?复位方法有几种? 8051 单片机复位后机器的初始状态,即各寄存器的状态:之外,复位操作还对其 它一些特殊功能寄存器有影响,它们的复位状态如下: 寄存器复位时内容寄存器复位时内容 PC0000TCON0000000B ACC00HTL000H B00HTH000H PSW00HTH100H SP07HTH100H DPTR0000HSCON00H P0P3FFHSBUF不确定 TMOD000000BPCON00000B 单片机复位方法有:上电自动复位,按键电平复位和外 部脉冲三种方式。 1. 指令格式是由(操作码操作码)和(操作数操作数)所组成,也可能仅由(操作码操作码)组成。 2. 在

30、 MCS51 中,PC 和 DPTR 都用于提供地址,但 PC 是为访问(程序程序)存储器提供地 址,而 DPTR 是为访问(数据数据)存储器提供地址。 3. 在变址寻址方式中,以( A )作变址寄存器,以( DPTR )或( PC )作基址寄 存器。 4. 假定累加器 A 中的内容为 30H,执行指令 1000H:MOVC A,A+PC 后,把程序存储 器( 1031H )单元的内容送入累加器 A 中。 5. 8051 执行完 MOV A,#08H 后,PSW 的( D )位被置位。 A:C B:F0 C:OV D:P 6. 指出下列指令中的源操作数的寻址方式 (1)MOV R0,#30H

31、立即寻址立即寻址 分享参考# (2)MOV A,30H 直接寻址直接寻址 (3)MOV A,R0 寄存器间接寻址寄存器间接寻址 (4)MOVX A,DPTR 寄存器间接寻址寄存器间接寻址 (5)MOVC A,A+DPTR 变址寻址变址寻址 (6)MOV P1,P2 直接寻址直接寻址 (7)MOV C,30H 位寻址位寻址 (8)MUL AB 寄存器寻址寄存器寻址 (9)MOV DPTR,#1234H 立即寻址立即寻址 (10)POP ACC 寄存器间接寻址寄存器间接寻址 7. 指出下列各指令在程序存储器中所占的字节数 (1)MOV DPTR,#1234H 3 字节字节 (2)MOVX A, D

32、PTR 1 字节字节 (3)LJMP LOOP 3 字节字节 (4)MOV R0,A 1 字节字节 (5)AJMP LOOP 2 字节字节 (6)MOV A,30H 2 字节字节 (7)SJMP LOOP 2 字节字节 (8)MOV B,#30H 2 字节字节 88051 单片机指令系统按功能可分为几类?具有几种寻址方式?它们的寻址范围如 何? MCS-51 单片机指令系统按功能可分为 5 类: (1)数据传送指令 (2)算术运算指令 (3)逻辑运算和移位指令 (4)控制转移指令 (5)位操作指令 MCS-51 单片机的指令系统提供了七种寻址方式,其对应的寻址范围如下表: 9访问特殊功能寄存器

33、和外部数据存储器应采用哪种寻址方式? 访问特殊功能寄存器,应采用直接寻址、位寻址方式。 访问外部数据存储器,应采用寄存器间接寻址方式。 在 0255B 范围内,可用寄存器 R0、R1 间接寻址: MOVX A,R0 或 MOVX A,R1 MOVX R0,A 或 MOVX R1,A 在 064KB 范围内,可用 16 位寄存器 DPTR 间接寻址: MOVX A,DPTR MOVX DPTR,A 10“DA A”指令的作用是什么?怎样使用? 寻址方式寻址方式使用的变量使用的变量寻址范围寻址范围 立即寻址立即数 直接寻址 程序存储器 ROM; 内部 RAM 低 128 个字节;特殊功能寄存器 S

34、FR 位地址空间 寄存器寻址R0R7;A、B、DPTR、C 四组通用寄存器, A、B、DPTR、C R0、R1、SP内部 RAM 寄存器间接寻址 R0、R1、DPTR外部 RAM 变址寻址A+PC、A+DPTR程序存储器 相对寻址PC+偏移量程序存储器 位寻址 内部 RAM 低 128B 位寻址区 可位寻址的特殊功能寄存器 SFR 位 分享参考# 这条指令是在进行 BCD 码加法运算时,跟在“ADD”和“ADDC”指令之后,用来对 BCD 码的加法运算结果自动进行修正的,使其仍为 BCD 码表达形式。 在计算机中,遇到十进制调整指令时,中间结果的修正是由 ALU 硬件中的十进制修正 电路自动进

35、行的。用户不必考虑何时该加“6”,使用时只需在上述加法指令后面紧跟一条 “DA A”指令即可。 11片内 RAM 20H2FH 单元中的 128 个位地址与直接地址 00H7FH 形式完全相同,如 何在指令中区分出位寻址操作和直接寻址操作? 位寻址是直接寻址方式的一种。虽然内部 RAM 位寻址区的位地址范围 00H7FH 与 低 128 个单元的单元地址范围 00H7FH 形式完全相同,但是在应用中可以通过以下的方 法区分: 1.通过指令操作码(指令的类型)区分: 位操作只有 17 条指令,位寻址的操作只适用于下列位指令,而直接寻址操作对这 些指令是无效的。 MOV C,bit CPL bit

36、 (C) JB bit,rel MOV bit,C ORL C,bit (/bit) JNB bit,rel CLR bit (C) ANL C,bit (/bit) JC rel SETB bit (C) JBC bit,rel JNC rel 位操作只有 MOV、 CLR 、SETB、 CPL 、ORL、 ANL 、JB 、JNB、 JBC、 JC、 JNC 几种操作码,其中:JB、JNB、JBC、JC、JNC 是位寻址特有的。 2. 当指令操作码一样时,可通过操作数的表现形式来区分。直接位地址的表示方法有: (1)直接使用位地址形式。如:MOV 00H, C (2)字节地址加位序号的形式

37、。如:MOV 20H.0, C (3)位的符号地址(位名称)的形式。如:ANL C, P (4)字节符号地址(字节名称)加位序号的形式。如:CPL PSW.6 3. 可通过指令中的累加器区分: 位操作中的累加器为 C,单元操作中的累加器为 A。 12SJMP, AJMP 和 LJMP 指令在功能上有何不同? 指令的转移范围不同。 SJMP 是 256B 范围内的相对转移指令,AJMP 是 2KB 范围内的无条件短跳转指令,LJMP 是 64KB 范围内的无条件长跳转指令。 13在“MOVC A, A+DPTR”和“MOVCA, A+PC”中,分别使用了 DPTR 和 PC 作基址, 请问这两个

38、基址代表什么地址? 使用中有何不同? 使用A+DPTR 基址变址寻址时,DPTR 为常数且是表格的首地址,A 为从表格首址 到被访问字节地址的偏移量。 使用A+PC 基址变址寻址时,PC 仍是下条指令首地址,而 A 则是从下条指令首地址 到常数表格中的被访问字节的偏移量。 14设片内 RAM 中的(40H)=50H,写出当执行下列程序段后寄存器 A 和 R0,以及片内 RAM 中 50H 和 51H 单元的内容为何值? MOV A, 40H MOV R0, A MOV A, #00 MOV R0, A MOV A, #30H MOV 51H, A 结果为:(A)30H (R0)=50H (50

39、H)00H (51H)30H 15设堆栈指针(SP)=60H,片内 RAM 中的(30H)=24H, (31H)=10H。执行下列程 序段后,61H, 62H, 30H, 31H, DPTR 及 SP 中的内容将有何变化? PUSH 30H PUSH 31H 分享参考# POP DPL POP DPH MOV 30H, #00H MOV 31H, #0FFH 解:解: 结果为: 61H、62H 单元为堆栈单元,其内容已被弹出栈。 (30H)=00H (31H)=0FFH (DPTR)=2410H(SP)=60H 16在8051 的片内RAM 中,已知(20H)=30H, (30H)=40H,

40、(40H)=50H, (50H) =55H。分析下面各条指令,说明源操作数的寻址方式,分析按顺序执行各条指令后的结果。 MOV A, 40H MOV R0, A MOV P1, #0F0H MOV R0, 20H MOV 50H, R0 MOV A, R0 MOV P2, P1 解:解: 指令 源操作数的寻址方式 执行指令后的结果 MOV A,40H 直接寻址 (A)=50H MOV R0,A 寄存器寻址 (R0)=50H MOV P1,#80H 立即寻址 (P1)=80H MOV R0,20H 寄存器间接寻址 (50H)=30H MOV DPTR,#2000H 立即寻址 (DPTR)=200

41、0H MOV 40H,30H 直接寻址 (40H)=40H MOV R0,30H 直接寻址 (R0)=40H MOV D0H,R0 直接寻址 (D0H)=40H MOV 10H,#10H 立即寻址 (10H)=10H MOV A,R0 寄存器间接寻址 (A)=50H MOV P2,P1 直接寻址 (P2)=80H 17完成以下的数据传送过程 (1)R1 的内容传送到 R0。 (2)片外 RAM 20H 单元的内容送 R0。 (3)片外 RAM 20H 单元的内容送片内 RAM 20H 单元。 (4)片外 RAM 1000H 单元的内容送片内 RAM 20H 单元。 (5)ROM 2000H 单

42、元的内容送 R0。 (6)ROM 2000H 单元的内容送片内 RAM 20H 单元。 (7)ROM 2000H 单元的内容送片外 RAM 20H 单元。 解解: (1)R1 的内容传送到 R0 ; MOV A, R1 MOV R0, A (2)片外 RAM 20H 单元内容送 R0 ; MOV R1, #20H MOVX A, R1 MOV R0, A (3)片外 RAM 20H 单元的内容送片内 RAM 20H 单元; MOV R0, #20H MOVX A, R0 MOV 20H, A (4)片外 RAM 1000H 单元的内容送片内 RAM 20H 单元; 分享参考# MOV DPTR

43、, #1000H MOVX A, DPTR MOV 20H, A (5)ROM 2000H 单元的内容送 R0 单元; CLR A MOV DPTR, #2000H MOVC A,A+DPTR MOV R0, A (6)ROM 2000H 单元的内容送片内 RAM 20H 单元; CLR A MOV DPTR, #2000H MOVC A,A+DPTR MOV 20H, A (7)ROM 2000H 单元的内容送片外 RAM 20H 单元。 CLR A MOV DPTR, #2000H MOVC A,A+DPTR MOV R0, #20H MOVX R0, A 18设有两个 4 位 BCD 码

44、,分别存放在片内 RAM 的 23H, 22H 单元和 33H, 32H 单元中, 求它们的和,并送入 43H, 42H 单元中去。 (以上均为低位在低字节,高位在高字节) 。 解解:ORG 0000H LJMP START ORG 0030H START: MOV A,22H ADD A,32H DA A MOV 42H,A MOV A,23H ADDC A,33H DA A MOV 43H,A SJMP $ END 19编程将片内 RAM 的 40H60H 单元中内容送到片外 RAM 以 3000H 开始的单元中。 并将原片内 RAM 数据块区域全部清 0。 解解: ORG 0000H L

45、JMP MAIN ORG 0030H MAIN: MOV SP, #60H MOV R7,#21H MOV R1,#40H MOV DPTR,#3000H LOOP: MOV A,R1 MOVX DPTR,A CLR A MOV R1,A INC R1 INC DPTR DJNZ R7,LOOP SJMP $ END 20编程计算片内 RAM 区 30H37H 的 8 个单元中数的算术平均值,结果存放在 3AH 单 元中。 解解: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV R0,#30H MOV R1,#00H MOV R2,#00H MOV R3,#08

46、H LP2:MOV A,R0 ADD A,R2 MOV R2,A JNC LP1 INC R1 分享参考# LP1:INC R0 DJNZ R3,LP2 MOV R3,#03H CLR C LP3:MOV A,R1 RRC A MOV R1,A MOV A,R2 RRC A MOV R2,A DJNZ R3,LP3 MOV 3AH,R2 SJMP $ END 21编写计算下式的程序,设乘积的结果均小于 255。A, B 值分别存放在片外 RAM 的 2001H 和 2002H 单元中,结果存于 2000H 单元中。 (AB)(AB)10 若(AB)(AB)10 Y= (AB)(AB) 若(AB

47、)(AB)10 (AB)(AB)10 若(AB)(AB)10 解:解: ORG 0000H LJMP START ORG 0030H START: MOV DPTR,#2001H MOVX A,DPTR MOV 30H,A MOV DPTR,#2002H MOVX A,DPTR ADD A,30H MOV B,A MUL AB MOV R1,A CJNE A,#10,NET1 MOV DPTR,#2000H MOVX DPTR,A SJMP NET3 NET1:JNC NET2 CLR C MOV A,R1 SUBB A,#10 MOV DPTR,#2000H MOVX DPTR,A SJMP

48、 NET3 NET2:MOV A,R1 ADD A,#10 MOV DPTR,#2000H MOVX DPTR,A NET3:SJMP $ END 22设有两个长度均为 15 的数组,分别存放在片外 RAM 以 2000H 和 2100H 开始的存储 区中,试编程求其对应项之和,结果存放在以 2200H 为首地址的存储区中。 解解: ORG0000H LJMP MAIN ORG 0030h MAIN:MOVDPTR,#2000H MOV A,#OFFH MOVX DPTR,A MOV DPTR,#2100H MOV A,#34H MOVXDPTR,A MOV DPTR,#2008H MOV A

49、,#33H MOVX DPTR,A MOV DPTR,#2108H MOV A,#44H MOVXDPTR,A MOV DPTR,#200EH MOV A,#0EEH MOVX DPTR,A MOVDPTR,#210EH MOVA,#32H MOVXDPTR,A MOVDPTR,#2000H MOVR1,#30H MOVR2,#15 LOOP:MOVXA,DPTR MOVR1,A INCDPTR INCR1 DJNZ R2,LOOP MOV R1,#30H MOV DPTR,#2100H MOV R2,#15 MOV R0,#40H LOOP1: MOVX A,DPTR CLRC ADDC A

50、,R1 MOV R0,A INC DPTR INC R1 INC R0 DJNZ R2,LOOP1 MOV DPTR,#2200H MOV R2,#15 MOV R0,#40H LOOP2: MOV A,R0 分享参考# MOVX DPTR,A INC R0 INC DPTR DJNZ R2,LOOP2 SJMP $ END 23设有 100 个有符号数,连续存放在片外 RAM 以 2000H 为首地址的存储区中,试编程 统计其中正数、负数、零的个数。 解解: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV R2,#100 MOV R3,#00H MOV R4,

51、#00H MOV R5,#00H MOV DPTR,#2000H LOOP: MOVX A,DPTR CJNE A,#00H,NET1 INC R3 SJMP NET3 NET1:JB ACC.7 NET2 INC R4 SJMP NET3 NET2:INC R5 NET3:INC DPTR DJNZ R2,LOOP SJMP $ END 24试编一查表程序,从外部 RAM 首地址为 2000H、长度为 9FH 的数据块中找出第一个 ASCII 码 A,将其地址送到 20A0H 和 20A1H 单元中。 解解: ORG0000H LJMPMAIN ORG0030H MAIN: MOV SP,

52、#60H MOVDPTR,#2000H MOVR7,#9FH LP0: MOVX A,DPTR CJNE A, #41H, LP1 MOVR2,DPL MOVR3,DPH MOVDPTR,#20A0H MOV A, R2 MOVXDPTR,A INC DPTR MOV A, R3 MOVXDPTR,A SJMP LP2 LP1: INC DPTR DJNZR7, LP0 LP2: RET END 25编程把片外 RAM 中以 2040H 为首地址的连续 50 个单元中的无符号数按降序排列,存 放到以 3000H 为首地址的存储区中。 解解: ORG 0000H LJMP MAIN ORG 01

53、00H MAIN:MOV DPTR,#2040H MOV R2,#50 CLR 7FH DEC R2 LS:MOVX A,DPTR MOV 20H,A INC DPTR MOVX A,DPTR MOV 21H,A MOV A,20H CJNE A,21H,LOOP LOOP:JNC LOOP1 MOV A,20H MOVX DPTR,A DEC DPTR MOV A,21H MOVX DPTR,A INC DPTR SETB 7FH LOOP1: DJNZ R2,LS JB 7FH,MAIN SJMP $ END 26在片外 RAM 以 2000H 为首地址的存储区中,存放着 20 个用 AS

54、CII 码表示的 09 之 间的数,试编程将它们转换成 BCD 码,并以压缩 BCD 码(即一个单元存放两位 BCD 码) 的形式存放在以 3000H 开始的单元中。 解:解: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV R2,#0AH MOV R1,#30H MOV DPTR,#2000H TT:MOVX A,DPTR CLR C SUBB A,#30H SWAP A 分享参考# MOV 41H,A INC DPTR MOVX A,DPTR CLR C SUBB A,#30H MOV R1,A MOV A,41H XCHD A,R1 MOV R1,A IN

55、C R1 INC DPTR DJNZ R2,TT MOV DPTR,#3000H MOV R1,#30H MOV R2,#0AH TT1:MOV A,R1 MOVX DPTR,A INC R1 INC DPTR DJNZ R2,TT1 SJMP $ END 27编程实现将片外RAM 中 2400H2450H 单元中的数传送到2500H2550H 单元中。 解:解: ORG0000H LJMPMAIN ORG0030H MAIN: MOVDPTR,#2400H MOVA,#07H MOVXDPTR,A MOVDPTR,2450H MOVA,#06H MOVXDPTR,A MOV30H,#24H

56、MOV31H,#00H MOV32H,#25H MOV33H,#00H MOVR2,#51H LOOP: MOVDPH,30H MOVDPL,31H MOVXA,DPTR MOVDPH,32H MOVDPL,33H MOVXDPTR,A INC31H INC33H DJNZR2,LOOP AJMP$ END 28在片外 RAM 的 2030H 和 2031H 单元中各有一个小于 16 的数,编程求这两个数的平 方和,结果存放在 2040H 单元。要求用调用子程序方法实现。 解解: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV DPTR,#2030H MOV A

57、,#03H MOVX DPTR,A MOV DPTR,#2031H MOV A,#05H MOVX DPTR,A MOV DPTR,#2030H MOVX A,DPTR LCALL SQR MOV R1,A MOV DPTR,#2031H MOVX A,DPTR LCALL SQR ADD A,R1 MOV DPTR,#2040H MOVX DPTR,A AJMP $ SQR:INC A MOVC A,A+PC RET TAB:DB 0,1,4,9,16,25 DB 36,49,64,81,100 DB 121,144,169,196,225 END 习题 3 1. MCS-51 的 P0 口作为输出端口时,每位能驱动( 8 )个 SL 型 TTL 负载。 2. MCS-51 有( 4 )个并行 I/O 口,在作为通用 I/O 口使用时 P0P3 是准双向口,所 以由输出转输入时必须先写入 ( 1 ) 。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论