单片机中空间和堆栈的意义
单片微机原理及应用课后习题答案

单片微机原理及应用课后习题答案第一章单片机基础1-1单片机的发展分为几个阶段?答:到目前为止,单片机的发展大致分为五个阶段:第一阶段:单片机发展的初级阶段。
第二阶段:低性能单片机阶段。
第三阶段:高性能单片机阶段。
第四阶段:16位MCU。
第五阶段:单片机在集成度、功能、速度、可靠性、应用领域等方面向更高水平发展。
1-2说明单片机的主要应用领域?答:由于单片机具有体积小、重量轻、价格便宜、功耗低、易扩展、可靠性高、控制功能强及运算速度快等特点,在国民经济建设、军工产品及家电器等领域得到了广泛的应用。
主要是:① 工业自动化;② 智能仪器;③ 消费电子产品;④ 表达⑤ 军品;⑥ 终端和外部设备控制;⑦ 多机分布式系统。
1-3mcs-51系列单片机芯片包括哪些功能部件?每个功能部件的功能是什么?答:MCS-51系列列单片机的内部结构:1.中央处理器cpu。
其主要完成单片机的运算和控制功能,mcs-51系列单片机的cpu不仅可以处理字节数据,还可以进行位变量的处理。
2.片内数据存储器ram。
ram用于存储单片机运行中的工作变量、中间结果和最终结果等。
3.片内程序存储器rom/eprom。
程序存储器既可以存放已编制的程序,也可以存放一些原始数据和表格。
4.特殊功能寄存器sfr。
sfr用以控制和管理内部算术逻辑部件、并行i/o口、定时/计数器、中断系统等功能模块的工作。
5.并行口。
一共有4个8位的并行i/o口:p0、p1、p2、p3。
p0是一个三态双向口,可作为地址/数据分时复用口,也可作为通用i/o口。
p1只能作为通用i/o口。
p2可以作为通用i/o口,也可作为在单片机扩展外部设备时,高8位地址总线使用。
p3除了作为通用准双向i/o接口外,各引脚还具有第二功能。
6.串行口。
有一个全双工的串行口,可以实现单片机与外设之间数据的逐位传送。
7.定时/计数器。
可以设置为定时方式或计数方式。
1-4mcs-51系列MCU的引脚中有多少条I/O线?它们类似于单片机的外部地址总线和数据总线什么关系?地址总线和数据总线各是多少位?说明准双向口的含义?答:mcs-51一共共有32个I/O引脚。
单片机C语言 必知的数据存储与程序编写知识 附单片机应用编程知识介绍

一、五大内存分区内存分成5个区,它们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。
1、栈区(StaCk):FIFo就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。
里面的变量通常是局部变量、函数参数等。
2、堆区(heap):就是那些由new分配的内存块,它们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。
如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。
3、自由存储区:就是那些由malloc等分配的内存块,它和堆是十分相似的,不过它是用free 来结束自己的生命。
4、全局/静态存储区:全局变量和静态变量被分配到同一块内存中,在以前的C语言中,全局变量又分为初始化的和未初始化的,在C++里面没有这个区分了,他们共同占用同一块内存区。
5、常量存储区:这是一块比较特殊的存储区,它们里面存放的是常量,不允许修改(当然,你要通过非正当手段也可以修改,而且方法很多)code/data/stack内存主要分为代码段,数据段和堆栈。
代码段放程序代码,属于只读内存。
数据段存放全局变量,静态变量,常量等,堆里存放自己malloc或new出来的变量,其他变量就存放在栈里,堆栈之间空间是有浮动的。
数据段的内存会到程序执行完才释放。
调用函数先找到函数的入口地址,然后计算给函数的形参和临时变量在栈里分配空间,拷贝实参的副本传给形参,然后进行压栈操作,函数执行完再进行弹栈操作。
字符常量一般放在数据段,而且相同的字符常量只会存一份。
二、C语言程序的存储区域1、由C语言代码(文本文件)形成可执行程序(二进制文件),需要经过编译-汇编-连接三个阶段。
编译过程把C语言文本文件生成汇编程序,汇编过程把汇编程序形成二进制机器代码,连接过程则将各个源文件生成的二进制机器代码文件组合成一个文件。
2、C语言编写的程序经过编译-连接后,将形成一个统一文件,它由几个部分组成。
《单片机原理及应用》习题库及答案

