《单片机课后习题-答案~.doc》由会员分享,可在线阅读,更多相关《单片机课后习题-答案~.doc(59页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、|习 题 答 案习题 01单片机是把组成微型计算机的各功能部件即(微处理器(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 和 ROM 等功能部件,但性能低,品种少,应用范围也不是很广。典型的产品有 Intel公司的 MCS-48 系
3、列。其特点是,片内集成有 8 位的 CPU,1KB 或 2KB 的 ROM,64B 或128B 的 RAM,只有并行接口,无串行接口,有 1 个 8 位的定时器/ 计数器,中断源有 2 个。片外寻址范围为 4KB,芯片引脚为 40 个。(3)第三阶段(19791982 年): 8 位单片机成熟的阶段。其存储容量和寻址范围增大,而且中断源、并行 I/O 口和定时器/计数器个数都有了不同程度的增加,并且集成有全双工串行通信接口。在指令系统方面增设了乘除法、位操作和比较指令。其特点是,片内包括了 8 位的 CPU,4KB 或 8KB 的 ROM,128B 或 256B 的 RAM,具有串/并行接口,
4、2 个或 3 个 16 位的定时器/ 计数器,有 57 个中断源。片外寻址范围可达 64KB,芯片引脚为 40 个。代表产品有 Intel 公司的 MCS-51 系列,Motorola 公司的 MC6805 系列,TI 公司的 TMS7000 系列,Zilog 公司的 Z8 系列等。(4)第四阶段(1983 年至今): 16 位单片机和 8 位高性能单片机并行发展的时代。16 位机的工艺先进,集成度高,内部功能强,运算速度快,而且允许用户采用面向工业控制的专用语言,其特点是,片内包括了 16 位的 CPU,8KB 的 ROM,232B 的 RAM,具有串/ 并行接口,4 个 16 位的定时器/
5、 计数器,有 8 个中断源,具有看门狗( Watchdog) ,总线控制部件,增加了 D/A 和 A/D 转换电路,片外寻址范围可达 64KB。代表产品有 Intel 公司的 MCS-96 系列, Motorola 公司的 MC68HC16 系列,TI 公司的 TMS9900 系列,NEC 公司的 783系列和 NS 公司的 HPC16040 等。然而,由于 16 位单片机价格比较贵,销售量不大,大量应用领域需要的是高性能、大容量和多功能的新型 8 位单片机。近年来出现的 32 位单片机,是单片机的顶级产品,具有较高的运算速度。代表产品有Motorola 公司的 M68300 系列和 Hita
6、chi(日立)公司的 SH 系列、ARM 等。4在实际应 用 中 , 如 何 选 择 单 片 机 的 类 型 ?选择原则:主要从指令结构、运行速度、程序存储方式和功能等几个方面选择单片机。MCS-51 为主流产品。Motorola 是世界上最大的单片机厂商。品种全、选择余地大、新产品多。其特点是噪声低,抗干扰能力强,比较适合于工控领域及恶劣的环境。Microchip 单片机是市场份额增长较快的单片机。它的主要产品是 PIC 系列 8 位单片机。其特点是运行速度快,低价位,适用于量大、档次低、价格敏感的产品。美国德州仪器(TI)公司生产的 MSP430 系列单片机是一种特低功耗的 Flash 微
7、控制|器。主要用于三表及超低功耗场合。在嵌入式系统低端的单片机领域,Intel 公司的 MCS-51 形成了既具有经典性又不乏生命力的一个单片机系列。许多半导体厂家、电器公司以 MCS-51 系列中的 8051 为基核,推出了许多兼容性的 CHMOS 单片机-80C51 系列。 此外,还有 Zilog、EM78、Senix 、NEC、Epson、NS、三星、富士通、华邦、Philips、 ARM 等单片机。5试比较 MCS-51, MSP430, EM78, PIC, M6800 及 AVR 等系列单片机的特点。MCS-51 为主流产品。MSP430 的功能较强。是一种特低功耗的 Flash
8、微控制器。主要用于三表及超低功耗场合。EM78 系列单片机采用高速 CMOS 工艺制造,低功耗设计为低功耗产品,价格较低。具有三个中断源、R-OPTION 功能、I/O 唤醒功能、多功能 I/O 口等。具有优越的数据处理性能,采用 RISC 结构设计。PIC 系列 8 位单片机是 Microchip 公司的产品。CPU 采用 RISC 结构,运行速度快,价格低适于用量大、档次低、价格敏感的产品。 Motorola 是世界上最大的单片机生产厂家之一,品种全、选择余地大、新产品多。其特点是噪声低,抗干扰能力强,比较适合于工控领域及恶劣的环境。AVR 是增强 RISC 内载 Flash 的单片机,单
9、片机内部 32 个寄存器全部与 ALU 直接连接,突破瓶颈限制,每 1MHz 可实现 1MIPS 的处理能力,为高速、低功耗产品。端口有较强的负载能力,可以直接驱动 LED。支持 ISP、IAP,I/O 口驱动能力较强。6举 例 说 明 生 活 中 应 用 单 片 机 的 例 子 。生活中单片机无处不在:如洗衣机的控制主板、太阳能的温度控制器,电动车的控制器,电磁炉、 (高级)电冰箱的控制系统、手机、电视遥控器、空调、洗衣机、微波炉、冰箱、热水器、电子称、电子表、计算器、汽车钥匙、可视门禁、公交车报站器、公交车刷卡器、红绿灯控制器等等。欧美日等国家,一个家庭中所拥有的单片机数量平均到 100-
10、120 颗。单片机有着广泛的应用领域 :(1) 单片机在智能仪器仪表中的应用; (2) 单片机在工业测控中的应用; (3) 单片机在计算机网络和通讯技术中的应用;(4) 单片机在日常生活及家电中的应用; (5) 单片机在办公自动化方面。 目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能 IC 卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物、自动控制领域的机器人、智能仪表、医疗器械等等。1MCS51 单片机是
11、基于(Harvard(哈佛) )结构的,其特点是( 程序存储器和数据存储器是分开的) 。2. CPU 由(运算器 )和(控制器)组成。3. 若不使用 MCS-51 片内程序存储器,引脚(EA)必须接地.。4. 在 MCS-51 单片机中,如果采用 6MHz 晶振,一个机器周期为(2us) 。5. 8051 内部 RAM 位寻址区的单元地址范围为(20H 2FH) ,其位地址范围为|(00H7FH) 。6. 8051 芯片的引脚可以分为三类:(电源线) 、 (端口线)和(控制线) 。7. 若 A 中的内容为 63H,那么,P 标志位的值为(0) 。8. 8031 单片机复位后,R4 所对应的存储
12、单元的地址为(04H) ,因上电时 PSW=(00H) 。这时当前的工作寄存器区是(0)组工作寄存器区。9. 8051 型单片机内部有( A )的 ROM。A:4KB B:6KB C:256B D:8KB10. MCS-51 上电复位后, SP 的内容应是( B ) 。A:00H B:07H C:60H D:70H11. PC 用来存放( C ) 。A:指令 B:上一条的指令地址 C:下一条的指令地址 D:正在执行的指令地址12. 采用 8031 单片机必须扩展( B ) 。A:数据存储器 B:程序存储器 C:I/O 接口 D:显示接口13. PSW=18H 时,则当前工作寄存器是( D )
13、。A:0 组 B:1 组 C:2 组 D:3 组14MCS-51 系列单片机在片内集成了哪些主要逻辑功能部件?各个逻辑部件的主要功能是什么?MCS-51 单片机在片内集成了中央处理器(CPU ) 、程序存储器(ROM) 、数据存储器(RAM) 、定 时 器 /计 数 器 、 并 行 I/O 接 口 、 串 行 I/O 接 口 、 中 断 系 统 等 几 大 单 元 。CPU 是整个单片机的核心部件,由运算器和控制器组成。运算器可以完成算术运算和逻辑运算,其操作顺序在控制器控制下进行。控制器是由程序计数器 PC(Program Counter) 、指令寄存器 IR(Instruction Reg
14、ister) 、指令译码器 ID(Instruction Decoder) 、定时控制逻辑和振荡器 OSC 等电路组成。CPU 根据 PC 中的地址将欲执行指令的指令码从存储器中取出,存放在 IR 中,ID 对 IR 中的指令码进行译码,定时控制逻辑在 OSC 配合下对 ID 译码后的信号进行分时,以产生执行本条指令所需的全部信号。程序存储器(ROM)用于存储程序、常数、表格等。数据存储器(RAM)用于存储数据。8051 内部有两个 16 位可编程序的定时器/计数器 T0 和 T1,均为二进制加 1 计数器。可用于定时和对外部输入脉冲的计数。8051 的中断系统主要由中断允许控制器 IE 和中
15、断优先级控制器 IP 等电路组成。可实现对 5 个中断源的管理。8051 的中断系统主要由中断允许控制器 IE 和中断优先级控制器IP 等电路组成。其中,IE 用于控制 5 个中断源中哪些中断请求被允许向 CPU 提出,哪些中断源的中断请求被禁止;IP 用于控制 5 个中断源的中断请求的优先权级别。I/O 接口是 MCS-51 单片机对外部实现控制和信息交换的必经之路,用于信息传送过程中的速度匹配和增加它的负载能力。可分为串行和并行 I/O 接口。中 断 系 统 用 于 处 理 中 断 过 程 。15. MCS-51 系列单片机的引脚中有多少根 I/O 线?它们与单片机对外的地址总线和数据总线
16、之间有什么关系?其地址总线和数据总线各有多少位?对外可寻址的地址空间有多大?80C51 单片机有 4 个 I/O 端口,每个端口都是 8 位双向口,共占 32 根引脚。每个端口都包括一个锁存器(即专用寄存器 P0P3) 、一个输入驱动器和输入缓冲器。通常把 4 个端口称为 P0 P3。在无片外扩展的存储器的系统中,这 4 个端口的每一位都可以作为双向通用 I/O 端口使用。在具有片外扩展存储器的系统中, P2 口作为高 8 位地址线,P0 口分时作为低 8 位地址线和双向数据总线。对外可寻址空间为 64KB。16. 8051 单片机的控制总线信号有哪些?各有何作用?控制线一共有 6 条:(1)
17、ALE/ :地址锁存允许/ 编程线,配合 P0 口引脚的第二功能使用。在访问片外存PROG储器时,8051CPU 在 P0.7 P0.0 引脚上输出片外存储器低位地址的同时在 ALE/上输出一个高电位脉冲,用于把这个片外存储器低位地址锁存到外部专用地址锁存器,以便空出 P0.7P0.0 引脚线去传送随后而来的片外存储器读写数据。在不访问片外|存储器时,8051 自动在 ALE/ 上输出频率为 fosc/6 的脉冲序列。该脉冲序列可用作外PROG部时钟源或作为定时脉冲源使用。(2) /Vpp:允许访问片外存储器编程电源线,可以控制 8051 使用片内 ROM 还是使EA用片外。若 ,则允许使用片
18、内 ROM;若 则允许使用片外 ROM。EA(3) :片外 ROM 选通线,在执行访问片外 ROM 的指令 MOVC 时,8051 自动在PSN上产生一个负脉冲,用于为片外 ROM 芯片的选通。其他情况下 线均为高电平PSEN封锁状态。(4)RST/V PD:复位备用电源线,可以使 8051 处于复位工作状态。17. 什么是指令?什么是程序?简述程序在单片机中的执行过程。 指令:人为输入计算机,由计算机识别并执行一步步操作的命令的形式称为指令。程序:一系列指令的有序集合称为程序。程序在计算机中是按序执行的,CPU 通过程序计数器 PC 控制程序的执行顺序,一般情况下程序是按序执行的,当执行转移
19、、调用、返回等指令时,程序转移到相应的目的地址处执行。CPU 根据程序计数器 PC 中的地址将欲执行指令的指令码从存储器中取出,存放在 IR 中,ID 对 IR 中的指令码进行译码,定时控制逻辑在 OSC 配合下对 ID 译码后的信号进行分时,产生执行本条指令所需的全部信号,完成本条指令的执行。18. 8051 单片机的存储器组织采用何种结构?存储器地址空间如何划分?各地址空间的地址范围和容量如何?在使用上有何特点?(1)80C51 在结构上的特点80C51 采用将程序存储器和数据存储器截然分开,分别寻址的结构,称为 Harvard 结构。(2)在物理和逻辑上的地址空间存储器上设有 4 个存储
20、器空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。在逻辑上有 3 个存储器地址空间:片内、片外统一的 64KB 程序存储器地址空间,片内 256B 数据存储器地址空间,片外 64KB 的数据存储器地址空间。(3)访问格式访问片内 RAM 采用 MOV 格式访问片外 RAM 采用 MOVX 格式19. 8051 片内 RAM 低 128 单元划分为哪三个主要部分?各部分主要功能是什么?片内 RAM 低 128 单元划分及主要功能如下:(1)工作寄存器组(00H 1FH)这是一个用寄存器直接寻址的区域,内部数据 RAM 区的 031,共 32 个单元。它是4 个通用工作寄存器
21、组,每个组包含 8 个 8 位寄存器,编号为 R0R7。(2)位寻址区(20H2FH )16 个字节单元,共包含 128 位,这 16 个字节单元既可以进行字节寻址,又可以实现位寻址。主要用于位寻址。(3)堆栈与数据缓冲区(30H 7FH)用于设置堆栈、存储数据。20. 8051 单片机的片内、片外存储器如何选择?程序存储器通过 /Vpp 引脚选择。若 ,则允许使用片内 ROM;若 EAEAEA则允许使用片外 ROM。数据存储器通过指令区分:访问片内 RAM 采用 MOV 指令,访问片外 RAM 采用MOVX 指令。21. 何为堆栈指针?堆栈操作有何规定?堆栈是一个特殊的存储区。主要功能是暂时
22、存放数据和地址,通常用来保护断点和现场。它的特点是按照“先进后出”的存取数据。堆栈指针 SP 是一个 8 位寄存器,是用于指示堆栈的栈顶地址的寄存器,它决定了堆栈在内部 RAM 中的物理位置。22. 8051 单片机有多少个特殊功能寄存器?这些特殊功能寄存器能够完成什么功能?特殊功能寄存器中的哪些寄存器可以进行位寻址?|8051 有 21 个特殊功能寄存器(PC 除外) ,它们被离散地分布在内部 RAM 的80HFFH 地址单元中,共占据了 128 个存储单元,其中有 83 位可以位寻址。特殊功能寄存器 SFR 的分布和功能见下表。特殊功能寄存器 功 能 名 称 物 理 地 址 可否位寻址B
23、寄存器 B F0H 可以A(ACC ) 累加器 E0H 可以PSW 程序状态字(标志寄存器) D0H 可以IP 中断优先级控制寄存器 B8H 可以P3 P3 口数据寄存器 B0H 可以IE 中断允许控制寄存器 A8H 可以P2 P2 口数据寄存器 A0H 可以SBUF 串行口发送/接收数据缓冲寄存器 99H 不可以SCON 串行口控制寄存器 98H 可以P1 P1 口数据寄存器 90H 可以TH1 T1 计数器高 8 位寄存器 8DH 不可以TH0 T0 计数器高 8 位寄存器 8CH 不可以TL1 T1 计数器低 8 位寄存器 8BH 不可以TL0 T0 计数器低 8 位寄存器 8AH 不可
24、以TMOD 定时器/计数器方式控制寄存器 89H 不可以TCON 定时器控制寄存器 88H 可以PCON 电源控制寄存器 87H 不可以DPH 数据指针寄存器高 8 位 83H 不可以DPL 数据指针寄存器低 8 位 82H 不可以SP 堆栈指针寄存器 81H 不可以P0 P0 口数据寄存器 80H 可以23. DPTR 是什么寄存器?它的作用是什么?数据指针 DPTR 是 16 位的专用寄存器,它由两个 8 位的寄存器 DPH(高 8 位)和DPL(低 8 位)组成。专门用来寄存片外 RAM 及扩展 I/O 口进行数据存取时的地址。编程时,既可以按 16 位寄存器来使用,也可以按两个 8 位
25、寄存器来使用(即高位字节寄存器DPH 和低位字节寄存器 DPL) 。DPTR 主要是用来保存 16 位地址,当对 64KB 外部数据存储器寻址时,可作为间址寄存器使用, 24. 8051 单片机的 PSW 寄存器各位标志的意义如何?程序状态字 PSW 是 8 位寄存器,用于存放程序运行的状态信息,PSW 中各位状态通常是在指令执行的过程中自动形成的,但也可以由用户根据需要采用传送指令加以改变。各个标志位的意义如下:PSW.7(C y):进位标志位。PSW.6(AC ):辅助进位标志位,又称为半进位标志位。PSW.5(F0):用户标志位。PSW.4、PSW.3(RS1 和 RS0):寄存器组选择
26、位。PSW.2(OV):溢出标志位。PSW.1(空缺位):此位未定义。PSW.0(P):奇偶校验位。25. 开机复位后,CPU 使用的是哪组工作寄存器( R0-Rn)?它们的地址是什么?CPU 如何确定和改变当前工作寄存器组(R 0-Rn)?开机复位后,CPU 使用的是第组工作寄存器。它们的地址是 00H07H。CPU 通过对程序状态字 PSW 中 RS1 和 RS0 的设置来确定和改变当前工作寄存器组。26. 8051 单片机的片内、片外存储器如何选择?|程序存储器通过 /Vpp 引脚选择。若 ,则允许使用片内 ROM;若 EAEAEA则允许使用片外 ROM。数据存储器通过指令区分:访问片内
27、 RAM 采用 MOV 指令,访问片外 RAM 采用MOVX 指令。27. MCS-51 单片机的时钟周期、机器周期、指令周期是如何定义的?当主频为 12MHz 的时候,一个机器周期是多长时间?执行一条最长的指令需要多长时间?时钟周期又称为振荡周期,由单片机内部振荡电路 OSC 产生,定义为 OSC 时钟频率的倒数。时钟周期又称为节拍(用 P 表示) 。时钟周期是时序中的最小单位。一个状态有两个节拍,机器周期定义为实现特定功能所需的时间。MCS-51 的机器周期由 12 个时钟周期构成。执行一条指令所需要的时间称为指令周期,指令周期是时序中的最大单位。由于机器执行不同指令所需的时间不同,因此不
28、同指令所包含的机器周期数也不尽相同。MCS-51的指令可能包括 14 个不等的机器周期。当 MCS-51 的主频为 12MHz 时,一个机器周期为 1s。执行一条指令需要的最长时间为 4s。28. 8051 单片机复位后,各寄存器的初始状态如何?复位方法有几种?8051 单片机复位后机器的初始状态,即各寄存器的状态:之外,复位操作还对其它一些特殊功能寄存器有影响,它们的复位状态如下:寄存器 复位时内容 寄存器 复位时内容PC 0000 TCON 0000000BACC 00H TL0 00HB 00H TH0 00HPSW 00H TH1 00HSP 07H TH1 00HDPTR 0000H
29、 SCON 00HP0P3 FFH SBUF 不确定TMOD 000000B PCON 00000B单片机复位方法有:上电自动复位,按键电平复位和外部脉冲三种方式。1. 指令格式是由(操作码)和(操作数)所组成,也可能仅由(操作码)组成。2. 在 MCS51 中,PC 和 DPTR 都用于提供地址,但 PC 是为访问(程序)存储器提供地址,而 DPTR 是为访问(数据)存储器提供地址。3. 在变址寻址方式中,以( A )作变址寄存器,以( DPTR )或( PC )作基址寄存器。4. 假定累加器 A 中的内容为 30H,执行指令 1000H:MOVC A,A+PC 后,把程序存储器( 1031
30、H )单元的内容送入累加器 A 中。5. 8051 执行完 MOV A,#08H 后,PSW 的( D )位被置位。A:C B: F0 C:OV D:P6. 指出下列指令中的源操作数的寻址方式(1)MOV R0,#30H 立即寻址(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. 指出下列各指令在程序存储
31、器中所占的字节数(1)MOV DPTR,#1234H 3 字节(2)MOVX A, DPTR 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 字节88 051 单 片 机 指 令 系 统 按 功 能 可 分 为 几 类 ? 具 有 几 种 寻 址 方 式 ? 它 们 的 寻 址 范 围 如 何?MCS-51 单片机指令系统按功能可分为 5 类:(1)数据传送指令 (2)算术运算指令 (3)逻辑运算和移位指令 (4)控制转移指令 (5)位
32、操作指令 MCS-51 单片机的指令系统提供了七种寻址方式,其对应的寻址范围如下表:9访问特殊功能寄存器和外部数据存储器应采用哪种寻址方式? 访问特殊功能寄存器,应采用直接寻址、位寻址方式。访问外部数据存储器,应采用寄存器间接寻址方式。在 0255B 范围内,可用寄存器 R0、R1 间接寻址:MOVX A,R0 或 MOVX A,R1MOVX R0,A 或 MOVX R1,A在 064KB 范围内,可用 16 位寄存器 DPTR 间接寻址:MOVX A,DPTRMOVX DPTR,A10“DA A”指令的作用是什么?怎样使用? 这条指令是在进行 BCD 码加法运算时,跟在“ADD”和“ADDC
33、”指令之后,用来对BCD 码的加法运算结果自动进行修正的,使其仍为 BCD 码表达形式。在计算机中,遇到十进制调整指令时,中间结果的修正是由 ALU 硬件中的十进制修正电路自动进行的。用户不必考虑何时该加“6”,使用时只需在上述加法指令后面紧跟一条“DA A”指令即可。11片内 RAM 20H2FH 单元中的 128 个位地址与直接地址 00H7FH 形式完全相同,如何在指令中区分出位寻址操作和直接寻址操作? 寻址方式 使用的变量 寻址范围立即寻址 立即数直接寻址程序存储器 ROM; 内部 RAM 低128 个字节;特殊功能寄存器 SFR位地址空间寄存器寻址 R0R7;A、B、DPTR 、C
34、四组通用寄存器,A、B、DPTR、CR0、R1、SP 内部 RAM寄存器间接寻址R0、R1、DPTR 外部 RAM变址寻址 A+PC、A+DPTR 程序存储器相对寻址 PC+偏移量 程序存储器位寻址 内部 RAM 低 128B 位寻址区可位寻址的特殊功能寄存器 SFR 位|位寻址是直接寻址方式的一种。虽然内部 RAM 位寻址区的位地址范围 00H7FH 与低 128 个单元的单元地址范围 00H7FH 形式完全相同,但是在应用中可以通过以下的方法区分:1. 通过指令操作码(指令的类型)区分:位操作只有 17 条指令,位寻址的操作只适用于下列位指令,而直接寻址操作对这些指令是无效的。MOV C,
35、bit CPL bit (C) JB bit,relMOV bit,C ORL C,bit (/bit) JNB bit,relCLR bit (C) ANL C,bit (/bit) JC relSETB 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)字节地址加
36、位序号的形式。如:MOV 20H.0, C(3)位的符号地址(位名称)的形式。如:ANL C, P(4)字节符号地址(字节名称)加位序号的形式。如:CPL PSW.63. 可通过指令中的累加器区分:位操作中的累加器为 C,单元操作中的累加器为 A。12SJMP , AJMP 和 LJMP 指令在功能上有何不同? 指令的转移范围不同。SJMP 是 256B 范围内的相对转移指令, AJMP 是 2KB 范围内的无条件短跳转指令,LJMP是 64KB 范围内的无条件长跳转指令。13在“MOVC A, A+DPTR”和“MOVC A, A+PC”中,分别使用了 DPTR 和 PC 作基址,请问这两个
37、基址代表什么地址? 使用中有何不同? 使用A+DPTR 基址变址寻址时,DPTR 为常数且是表格的首地址,A 为从表格首址到被访问字节地址的偏移量。使用A+PC 基址变址寻址时,PC 仍是下条指令首地址,而 A 则是从下条指令首地址到常数表格中的被访问字节的偏移量。14设片内 RAM 中的(40H)=50H,写出当执行下列程序段后寄存器 A 和 R0,以及片内RAM 中 50H 和 51H 单元的内容为何值?MOV A, 40HMOV R0, AMOV A, #00MOV R0, AMOV A, #30HMOV 51H, A结果为:(A)30H (R0)=50H (50H )00H (51H)
38、30H15设堆栈指针(SP)=60H,片内 RAM 中的(30H )=24H , (31H)=10H。执行下列程序段后,61H, 62H, 30H, 31H, DPTR 及 SP 中的内容将有何变化?PUSH 30H PUSH 31H POP DPLPOP DPHMOV 30H, #00H MOV 31H, #0FFH解:结果为: 61H、62H 单元为堆栈单元,其内容已被弹出栈。 (30H)=00H(31H)=0FFH (DPTR)=2410H (SP)=60H16 在 8051 的 片 内 RAM 中 , 已 知 ( 20H) =30H, ( 30H) =40H, ( 40H) =50H,
39、 ( 50H)|=55H。分析下面各条指令,说明源操作数的寻址方式,分析按顺序执行各条指令后的结果。MOV A, 40HMOV R0, AMOV P1, #0F0HMOV R0, 20HMOV 50H, R0MOV A, R0MOV P2, P1解:指令 源操作数的寻址方式 执行指令后的结果MOV A,40H 直接寻址 (A)=50HMOV R0,A 寄存器寻址 (R0)=50HMOV P1,#80H 立即寻址 (P1)=80HMOV R0,20H 寄存器间接寻址 (50H)=30HMOV DPTR,#2000H 立即寻址 (DPTR)=2000HMOV 40H,30H 直接寻址 (40H)=
40、40HMOV R0,30H 直接寻址 (R0)=40HMOV D0H,R0 直接寻址 (D0H)=40HMOV 10H,#10H 立即寻址 (10H)=10HMOV A,R0 寄存器间接寻址 (A)=50HMOV P2,P1 直接寻址 (P2)=80H17完成以下的数据传送过程(1)R1 的内容传送到 R0。(2)片外 RAM 20H 单元的内容送 R0。(3)片外 RAM 20H 单元的内容送片内 RAM 20H 单元。(4)片外 RAM 1000H 单元的内容送片内 RAM 20H 单元。(5)ROM 2000H 单元的内容送 R0。(6)ROM 2000H 单元的内容送片内 RAM 20
41、H 单元。(7)ROM 2000H 单元的内容送片外 RAM 20H 单元。解:(1)R1 的内容传送到 R0 ;MOV A, R1MOV R0, A(2)片外 RAM 20H 单元内容送 R0 ;MOV R1, #20HMOVX A, R1MOV R0, A(3)片外 RAM 20H 单元的内容送片内 RAM 20H 单元;MOV R0, #20HMOVX A, R0MOV 20H, A(4)片外 RAM 1000H 单元的内容送片内 RAM 20H 单元;MOV DPTR, #1000HMOVX A, DPTRMOV 20H, A(5)ROM 2000H 单元的内容送 R0 单元;CLR
42、AMOV DPTR, #2000HMOVC A,A+DPTRMOV R0, A(6)ROM 2000H 单元的内容送片内 RAM 20H 单元;CLR A|MOV DPTR, #2000HMOVC A,A+DPTRMOV 20H, A(7)ROM 2000H 单元的内容送片外 RAM 20H 单元。CLR AMOV DPTR, #2000HMOVC A,A+DPTRMOV R0, #20HMOVX R0, A18设有两个 4 位 BCD 码,分别存放在片内 RAM 的 23H, 22H 单元和 33H, 32H 单元中,求它们的和,并送入 43H, 42H 单元中去。 (以上均为低位在低字节,
43、高位在高字节) 。解: ORG 0000HLJMP STARTORG 0030HSTART: MOV A,22HADD A,32HDA AMOV 42H,AMOV A,23HADDC A,33HDA AMOV 43H,ASJMP $END19编程将片内 RAM 的 40H60H 单元中内容送到片外 RAM 以 3000H 开始的单元中。并将原片内 RAM 数据块区域全部清 0。解: ORG 0000HLJMP MAINORG 0030HMAIN: MOV SP, #60HMOV R7,#21HMOV R1,#40HMOV DPTR,#3000HLOOP: MOV A,R1MOVX DPTR,A
44、CLR AMOV R1,A INC R1INC DPTRDJNZ R7,LOOPSJMP $END20编程计算片内 RAM 区 30H37H 的 8 个单元中数的算术平均值,结果存放在 3AH 单元中。解: ORG 0000HLJMP MAINORG 0030HMAIN: MOV R0,#30HMOV R1,#00HMOV R2,#00HMOV R3,#08HLP2: MOV A,R0ADD A,R2MOV R2,AJNC LP1INC R1LP1: INC R0DJNZ R3,LP2MOV R3,#03HCLR CLP3:MOV A,R1RRC AMOV R1,AMOV A,R2RRC AMOV R2,ADJNZ R3,LP3MOV 3AH,R2SJMP $END21编写计算下式的程序,设乘积的结果均小于 255。A, B 值分别存放在片外 RAM 的2001H 和 2002H 单元中,结果存于 2000H 单元中。(AB)(AB)10 若(AB)(AB)10Y= (A B) (AB ) 若(AB)(AB)10