单片机结构 - 存储器、特殊功能寄存器
单片机寄存器_MCS-51单片机特殊功能寄存器详解
1、定时器/计数器的方式寄存器TMOD
TMOD是一个8位的特殊功能寄存器,对应的地址是89H,不可位寻址。
A.主要完成三个功能:
*确定选择定时器还是计数器;
*选择何种工作方式;
*是否借用外中断控制定时器和计数器的启停;
B.TMOD的低4位是控制T0的字段(T0--P3.4 定时器/计数器0外部事件脉冲输入端);TMOD的高4位是控制T1的字段(T1--P3.5定时器/计数器1外部事件脉冲输入端)
C.控制字的格式和含义
a、GATE(TMOD.7)
分为两种情况:
GATE=0,定时器的启停和INT1无关,只取决于TR0;
GATE=1,定时器的启停不仅要由TR0来控制,而且要INT1引脚的控制,只有二者都为高电平时定时器才开始工作;
b、C/T(TMOD.6)
分为两种情况:
C/T=0,用作定时器;
C/T=1,用作计数器;
d、M1(TMOD.5), M0(TMOD.4)
用M1,M0来控制定时器/计数器的4种工作方式:
*方式0:M1=0,M0=0.13位定时/计数方式
*方式1:M1=0,M0=1.16位定时/计数器
*方式2,M1=1,M0=0.8位初值自动重新装入的8位定时/计数器
*方式3,M1=1,M0=1.仅适用于T0,分为两个8位计数器,T1停止计数
2、定时器/计数器控制寄存器TCON
TCON是一个8位的特殊功能寄存器,对应的地址为88H,可为寻址。
A 控制字的格式和含义
a、TF1(TCON.7),TF0(TCON.5)----T1、T0计数溢出标志位
当计数器计数溢出时,该位置“1”。使用查询方式时,此位作为状态位供cpu查询,但应注意在查询该位有效后应以软件方法及时将该位清“0”。使用中断方式时,此位作为中断申请标志位,进入中断服务程序后由硬件自动清0.
51单片机基础知识复习练习题(含答案)
51单片机基础知识复习题(含答案)
1.8051单片机的片内有(一)个16位的特殊功能寄存器。2.MCS-51单片机的堆栈区应建立在(片内数据存储区底128字节单元)。 3.MCS-51单片机定时器工作方式1是指的(D)工作方式。
A.8位 3
B.8位自动重装2
C.13位0
D.16位1
4.当需要从MCS-51单片机程序存储器取数据时,采用的指令为(B)。
A.MOV A, @R1)片内
B.MOVC A, @A + DPTR或MOVC A,@A+PC (
C.MOVX A, @ R0
D.MOVX A, @ DPTR)片外
5.8751单片机程序存储器的容量最大可扩展为(64K)。
B.64K
6.如果某MCS-51单片机系统的定时/计数器0的中断服务程序放在程序存储区的3000H地址开始的一段空间内,此时跳转到定时/计数器0的中断服务程序的指令LJMP 3000H应放在( 000BH)开始的中断地址区A、0003H(外部中断0服务入口)
B、0013H(外部中断1服务入口)
C、0023H(串行口中断服务程序入口)
D、000BH(定时/计数器0中断服务程序的开始地址区)
E、001BH为定时/计数器1中断服务开始地址区
F、0000H (系统复位后的入口)
7.MCS-51系列单片机外扩存储器芯片时,4个I/O口中用作数据总线的是:(B)
B、P0口(SDA /SCL 连接到总线的器件输出级必须是漏极开路或者是集电极开路,才能执行线与的功能)
8.AJMP跳转空间最大可达到(2字节)
A、2KB
9.8051单片机中,唯一一个能出现在符号指令的16位寄存器是(B)
51单片机的基本结构
51单片机的基本结构
51单片机是一种高性能、低功耗的微控制器,是嵌入式系统中常用
的一种芯片。它具有集成度高、易编程、可编程性强等特点,在各种电子
设备中广泛应用,包括家电、工业控制、汽车电子、智能仪器等领域。51
单片机的基本结构主要包括CPU、存储器、输入输出端口、定时计数器和
串口通信等部分。
1.CPU
51单片机的CPU是其核心部分,负责执行指令、进行运算处理。它
通常采用哈佛结构,即指令和数据分开存储。51单片机的CPU主要由ALU (算术逻辑单元)、寄存器组、指令寄存器、程序计数器等部分组成,能
够完成基本的运算和控制功能。
2.存储器
51单片机的存储器包括ROM(只读存储器)和RAM(随机存储器)。ROM用于存储程序代码和常量数据,是只读的;RAM用于存储变量数据和
临时结果,是可读写的。在51单片机中,通常ROM用于存储程序代码和
初始化数据,RAM用于存储运行时数据和临时结果。
3.输入输出端口
51单片机的输入输出端口用于与外部设备进行数据交换。它可以通
过不同的接口与外部设备连接,比如并行口、串行口、通用输入输出口等。通过输入输出端口,51单片机可以与外部设备进行数据传输和通信,实
现各种功能。
4.定时计数器
51单片机的定时计数器可以用于计时和计数,通常用于控制时序和频率。在51单片机中,定时计数器可以生成各种定时中断,实现定时控制功能。定时计数器可以根据需要设定不同的时钟源和计数模式,实现灵活的定时控制。
5.串口通信
51单片机的串口通信功能可以用于与外部设备进行串行通信,比如与PC机、外围设备等进行数据传输。串口通信包括串行口和UART(通用异步收发器),可以通过串行口进行双向数据传输。串口通信在51单片机中广泛应用于各种通信设备和控制系统中。
特殊功能寄存器
特殊功能寄存器
特殊功能寄存器在单片机中扮演着非常重要的角色,单片机的各硬件组成部分如算术逻辑单元、并行I/O口、串行口、定时器/计数器、中断系统等都有对应的特殊功能寄存器,用户程序通过特殊功能寄存器对各个硬件组成部分进行设置,并通过特殊功能寄存器获得各设备的当前工作状态。要想使用单片机的各项功能,必须对相关的特殊功能寄存器非常熟悉。
特殊功能寄存器本质上是一些具有特殊功能的存储单元,这些存储单元分布在内部数据存储器地址80H~7FH的存储区域,用直接寻址的寻址方式进行访问。
存储器
单片机的存储器按照其功能可分为数据存储器(RAM)和程序存储器(ROM),按照其存在的位置又可以分为片外存储器和片内存储器。在片内RAM区中,专门划分出一块区域用来存放特殊功能寄存器SFR(Special Function Register),称为特殊功能寄存器区。在片内RAM 中,有一些特殊地址的存储单元的每一个二进制位都具有位地址,这些存储单元组成可位寻址区。片内RAM地址为00H~1FH的存储单元用作工作寄存器区。
综上所述,单片机的整个存储器空间按照其所处的位置和功能可划分为内部程序存储器区、外部程序存储器区、低128字节的内部数据存储器区(包含工作寄存器区和位寻址区)、高128字节的内部数据存储器区、特殊功能寄存器区、外部数据存储器区等6个区域
(完整版)51单片机特殊功能寄存器功能一览表
51单片机特殊功能寄存器功能一览表
21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SFR存储空间中,地址空间为80H-FFH,在这片SFR空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位作位寻址操作(这里介绍一个技巧:其地址能被8整除的都可以位寻址)。
在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。这样的特殊功能寄存器51单片机共有21个并且都是可寻址的列表如下(其中带*号的为52系列所增加的特殊功能寄存器):
分别说明如下:
1、ACC---是累加器,通常用A表示
这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。该标志常用作程序分枝转移的判断条件。
2、B--一个寄存器
在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。
3、PSW-----程序状态字。
这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。它的各位功能请看下表:
单片机复习资料
51单片机内部结构:
集成了中央处理器(CPU)、存储器系统(RAM和ROM)、定时/计数器、并行接口、串行接口、中断系统和一些特殊功能寄存器
中央处理器:
单片机cpu包含运算部件和控制部件算数逻辑ALU为8位运算器
ALU有位计算器可以对一位二进制数据进行置位、清零、求反、测试转移及位逻辑与,或等处理
累加器ACC为8位寄存器是CPU中使用最频繁的存储器
程序计数器PC是16位寄存器,它存放下一条要执行的指令的地址
堆栈指针SP用来控制堆栈段内容的入栈(输入)与出栈(输出),51单片机中SP始终指向栈底位置
数据指针DPTR是16位寄存器,通常用DPTR实现对片外数据存储器64KB空间的访问
程序存储器:
程序存储器外部内部共用64KB存储空间8031,8032内部没有程序存储器,只能外部扩展64KB。8051,8751内部有4KB程序存储器地址范围0000H-0FFFH;8052,8752内部有8KB程序存储器,地址范围0000H-1FFFH,外部最多可扩展64KB
EA引脚接低电平从片外程序存储器取命令,高电平从片内程序存储器取命令8031,8032的EA只能保持低电平(指令只能从片外程序存储器取得)
51单片机片内随机存储块128字节编址00H-7FH 特殊功能寄存器128字节编址80H-0FFH 工作寄存器组区:
00H-1FH单位为工作寄存器组区共32字节
工作寄存器有0,1,2,3四组,每组8个寄存器,依次用R0-R7表示和使用
堆栈在存储器中按(先入后出,后入先出)原则进行管理的一段的存储区域,通过堆栈指针SP管理
MCS-51单片机的特殊功能寄存器
MCS-51单片机的特殊功能寄存器
从图中我们可以看出,在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在一个51单片机的内部包含了这么多的东西。
对图进行进一步的分析,我们已知,对并行I/O口的读写只要将数据送入到相应I/O 口的锁存器就可以了,那么对于定时/计数器,串行I/O口等怎么用呢?在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。事实上,我们已接触过P1这个特殊功能寄存器了,还有哪些呢?看下表
下面,我们介绍一下几个常用的SFR。
1、ACC---是累加器,通常用A表示。
这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。该标志常用作程序分枝转移的判断条件。
2、B--一个寄存器。
在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。
3指针寄存器
(1)程序计数器PC
指明即将执行的下一条指令的地址,16位,寻址64KB范围,
复位时PC = 0000H
(2)堆栈指针SP
指明栈顶元素的地址,8位,可软件设置初值,复位时SP = 07H
详解单片机数据结构
详解单片机数据结构
一、单片机内存结构
单片机内存结构主要包括程序存储器(ROM)和数据存储器(RAM)。程序存储器用于存储单片机的指令代码,而数据存储器用于存储程序运行过程中的数据。单片机内存结构的设计需要考虑存储容量、存取速度、存取方式等因素,以满足不同应用场景的需求。
二、寄存器
寄存器是单片机中的一种特殊存储器单元,用于暂时存储指令和数据。单片机的寄存器分为通用寄存器和特殊功能寄存器两种类型。通用寄存器用于存储临时数据,特殊功能寄存器用于存储一些特定功能的数据,如控制寄存器、状态寄存器等。寄存器的设计和使用可以提高单片机的运行效率和灵活性。
三、堆栈
堆栈是一种特殊的数据结构,用于存储函数调用时的局部变量和返回地址。单片机通过堆栈实现函数的嵌套调用和返回。堆栈的设计需要考虑存储容量和存取效率,合理利用堆栈可以提高单片机的编程效率和系统性能。
四、队列
队列是一种先进先出(FIFO)的数据结构,用于存储和管理数据。在单片机中,队列可以用于缓存输入输出数据、任务调度等应用场
景。队列的设计需要考虑队列长度、入队和出队操作的效率等因素,以满足实际应用的需求。
五、链表
链表是一种动态数据结构,可以根据数据的插入和删除自由调整内存空间的分配。在单片机中,链表可以用于存储和管理动态变化的数据,如传感器数据、任务列表等。链表的设计需要考虑内存分配和释放的效率,合理利用链表可以提高单片机的灵活性和存储效率。单片机数据结构的设计是为了优化单片机的存储和处理能力。通过合理设计单片机内存结构、寄存器、堆栈、队列和链表等数据结构,可以提高单片机的运行效率、编程效率和系统性能,满足不同应用场景的需求。在实际应用中,需要根据具体需求选择合适的数据结构,并根据实际情况进行优化和调整,以达到最佳的性能和功能。
MCS-51单片机的(SFR)特殊功能寄存器
MCS-51单片机的特殊功能寄存器
从图中我们可以看出,在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在一个51单片机的内部包含了这么多的东西。
对图进行进一步的分析,我们已知,对并行I/O口的读写只要将数据送入到相应I/O 口的锁存器就可以了,那么对于定时/计数器,串行I/O口等怎么用呢?在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。事实上,我们已接触过P1这个特殊功能寄存器了,还有哪些呢?看下表
下面,我们介绍一下几个常用的SFR。
1、ACC---是累加器,通常用A表示。
这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。该标志常用作程序分枝转移的判断条件。
2、B--一个寄存器。
在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。
3指针寄存器
(1)程序计数器PC
指明即将执行的下一条指令的地址,16位,寻址64KB范围,
复位时PC = 0000H
(2)堆栈指针SP
指明栈顶元素的地址,8位,可软件设置初值,复位时SP = 07H
单片机内部结构
内容提要
MCS-51单片机内部结构 存 储 器 特殊功能寄存器 时钟电路和复位电路 引脚
MCS-51系列单片机有多种型号的产品: 普通型(51子系列) 8051、8031、8751、89C51、89S51等。 增强型(52子系列) 8032、8052、8752、89C52、89S52等。 它们的结构基本相同,其主要差别反映在存储器的配置上。 8031片内没有程序存储器 8051内部设有4KB的掩模ROM程序存储器 8751是将8051片内的ROM换成EPROM 89C51则换成4KB的闪速EEPROM 89S51结构同89C51, 4KB的闪速EEPROM可在线编程 增强型的存储容量为普通型的一倍
位累加器,用来处理位操作。可对位置 “1”、对 位清零 、位判断等。 操作结果的状态信息送至状态寄存PSW。
2.程序计数器PC 程序计数器PC是16位的寄存器,用来存放即
将要执行的指令地址,可对64KB程序存储器直接 寻址。执行指令时,PC内容的低8位经P0口输出, 高8位经P2口输出。 3.指令寄存器
表1-2中还标注了各SFR的名称、字节地址、 可寻址位的位地址和位名称。
21个特殊功能寄存器的名称及主要功能介绍如 下,详细的用法见后面各节的内容。
A—累加器,自带有全零标志Z,A=0则Z=1; A≠0则Z=0。该标志常用于程序分支转移的判断 条件。
第2章 MCS-51系列单片机的结构及原理
单 片 机 技 术
2.3 引脚功能——总线结构
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 VCC P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0
单 片 机 技 术
内部数据存储器高128单元
(特殊功能寄存器区)
程序计数器PC:16位,CPU每读取指令的一个字 节PC便可自动加1,指向本指令的下一个字节或 下一条指令地址,程序顺序执行,可寻址64KB 范围ROM。 累加器A:8位,用于存放操作数或运算的中间 结果。 寄存器B:8位,主要用于乘法和除法的运算。 乘法时,B中存放乘数,乘法操作后,乘积的高 8位存于B中;除法时,B中存放除数,除法操作 后,B中存放余数。
2mcs51系列单片机的内部总体结构88微处理器运算部件b数据存储器ramp0口p2口程序存储器特殊功特殊功能寄存器sfrromepromvccvss图21mcs51单片机的基本结构控制部件p1口p3口串行口定时计数器中断系统88xtal1xtal2psenaleeareset端口0驱动器端口2驱动器ram地址锁存器ram1288端口0锁存器端口2锁存器rom4k8b寄存器程序地址寄存器缓冲器寄存器vcc5vvss堆栈指针spacctmp2tmp1p00p07p20p27图22mcs51片内总体结构框图rstpc1寄存器pcdptr指针p10p17psw端口3锁存器端口1锁存器端口1驱动器端口3驱动器scontl0tmodth1iepconth0sbuftxrx中断串行口和定时器逻辑tcontl1iposcp30p37alepsenxtal2xtal1alu指令寄存器定时与控制指令译码器返回本节2
单片机专用寄存器
单片机专用寄存器
一、专用寄存器的作用
单片机专用寄存器是为了专门的使用而设的,在单片机内部看不见的,它只在程序的存储器中占用一些单元。单片机的内部资源,如定时器、计数器、中断系统、串行口等都是通过寄存器来控制的。
二、专用寄存器的分类
1、定时器/计数器控制寄存器(TCON)
2、中断控制寄存器(IE)
3、中断优先级控制寄存器(IP)
4、数据寄存器(R0~R7)
5、特殊功能寄存器(SBUF、P0~P3、AD、DA)
6、电源控制寄存器(PCON)
7、时钟分频寄存器(TMOD)
8、定时器/计数初值寄存器(THx、TLx)
9、模式寄存器(TRx)
10、定时器开关控制寄存器(TFx)
11、溢出标志寄存器(TFx)
12、数据锁存控制寄存器(DLx)
13、比较标志寄存器(CFx)
14、串行口控制寄存器(SCON)
15、波特率倍率分频寄存器(SMOD)
16、电源控制寄存器(PSCTL)
17、偏移量寄存器(DPS)
18、中断偏移量寄存器(IAPTR)
19、存储偏移量寄存器(MAPR)
20、特殊功能寄存器偏移量寄存器(SFRPTR)
21、数据存储器偏移量寄存器(DPSR)
22、外围模块偏移量寄存器(BMPR)
23、外围模块数据寄存器(BMPR)
三、专用寄存器的使用方法
在编程时,我们直接使用上述的来对相应的寄存器进行操作。操作的方法是通过给定的进行读写操作。在写操作时,我们给出需要写入的值和要写入的;在读操作时,我们读取指定的数据。
四、专用寄存器的应用实例
例如,我们使用8051单片机的P1口作为输入口,读取外部设备的状态,然后通过P0口输出到外部设备。我们的程序可能如下:
51单片机存储器结构介绍
51单片机存储器结构介绍
MCS-51单片机在物理结构上有四个存储空间:
1、片内程序存储器
2、片外程序存储器
3、片内数据存储器
4、片外数据存储器
但在逻辑上,即从用户的角度上,8051单片机有三个存储空间:
1、片内外统一编址的64K的程序存储器地址空间(MOVC)
2、256B的片内数据存储器的地址空间(MOV)
3、以及64K片外数据存储器的地址空间(MOVX)
在访问三个不同的逻辑空间时,应采用不同形式的指令(具体我们在后面的指令系统学习时将会讲解),以产生不同的存储器空间的选通信号。
程序内存ROM
寻址范围:0000H ~ FFFFH容量64KB
EA = 1,寻址内部ROM;
EA = 0,寻址外部ROM
地址长度:16位
作用:存放程序及程序运行时所需的常数。
七个具有特殊含义的单元是:
0000H ——系统复位,PC指向此处;
0003H ——外部中断0入口
000BH —— T0溢出中断入口
0013H ——外中断1入口
001BH —— T1溢出中断入口
0023H ——串口中断入口
002BH —— T2溢出中断入口
内部数据存储器RAM
物理上分为两大区:00H ~ 7FH即128B内RAM和SFR区。作用:作数据缓冲器用。
下图是8051单片机存储器的空间结构图
程序存储器
一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写的程序而执行之。那么设计人员编写的程序就存放在微处理器的程序存储器中,俗称只读程序存储器(ROM)。程序相当于给微处理器处理问题的一系列命令。其实程序和数据一样,都是由机器码组成的代码串。只是程序代码则存放于程序存储器中。
C51单片机21个特殊功能寄存器
21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SFR存储空间中,地址空间为80H-FFH,在这片SFR空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位作位寻址操作(这里介绍一个技巧:其地址能被8整除的都可以位寻址)。
在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。这样的特殊功能寄存器51单片机共有21个并且都是可寻址的列表如下(其中带*号的为52系列所增加的特殊功能寄存器):
分别说明如下:
1、ACC---是累加器,通常用A表示
这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。自身带有全零标志Z,若A=0则Z=1;若A ≠0则z=0。该标志常用作程序分枝转移的判断条件。
2、B--一个寄存器
在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。
3、PSW-----程序状态字。
这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。它的各位功能请看下表:
51单片机特殊功能寄存器(SFR)介绍
51单片机特殊功能寄存器(SFR)介绍
1、21 个寄存器介绍51 系列单片机内部主要有四大功能模块,分别是I/O 口模块、中断模块、定时器模块和串口通信模块(串行I/O 口),如其结构和功
能如下图:
图151 单片机结构和功能图51 单片机掌握的好坏,其实就是能否正确操作
这四个功能模块,而其操作的实质则又是能否对每个模块所对应寄存器的正确操纵。所以下面重点介绍一下51 系列单片机内部的特殊功能寄存器(简称SFR,以下说明以此代替)。(关于什么叫特殊功能寄存器,这里先不作介绍,不懂的请查阅51 单片机相关资料。)
51 单片机内部共有21 个SFR,其布局如图2,从图中可以看出,每个SFR 占1 个字节,多数字节单元中的每一位又有专用的位名称。这21 个SFR 又按是否可以位寻址分为两大部分,ACC、IE、P1 等11 个可以位寻址,
SP、TMOD 等不可以位寻址。
图2 51 单片机SFR 布局图
2、位寻址解释下面以P1、IE 寄存器(可位寻)和TMOD(不可位发)为例解释一下位寻址。
能位寻址是指能够对它的每一位都可以进行位操作,如图3,如P1 口接8 个灯,灯阳极接正极,阴极接单片机的P1 口的8 个脚。现在要让接P1 口第1 个引脚的灯亮,程序中可以写P1=0xfe,也可以先定义deng1=P1,即P1 口的第1 位,至于为什么写P1,是因为KEIL 软件规定的,然后deng1=0。也就是
P1=0xfe 和deng1=0 都是可以点亮第一个灯,后者deng1=0 属于位操作,前者P1=0xfe 属于总线操作,也就是8 个引脚一起操作。图3 8 位灯接线图下面再以IE 寄存器为例进行位操作的解释。IE 寄存器为中断允许寄存器,如各位的作用
单片机结构-存储器结构
MOV A, #05H ; A5 MOV B, #03H ; B3 MUL A,B ; BAAxB=5*3
4)程序状态字PSW(Program Status Word)
PSW用来存放指令执行后的有关状态
(1)Cy:进位标志位,表示加减运算过程中最高位A7 (ACC最高位)有无进位或借位。 (2)AC:辅助进位位,用于表示加减运算过程中低4位有 无向高4位(即A4)进位或借位。 (3)F0:用户标志位,由用户确定。 (4)RS1和RS0:工作寄存器组(R0-R7)选择,用户通 过改变RS1和RS0的状态来决定工作寄存器的实际物理 地址。
ຫໍສະໝຸດ Baidu
2)累加器ACC(Accumulator)
MOV A, #03H ; A3
ADD A, #05H
; AA+05H
3)通用寄存器B(General Purpose Register)
二进制8位寄存器,专用于乘法和除法,乘除运算前,用 于存放乘数或除数,运算后用于存入乘积的高八位或除法 的余数。
2) 位寻址区
20H~2FH 单元为位寻址区 , 这 16 个单元(共计 128位)的每1位都有一个8位表示的位地址 , 位 地址范围为 00H~7FH 。 位寻址区的每 1 位都可 当作软件触发器, 由程序直接进行位处理。 通常 可以把各种程序状态标志, 位控制变量存于位寻 址区内。 同样, 位寻址的RAM单元也可以按字节 操作作为一般的数据缓冲
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
机电工程学院
单片机技术
四、存储器、特殊功能寄存器
8051的存储器可分为五类: 1)、程序存储器(内部ROM、外部ROM); 2)、内部数据存储器(Data); 3)、特殊功能寄存器(SFR); 4)、位存储器(位地址空间); 5)、外部数据存储器(XData);
(一) 程序存储器的结构 程序存储器用于存放编好的程序和表格常数等,它以程 序计数器PC作为地址指针,可以访问64K的地址空间。
带*号的SFR为8032/8052单片机所特有
(4) 工作寄存器
➢内部RAM 00H~1FH共32字节,分为4组,每组8个 RAM单元作为工作寄存器,记为R0~R7; ➢程序通过PSW中的RS0/RS1位的组合选择使用哪个 工作寄存器区。参见...
(5) 程序状态字PSW
➢8位寄存器; ➢用于存放程序运行过程中的状态信息; ➢各状态位在指令执行过程中自动更新,也可由程序更 改,其定义如下:
单片机RAM结构及地址安排 >>>
增强型才会有,高 128B单元为一般 RAM,仅能采用寄存 器间接寻址方式访 问
特殊功能 寄存器 128~255
80个单元通用数据缓 冲区,堆栈常设在此 区间
16个单元可以用 作位寻址,位地 址范围00H—7FH
32个单元工作寄 存器
内部数据
RAM 0~127
FFH
当EA=0时,单片机总是访问外部程序存储器中的代码 数据。
单片机程序的运行控制与ROM地址的关系: (1)复位控制
单片机复位后自动从程序存储器的地址0000H处开始执行
Baidu Nhomakorabea
(2) 中断控制 单片机系统的中断地址是固定的,如下表所示:
事件 系统复位 外部中断INT0 定时器中断T0 外部中断INT1 定时器中断T1 串行口中断
80H 7FH 30H 2FH 20H 1FH
00H
F0H
E0H
D0H
C8H
B8H B0H A8H A0H 98H 90H 88H 80H
专用寄存器 中的可寻址位 (93位)
通 用 RAM区
只能按字节 寻 址 的 RAM区
位地址为 00H~7FH
3组 2组 1组 0组
既可按位也可 按字节寻址的 16字节(128位)
位操作:对字节的每一bit可分别置位或复位 字节操作:只能对整个字节一次性操作 地址可被8整除的SFR均可位操作; SFR P0~P3的D0~D7和单片机的端口引脚相对应
8051单片机SFR列表(共21个)
名称 P0 SP DPL DPH PCON TCON TMOD
地址 80H 81H 82H 83H 87H 88H 89H
➢P (PSW.0) : 奇偶标志。每条指令执行中都由硬件来更新, 用来表示累加器A中所存数据的1的个数的奇偶性,若1的个 数为奇数,则P置位,否则清零。这是针对ACC的偶校验。 此标志可用在串行通信中生成奇偶校验位。
(6) 数据指针DPTR (Data Pointer)
➢16位寄存器; ➢主要用作16位间接寻址,在访问程序存储器和片外数 据寄存器时提供16位的地址信息; ➢可分为两个独立的8位寄存器DPH(高8位)和DPL(低8 位)使用。
(7)堆栈指针SP (Stack Pointer)
➢8位寄存器; ➢8051单片机的堆栈使用内部RAM空间存储数据; ➢8051单片机的堆栈向上增长,SP指出了栈顶地址; ➢堆栈是用于数据暂存,如中断、子程序调用时断点和 现场的保护与恢复; ➢系统复位后SP=07H,实际应用中要根据RAM使用情 况进行调整。
入口地址 0000H 0003H 000BH 0013H 001BH 0023H
(二) 内部数据存储器的结构和运行操作
单片机内部数据存储器分为 (1)工作寄存器组(通过RS0,RS1选择) (2)位寻址区 (3)内部RAM (4)高128字节内部RAM (5)SFR(地址和高128字节RAM重叠)
4组工作寄存器 每 组 为 R0~R7 (也可作按字节 寻 址 的 RAM用 ) 32字节
与该地址范围重叠
的特殊功能寄存器 SFR空间采用直接 寻址方式访问
(三) 特殊功能寄存器(SFR)及其操作
SFR实际上是特殊的RAM单元(可读或写,PC除外); SFR的地址空间分布在高128字节中; 并非所有的128字节均有定义,标准的51只有21个特殊 功能寄存器; 对SFR的操作可以是位操作和字节操作;
➢F0 (PSW.5) : 用户自定义标志。可由软件置位或复位
➢RS1,RS0 (PSW.4,PSW.3) : 工作寄存器组选择位,共4种 组合,分别用于选择寄存器组0~3
➢OV (PSW.2) : 溢出标志。在对有符号数进行加减运算时, OV=1表示运算结果超出了A所能表示的有符号数的范围(128~127)。 在对无符号数进行乘法运算时,OV=1表示乘积超出255, 此时积的高8位在B寄存器中,低8位在A内。 在除法运算时,如果除数为0,OV=1
Cy Ac F0 RS1 RS0 OV - P
➢Cy (PSW.7) : 判断ACC中的最高位是否有进位的进位标 志。当算术/逻辑运算的最高位有进位或借位时Cy=1。Cy 在布尔处理机中可由软件置位或复位;
➢Ac (PSW.6) : 辅助进位标志。当算术运算中低4位向高 4位有进位或借位时,Ac=1,否则Ac=0。Ac被用于二/ 十进制调整;
ROM地址空间结构
0x0000
片内 ROM/Flash
(EA=1)
片外 ROM/Flash
(EA=0)
寻 址 空 0x0FFF 间 共 和内部 64K
ROM/Flash 大小有关
0xFFFF
对于内部有ROM/FLASH ROM的单片机,EA=1时, 程序运行在内部ROM地址范围内时,单片机访问的是内部 ROM中的代码数据;
名称 SCON SBUF B TL0 TL1 TH0 TH1
地址 名称 98H P1 99H P2 F0H P3 8AH IE 8BH IP 8CH PSW 8DH ACC
地址
名称
90H T2CON*
A0H RCAP2L*
B0H RCAP2H*
A8H TL2*
B8H TH2*
D0H
E0H
地址 C8H CAH CBH CCH CDH