《单片机原理及应用》习题库单位:广东松山职业技术学院电气工程系自动化教研室编者:田亚娟等审核:《单片机原理及应用》精品课程项目组适用专业:电气自动化技术等专业一、填空题1.单片机与普通计算机的不同之处在于其将_CPU__、存储器和__I/O_3部分集成于一块芯片之上。
2.CPU主要由运算器和控制器组成。
CPU中的布尔处理器用来处理位操作。
3.MSC-51系列单片机中,片内无ROM的机型是8031 ,有4KB ROM的机型是_8051_,而有4KB EPROM 的机型是8751 。
4.-32的补码为11100000 B,补码11011010B代表的真值为_-38__D。
5.原码数BFH=_-63_D,原码数6EH=_110_D。
6.100的补码=_64_H,-100的补码= 9C H7.在8031单片机内部,其RAM高端128个字节的地址空间称为特殊功能寄存器或SFR 区,但其中仅有_21_个字节有实际意义。
8.通常单片机上电复位时PC=_0000_H,SP=_07_H,通用寄存器则采用第_0_组,这一组寄存器的地址范围是从_00 H~_07_H。
9.若PSW为18H,则选取的是第_3__组通用寄存器。
10.8031单片机复位后R4所对应的存储单元地址为_04_H,因上电时PSW=_00_H。
11.若A中数据为63H,那么PSW的最低位(即奇偶位P)为_0_。
12.在微机系统中,CPU是按照程序计数器PC 来确定程序的执行顺序的。
13.在8031单片机中,使用P2、P0口传送地址信号,且使用了P0口来传送数据信号,这里采用的是总线复用技术。
14.堆栈遵循先进后出(或后进先出)的数据存储原则,针对堆栈的两种操作为_PUSH_和_POP_。
15.当8051地RST端上保持两个机器周期以上低电平时,8051即发生复位。
16.使用8031单片机时需将EA引脚接_低__电平,因为其片内无程序存储器。
17.8位机中的补码数80H和7EH的真值分别为_-128__和_127 。
单片机习题答案1-2

习题一1.什么是单片机,和微机相比拟,它有什么优点?2.请表达51系列单片机的主要产品及其特点。
3.除51系列单片机外,常用的单片机还有哪些型号,各有什么优点?4.单片机中常用的数制有哪些,它们之间相互如何转换?5.计算机中常用的二进制编码有哪些,请分别予以表达。
6.〔1〕10和〔-1〕10的原码、反码和补码分别是多少?习题二1.单片机主要应用在什么领域?2. 89C51单片机包含哪些主要逻辑功能部件? 各有什么主要功能?3.89C51单片机EA端如何使用?4.什么是机器周期、指令周期?89C51指令周期、机器周期和时钟周期的关系如何?当主频为12MHz时,一个机器周期等于多少微秒?执行一条最长的指令需多少微秒?5.如何认识89C51存储器空间在物理结构上可划分为四个空间,而在逻辑上又可划分为三个空间?各空间的寻址范围、寻址方式是什么?6.89C51有哪些主要的特殊功能存放器,分布在哪里?7.内部RAM低128B从功能和用途方面,可划分为哪三个区域?8.89C51内部RAM有几组工作存放器?每组工作存放器有几个工作存放器?存放器组的选择由什么决定?9.89C51的外部RAM和I/O口是如何编址的,如何寻址?10.89C51的程序存储器的寻址空间是多少,如何区别片内程序存储器和片外程序存储器的?11.89C51的位寻址区在哪里,位寻址空间是多少?12.什么是堆栈,什么是SP,89C51的堆栈位于什么地方,复位后堆栈指针初值是多少,一般将SP设置为多少?进栈、出栈时堆栈指针将怎样变化?13.单片机包括哪两种复位方式,在单片机应用系统中为何需要系统复位,复位后主要存放器的状态如何?14.89C51的P3口各引脚的第二功能是什么?15.89C51有几种低功耗方式,如何进入和退出?习题三1.什么是指令,什么是指令系统?2.89C51总共有多少条指令,分为哪几类?3.89C51有哪些寻址方式,各自的寻址空间如何?4.说明以下指令中源操作数采用的寻址方式。
第2章STC系列单片机的结构与原理全

