MCS-51系列特殊功能寄存器

合集下载

单片机寄存器_MCS-51单片机特殊功能寄存器详解

单片机寄存器_MCS-51单片机特殊功能寄存器详解

1、定时器/计数器的方式寄存器TMODTMOD是一个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、定时器/计数器控制寄存器TCONTCON是一个8位的特殊功能寄存器,对应的地址为88H,可为寻址。

A 控制字的格式和含义a、TF1(TCON.7),TF0(TCON.5)----T1、T0计数溢出标志位当计数器计数溢出时,该位置“1”。

使用查询方式时,此位作为状态位供cpu查询,但应注意在查询该位有效后应以软件方法及时将该位清“0”。

使用中断方式时,此位作为中断申请标志位,进入中断服务程序后由硬件自动清0.b、TR1(TCON.6),TR0(TCON.4)----计数运行控制位TR1(TR0)=1,启动定时/计数器工作的必要条件,还与GATE位的状态有关。

MCS51

MCS51

机,当然,功能或多或少有些改变,以满足不同的需求,其中89C51就是这几年在我国非常流行的单片机,它是由美国ATMEL公司开发生产的。

cpu组成运算器一、 MCS51的CPU由运算器和控制器组成。

1、运算器运算器以完成二进制的算术/逻辑运算部件ALU为核心,再加上暂存器TMP、累加器ACC、寄存器B、程序状态标志寄存器PSW及布尔处理器。

累加器ACC是一个八位寄存器,它是CPU中工作最频繁的寄存器。

在进行算术、逻辑运算时,累加器ACC往往在运算前暂存一个操作数(如被加数),而运算后又保存其结果(如代数和)。

寄存器B主要用于乘法和除法操作。

标志寄存器PSW也是一个八位寄存器,用来存放运算结果的一些特征,如有无进位、借位等。

其每位的具体含意如下所示:对用户来讲,最关心的是以下四位。

(1)?进位标志CY(PSW?7)。

它表示了运算是否有进位(或借位)。

如果操作结果在最高位有进位(加法)或者借位(减法),则该位为1,否则为0。

(2)?辅助进位标志AC。

又称半进位标志,它指两个八位数运算低四位是否有半进位,即低四位相加(或减)是否进位(或借位),如有AC为1,否则为0。

(3)?溢出标志位OV。

MCS-51反映带符号数的运算结果是否有溢出,有溢出时,此位为1,否则为0。

(4)?奇偶标志P。

反映累加器ACC内容的奇偶性,如果ACC中的运算结果有偶数个1(如11001100B,其中有4个1),则P为0,否则,P=1。

由于PSW存放程序执行中的状态,故又叫程序状态字。

运算器中还有一个按位(bit)进行逻辑运算的逻辑处理机(又称布尔处理机)。

控制器2、控制器控制器是CPU的神经中枢,它包括定时控制逻辑电路、指令寄存器、译码器、地址指针DPTR及程序计数器PC、堆栈指针SP等。

这里程序计数器PC是由16位寄存器构成的计数器。

要单片机执行一个程序,就必须把该程序按顺序预先装入存储器ROM的某个区域。

单片机动作时应按顺序一条条取出指令来加以执行。

MCS-51单片机特殊寄存器功能说明概要

MCS-51单片机特殊寄存器功能说明概要

MCS51单片机SFR特殊寄存器MCS51单片机SFR特殊寄存器功能说明程序壮态字PSW(Program Status Word)(可以位寻址)若P=1,表示累加器A中的个数为奇数。

若P=0,累加器A中的个数为偶数。

2.OV益出标志位若OV=1,表示运算时有益出产生。

否则OV=03.RS1 RS0寄存器选择位用户自行设置。

5.AC辅助进位位若AC=1,表示在加减法运算时,低4位A3有进位或借位。

否则CY=06.CY进位标志位若CY=1,表示在加减法运算时,最高位A7有进位或借位。

否则CY=0电源控制器&波特率(不可以位寻址)若IDL=1,进入空闲模式。

(硬件或重新上电可复位)。

若IDL=0,正常方式2.PD为停止运行控制位若PD=1,进入停止模式。

(硬件或外部中断可复位)。

若PD=0,正常方式3.GF0 CF1为通用标志位用户可通过指改变它的壮态。

