单片机部分作业答案
- 格式:doc
- 大小:34.00 KB
- 文档页数:3
单片机习题集及答案一、多选题1. 下列哪些是单片机的基本组成部分?(A、B、C)A.中央处理器(CPU)B.存储器C.输入输出接口D.显示器2. 下列哪些是单片机的外设?(B、C、D)A.中央处理器(CPU)B.键盘C.数码显示管D.电机3. 单片机是指集成了(A、B、C)等工作于一片半导体上的计算机系统。
A.中央处理器B.存储器C.输入输出接口D.显示器4. 单片机的工作原理是将(B)指令执行的结果送给(A)地址,这样一直执行下去,直到出现停机条件为止。
A.下一条指令B.存储器C.输入输出接口D.中央处理器(CPU)二、填空题1. 单片机的内存可分为(程序存储器)和(数据存储器)两种类型。
2. 单片机中的串行通信使用的是(串行口)。
3. 单片机中的并行通信使用的是(并行口)。
4. 下列是单片机常用的输入设备:(键盘、数码开关)。
三、判断题1. 8051系列单片机是英特尔公司推出的一种8位单片机。
(√)2. 单片机的独特之处在于将中央处理器、存储器和输入输出接口集成在一颗芯片上。
(√)3. 单片机的工作原理是将一条条指令按照顺序执行,实现程序的功能。
(√)四、简答题1. 请简述单片机的工作原理。
单片机的工作原理是将存储在存储器中的指令逐条加载到中央处理器(CPU)中执行,执行的结果会被送回到存储器中或者输出到外设。
循环执行这一过程,直到满足停机条件。
2. 请简述单片机的应用领域。
单片机广泛应用于各个领域,包括工业控制、通信设备、医疗器械、家用电器等等。
它的特点是体积小、功耗低、运行速度快,适用于对资源要求较低的嵌入式系统。
五、综合题现有一个控制系统,使用单片机进行电机的控制和监测。
请设计一个程序,实现以下功能:1. 当温度传感器检测到温度超过设定值时,自动启动电机;2. 当温度传感器检测到温度恢复正常时,自动停止电机;3. 可通过数码开关手动启动和停止电机;4. 将当前温度通过数码管显示出来。
程序设计伪代码如下:```c#include <reg52.h>// 定义IO口sbit motor = P1^0;sbit tempSensor = P1^1;sbit startSwitch = P1^2;sbit stopSwitch = P1^3;sbit display = P2;void main(){while(1){// 监测温度if(tempSensor > 设定温度) {motor = 1; // 启动电机 }if(tempSensor < 正常温度) {motor = 0; // 停止电机 }// 手动控制if(startSwitch == 1){motor = 1; // 启动电机}if(stopSwitch == 1){motor = 0; // 停止电机}// 显示温度display = tempSensor;}}```以上是一个基本的单片机控制程序,可根据具体需求进行修改和扩展。
第四章1、单片机系统结构特点?答:(1)在系统结构上采用哈佛型;(2)极强的布尔处理能力(3)具有较齐全的输入/输出接口及实时中断功能(4)配有实时控制时的特殊电路2、MCS-51单片机的基本组成?(1)8位中央处理单元CPU。
答:(2)4KB程序存储器ROM,256B数据存储器RAM。
(3)4个8位并行I/O口(P0~P3)。
(4)1个全双工串行I/O口(P3.0,P3.1)。
(5)2个16位加法定时/计数器(T0,T1)。
(6)5个中断源。
(7)内部时钟产生电路。
最高允许振荡频率为12MHz。
3、MCS-51单片机存储器可划分为几个空间?各自地址范围是多少?答:单片机存储器划分为四个空间:1)EA=1片内程序存储器地址0000-0FFFH ,片外程序存储器地址1000-FFFFH EA=0片外程序存储器地址0000-FFFFH2)片内数据存储器地址00-FFH片外数据存储器地址为0000-FFFFH4、MCS-51单片机内RAM存储器可划分为几个空间?各自地址范围是多少?答:寄存器区00H-1FH位寻址区20H-2FH用户区和堆栈区30H-7FH特殊功能寄存器区80H-FFH第五章1.MCS-51系列单片机有哪几种寻址方式?答:立即寻址:MOV A,#5直接寻址:MOV A,30H寄存器寻址:MOV A,R0寄存器间接寻址:MOV A,@R0变址寻址:MOVC A,@A+DPTR相对寻址:JZ REL位寻址:MOV C,BIT2.指出下列指令中画线的操作数的寻址方式。
MOV R0,#60H立即寻址MOV A,30H直接寻址MOV A,@Ri寄存器间接寻址MOV @Ri,A 寄存器寻址ADD A, B 寄存器寻址SUBB A,R7 寄存器寻址3.指出下列指令中画线的操作数的寻址方式。
MOVX A,@DPTR 寄存器间接寻址MOV DPTR,#0123H 立即寻址MOVC A,@A+DPTR 基址变址寻找MUL A B 寄存器寻址INC DPTR 寄存器寻址4.指出下列指令中画线的操作数的寻址方式。
第二章作业参考答案1. MCS-51单片机共有4个工作寄存器组。
当前寄存器组由程序状态寄存器PSW中RS1、RS0位的状态组合来决定。
2. MCS-51的EA信号功能是:控制访问外部程序存储器。
当EA为低电平时,对ROM的读操作限定在外部程序存储器;当EA为高电平时,对ROM的读操作是从内部程序存储器开始的(PC值小于4K时),当PC值大于4K时,CPU自动转向外部程序存储器。
在使用8031时EA信号引脚应该接地,以便从外部扩展EPROM中取指令。
3. 以下信号需要芯片引脚以第二功能的方式提供:(1)P3端口线的第二功能:RxD,串行数据接收;TxD0申请;INT1,外部中断1申请;T0,定时器/计数器0计数输入;T1,定时器/计数器1计数输入;WR,外部RAM写选通;RD,外部RAM读选通。
(2)EPROM存储器程序固化所需要的信号:PROG,编程脉冲信号;V PP,编程电压信号;(3)备用电压:V PD 。
4. 作用:程序状态字PSW是一个8特殊功能寄存器,它的各位包含了程序运行的状态信息,以供程序查询和判断。
常用的状态位及作用:Cy,进位标志位。
Ac,辅助进位标志位。
F0&F1,用户标志位。
RS1&RS0,工作寄存器组选择位。
OV,溢出标志位。
P,奇偶标志位。
5.开机复位后,PSW为“00H”,则RS0和RS1两位均为0,对应第0组工作寄存器,所以此时CPU使用的是第0组工作寄存器,它们的地址是00H—07H。
6. SP表示堆栈指针,有8位,作用是指示栈顶地址,复位后SP的内容是07H。
7. RAM低128单元划分为工作寄存器区、位寻址区和用户RAM区3个区域,各个区域作用分别为:(1)工作寄存器区,常用于存放操作数及中间结果等。
(2)位寻址区,其中每一个单元既可以作为一般RAM单元使用,进行字节操作,也可以对单元中的每一位进行位操作。
(3)用户RAM区,一般用于存放用户数据及做堆栈区使用。
单片机作业1及答案(共5页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--单片机原理与应用形成性考核册学校名称:学生姓名:学生学号:班级:《单片机原理与应用》作业1 Array(第一、二章)一、选择题1.单片机芯片内提供了一定数量的工作寄存器,这样做的好处不应包括( D )。
A. 提高程序运行的可靠性B. 提高程序运行速度C. 为程序设计提供方便D. 减少程序长度2.内部RAM中的位寻址区定义的位是给( D )。
A. 位操作准备的B. 移位操作准备的C. 控制转移操作准备的D. 以上都对3.对程序计数器PC的操作( A )。
A. 是自动进行的B. 是通过传送进行的C. 是通过加1指令进行的D. 是通过减1指令进行的4. 单片机程序存储器的寻址范围是由程序计数器PC的位数决定的,MCS-51的PC为16位,因此其寻址范围是( B )。
A. 4KBB. 64KB5. 以下有关PC和DPTR的结论中错误的是( C )。
A. DPTR是可以访问的而PC不能访问B. 它们都是16位的寄存器C. 它们都具有自动加1功能可以分为两个8位的寄存器使用,而PC不能6. PC的值是( C )。
A.当前指令前一条指令的地址B.当前正在执行指令的地址C.下一条指令的地D.控制器中指令寄存器的地址7.假定设置堆栈指针SP的值为37H,在进行子程序调用时把断点地址进栈保护后,SP的值为( D )。
C. 38H8. 在80C51中,可使用的堆栈最大深度为( A )。
个单元 B. 32个单元个单元个单元9. 位处理器是单片机面向控制应用的重要体现,下列中不属于位处理器资源的是( B )。
A.位累加器CYB.通用寄存器的可寻址位C.专用寄存器的可寻址位D.位操作指令集10. 在MCS-51单片机的运算电路中,不能为ALU提供数据的是( D )。
A. 累加器AB.暂存器C.寄存器BD.状态寄存器PSW11. 在MCS-51中( C )。
课堂作业参考答案11.微处理器、PC计算机、单片机,它们之间有什么异同点?答:不同点如下:微处理器是中央处理器,简称CPU,它是计算机的一个器件。
PC计算机是按照冯.诺依曼体系结构做成的计算机,包含:运算器、控制器、存储器、输入设备、输出设备。
单片机是将计算机功能进行裁剪后集成在一个芯片上的微计算机。
相同点:它们都有计算机的属性2.除了单片机这一名称之外,单片机还可称为(MCU)和(EMCU)。
3.单片机与普通计算机的不同之处在于其将(CPU)、(存储器)和(I/O 端口)三部分集成于一块芯片上。
课堂作业2==参考答案使用指令完成出下列各个任务语句段参考答案如下:1. 将R2中的数据传输到R3中。
答:MOV A,R2MOV R3,A2. 将30H单元中的数据传输到R7中。
答:MOV R7,30H3. 将立即数40H传送到以R0中内容为地址的存储器中。
答:MOV A,#40HMOV @R0,A或MOV @R0,#40H4.将片外RAM30H单元的内容传送到片内50H单元。
答:MOV R0,#30HMOVX A,@R0MOV 50H,A5.将片外RAM40H单元的内容传送到片外60H单元。
答:MOV R0,#40HMOV R1,#60HMOVX A,@R0MOVX @R1,A6.将程序存储器的2000H单元中的数据传送到片外RAM的1010H单元中答:MOV DPTR,#2000HMOV A,#00MOVC A,@A+DPTRMOV DPTR,#1010HMOVX @DPTR,A课堂作业3==参考答案程序设计题:1. 设在单片机内部RAM的30H~33H单元存放了4个单字节二进制数,请编程完成下面的计算式:(30H)*(31H)+(32H)*(33H),计算结果存放在40H开始的单元。
2. 假设在片内30H~39H中分别存放了10个单字节压缩BCD码数,要求编写一个加法程序,将这10个数相加,结果存放在R4、R3中。
单片机试题答案一、选择题1. 单片机中的“单片”是指()。
A. 单一的集成电路B. 只有一个微处理器的芯片C. 一个系统全部集成在一个芯片上D. 只有存储器的集成电路答案:C2. 下列哪种设备不属于单片机的典型外围设备?()。
A. 串行通讯接口B. 并行打印机接口C. 模数转换器D. 数字模拟转换器答案:B3. 单片机中的RAM是指()。
A. 只读存储器B. 随机存取存储器C. 静态随机存取存储器D. 动态随机存取存储器答案:B4. 在单片机系统中,通常使用哪种逻辑电平表示高电平?()。
A. 0VB. 1.5VC. 2.4VD. 5V答案:D5. 下列哪种中断源在单片机中是可屏蔽的?()。
A. 外部中断0B. 外部中断1C. 定时器/计数器中断D. 串行通讯中断答案:C二、填空题1. 单片机的核心部件是__________,它负责执行程序中的指令。
答案:中央处理器(CPU)2. 在单片机编程中,__________是一种常用的二进制代码,用于表示数据和指令。
答案:字节3. 单片机的__________用于存储程序和数据,是系统运行的基础。
答案:存储器4. 为了实现单片机与外部设备的数据交换,需要使用__________。
答案:接口5. 单片机的__________是指在特定条件下,能够自动响应并处理系统内部或外部的事件。
答案:中断系统三、简答题1. 简述单片机的基本组成结构。
答案:单片机的基本组成结构通常包括中央处理器(CPU)、存储器(包括程序存储器和数据存储器)、输入/输出端口、定时器/计数器、中断系统以及可能包含的模数转换器(ADC)、数模转换器(DAC)等外围功能模块。
2. 说明单片机编程中的“堆栈”是什么,以及它的工作原理。
答案:堆栈是单片机内存中用于存储临时数据、返回地址以及保护现场的一种数据结构。
它的工作原理基于“后进先出”(LIFO)的原则,即最后压入堆栈的数据会最先被弹出。
在中断处理和函数调用过程中,堆栈用来保存断点和返回地址,以便程序能够正确返回到中断前的执行状态或函数调用后的执行点。
(完整word版)单片机每章习题及答案第三节增选习题及解答一、填空题1. 堆栈寄存器的符号是(),复位后它的内容为()。
2. 累加器A的内容有偶数个1时,特殊功能寄存器()的()位内容为()。
3. 内RAM的03H字节单元的地址符号另记为()。
4. 堆栈操作遵循的原则是()。
5. 8051单片机有4个I/O口,它们分别是(),复位后对应它们的寄存器的内容为()。
6. 为了正确地读取8051 的P1口引脚的状态值,应该先向它()。
7. 8051的()引脚应该至少保持()个机器周期的()电平,才能使8051复位。
8. 8051的封装形式为()。
9. 利用8051组成的工作系统,程序放在内部ROM,它的引脚应该接()电平。
EA10. 8051单片机的ALE引脚在CPU对外存非操作期间,它输出频率为晶体振荡器频率()的脉冲信号。
11. 8051内部程序存储器的容量为()字节,8031的内部程序存储器的容量为()字节。
12. 8031最大可以扩展()程序存储器,最大扩展的数据存储器的容量是()。
13. 位寻址区在内RAM低128字节单元的()字节中,高128字节单元中有()个特殊功能寄存器的位可以进行位操作。
14. 当前工作寄存器的选择由特殊功能寄存器()的()位的内容决定。
15. 用于位处理的布尔处理器是借用的特殊功能寄存器()的()位完成的。
16. 一个机器周期包括()个振荡周期,具体分为()个状态周期。
17. 按执行时间,8051的指令分为()周期、()周期和()周期指令共三种。
18. 单片机由CPU、存储器和()三部分组成。
19. CPU由()和()两部分组成。
20. 若不使用MCS-51片内程序存储器,引脚必须()。
EA21. 当MCS-51引脚ALE信号有效时,表示从P0口稳定地送出了()地址。
22. 当MCS-51的P0口作为输出端口时,每位能驱动()个TTL负载。
23. MCS-51有()个并行I/O口,由于是准双向口,所以在输入时必须先()。
单片机部分习题答案第一题:题目:单片机中,什么是“中断”?格式:说明文答案:中断是指当某一特定事件发生时,单片机会立即暂停当前任务并转入处理特殊事件的程序,待特殊事件处理完毕后再返回原来的任务。
中断可以提高单片机的响应速度和处理效率。
第二题:题目:请简要解释单片机中定时器的概念,并说明定时器的基本原理。
格式:说明文答案:定时器是单片机中常用的一个模块,用于生成特定时间间隔的定时信号。
定时器由一个计数器和相关的寄存器构成。
通过设置计数器的初值和控制寄存器的值,可以确定定时器的工作方式和时间间隔。
定时器的基本原理是:计数器不断递增,当计数器的值达到设定的初值时,产生中断信号或其他控制信号,然后重新开始计数,如此循环。
通过不同的设置,可以实现不同的定时功能。
第三题:题目:什么是PWM信号?在单片机中如何生成PWM信号?格式:说明文答案:PWM(Pulse Width Modulation)信号是一种脉冲宽度调制的信号,具有占空比可调的特点。
在单片机中生成PWM信号的方法有多种,其中比较常见的是使用定时器/计数器模块。
具体步骤如下:1. 配置定时器/计数器的工作模式为PWM模式。
2. 设定计数器的初值和比较值,用于确定脉冲的周期和占空比。
3. 开启定时器/计数器工作。
4. 根据需要,可以使用软件或硬件方式调整比较值,实现PWM信号的占空比调整。
通过上述步骤,单片机可以生成占空比可调的PWM信号,常用于电机驱动、LED亮度调节等应用。
第四题:题目:单片机中,什么是ADC转换?如何进行ADC转换?格式:说明文答案:ADC转换是模拟信号转换为数字信号的过程,用于将外部的模拟信号转换为单片机可处理的数字信号。
ADC(Analog-to-Digital Converter)转换的结果表示模拟信号的大小,可以通过计算和比较等操作进行进一步处理。
在单片机中进行ADC转换的步骤如下:1. 配置ADC模块的相关寄存器,包括参考电压、采样时钟等。
单片机课后习题参考答案(全).单片机课后习题参考答案1. 什么是单片机?单片机是一种集成电路芯片,其中包含了处理器、存储器以及各种输入输出接口。
它能够完成各种控制任务,并且在各种嵌入式系统中广泛应用。
2. 单片机的特点有哪些?- 小巧、体积小:单片机可以集成多个功能在一个芯片内部,所以体积相对较小。
- 低功耗:单片机工作时功耗较低,适合用于一些需要长时间运行的电子产品。
- 低成本:相对于使用多个离散电子元件实现同样功能的电路,单片机的成本较低。
- 高可靠性:单片机内部通过硬件逻辑实现各种功能,不易受外界干扰,提高了系统的可靠性。
- 程序可编程:单片机可以通过编程改变其功能,具有较强的灵活性。
3. 单片机的工作原理是什么?单片机内部通过运算器、控制器、存储器等硬件组成,运算器负责执行各种算术、逻辑操作,控制器负责协调和控制各种操作,存储器用于存储程序和数据。
当单片机上电后,控制器开始执行存储器中的程序,按照指令的执行顺序执行各个操作。
单片机的输入输出接口与外部设备进行数据交换,实现与外部环境的交互。
4. 单片机的应用领域有哪些?单片机被广泛应用于各种嵌入式系统中,包括电子产品、电子仪器、通讯设备、汽车电子、医疗设备等。
它能够实现各种控制任务,如温度控制、风扇控制、光控制、家电控制等。
5. 单片机的编程语言有哪些?常见的单片机编程语言包括汇编语言、C语言和基于C语言的高级语言。
汇编语言是一种底层的编程语言,直接面向单片机的硬件操作;C语言是一种高级语言,可以方便地进行开发和调试;基于C语言的高级语言如Basic、Pascal等是对C 语言进行了扩展和封装,更加简化了编程过程。
6. 单片机系统的开发流程是什么?单片机系统的开发流程一般包括以下几个步骤:- 硬件设计:确定系统所需的输入输出接口及硬件电路,并进行电路设计和原理图绘制。
- 软件设计:编写程序代码,实现系统的各种功能。
- 系统调试:将软件下载到单片机中,通过调试工具进行调试和测试,确保系统能够正常运行。
作业习题答案《单片机应用技术》部分习题与参考答案第1章单片机概述1-1什么是嵌入式系统?嵌入式系统的硬件和软件各包括哪些内容?答: 以应用为中心,以计算机技术为基础,软/硬件可剪裁,针对具体应用系统,对功能、可靠性,成本、体积、功耗严格要求的专用计算机系统称为嵌入式计算机系统。
简称为嵌入式系统。
嵌入式系统的硬件包括:嵌入式处理器、存储器和外部设备器件、输入输出接口、图形控制器等。
软件包括操作系统和应用程序。
嵌入式系统是专用的计算机系统,嵌入式系统的核心是嵌入式处理器,单片机是嵌入式处理器的典型代表。
1-2 什么叫单片机?一个完整的单片机芯片至少有哪些部件?答:将微处理器(CPU)、存储器、定时/计数器及输入输出接口电路等部件集成在一块集成电路上,称为单片微型计算机,简称单片机。
一个完整的单片机芯片至少有中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、定时/计数器及I/O接口等部件。
1-3嵌入式处理器有何特点?嵌入式处理器分为哪几类?答:嵌入式处理器对实时和多任务系统有和强的支持能力、对存储区保护功能强、具有可扩展的处理器结构及低功耗等特点。
嵌入式处理器分为:嵌入式微处理器、微控制器、嵌入式DSP处理器和片上系统等。
1-4 单片机系统的开发过程分为那几步进行?答:1.硬件的设计与调试。
2 应用程序的设计和调试。
3系统联调。
4程序的固化。
5.脱机运行。
1-5 Intel 公司的主要单片机产品分为哪几大系列?各系列的区别何在?答:Intel公司的MCS-48系列、MCS-51系列、MCS-96系列产品;48系列的单片机在片内集成4位CPU,片内含有多种I/O接口,有的根据不同用途还配有许多专用接口,价格便宜,控制功能强。
51系列的单片机在片内集成8位CPU、片内RAM为128字节,ROM为4K字节,4个并行I/O口、2个16位定时/计数器、串行接口、5个中断源。
96系列单片机CPU为16位,片内RAM为232字节,ROM为8K字节,片内带有高速输入输出部件,多通道10位A/D转换部件,中断处理为8级。
(一)填空题1. 除了“单片机”之外,单片机还可以称之为单片微控制器和单片微型计算机。
2. 专用单片机由于已经把能集成的电路都集成到芯片内部了,所以专用单片机可以使系统结构最简化,软硬件资源利用最优化,从而极大地提高了可靠性和降低了成本。
3. 在单片机领域内,ICE的含义是在线仿真器(In Circuit Emulator)。
4. 单片机主要使用汇编语言,而编写汇编语言程序要求设计人员必须精通和指令系统,单片机硬件结构。
5. CHMOS工艺是 CMOS 工艺和 HMOS 工艺的结合,具有低功耗的特点。
6. 与8051比较,80C51的最大特点是所用CHMOS工艺。
7. 微控制技术是对传统控制技术的一次革命,这种控制技术必须使用单片机才能实现。
(二)选择题1.下列简写名称中不是单片机或单片机系统的是(A)MCU (B)SCM (C)ICE (D)CPU2.在家用电器中使用单片机应属于计算机的是(A)数据处理应用(B)控制应用(C)数值计算应用(D)辅助工程应用3.80C51与80C71的区别在于(A)内部程序存储器的类型不同(B)内部数据存储器的类型不同(C)内部程序存储器的容量不同(D)内部数据存储器的容量不同4.8051与80C51的区别在于(A)内部ROM的类型不同(B)半导体工艺的形式不同(C)内部寄存单元的数目不同(D)80C51使用EEPROM,而8051使用EPROM5.在下列单片机芯片中使用掩膜ROM作为内总程序存储器的是(A)8031 (B)80C51 (C)8032 (D)87C516.80C51芯片采用的半导体工艺是(A)CMOS (B)HMOS (C)CHMOS(D)NMOS7.单片机芯片8031属于(A)MCS-48系列(B)MCS-51系列(C)MCS-96系列(D)MCS-31系列8.使用单片机实现在线控制的好处不包括(A)精确度高(B)速度快(C)成本低(D)能与数据处理结合9.以下所列各项中不是单片机发展方向的是(A)适当专用化(B)不断提高其性能(C)继续强化功能(D)努力增加位数(一)判断题1.用户构建单片机应用系统,只能使用芯片提供的信号引脚。
第2章:2、CIP-51有哪些存储空间各个存储空间的功能及寻址范围是什么有程序存储器、内部数据存储器、外部数据存储器、特殊功能寄存器和位寻址区五个独立的地址空间;●程序存储器:存放程序和常数,容量为64KB,地址范围0000H-0FFFFH●内部数据存储器:用于通用寄存器和存放数据的临时存储器,容量为256B,地址范围00H-0FFH●外部数据存储器:用于存放数据,容量为64KB有4KB在芯片内部,地址为0000-0FFFFH●特殊功能寄存器SFR:提供对片内资源和外设的访问和控制,以及与外设的数据交换,C8051F020有122个,离散分布在地址80H-0FFH中;●位地址空间:存放位变量,进行布尔运算,容量为256位,有内部RAM的20H-2FH16字节,128位和部分SFR字节地址可以被8整除的组成,地址范围为00H-0FFH3、CIP-51的内部RAM空间有多少字节它们在应用中有什么专门用途堆栈一般应设置在什么位置●内部RAM有256字节●低128B中的00H-1FH用于通用寄存器,20H-2FH既可以字节寻址也可以位寻址,30H-7FH作一般存储器用;高128B因为与SFR地址重叠,故只能间接寻址,也作一般存储器用●理论上堆栈可以设在内部数据存储器的任何位置,复位时堆栈指针SP为07H,但为了避开通用寄存器和位地址空间,一般设在30H-0FFH;5、读写内部RAM与外部RAM的数据时,使用的指令有什么区别读程序存储器的数据的指令又有什么不同读写内部RAM用MOV指令;读写外部RAM用MOVX指令;读程序存储器用MOVC指令,写程序存储器用MOVX指令,但为与写外部RAM相区分,需要对相应SFR的相关位进行设置;6、若PSW=0x10,则当前的R0~R7在内部RAM中有哪些单元由PSW=0x10可知RS1RS0=10,故通用寄存器R0-R7在内部RAM的0x10-0x17单元;PSW的格式P22第一次作业存在的问题:第一题:5个存储空间,有的同学写的不全,漏SFR和位寻址区;有的同学对位寻址区的寻址范围写的不对,应为0x00-0xff而非0x20-0x2f;第三题:内部RAM每一部分的专门作用,尤其低128B要再分类说明;片内XRAM不算片内RAM;堆栈一般在0x30-0xff,而非0x30-0x7f;第六题:部分同学不会做;要查询PSW的格式,RS1RS0的作用,P22表2-2 8、请叙述中断的响应过程;一个中断请求从提出到CPU响应最短要多长时间如果CPU响应中断的条件全部具备,响应中断最长的时间是多少在什么样的情况下会出现这个响应时间C8051F的每个系统时钟周期对中断标志采样并对优先级译码,如果允许中断响应,则置位相应的优先级状态触发器,然后执行一条硬件长调用指令,控制转移到相应的入口,清相应中断请求标志有些需要在中断服务程序中清除,如RI、TI,接着PC压栈但不保护PSW,将中断服务程序的入口地址送给PC,完成中断响应;最快需要5个系统时钟周期:1个中断检测周期,4个对ISR的调用周期LCALL;最慢发生在CPU正在执行RETI指令的时候,需要再执行一条指令才能进入中断服务程序,而最慢的指令是DIV需要8个系统时钟周期;因此,最慢需要18个系统时钟周期:1个中断检测周期,5个执行RETI的周期,8个执行DIV指令的周期,4个对ISR 的调用周期LCALL;9、C8051F020单片机的外部RAM有片内和片外之分,如何实现片外的RAM复用与非复用方式的外部RAM是什么意思数据总线和地址总线是如何连接的通过外部数据存储器接口EMIF实现片外数据存储器,用并行口P0-P3或P4-P7实现数据总线和地址总线,数据线和地址线可以复用也可以非复用,由EMIOCF控制;复用是指数据总线和地址总线的低8位共用一组端口信号线;非复用是指数据总线和地址总线的低8位各用单独的一组端口信号线;若用低端端口实现,复用时用P2口提供地址高8位,P3口提供地址低8位和数据线;非复用时用P1口提供高8位地址线,P2口提供地址线低8位,P3口提供数据线;若用高端端口实现,非复用则用P5、P6提供地址高、低8位,P7做数据线,复用则用P6提供地址线高8位,P7提供地址低8位和数据线;10.什么是优先权交叉开关译码器C8051F020单片机有多少数字I/O口C8051F 单片机的引脚与片内资源是如何对应的C8051F单片机没有为定时器、串行口、A/D、D/A等提供单独的引脚信号线,而是用并行口P0-P3提供,C8051F单片机允许使用部分数字和模拟外设,没有用到的就不用分配引脚信号,因此内部提供了一个优先交叉开关译码电路,实现P0-P3和这些资源的可编程连接,这就是优先交叉开关译码器;C8051F单片机有64位数字I/O端口;其中P0-P3可以按照优先交叉开关译码的方式为片内资源分配引脚,用端口I/O交叉开关寄存器XBR0-XBR2实现;11、假如一个单片机应用系统中要用到的资源位UART0、SMBus、SPI、和CP0分配端引口共9个引脚;另外将外部存储器解耦配置为复用方式并使用低端口;同时还将、、配置为模拟输入,以便用ADC1测量加在这些引脚上的电压;试用Config 软件进行优先权交叉开关译码器的配置,写出配置步骤,配置XBR0~XBR2等相关SFR的值;1按UART0EN=1、SMB0EN=1、SPI0EN=1、CP0E=1、EMIFLE=1设置XBR0、XBR1、XBR2得XBR0=0x87、XBR1=0x00、XBR2=0x02;2存储器接口配置为复用方式并使用低端口,有PTRSEL=0、EMD2=0;3~配置为模拟输入方式有:P1MDIN=0xe3;4设置XBARE=1使能交叉开关,则XBR2=0x42;UART0优先级最高,、分配给TX0、RX0;SPI优先权次之,~分配给SCK、MISO、MOSI、~分配给ALE、/RD、/WR、分配给NSS;下一个优先的是SMBUS,分配给SDA、~做模拟量输入,跳过,分配给SCL;再下面的优先权是CP0,分配给CP0;5UART0的TX0、ALE、/RD、/WR的输出设置为推挽方式,P0MDOUT=0xe1;6P2、P3设置为推挽方式P2MDOUT=0xff、P3MDOUT=0xff;7P1设置为漏极开路方式,并禁止3个模拟输入的输出驱动:P1MDOUT=0x00、P1=0xff;13、8051F单片机进入空闲方式时,单片机的振荡器是否工作采用何种方法能使单片机退出空闲方式工作;复位或中断;14、C8051F020有几个复位源,分别是什么自己的项目中最常使用的是什么复位源7个:上/电复位、外部/RST引脚复位、外部CNVSTR信号复位、软件命令复位、比较器0复位、时钟丢失检测器复位、WatchDog超时复位;15、再简单的试验程序中,如果看门狗定时器复位不使用,该如何禁用向WDTCN写入0xDE后,4个系统时钟周期内再写入0xAD;该过程不应被中断;C51代码:EA=0; //禁止中断WDTCN=0xDE; WDTCN=0xAD; EA=1; //允许中断第三章:1、片外RAM从1000H~10FFH单元有一数据块,用汇编语言编写程序将其传送到片外RAM的2500H单元开始的区域中;org 0000hmov dptr,1000hmov r2,256mov r2,0mov r3,25hmov r4,00hloop:movx a,dptrpush dphpush dpl 或者mov dph,r3mov dpl,r4movx dptr,Apop dplpop dphinc dptrinc r4djnz r2,loopsjmp $end3、用汇编语言编写将累加器A的一位十六进制数A的高4位为0转换为ASC II 码的程序,转换结果仍存放在累加器A中,要求用查表和非查表两种方式实现;ADD A,30HCJNE A,3AH,CONTCONT:JNC ADD7JMP EXITADD7:ADD A,7EXIT:SJMP $END4、用汇编语言编程实现函数,设x的值存放在片内RAM的35H单元,y的值存放在片内RAM的36H单元; y =x+1 ,x>10;0,5<=x<=10;-1,x<5 MOV A,35H ;取xCJNE A,11,NEXT1 ;与11比较,不等于11,转NEXT1NEXT1:JNC NEXT2 ;大于等于11,转NEXT2CJNE A,5,NEXT3 ;小于11,再与5比较,不等于5转NEXT3NEXT3:JNC NEXT4 ; 无借位大于等于5,转NEXT4MOV A,-1 ;小于5AJMP NEXT5NEXT4:MOV A,0 ;5到10之间AJMP NEXT5NEXT2: ADD A,1 ;大于10 NEXT5:MOV 36H,ASJMP $END或同学作业:X EQU 35HY EQU 36HORG 0000HAJMP STARTORG 0100HSTART:MOV A,XCLR CSUBB A,05HJNC NEXTMOV Y,0FFHAJMP DONENEXT:MOV A,XCLR CSUBB A,0BHJNC NEXT1MOV Y,00HAJMP DONENEXT1:MOV A,XINC AMOV Y,ADONE:SJMP DONEEND6、用汇编语言编写程序,将R0保存到片内RAM的30HMOV R1,30HMOV R7,8MOV A,R0NEXT: RLC AJC 0NEMOV R1,30HJMP EXIT 或者ONE: MOV R1,31HEXIT: INC R1DJNZ R7,NEXTSJMP $END11、用汇编语言编程求两个无符号数据块中最大值的乘积;数据块的首地址分别为片内RAM的60H和70H,每个数据块的第一字节用来存放数据块的长度;结果存入片内MOV R0,60HACALL MAXMOV B,A;第一个数据块最大值MOV R0,70HACALL MAXMUL AB;两个数据块最大值相乘MOV 5FH,BMOV 5EH,ASJMP $MAX: MOV A,R0;数据块长度DEC AMOV R7,AINC R0MOV A,R0;第一个数据LOOP: CLR CMOV B,AINC R0MOV A,R0SUBB A,B;两个比较,也可以用CJNE实现JNC NEXTMOV A,BSJMP NEXT1NEXT: ADD A,BNEXT1:DJNZ R7,LOOP 下一行RET第4章:5.利用C8051F020单片机的T0计数,每计10个脉冲,取反一次,试用查询和中断两种方式编程;确定工作方式,计算初值:选方式2计数方式,初值=256-10=246=0xf6; 查询方式程序:sbit P1_0=P1^0;void mainvoid{//关看门狗WDTCN=0xde;WDTCN=0xad;//配置交叉开关XBR1=0x02;//允许T0外部输入XBR2=0x40;//使能交叉开关//初始化定时器0TMOD=0x06;// 方式2计数TL0=OxF6;TH0=OxF6;TR0=1;//启动T0While1{WhileTF0;//等待计数溢出TF0=0;P1_0=P1_0;}}中断方式程序:sbit P1_0=P1^0;void mainvoid{//关看门狗WDTCN=0xde;WDTCN=0xad;//配置交叉开关XBR1=0x02;//允许T0外部输入XBR2=0X40;//初始化定时器0IE|=0x82;//允许T0中断While1;//等待中断}void T0_ISRvoid interrupt 1 {P1_0=P1_0;}TMOD=0x06;// 方式2计数 TL0=OxF6; TH0=OxF6; TR0=1;//启动T08.在C8051F020单片机中,已知系统时钟频率为12MHz,编写程序使和分别输出周期为2ms 和50μs 的方波;解:和分别每1ms 和25μs 取反一次即可;选T0方式1定时25μs,每溢出40次取反一次;初值计算:由P157公式:10212Nosc T M T TC f -=-⨯(),选T0M=0得:a=216-25=65511=0xffe7; 程序:sbit P1_0=P1^0; sbit P1_1=P1^1; int count=40; void mainvoid {//关看门狗 WDTCN=0xde; WDTCN=0xad; //使能交叉开关 XBR2=0x40; //初始化定时器0TMOD=0x01;// 方式1定时 TL0=0xe7; TH0=0xff ;IE|=0x82;//允许T0中断 TR0=1;//启动T0 While1;//等待中断 }void T0_ISRvoid interrupt 1 {TL0|=0xe7;TH0=0xff ; P1_0=P1_0; Count--;IfCount==0{ P1_1=P1_1; Count=40;} }15.当C8051F020的串行口工作在方式2、3时,它的第9数据位可用作“奇偶校验位”进行传送,接收端用它来核对接收到的数据正确与否;试编写串行口方式2带奇偶校验的发送和接收程序; 解:发送程序: void sendchar ch {ACC=ch; TB80=P; SBUF0=ch; While TI0; TI0=0; }接收程序: char receivevoid {While RI0; RI0=0;ACC=SBUF0;If RB80==P return ch; }16. 设甲乙两机采用UART0方式1通信,波特率为4800,甲机发送0、1、2…、1FH,乙机接受并存放在内部RAM 以20H 为首地址的单元,试用查询和中断两种方式编写甲、乙两机的程序系统时钟为12MHz设利用T1工作在定时方式2自动重装初值提供波特率,T1M=0按振荡器12分频计数,SMOD0=0,T1初值计算如下:X=256-波特率)(⨯⨯⨯-32122)11(0M T SMOD SYSCLK =256-480032121012)10(6⨯⨯⨯-=250=FAHinclude <>unsigned char xdata tbuf={0x0,0x1,…,0x1f};void mainvoid{unsigned char i;unsigned char xdata p=tbuf;XBR0=0x04; //配置交叉开关XBR2=0x40;P0MDOUT|=0x01;//TX0为推挽输出方式TMOD=0x20; //初始化并启动T1TH1=0xfa;TL1=0xfa;TR1=1;SCON0=0x40; //UART0初始化fori=0;i<32;i++{SBUF0=p; //一字节送发送SBUF0p++;whileTI0; //等待发送完成TI0=0;}}查询方式接收程序:include <>void mainvoid{unsigned char i;char data p; //发送数据块地址指针XBR0=0x04; //配置交叉开关XBR2=0x40;P0MDOUT|=0x01;//TX0为推挽输出方式TMOD=0x20; //初始化并启动T1TH1=0xfa;TL1=0xfa;TR1=1;SCON0=0x50; //UART0初始化,允许接收p=0x20; //地址指针初始化fori=0;i<32;i++{whileRI0; //等待UART0接收一个字符RI0=0;p=SBUF0; //放入接收缓冲区p++;}}……参考P195例正弦波发生器程序:DAC0输出更新发生在写DAC0H时:include <>include<>sfr16 DAC0=0xd2void dac0_initvoid;void mainvoid{uninsigned int i;float x,y;WDTCN=0xde;//关看门狗WDTCN=0xad;dac0_init;//DAC0初始化while1{forx=0;x<2;x+={//12位DAC的数字容量为4K0-0FFFH,y的值最大为4096y=2048sinx+1;DAC0=y;//设置待转换的值并启动DA转换fori=0;i<=200;i++;//延时可改变正弦波的周期}}}void dac0_intvoid{REF0CN=0x03;DAC0CN|=0x08;}方波输出:定时器T3溢出时DAC更新;include<>sfr16 TMR3RL=0x92;srf16 DAC0=0xd2;define SYSCLK 2000000void Timer3_Initint counts;void Timer3_ISRvoid;void DAC_Initvoid;void mainvoid{unsigned int i;WDTCN=0xde;//关看门狗WDTCN=0xad;Timer3_InitSYSCLK/12/5;DAC_Init;EA=1;while1{DAC0L=0xf0;//设置待转换的值0FF0HDAC0H=0x0f;fori=0;i<100;i++;DAC0L=0x0; //设置待转换的值0000HDAC0H=0x0;fori=0;i<100;i++;}}void DAC_initvoid{REF0CN=0x03;//内部偏压发生器和电压基准缓冲器工作DAC0CN|=0x88;//使能DAC0,T3溢出时更新}void Timer3_Initint counts{TMR3CN=0x00;//SYSCLK/12作为时基TMR3RL=-counts;//重载值TMR3=0xffff;//立即重载EIE2|=0x01;//允许T3中断TMR3CN=0x04;//启动T3}void Timer3_ISRvoid{TMR3CN&=~0x80;//清TF3}实验2:查表实验$INCLUDEorg 0000hmov dptr,tablemov a,3rl amov r1,amovc a,a+dptrpush dphpush dplmov dptr,2000hmovx dptr,apop dplpop dphinc dptrmov a,r1movc a,a+dptrmov dptr,2001hmovx dptr,al1:sjmp l1table: dw 8000h,8001h,8002h,8003h end或:MOV A,3CALL SEARCHMOV DPTR,2000HMOV A,R2MOVX DPTR,AMOV A,R3INC DPTRMOVX DPTR,ASJMP $ SEARCH:MOV DPTR,table RL AMOV B,A Array MOVX A,A+DPTRMOV R2,AMOV A,BINC AMOVX A,A+DPTRMOV R3,A。
1- 1.除了单片机这一名称外,单片机还可称为(微控制器)和(嵌入式控制器)。
参P11- 2.单片机与普通微型计算机的不同之处在于其将(CPU )、(存储器)和(I/O 口)三部分,通过内部(总线)连接在一起,集成于一块芯片上。
参P11- 3. 8051与8751的区别是(C)。
参P6A.内部数据存储单元数目不同 B.内部数据存储器的类型不同C. 内部程序存储器的类型不同D. 内部寄存器的数目不同1- 4.在家用电器中使用单片机应属于微计算机的(B)。
参P3A. 辅助设计应用B. 测量、控制应用C. 数值计算应用D. 数据处理应用1- 5 .微处理器、微计算机、微处理机、CPU、单片机、之间有何区别?参P1、参P12答:微处理器、微处理机和CPU它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机。
而微计算机、单片机它们都是一个完整的计算机系统,单片机是集成在一个芯片上的用于测控目的的单片微计算机。
嵌入式处理器一般意义上讲,是指嵌入系统的单片机、DSP、嵌入式微处理器。
目前多把嵌入式处理器多指嵌入式微处理器,例如ARM7、ARM9等。
嵌入式微处理器相当于通用计算机中的CPU。
与单片机相比,单片机本身(或稍加扩展)就是一个小的计算机系统,可独立运行,具有完整的功能。
而嵌入式微处理器仅仅相当于单片机中的中央处理器。
为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。
1- 6. MCS-51系列单片机的基本型芯片分别为哪几种?它们的差别是什么?参P6答:MCS-51系列单片机的基本型芯片分别为:8031、8051和8751。
它们的差别是在片内程序存储器上。
8031无片内程序存储器、8051片内有4K字节的程序存储器ROM,而8751片内有集成有4K字节的程序存储器EPROM。
1- 7.为什么不应将51系列单片机称为MCS-51系列单片机?参P6答:因为MCS-51系列单片机中的“ MCS ”是In tel公司生产的单片机的系列符号,而51系列单片机是指世界各个厂家生产的所有与8051的内核结构、指令系统兼容的单片机。
单片机编程练习题(含部分答案)单片机编程练习题(含部分答案)在单片机编程的学习过程中,练习题是非常重要的一部分。
通过完成各种编程练习,我们可以提高自己的编程能力,掌握单片机的各种功能和应用。
本文将介绍一些常见的单片机编程练习题,并提供部分答案,帮助读者更好地理解相关知识。
一、LED亮灯顺序控制题目描述:使用单片机控制4个LED灯按指定的顺序依次亮起。
解答思路:首先,我们需要定义4个LED灯的引脚,使用宏定义的方式可以方便地修改引脚号码。
然后,在主函数中通过设置引脚输出高电平或低电平的方式控制LED灯的亮灭状态。
可以使用延时函数来控制每个LED灯亮起的时间。
代码示例:```#include <reg51.h>#define LED1 P1_0#define LED2 P1_1#define LED3 P1_2#define LED4 P1_3void delay(unsigned int time) // 延时函数{unsigned int i, j;for (i = time; i > 0; i--)for (j = 110; j > 0; j--);}void main(){LED1 = 0; // LED1灭LED2 = 0; // LED2灭LED3 = 0; // LED3灭LED4 = 0; // LED4灭while (1){LED1 = 1; // LED1亮delay(1000); // 延时1秒LED1 = 0; // LED1灭LED2 = 1; // LED2亮delay(1000); // 延时1秒LED2 = 0; // LED2灭LED3 = 1; // LED3亮delay(1000); // 延时1秒LED3 = 0; // LED3灭LED4 = 1; // LED4亮delay(1000); // 延时1秒LED4 = 0; // LED4灭}}```二、数码管计数器题目描述:使用单片机控制数码管显示一个0~9的计数器。
单片微型计算机原理与接口技术1、题目:80C51单片微机芯片引脚第二功能有哪些?答:80C51单片机的P0、P2和P3引脚都具有第二功能。
第一功能第二变异功能P0.0~P0.7 地址总线A0~A7/数据总线D0~D7P2.0~P2.7 地址总线A8~A15P3.0 RXD(串行输入)P3.1 TXD(串行输入)P3.2 INTO(外部中断0)P3.3 INT1(外部中断1)P3.4 TO(定时器/计数器0的外部输入)P3.5 T1(定时器/计数器0的外部输出)P3.6 WR(外部数据存储器或I/O的写选通)P3.7 RD(外部数据存储器或I/O的读选通)2、题目:80C51存储器在结构上有何特点?在物理上和逻辑上各有哪几种地址空间?访问片内RAM和片外RAM的指令格式有何区别?答:80C51单片机采用哈佛(Har-yard)结构,即将程序存储器和数据存储器截然分开,分别进行寻址。
不仅在片内驻留一定容量的程序存储器和数据存储器及众多的特殊功能寄存器,而且还具有较强的外部存储器扩展能力,扩展的程序存储器和数据存储器寻址范围都可达到64KB。
1.在物理上设有4个存储器空间片内程序存储器片外程序存储器片内数据存储器片外数据存储器2.在逻辑上设有3个存储器地址空间片内、片外统一的64KB程序存储器地址空间片内256字节(80C52为384字节)数据存储器地址空间片内数据存储器空间在物理上又包含两部分:-对于80C51型单片机,0~127字节为片内数据存储器空间;128~255字节为特殊功能寄存器(SFR)空间(实际仅占用了20多个字节)-对于80C52型单片机,0~127字节为片内数据存储器空间; 128~255字节共128个字节是数据存储器和特殊功能寄存器地址重叠空间。
片外64KB的数据存储器地址空间。
在访问3个不同的逻辑空间时,应采用不同形式的指令,以产生不同存储空间的选通信号。
访问片内RAM采用MOV指令,访问片外RAM则一定要采用MOVX指令,因为MOVX指令会产生控制信号RD或WR,用来访问片外RAM。
单片机测试题与答案一、单选题(共107题,每题1分,共107分)1.FLASH的中文含义是 ( ) 。
A、闪速存储器B、随机存储器C、只读存储器D、电可擦除可编程存储器正确答案:A2.SP的中文含义是( )。
A、堆栈指针B、数据指针C、系统指针D、符号指针正确答案:A3.下列芯片中属于单片机的芯片是 ( ) 。
A、8086B、80386C、8155D、AT89C1051正确答案:D4.累加器A的内容是84H,执行RR A 指令后累加器的内容变为( ) 。
A、42B、80C、08D、不确定正确答案:A5.下列芯片中属于单片机的芯片是 ( ) 。
A、8086B、80286C、80486D、AT89C2051正确答案:D6.对于MCS-51系列单片机来说,立即寻址可寻址的空间是( )。
A、内部RAMB、程序存储器C、特殊功能寄存器D、外部RAM正确答案:B7.累加器A的内容是35H,执行SWAP A 指令后累加器的内容变为( ) 。
A、30B、05C、50D、53H正确答案:D8.下列指令中,对标志位CY有影响的指令是 ( ) 。
A、ADDB、,C、(B)INCD、(C)MOVE、,F、D.ANLG、,正确答案:A9.对于MCS-51单片机来说,一个机器周期是由 ( )个状态周期构成。
A、1B、2C、4D、6正确答案:D10.8051单片机的P3口可以驱动 ( )个LSTTL负载。
A、32B、8C、4D、16正确答案:C11.上电复位后,8051单片机P3口的值是 ( ) 。
A、80B、0FFC、00D、不确定正确答案:B12.8051单片机的工作频率为6MHz,其内部定时器的最大定时时间是 ( ) 。
A、131072μSB、65536μSC、256μSD、8192μS正确答案:A13.累加器A的内容是0ADH,执行RLC A 指令后累加器的内容变为( ) 。
A、5BB、5AC、56D、不确定正确答案:D14.8051单片机的堆栈位于( )中。
单片机习题答案在单片机学习的过程中,习题是一种非常有效的学习和巩固知识的方式。
本文将为您提供一些常见单片机习题的答案,帮助您更好地理解和掌握单片机的相关知识。
1. 以下哪个不是单片机的特点?答案:d. 复杂性高2. 单片机是一种集成度很高的电子元件,它由什么组成?答案:单片机包括中央处理器(CPU)、存储器(ROM、RAM)和输入输出接口(I/O)等组成部分。
3. 下面哪个不是单片机的应用领域?答案:d. 显示器4. 单片机的时钟是指什么?答案:单片机的时钟是指控制单片机内部各功能模块相互协调工作的时间基准。
5. 单片机的编程存储器包括哪些类型?答案:单片机的编程存储器包括只读存储器(ROM)和可编程存储器(EPROM、EEPROM、Flash)等类型。
6. 在单片机中,端口是用来做什么的?答案:端口是单片机与外部设备进行信息交互的接口。
7. 单片机的外部中断是指什么?答案:单片机的外部中断是通过外部引脚触发的中断信号,用于在特定事件发生时,打断正在执行的程序。
8. 单片机的计数器是用来做什么的?答案:单片机的计数器用于计数和定时等应用。
9. 单片机的A/D转换器是用来做什么的?答案:单片机的A/D转换器用于将模拟信号转换为数字信号,实现模拟量的采集和处理。
10. 在单片机中,I/O口可以分为几种工作模式?答案:在单片机中,I/O口可以分为输入模式和输出模式两种。
通过以上习题的答案,可以加深对单片机的了解和理解。
希望这些答案能够对您的学习有所帮助!单片机是一门复杂而又有趣的学科,希望您能在学习中保持好奇心和探索精神,不断提高您的单片机技能。
祝您在单片机学习的道路上取得优异的成绩!。
单片机习题参考答案第四章P97 6,7,9,10,12,16,17,18,19,23,27,28,296.在80C51片内RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H,请分析下段程序中各指令的作用,并翻译成相应的机器码;说明源操作数的寻址方式及顺序执行每条指令后的结果。
机器码(H) 指令结果源操作数的寻址方式E540 MOV A,40H ;A=(40H)=48H 直接寻址F8 MOV R0,A ;R0=48H 寄存器寻址7590F0 MOV P1,#0F0H ;P1=0F0H 立即寻址A630 MOV @R0,30H ;(48H)= 38H 直接寻址901246 MOV DPTR,#1246H;DPTR=1246H 立即寻址853840 MOV 40H,38H ;(40H)=40H 直接寻址A830 MOV R0,30H ;R0=38H 直接寻址8890 MOV 90H,R0 ;(90H)=38H 寄存器寻址754830 MOV 48H,#30H ;(48H)=30H 立即寻址E6 MOV A,@R0 ;A=40H 寄存器间接寻址8590A0 MOV P2,P1 ;P2=P1=38H 直接寻址7.试说明下列指令的作用,并将其翻译成机器码,执行最后一条指令对PSW有何影响?A的终值为多少?机器码(H) 指令结果(1) 7872 MOV R0,#72H ;R0=72HE8 MOV A,R0 ;A=72H,P=0244B ADD A,#4BH ;A=BDH,CY=0,OV=1,AC=0,P=0(2) 7402 MOV A,#02H ;A=02H,P=1F5F0 MOV B,A ;B=02H740A MOV A,#0AH ;A=0AH,P=025F0 ADD A,B ;A=0CH,CY=0,OV=0,AC=0,P=0A4 MUL AB ;A=18H,B=0,CY=0,OV=0,AC=0,P=0(3) 7420 MOV A,#20H ;A=20H,P=1F5F0 MOV B, A ;B=20H25F0 ADD A,B ;A=40H,CY=0,OV=0,AC=0,P=19410 SUBB A,#10H ;A=30H,CY=0,OV=0,AC=0,P=084 DIV AB ;A=01H,B=10H,CY=0,OV=0,AC=0,P=19.试编程将片外数据存储器60H中的内容传送到片内RAM 54H单元中。
3-3
(1)略
(2)S1的地址为2000H,S2的地址为2005H,NW的地址为200AH,P的地址为2010H
(3)MOV A,#COUNT ;A=-2-2005H=-2003H
MOV DPTR,#S2 ;DPTR=2005H
MOVC A,@A+DPTR ;A=?
3-4
(1)立即数寻址将立即数40H赋给A寄存器
(2)直接寻址将直接地址40H中存储的数据赋给A寄存器
(3)间接寻址将R1指向的片内RAM存储单元中存储的数据赋给A寄存器
(4)寄存器寻址将R3寄存器中存储的数据赋给A寄存器
(5)基址+变址寻址以读取SJMP LOOP指令后的PC值与A寄存器的值相加,将和作为ROM存储单元的地址,将该地址中存储的数赋给A寄存器
(6)相对寻址以读取SJMP LOOP指令后的PC值与A寄存器的值相加,将和作为ROM存储单元的地址,将该地址赋给PC
3-5
(1)MOV A,R0
MOV R1,A
(2)MOV R2,60H
(3)MOV DPTR,#1000H
MOVX A,@DPTR
MOV 60H,A
(4)MOV DPTR,#1000H
MOVX A,@DPTR
MOV R2,A
(5)MOV DPTR,#1000H
MOVX A,@DPTR
MOV DPTR,#2000H
MOVX @DPTR,A
3-7
MOV SP,#70H
PUSH 20H ;(71H)=X
PUSH 21H ;(72H)=Y
PUSH 22H ;(73H)=Z
3-9
ANL A, #17H ;A=0001 0010B=12H
ORL 30H,A ;(30H)=1011 0111B=B7H
XRL A,@R0 ;A=1010 0101B=A5H
CPL A ;A=0101 1010B=5AH
3-11
读指令LCALL 3456H后,PC自加3,则PC=2345H+3=2348H,执行LCALL 3456H时,将PC的当前值压入堆栈,则堆栈中(71H)=48H,(72H)=23H,SP加2,即SP=70H+2=72H,再将3456H赋给PC,即PC=3456H。
(1)执行指令LCALL 3456H后,SP=72H,堆栈中的内容为(71H)=48H,(72H)=23H
(2)此时调用入口地址为3456H处的子程序
(3)执行为RET指令后,SP=70H,PC=2348H,(71H)=48H,(72H)=23H,71H和72H单元中的内容已不属于堆栈中的数据,因为已经被弹出了堆栈。
3-22
MOV DPTR,#3000H ;DPTR指向片外RAM数据块
MOV R2,#5 ;R2存放循环次数
MOV 40H,#0 ;片内RAM 40H存放和的低字节
MOV 41H,#0 ;片内RAM 41H存放和的高字节
MOV 42H,#0 ;片内RAM 42H存放进位
LP: MOVX A,@DPTR
ADD A,40H
MOV 40H,A ;和加上一个加数的低字节
INC DPTR
MOVX A,@DPTR
ADDC A,41H
MOV 41H,A ;和加上一个加数的高字节
MOV A,42H
ADDC A,#0
MOV 42H,A ;加进位
INC DPTR
DJNZ R2,LP ;循环
SJMP $
5-6
SETB EA
SETB EX0
SETB EX1
SETB ET0
SETB PX1
选定时工作方式1,通过计算得定时初值为EC18H
工作方式字:10H
MOV TH1,#0ECH
MOV TL1,#18H ;设定时初值
MOV TMOD,#10H ;设工作方式字
SETB TR1 ;启动定时
LP: JNB TF1,LP ;等待定时1ms结束
CLR TF1 ;将TF1清零,开始下一次定时1ms
CPL P1.0 ;P1.0每隔1ms取反,生成方波
MOV TH1,#0ECH
MOV TL1,#18H ;重赋定时初值
LJMP LP ;循环
P172 6-3
访问指令不同:片外程序存储器用MOVC指令访问,片外数据存储器用MOVX指令
访问的控制信号不同:执行MOVC指令时PSEN 有效,执行MOVX指令时RD或WR 有效因此,两者的地址可重叠。