SS
SPI同步串行接口的从机选择信号端
P1.4
CCP1
PCA模块1的外部捕获触发信号输入、脉 冲输出及PWM输出
P1.5
MISO
SPI同步串行接口的主入从出(主器件的 输入和从器件的输出)
P1.6
MOSI
SPI同步串行接口的主出从入(主器件的 输出和从器件的输入)
P1.7
SCLK
SPI同步串行接口的时钟信号
P3.1 TxD
P3.2
INT 0
P3.3
INT1
T0
P3.4 CLKOUT0
INT T1
P3.5 CLKOUT1
INT
P3.6
WR
P3.7
RD
功能
串行口1数据接收端 串行口1数据发送端 外部中断0触发端,低电平或下降沿有效 外部中断1触发端,低电平或下降沿有效 定时/计数器T0工作在计数状态时外部信号输入端 时钟输出端 T0外部引脚下降沿触发中断 定时/计数器T1工作在计数状态时外部信号输入端 时钟输出端 T1外部引脚下降沿触发中断
• (3)VCC:电源正极。 • (4)GND:电源负极
19
2.4程序状态字寄存器
• 程序状态字寄存器PSW
D7 D6 D5 D4 D3 D2 D1 D0
CY AC F0 RS1 RS0 OV F1 P
C当C当位A在有YY运运时O在超表C—=执进P用A偶算算,—V1执出示——行位寄—;于数结结—C行溢8进—加或存—位记 则Y果 果辅加 出位奇法 借器溢有=录清的的助法,或用0偶或位中出符A零最最。进或O借户校减,寄1标号。高高位V的减位标验法则存志置数只位位标个法标识标指A器位1表要产没志数,运志C位志令中。示A生有位置为否算位0R位时1寄的择进产。位奇的S则时。。,存范1位生,数个O,、若器围,或进工V否,数若RD中清-用者位作则1S则的运3的零20位来借或寄A奇P8算:数。C-置向选位者存偶的寄清据+位D择时借器性结存1零4发,2当,组位。果用器。7生为前,若户组改的标选识位1 变,就会影响奇偶校验位P。
单片机简答题答案

简答题1.什么是指令系统?指令系统:计算机所能执行的全部指令的集合,它描述了计算机内全部的控制信息和“逻辑判断”能力。
不同计算机的指令系统包含的指令种类和数目也不同。
一般均包含算术运算型、逻辑运算型、数据传送型、判定和控制型、输入和输出型等指令。
2.什么是指令指令是指示计算机执行某种操作的命令,它由一串二进制数码组成。
3.什么是汇编语言?答:汇编:汇编语言源程序在交付计算机执行之前,需要先翻译成目标程序,这个翻译过程叫汇编。
4.什么是寻址方式答:寻址方式:寻址方式就是寻找指令中操作数或操作数所在地址的方式。
也就是如何找到存放操作数的地址,把操作数提取出来的方法。
5.什么是堆栈答:堆栈是在片内RAM中专门开辟出来的一个区域,数据的存取是以"后进先出"的结构方式处理的。
实质上,堆栈就是一个按照"后进先出"原则组织的一段内存区域。
6.什么是指令周期指令周期:指执行一条指令所占用的全部时间。
通常一个指令周期含1~4个机器周期。
7.串行数据传送的主要优点和用途是什么?答:串行数据传送的主要优点是硬件接口简单,接口端口少(2个)。
主要用于多个单片机系统之间的数据通信。
8.MC S一51指令集中有无“程序结束”指令?怎样实现“程序结束”功能?答:没有这样的指令。
但实现“程序结束”至少可以借助4种办法:①用原地踏步指令SJMP $ 死循环。
②在最后一条指令后面设断点,用断点执行方式运行程序。
③用单步方式执行程序。
④在末条指令之后附加一条LJMP监控显示器程序首地址或LJMP 0000H,返回监控状态。
9.中断服务子程序与普通子程序有哪些异同之处?2.中断服子程序与普通子程序的执行和返回有什么异同之处?答:中断服务子程序与普通子程序都是一种能完成某一特定任务的程序段。
其资源要为所有调用程序共享。
因此,子程序在结构上应具有独立性和通用性。
子程序的第一条指令的地址称为子程序的入口地址。
单片机原理与应用实验考查题和标准答案

单片机原理与应用实验考查题及标准答案1.AT89S51内部四个并行I/O口各有什么异同?作用是什么?答:MCS-51单片机共有四个8位双向并行的I/O端口,每个端口都包括一个锁存器、一个输出驱动器和一个输入缓冲器。
但这四个端口的功能不全相同,P0口既可作一般I/O端口使用,又可作地址/数据总线使用;P1口是一个准双向并行口,作通用并行I/O口使用;P2口除了可作为通用I/O使用外,还可在CPU访问外部存储器时作高八位地址使用;P3口是一个多功能口除具有准双向I/O功能外,还具有第二功能。
2.开机复位后,CPU使用的是那组工作寄存器?他们的地址是设呢么?CPU如何确定和改变当前工作寄存器组?答:开机复位后,cpu使用第0组工作寄存器,地址是00H~07H,可通过对PSW状态字寄存器中的RS1和RS0两位的设置来确定和改变CPU当前使用的工作寄存器组3.微处理器,微计算机,微处理机,CPU,单片机,嵌入式处理器之间有何区别?答:微处理器、微处理机和CPU它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机。
而微计算机、单片机它们都是一个完整的计算机系统,单片机是集成在一个芯片上的用于测控目的的单片微计算机。
嵌入式处理器一般意义上讲,是指嵌入系统的单片机、DSP、嵌入式微处理器。
目前多把嵌入式处理器多指嵌入式微处理器,例如ARM7、ARM9等。
嵌入式微处理器相当于通用计算机中的CPU。
与单片机相比,单片机本身(或稍加扩展)就是一个小的计算机系统,可独立运行,具有完整的功能。
而嵌入式微处理器仅仅相当于单片机中的中央处理器。
为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。
4.AT89S51单片机的片内都集成了哪些功能部件?答:AT89S51单片机的片内都集成了如下功能部件:(1)1个微处理器(CPU);(2)128个数据存储器(RAM)单元;(3)4K Flash程序存储器;(4)4个8位可编程并行I/O口(P0口、P1口、P2口、P3口);(5)1个全双工串行口;(6)2个16位定时器/计数器;(7)1个看门狗定时器;(8)一个中断系统,5个中断源,2个优先级;(9)25个特殊功能寄存器(SFR),(10)1个看门狗定时器。
C51单片机堆栈深入剖析