4.SMOD为波特率倍率控制位若SMOD=1,则串行口的波特率为16位若SMOD=0, 则串行口的波特率为32位定时器/计数器模式寄存器TMOD(不可以位寻址)若使C/T=0,为内部定时器模式。

(由TH和TL做定时器)若使C/T=1,为外部计数器模式。

(从T0/P3.4口或从T1/P3.5口输入计数脉冲)(前一次检测为高电平,后一次检测为低电平时,才会使计数器加1。

由于二次的检测需要24个时钟脉冲,通常T0,或T1输入线上的计数脉冲频率总是<100KHZ)3.GATE为定时器/计数器控制位当GATE=1时,TR控制位置位1时,而且只有在INT0或(INT1)为高时,才可以打开定时器/计数器工作。

(与INT0或INT1有关)(当GATE=1时,则INT0或INT1作为辅助控制线,不再用作中断请求输入线。

GATE的这种控制作用可使定时器/计数器用来测量脉冲的宽度)当GATE=0时,定时器/计数器工作与INT0或INT1无关。

定时器初值的计算:TC=M-T X/T P 左公式可转换为TC=M-T X*fosc/ 12(12T)或6(6T)或1(1T)TC为实际定时时间初值M为模值 (M=8或M=13,或M=16)Fosc为时钟频率T X为定时器需要的定时时间T P为机器周期时钟周期 T CLK=1/Fosc (如:STC的开发板的Fosc是11.0592MHZ)T CLK =1/11.0592MHZT CLK≈0.09042us机器周期TP=12*T CLK或(6*T CLK)或(1*T CLK) 左公式转换为:≈12*0.09042us TP= 12/Fosc(12T CLK)或6/Fosc(6T CLK) 或1/Fosc (1T CLK)≈1.08507us1.IT0为外部中断INT0的中断触发标志位若使IT0=1,INT0为负边沿触发。

MCS-51单片机的特殊功能寄存器

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(3)数据指针DPTR@R0、@R1、@DPTR;指明访问的数据存储器的单元地址,16位,寻址范围64KB。

DPTR = DPH + DPL。

可以用它来访问外部数据存储器中的任一单元,如果不用,也可以作为通用寄存器来用,由我们自已决定如何使用。

分成DPL(低8位)和DPH(高8位)两个寄存器。

用来存放16位地址值,以便用间接寻址或变址寻址的方式对片外数据RAM或程序存储器作64K字节范围内的数据操作4、PSW-----程序状态字。

51单片机存储器结构介绍

51单片机存储器结构介绍

51单片机存储器结构介绍MCS-51单片机在物理结构上有四个存储空间:1、片内程序存储器2、片外程序存储器3、片内数据存储器4、片外数据存储器但在逻辑上,即从用户的角度上,8051单片机有三个存储空间:1、片内外统一编址的64K的程序存储器地址空间(MOVC)2、256B的片内数据存储器的地址空间(MOV)3、以及64K片外数据存储器的地址空间(MOVX)在访问三个不同的逻辑空间时,应采用不同形式的指令(具体我们在后面的指令系统学习时将会讲解),以产生不同的存储器空间的选通信号。

程序内存ROM寻址范围:0000H ~ FFFFH容量64KBEA = 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)。

程序相当于给微处理器处理问题的一系列命令。

其实程序和数据一样,都是由机器码组成的代码串。

只是程序代码则存放于程序存储器中。

MCS-51具有64kB程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。

对于内部无ROM的8031单片机,它的程序存储器必须外接,空间地址为64kB,此时单片机的端必须接地。

强制CPU从外部程序存储器读取程序。

MCS-51单片机的(SFR)特殊功能寄存器

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(3)数据指针DPTR@R0、@R1、@DPTR;指明访问的数据存储器的单元地址,16位,寻址范围64KB。

DPTR = DPH + DPL。

可以用它来访问外部数据存储器中的任一单元,如果不用,也可以作为通用寄存器来用,由我们自已决定如何使用。

分成DPL(低8位)和DPH(高8位)两个寄存器。

用来存放16位地址值,以便用间接寻址或变址寻址的方式对片外数据RAM或程序存储器作64K字节范围内的数据操作4、PSW-----程序状态字。

C51存储器类型MCS-51单片机物理存储器区域

