单片机课后习题答案

更新时间:2023-11-30 15:16:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

习 题 答 案

习题0

1.单片机是把组成微型计算机的各功能部件即(微处理器(CPU))、(存储器(ROM和RAM))、(总线)、(定时器/计数器)、(输入/输出接口(I/O口))及(中断系统)等部件集成在一块芯片上的微型计算机。 2.什么叫单片机?其主要特点有哪些? 解:

将微处理器(CPU)、存储器(存放程序或数据的ROM和RAM)、总线、定时器/计数器、输入/输出接口(I/O口)、中断系统和其他多种功能器件集成在一块芯片上的微型计机,称为单片微型计算机,简称单片机。

单片机的特点:可靠性高、便于扩展、控制功能强、具有丰富的控制指令、低电压、低功耗、片内存储容量较小、集成度高、体积小、性价比高、应用广泛、易于产品化等。 3. 单片机有哪几个发展阶段? 解:

(1)第一阶段(1974—1976年):制造工艺落后,集成度低,而且采用了双片形式。典型的代表产品有Fairchild公司的F8系列。其特点是:片内只包括了8位CPU,64B的RAM和两个并行口,需要外加一块3851芯片(内部具有1KB的ROM、定时器/计数器和两个并行口)才能组成一台完整的单片机。

(2)第二阶段(1977—1978年):在单片芯片内集成CPU、并行口、定时器/计数器、RAM和ROM等功能部件,但性能低,品种少,应用范围也不是很广。典型的产品有Intel公司的MCS-48系列。其特点是,片内集成有8位的CPU,1KB或2KB的ROM,64B或128B的RAM,只有并行接口,无串行接口,有1个8位的定时器/计数器,中断源有2个。片外寻址范围为4KB,芯片引脚为40个。

(3)第三阶段(1979—1982年): 8位单片机成熟的阶段。其存储容量和寻址范围增大,而且中断源、并行I/O口和定时器/计数器个数都有了不同程度的增加,并且集成有全双工串行通信接口。在指令系统方面增设了乘除法、位操作和比较指令。其特点是,片内包括了8位的CPU,4KB或8KB的ROM,128B或256B的RAM,具有串/并行接口,2个或3个16位的定时器/计数器,有5~7个中断源。片外寻址范围可达64KB,芯片引脚为40个。代表产品有Intel公司的MCS-51系列,Motorola公司的MC6805系列,TI公司的TMS7000系列,Zilog公司的Z8系列等。

(4)第四阶段(1983年至今): 16位单片机和8位高性能单片机并行发展的时代。16位机的工艺先进,集成度高,内部功能强,运算速度快,而且允许用户采用面向工业控制的专用语言,其特点是,片内包括了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位单片机。

近年来出现的32位单片机,是单片机的顶级产品,具有较高的运算速度。代表产品有Motorola公司的M68300系列和Hitachi(日立)公司的SH系列、ARM等。 4.在实际应用中,如何选择单片机的类型? 解:

选择原则:主要从指令结构、运行速度、程序存储方式和功能等几个方面选择单片机。 MCS-51为主流产品。

Motorola是世界上最大的单片机厂商。品种全、选择余地大、新产品多。其特点是噪声低,抗干扰能力强,比较适合于工控领域及恶劣的环境。

Microchip单片机是市场份额增长较快的单片机。它的主要产品是PIC系列8位单片机。

1

其特点是运行速度快,低价位,适用于量大、档次低、价格敏感的产品。 美国德州仪器(TI)公司生产的MSP430系列单片机是一种特低功耗的Flash微控制器。主要用于三表及超低功耗场合。

在嵌入式系统低端的单片机领域,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微控制器。主要用于三表及超低功耗场合。

EM78系列单片机采用高速CMOS工艺制造,低功耗设计为低功耗产品,价格较低。具有三个中断源、R-OPTION功能、I/O唤醒功能、多功能I/O口等。具有优越的数据处理性能,采用RISC结构设计。

PIC系列8位单片机是Microchip公司的产品。CPU采用RISC结构,运行速度快,价格低适于用量大、档次低、价格敏感的产品。

Motorola是世界上最大的单片机生产厂家之一,品种全、选择余地大、新产品多。其特点是噪声低,抗干扰能力强,比较适合于工控领域及恶劣的环境。 AVR是增强RISC内载Flash的单片机,单片机内部32个寄存器全部与ALU直接连接,突破瓶颈限制,每1MHz可实现1MIPS的处理能力,为高速、低功耗产品。端口有较强的负载能力,可以直接驱动LED。支持ISP、IAP,I/O口驱动能力较强。 6.举例说明生活中应用单片机的例子。 解:

生活中单片机无处不在:如洗衣机的控制主板、太阳能的温度控制器,电动车的控制器,电磁炉、(高级)电冰箱的控制系统、手机、电视遥控器、空调、洗衣机、微波炉、冰箱、热水器、电子称、电子表、计算器、汽车钥匙、可视门禁、公交车报站器、公交车刷卡器、红绿灯控制器等等。欧美日等国家,一个家庭中所拥有的单片机数量平均到100-120颗。

单片机有着广泛的应用领域 :

(1) 单片机在智能仪器仪表中的应用; (2) 单片机在工业测控中的应用;

(3) 单片机在计算机网络和通讯技术中的应用; (4) 单片机在日常生活及家电中的应用; (5) 单片机在办公自动化方面。

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物、自动控制领域的机器人、智能仪表、医疗器械等等。

习题1

1.MCS51单片机是基于(Harvard(哈佛))结构的,其特点是(程序存储器和数据存储器是分开的)。

2. CPU由(运算器)和(控制器)组成。

3. 若不使用MCS-51片内程序存储器,引脚(EA)必须接地.。

4. 在MCS-51单片机中,如果采用6MHz晶振,一个机器周期为(2us)。 5. 8051内部RAM位寻址区的单元地址范围为(20H~2FH),其位地址范围为(00H~7FH)。 6. 8051芯片的引脚可以分为三类:(电源线)、(端口线)和(控制线)。

2

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用来存放( 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组

14.MCS-51系列单片机在片内集成了哪些主要逻辑功能部件?各个逻辑部件的主要功能是什么? 解:

MCS-51单片机在片内集成了中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、定时器/计数器、并行I/O接口、串行I/O接口、中断系统等几大单元。

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

程序存储器(ROM)用于存储程序、常数、表格等。 数据存储器(RAM)用于存储数据。

8051内部有两个16位可编程序的定时器/计数器T0和T1,均为二进制加1计数器。可用于定时和对外部输入脉冲的计数。

8051的中断系统主要由中断允许控制器IE和中断优先级控制器IP等电路组成。可实现对5个中断源的管理。8051的中断系统主要由中断允许控制器IE和中断优先级控制器IP等电路组成。其中,IE用于控制5个中断源中哪些中断请求被允许向CPU提出,哪些中断源的中断请求被禁止;IP用于控制5个中断源的中断请求的优先权级别。

I/O接口是MCS-51单片机对外部实现控制和信息交换的必经之路,用于信息传送过程中的速度匹配和增加它的负载能力。可分为串行和并行I/O接口。

中断系统用于处理中断过程。

15. MCS-51系列单片机的引脚中有多少根I/O线?它们与单片机对外的地址总线和数据总线之间有什么关系?其地址总线和数据总线各有多少位?对外可寻址的地址空间有多大? 解:

80C51单片机有4个I/O端口,每个端口都是8位双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0~P3)、一个输入驱动器和输入缓冲器。通常把4个端口称为P0~P3。在无片外扩展的存储器的系统中,这4个端口的每一位都可以作为双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。对外可寻址空间为64KB。 16. 8051单片机的控制总线信号有哪些?各有何作用? 解:

控制线一共有6条:

(1)ALE/PROG:地址锁存允许/编程线,配合P0口引脚的第二功能使用。在访问片外存储器时,8051CPU在P0.7~P0.0引脚上输出片外存储器低8位地址的同时在ALE/PROG上输出一个高电位脉冲,用于把这个片外存储器低8位地址锁存到外部专用地址锁存器,以便空出P0.7~P0.0引脚线去传送随后而来的片外存储器读写数据。在不访问片外存储器时,

3

8051自动在ALE/PROG上输出频率为fosc/6的脉冲序列。该脉冲序列可用作外部时钟源或作为定时脉冲源使用。

(2)EA/Vpp:允许访问片外存储器/编程电源线,可以控制8051使用片内ROM还是使用片外ROM。若EA=0,则允许使用片内ROM;若EA=1则允许使用片外ROM。 (3)片外ROM选通线,在执行访问片外ROM的指令MOVC时,8051自动在PSENPSEN:上产生一个负脉冲,用于为片外ROM芯片的选通。其他情况下PSEN线均为高电平封锁状态。

(4)RST/VPD:复位/备用电源线,可以使8051处于复位工作状态。 17. 什么是指令?什么是程序?简述程序在单片机中的执行过程。 解:

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