51单片机堆栈深入剖析用C语言进行MCS51系列单片机程序设计是单片机开发和应用的必然趋势。
Keil公司的C51编译器支持经典8051和8051派生产品的版本,通称为Cx51。
应该说,Cx51是C语言在MCS51单片机上的扩展,既有C语言的共性,又有它自己的特点。
本文介绍的是Cx51程序设计时堆栈的计算方法。
1.堆栈的溢出问题。
MCS51系列单片机将堆栈设置在片内RAM中,由于片内RAM资源有限,堆栈区的范围也是有限的。
堆栈区留得太大,会减少其他数据的存放空间,留得太少则很容易溢出。
所谓堆栈溢出,是指在堆栈区已经满了的时候还要进行新的压栈操作,这时只好将压栈的内容存放到非堆栈区的特殊功能寄存器(SFR)中或者堆栈外的数据区中。
特殊功能寄存器的内容影响系统的状态,数据区的内容又很容易被程序修改,这样一来,之后进行出栈操作(如子程序返回)时内容已变样,程序也就乱套了。
因此,堆栈区必须留够,宁可大一些。
要在Cx51程序设计中防止堆栈的溢出,要解决两个问题:第一,精确计算系统分配给用户的堆栈大小,假设是M;第二,精确计算用户需要堆栈的大小,假设是N。
要求M≥N,下面分别分析这两个问题。
2.计算系统分配给用户的堆栈大小Cx51程序设计中,因为动态局部变量是长驻内存中的,实际上相当于局部静态变量,即使在函数调用结束时也不释放空间(这一点不同于标准C语言)。
Cx51编译器按照用户的设置,将所有的变量存放在片内和片外的RAM中。
片内变量分配好空间后,将剩下的空间全部作为堆栈空间,这个空间是最大可能的堆栈空间。
当然,因为Cx51是一种可以访问寄存器的C语言(特殊功能寄存器),因此可在程序中访问SP,将堆栈空间设置得小一点。
不过,一般没有人这么做。
本文只是讨论放在片内RAM的变量。
我们把变量分为两种情况:①用作函数的参数和函数返回值的局部变量。
这种变量尽量在寄存器组中存放。
为了讨论方便,假设统一用寄存器组0,具体的地址为0x00~0x07。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机中空间和堆栈的意义
关于单片机的知识,体积庞大且结构复杂。
初学者很容易陷入困境,最终
失去对单片机的兴趣。
因此在学习单片机时一定要对基础知识进行特别的巩固。
在本文中,小编将为大家介绍单片机地址空间以及堆栈的相关知识,下面大家
就随小编来一起看一看吧。
Data:可寻址片内ram0x00-0x7f
Bdata:可位寻址片内ram
Idata:可寻址片内ram,允许访问全部内部ram0x00-0xff
Padata:分页寻址访问片外ram
Xdata:可寻址片外ram0x0000-0xffff
code--程序存储区单片机存储器分ROM跟RAM之分,RAM存放中间结果,数据和经常变换的代码,ROM存放code。
51单片机采用的是哈弗结构,即数
据跟代码拥有单独的地址空间。
存储器可以分为程序存储器(eerom,flash之类),内部数据存储器(ram),SFR,位地址空间和外部数据存储器。
内部数据存储器
在物理上分为内部SRAM和特殊功能寄存器,而内部分为低(0x00-0x7f)和
(0x80-0xff),高128字节地址重复,需要不同的访问方式。
SFR用直接寻址方式,SRAM需要间接。
这里SFR是寄存器,硬件上是中央处理器的内部组成部分,访问速度很快。
在低128B的SRAM,0x00-0x1f是4个通用工作寄存器,
每组有R0-R7。
使用哪一组,可以通过PSW中的RS1,RS0来配置。
位寻址是在0x20-0x2f。
程序内存可以分为几个区,栈区(stack)、堆区(Heap)、全局区(static)、文字常亮区、程序代码区。
程序编译之后,全局变量,静态变量已经分配好内存空间,在函数运行时,程序需要为局部变量分配栈空间,当中断来时,也需要将函数。