C51存储器类型MCS-51单片机物理存储器区域

C51存储器类型MCS-51单⽚机物理存储器区域1、 data区空间⼩,所以只有频繁⽤到或对运算速度要求很⾼的变量才放到data区内,⽐如for循环中的计数值。

2、 data区内最好放局部变量。

因为局部变量的空间是可以覆盖的(某个函数的局部变量空间在退出该函数是就释放,由别的函数的局部变量覆盖),可以提⾼内存利⽤率。

当然静态局部变量除外,其内存使⽤⽅式与全局变量相同;3、确保你的程序中没有未调⽤的函数。

在Keil C⾥遇到未调⽤函数,编译器就将其认为可能是中断函数。

函数⾥⽤的局部变量的空间是不释放,也就是同全局变量⼀样处理。

这⼀点Keil C做得很愚蠢,但也没办法。

4、程序中遇到的逻辑标志变量可以定义到bdata中,可以⼤⼤降低内存占⽤空间。

在51系列芯⽚中有16个字节位寻址区bdata,其中可以定义8*16=128个逻辑变量。

定义⽅法是: bdata bit LedState;但位类型不能⽤在数组和结构体中。

5、其他不频繁⽤到和对运算速度要求不⾼的变量都放到xdata区。

6、如果想节省data空间就必须⽤large模式,将未定义内存位置的变量全放到xdata区。

当然最好对所有变量都要指定内存类型。

7、当使⽤到指针时,要指定指针指向的内存类型。

在C51中未定义指向内存类型的通⽤指针占⽤3个字节;⽽指定指向data区的指针只占1个字节;指定指向xdata区的指针占2个字节。

如指针p是指向data区,则应定义为: char data *p;。

还可指定指针本⾝的存放内存类型,如:char data * xdata p;。

其含义是指针p指向data区变量,⽽其本⾝存放在xdata区。

bit是在内部数据存储空间中 20H .. 2FH 区域中⼀个位的地址,或者 8051 位可寻址 SFR 的⼀个位地址。

code是在 0000H .. 0FFFFH 之间的⼀个代码地址。

data是在 0 到 127 之间的⼀个数据存储器地址,或者在 128 .. 255 范围内的⼀个特殊功能寄存器(SFR)地址。

单片机考试习题和答案

单片机考试习题和答案

一、填空题1、MCS-51系列单片机为(8 )位单片机。

2、8051单片机有两种复位方式,既上电复位和手动复位。

复位后SP =( 07H ),PC =( 0000H ),PSW =(00H ),P0 =( FFH )。

3、在 MCS-51中,PC和DPTR都用于提供地址,PC为访问(程序)存储器提供地址,而DPTR是为访问(片外)存储器提供地址。

4、MCS-51单片机系列有( 5 )个中断源,可分为(两)个优先级。

5、假定(A)=85H, (R0)=20H,(20H)=0AFH.执行指令:ADD A,@R0 后,累加器A的内容为(34H ),CY 的内容为(1 ),OV的内容为(1 )。

.6、单片机位寻址区的单元地址是从( 20H )单元到( 2FH )单元,若某位地址是09H,它所在单元的地址应该是( 21H )。

7、通常,单片机上电复位时PC=( 0000 )H,SP=( 07 )H。

8、 DA指令是(十进制)指令,它只能紧跟在(加法)指令后使用。

9、当P1口做输入口输入数据时,必须先向该端口的锁存器写入( 1 ),否则输入数据可能出错。

10、中断源的优先级别被分为高级和低级两大级别,各中断源的中断请求是属于什么级别是由(中断优先级)寄存器的内容决确定的。

11、LED数码显示有(静态)和(动态)两种显示形式。

12、当单片机CPU响应中断后,程序将自动转移到该中断源所对应的入口地址处,并从该地址开始继续执行程序,通常在该地址处存放转移指令以便转移到中断服务程序。

其中INT1 的入口地址为( 0013H ),串行口入口地址为( 0023H ),T0 的入口地址为( 000BH )。

13、P0、P1、P2、P3四个均是(8)位的(并行)口(填“串行”还是“并行”),其中P0的功能是(分时送出低8位地址和数据的输入/输出)。

14、8051单片机有( 5 )个中断源,(两)级中断优先级别。