18. 8051单片机的存储器组织采用何种结构?存储器地址空间如何划分?各地址空间的地址范围和容量如何?在使用上有何特点? 解:

(1)80C51在结构上的特点

80C51采用将程序存储器和数据存储器截然分开,分别寻址的结构,称为Harvard结构。 (2)在物理和逻辑上的地址空间

存储器上设有4个存储器空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。

在逻辑上有3个存储器地址空间:片内、片外统一的64KB程序存储器地址空间,片内256B数据存储器地址空间,片外64KB的数据存储器地址空间。 (3)访问格式

访问片内RAM采用MOV格式 访问片外RAM采用MOVX格式

19. 8051片内RAM低128单元划分为哪三个主要部分?各部分主要功能是什么? 解:

片内RAM低128单元划分及主要功能如下: (1)工作寄存器组(00H—1FH)

这是一个用寄存器直接寻址的区域,内部数据RAM区的0—31,共32个单元。它是4个通用工作寄存器组,每个组包含8个8位寄存器,编号为R0—R7。

(2)位寻址区(20H—2FH)

16个字节单元,共包含128位,这16个字节单元既可以进行字节寻址,又可以实现位寻址。主要用于位寻址。

(3)堆栈与数据缓冲区(30H—7FH) 用于设置堆栈、存储数据。

20. 8051单片机的片内、片外存储器如何选择? 解:

程序存储器通过EA/Vpp引脚选择。若EA=0,则允许使用片内ROM;若EA=1则允许使用片外ROM。

数据存储器通过指令区分:访问片内RAM采用MOV指令,访问片外RAM采用MOVX指令。

21. 何为堆栈指针?堆栈操作有何规定? 解:

堆栈是一个特殊的存储区。主要功能是暂时存放数据和地址,通常用来保护断点和现场。

4

它的特点是按照“先进后出”的存取数据。堆栈指针SP是一个8位寄存器,是用于指示堆栈的栈顶地址的寄存器,它决定了堆栈在内部RAM中的物理位置。

22. 8051单片机有多少个特殊功能寄存器?这些特殊功能寄存器能够完成什么功能?特殊功能寄存器中的哪些寄存器可以进行位寻址? 解:

8051有21个特殊功能寄存器(PC除外),它们被离散地分布在内部RAM的80H~FFH地址单元中,共占据了128个存储单元,其中有83位可以位寻址。特殊功能寄存器SFR的分布和功能见下表。

特殊功能寄存器 B A(ACC) PSW IP P3 IE P2 SBUF SCON P1 TH1 TH0 TL1 TL0 TMOD TCON PCON DPH DPL SP P0 寄存器B 累加器 程序状态字(标志寄存器) 中断优先级控制寄存器 P3口数据寄存器 中断允许控制寄存器 P2口数据寄存器 串行口发送/接收数据缓冲寄存器 串行口控制寄存器 P1口数据寄存器 T1计数器高8位寄存器 T0计数器高8位寄存器 T1计数器低8位寄存器 T0计数器低8位寄存器 定时器/计数器方式控制寄存器 定时器控制寄存器 电源控制寄存器 数据指针寄存器高8位 数据指针寄存器低8位 堆栈指针寄存器 P0口数据寄存器 功 能 名 称 物 理 地 址 F0H E0H D0H B8H B0H A8H A0H 99H 98H 90H 8DH 8CH 8BH 8AH 89H 88H 87H 83H 82H 81H 80H 可否位寻址 可以 可以 可以 可以 可以 可以 可以 不可以 可以 可以 不可以 不可以 不可以 不可以 不可以 可以 不可以 不可以 不可以 不可以 可以

23. DPTR是什么寄存器?它的作用是什么? 解:

数据指针DPTR是16位的专用寄存器,它由两个8位的寄存器DPH(高8位)和DPL(低8位)组成。专门用来寄存片外RAM及扩展I/O口进行数据存取时的地址。编程时,既可以按16位寄存器来使用,也可以按两个8位寄存器来使用(即高位字节寄存器DPH和低位字节寄存器DPL)。

DPTR主要是用来保存16位地址,当对64KB外部数据存储器寻址时,可作为间址寄存器使用,

24. 8051单片机的PSW寄存器各位标志的意义如何? 解:

程序状态字PSW是8位寄存器,用于存放程序运行的状态信息,PSW中各位状态通常是在指令执行的过程中自动形成的,但也可以由用户根据需要采用传送指令加以改变。各个标志位的意义如下:

PSW.7(Cy):进位标志位。 PSW.6(AC):辅助进位标志位,又称为半进位标志位。 PSW.5(F0):用户标志位。 PSW.4、PSW.3(RS1和 RS0):寄存器组选择位。 PSW.2(OV):溢出标志位。

5

PSW.1(空缺位):此位未定义。 PSW.0(P):奇偶校验位。

25. 开机复位后,CPU使用的是哪组工作寄存器(R0-Rn)?它们的地址是什么?CPU如何确定和改变当前工作寄存器组(R0-Rn)? 解:

开机复位后,CPU使用的是第0组工作寄存器。它们的地址是00H-07H。CPU通过对程序状态字PSW中RS1和RS0的设置来确定和改变当前工作寄存器组。 26. 8051单片机的片内、片外存储器如何选择? 解:

程序存储器通过EA/Vpp引脚选择。若EA=0,则允许使用片内ROM;若EA=1则允许使用片外ROM。

数据存储器通过指令区分:访问片内RAM采用MOV指令,访问片外RAM采用MOVX指令。

27. MCS-51单片机的时钟周期、机器周期、指令周期是如何定义的?当主频为12MHz的时候,一个机器周期是多长时间?执行一条最长的指令需要多长时间? 解:

时钟周期又称为振荡周期,由单片机内部振荡电路OSC产生,定义为OSC时钟频率的倒数。时钟周期又称为节拍(用P表示)。时钟周期是时序中的最小单位。一个状态有两个节拍,

机器周期定义为实现特定功能所需的时间。MCS-51的机器周期由12个时钟周期构成。 执行一条指令所需要的时间称为指令周期,指令周期是时序中的最大单位。由于机器执行不同指令所需的时间不同,因此不同指令所包含的机器周期数也不尽相同。MCS-51的指令可能包括1~4个不等的机器周期。

当MCS-51的主频为12MHz时,一个机器周期为1?s。执行一条指令需要的最长时间为4?s。

28. 8051单片机复位后,各寄存器的初始状态如何?复位方法有几种? 解:

8051单片机复位后机器的初始状态,即各寄存器的状态:PC之外,复位操作还对其它一些特殊功能寄存器有影响,它们的复位状态如下:

寄存器 PC ACC B PSW SP DPTR P0—P3 TMOD 复位时内容 0000H 00H 00H 00H 07H 0000H FFH ××000000B 寄存器 TCON TL0 TH0 TH1 TH1 SCON SBUF PCON 复位时内容 0×000000B 00H 00H 00H 00H 00H 不确定 0×××0000B 单片机复位方法有:上电自动复位,按键电平复位和外部脉冲三种方式。

习题2

1. 指令格式是由(操作码)和(操作数)所组成,也可能仅由(操作码)组成。

2. 在MCS-51中,PC和DPTR都用于提供地址,但PC是为访问(程序)存储器提供地址,而DPTR是为访问(数据)存储器提供地址。

3. 在变址寻址方式中,以( A )作变址寄存器,以( DPTR )或( PC )作基址寄存器。

4. 假定累加器A中的内容为30H,执行指令1000H:MOVC A,@A+PC后,把程序存储器( 1031H )单元的内容送入累加器A中。

6

5. 8051执行完MOV A,#08H后,PSW的( D )位被置位。

A:C B:F0 C:OV D:P

6. 指出下列指令中的源操作数的寻址方式