15、任何程序总是由三种基本结构组成:(顺序结构)、(分支结构)、(循环结构)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MCS-51系列特殊功能寄存器(80H~FFH)
1.P0 (80H)
2.SP 栈指针(81H)
3.DPTR 数据指针(由DPH和DPL组成)
DPL 数据指针低八位(82H)
DPH 数据指针高八位(83H)
4.PCON 电源管理寄存器(87H)
SMOD :波特率倍增位。

SMOD=0时,不变;SMOD=1时,倍增。

GF1,GF0 :通用标志位。

PD :掉电方式位。

PD=1时,进入掉电方式。

IDL :待机方式位。

IDL=1时,进入待机方式。

5.TMOD 定时/记数方式寄存器(89H)
GATE :门控位。

GATE=0时,直接由TR启动定时器;GATE=1时,须外部INT为1时,且TR启动定时器。

C/T :功能选择位。

C/T=0时,为定时器;C/T=1时,为计数器。

M1,M0 :方式选择位。

6.T CON 定时/记数控制寄存器(88H)
TF1 :定时器1溢出标志。

由硬件置1,并且进入中断;进入中断服务程序后,由硬件清0,查询方式下由软件清0。

TR1 :定时器运行控制位。

TR1=0时,关闭T1;TR1=1时,启动T1。

TF0 :定时器0溢出标志。

由硬件置1,并且进入中断;进入中断服务程序后,由硬件清0,查询方式下由软件清0。

TR0 :定时器运行控制位。

TR0=0时,关闭T0;TR0=1时,启动T0。

IE1 :外部中断1请求标志。

IT1 :外部中断1触发方式。

IT1=0时,为低电平触发方式;IT1=1时,为负跳变触发方式(边沿触发)。

IE0 :外部中断0请求标志。

IT0 :外部中断0触发方式。

IT0=0时,为低电平触发方式;IT0=1时,为负跳变触发方式(边沿触发)。

7.P1 (90H)
SM0,SM1 :串行方式控制。

SM2 :多机通讯控制位。

SM2=0时,禁止多机通讯;SM2=1时,允许多机通讯。

REN :允许串行接收位。

REN=0时,禁止串行接收;REN=1时,允许串行接收。

TB8 :发送数据第九位(D8)。

RB8 :接收数据第九位(D8)。

TI :发送中断标志位。

RI :接收中断标志位。

9.P2 (A0H)
10.IE 中断允许控制寄存器(A8H)
EA :CPU中断总允许位。

EA=0时,屏蔽所有中断请求;EA=1时,CPU开放中断。

ES :串行口中断允许位。

ES=0时,串行口禁止中断;ES=1时,串行口允许中断。

ET1 :T1中断允许位。

ET1=0时,T1禁止中断;ET1=1时,T1允许中断。

EX1:外部中断1(INT1)允许位。

EX1=0时,INT1禁止中断;EX1=1时,INT1允许中断。

ET0 :T0中断允许位。

ET0=0时,T0禁止中断;ET0=1时,T0允许中断。

EX0:外部中断0(INT0)允许位。

EX0=0时,INT0禁止中断;EX0=1时,INT0允许中断。

ET2 :T2中断允许位。

ET2=0时,T2禁止中断;ET2=1时,T2允许中断。

11.P3 (B0H)
12.IP 中断优先级控制寄存器(B8H)
PS :串行口中断优先级控制位。

PS=0时,优先级低;PS=1时,设定串行口为高优先级中断。

PT1 :T1中断优先级控制位。

PT1=0时,优先级低;PT1=1时,设定T1为高优先级中断。

PX1 :外部中断1(INT1)优先级控制位。

PX1=0时,优先级低;PX1=1时,设定外部中断1(INT1)为高优先级中断。

PT0 :T0中断优先级控制位。

PT0=0时,优先级低;PT0=1时,设定T0为高优先级中断。

PX0 :外部中断0(INT0)优先级控制位。

PX0=0时,优先级低;PX0=1时,设定外部中断0(INT0)为高优先级中断。

13.PSW 程序状态字寄存器(D0H)
CY :进位标志。

AC :半进位标志。

F0,F1 :用户标志位。

RS1,RS0 :
OV :溢出标志。

P :基偶标志。

14.ACC 累加器A。

(E0H)
15.B B寄存器(F0H)。

相关文档
最新文档