(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. 指出下列各指令在程序存储器中所占的字节数

(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字节

8.8051单片机指令系统按功能可分为几类?具有几种寻址方式?它们的寻址范围如何? 解:

MCS-51单片机指令系统按功能可分为5类: (1)数据传送指令 (2)算术运算指令

(3)逻辑运算和移位指令 (4)控制转移指令

(5)位操作指令

MCS-51单片机的指令系统提供了七种寻址方式,其对应的寻址范围如下表: 寻址方式 立即寻址 直接寻址 寄存器寻址 寄存器间接寻址 变址寻址 相对寻址 位寻址 使用的变量 R0~R7;A、B、DPTR、C @R0、@R1、SP @R0、@R1、@DPTR @A+PC、@A+DPTR PC+偏移量 寻址范围 立即数 程序存储器ROM; 内部RAM低128个字节;特殊功能寄存器SFR 位地址空间 四组通用寄存器,A、B、DPTR、C 内部RAM 外部RAM 程序存储器 程序存储器 内部RAM低128B位寻址区 可位寻址的特殊功能寄存器SFR位 9.访问特殊功能寄存器和外部数据存储器应采用哪种寻址方式? 解:

访问特殊功能寄存器,应采用直接寻址、位寻址方式。 访问外部数据存储器,应采用寄存器间接寻址方式。 在0~255B范围内,可用寄存器R0、R1间接寻址:

MOVX A,@R0 或 MOVX A,@R1

7

MOVX @R0,A 或 MOVX @R1,A

在0~64KB范围内,可用16位寄存器DPTR间接寻址:

MOVX A,@DPTR MOVX @DPTR,A

10.“DA A”指令的作用是什么?怎样使用? 解:

这条指令是在进行BCD码加法运算时,跟在“ADD”和“ADDC”指令之后,用来对BCD码的加法运算结果自动进行修正的,使其仍为BCD码表达形式。

在计算机中,遇到十进制调整指令时,中间结果的修正是由ALU硬件中的十进制修正电路自动进行的。用户不必考虑何时该加“6”,使用时只需在上述加法指令后面紧跟一条“DA A”指令即可。

11.片内RAM 20H~2FH单元中的128个位地址与直接地址00H~7FH形式完全相同,如何在指令中区分出位寻址操作和直接寻址操作? 解:

位寻址是直接寻址方式的一种。虽然内部RAM位寻址区的位地址范围00H~7FH与低128个单元的单元地址范围00H~7FH形式完全相同,但是在应用中可以通过以下的方法区分:

1. 通过指令操作码(指令的类型)区分:

位操作只有17条指令,位寻址的操作只适用于下列位指令,而直接寻址操作对这些指令是无效的。

MOV C,bit CPL bit (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)字节地址加位序号的形式。如:MOV 20H.0, C (3)位的符号地址(位名称)的形式。如:ANL C, P

(4)字节符号地址(字节名称)加位序号的形式。如:CPL PSW.6 3. 可通过指令中的累加器区分:

位操作中的累加器为C,单元操作中的累加器为A。 12.SJMP, AJMP 和LJMP指令在功能上有何不同? 解:

指令的转移范围不同。

SJMP是256B范围内的相对转移指令,AJMP是2KB范围内的无条件短跳转指令,LJMP是64KB范围内的无条件长跳转指令。 13.在“MOVC A, @A+DPTR”和“MOVC A, @A+PC”中,分别使用了DPTR和PC作基址,请问这两个基址代表什么地址? 使用中有何不同? 解:

使用@A+DPTR基址变址寻址时,DPTR为常数且是表格的首地址,A为从表格首址到被访问字节地址的偏移量。

使用@A+PC基址变址寻址时,PC仍是下条指令首地址,而A则是从下条指令首地址到常数表格中的被访问字节的偏移量。

14.设片内RAM中的(40H)=50H,写出当执行下列程序段后寄存器A和R0,以及片内RAM中50H和51H单元的内容为何值?

MOV MOV MOV MOV

8

A, 40H R0, A A, #00 @R0, A

MOV A, #30H MOV 51H, A

解:

结果为:(A)=30H (R0)=50H (50H)=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,(40H)=50H,(50H)=55H。分析下面各条指令,说明源操作数的寻址方式,分析按顺序执行各条指令后的结果。

MOV MOV MOV MOV MOV MOV MOV

A, 40H R0, A

P1, #0F0H @R0, 20H 50H, R0 A, @R0 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)=2000H 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单元的内容送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

9

MOV R0, A

(3)片外 RAM 20H单元的内容送片内RAM 20H单元; MOV R0, #20H MOVX A, @R0 MOV 20H, A

(4)片外RAM 1000H单元的内容送片内 RAM 20H 单元; MOV DPTR, #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码,分别存放在片内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的40H~60H单元中内容送到片外RAM以3000H开始的单元中。并将原片内RAM数据块区域全部清0。 解: ORG 0000H MOVX @DPTR,A

LJMP MAIN CLR A ORG 0030H MOV @R1,A

INC R1 MAIN: MOV SP, #60H

INC DPTR MOV R7,#21H

DJNZ R7,LOOP MOV R1,#40H

SJMP $ MOV DPTR,#3000H

END

LOOP: MOV A,@R1

20.编程计算片内RAM区30H~37H 的8个单元中数的算术平均值,结果存放在3AH单元中。

ORG 0030H 解: ORG 0000H

MAIN: MOV R0,#30H LJMP MAIN

10

本文来源:https://www.bwwdw.com/article/w0dt.html

Top