51串口控制寄存器
51寄存器手册速查

51单片机寄存器详解状态寄存器: PSWCY 进位标志位 AC 辅助进位标志位F0 通用标志位RS1 寄存器组选择位高位 RS0 寄存器组选择位低位 0V 溢出标志位 USR 用户定义标志位 P 奇偶标志位电源控制寄存器:PCONSMOD 串行口通信波特率 控制位置位使波特率翻倍 -保留 -保留 -保留GF1 通用标志位 GF0 通用标志位PDWN 低功耗标志位置为进入 低功耗模式IDLE 空闲标志位置位进入空闲模式中断优先级寄存器:IP-保留-保留PT2 定时器2 中断优先级 PS 串行通信中断优先级 PT1 定时器1 中断优先级 PX1 外部中断1 优先级 PT0 定时器0中断优先级 PX0 外部中断0 优先级中断使能寄存器:IEEA 使能标志,位置位则所有中断使能,复位则进制所有中断 -保留ET2 定时器2中断使能ES 串行通信中断使能ET1 定时器1 中断时能EX1 外部中断1 使能ET0 定时器0 中断使能 EX0 外部中断0 使能定时器控制寄存器:TCONTF1 定时器1 溢出中断标志位响应中断后由处理器清零TR1 定时器1 控制置位时定时器1工作 ,复位时,定时器1停止工作 TF0定时器0 溢出标志位,定时器溢出时置位处理器响应中断后清除该位 TR0定时器0控制位置位时定时器0工作,复位时定时器0停止工作IE1 外部中断1 触发标志位当检测到P3.3有从高到低的跳变电平时置位处理器响应中断后由硬件清除该位 IIT1 中断1 触发方式控制位置位时跳变触发,复位时为低电平触发IE0 外部中断1触发标志位当检测到P3.3有从高到低的跳变电平时置位处理器响应中断后由硬件清除该位 IT0 中断1触发方式控制位置位时为跳变触发,复位时为低电平触发定时器工作模式寄存器:TMODGATE 当GA TE 置位时定时器仅当TR=1并且INT=1时才工作,如果GATE=0时,置位TR 定时器就开始工作C/T 定时器非那根好似选择,如果C/T=1 定时器以计数方式工作 C/T=0时以定时方式工作M1 模式选择位高位M0 模式选择为低位定时器2控制寄存器:T2CONTF2 定时器2溢出标志位,定时器2溢出时将置位,当TCLK或RCLK为1时,将不会被置位EXF2 定时器2外部标志,当EXEN2为1时,并在T2EX检测到负跳变时置位,如果定时器2中断被允许,将产生中断。
c 51单片机串口初值计算

c 51单片机串口初值计算单片机是一种集成电路,可以用来实现各种功能。
而串口是一种用于数据传输的通信接口,常用于单片机与外部设备之间的通信。
在单片机中使用串口通信时,需要对串口进行初始化,设置其波特率和各种参数。
本文将通过详细介绍C51单片机串口的初值计算方法,帮助读者更好地理解单片机串口的使用。
在C51单片机中,串口的初始化可以通过设置相应的寄存器来实现。
下面以51系列单片机为例,介绍串口初始化的过程。
首先,需要设置串口的波特率。
波特率是指在一个时间单位内,通过通信线路传输的波形的变化次数。
常用的波特率有9600bps、115200bps等。
要设置波特率,需要先确定所使用的晶振频率和串口的时钟分频系数。
C51单片机的串口通信是通过定时器T1实现的,波特率的计算公式为:波特率 = 晶振频率 / (12 * 2^n * (65536 - T1初值))其中,n为波特率位数,可以取3、4、5等。
按照常用的8位数据位和1位停止位,可以将n取为4。
以晶振频率为11.0592MHz,波特率为9600bps为例,计算T1初值:9600 = 11059200 / (12 * 2^4 * (65536 - T1初值))通过计算得到T1初值为77。
将77转换成16进制,得到的值为4D。
接下来,需要设置串口的工作模式和相关参数。
C51单片机的串口通信有两种模式:帧模式和位模式。
帧模式是指在每个数据字节的前后都添加起始位、停止位和校验位,可以提高数据的可靠性。
位模式是指仅传输数据位,不添加起始位、停止位和校验位,可以提高传输速率。
C51单片机的串口默认为位模式,但可以通过设置相应的寄存器来选择工作模式。
串口相关的寄存器包括SCON、PCON和T2CON。
设置串口工作模式以及数据位数、停止位数和校验方式的方法如下所示:SCON = (模式选择位7) (模式选择位6) 0 (8位数据位选择) (校验方式选择) (停止位数选择) (模式选择位1) (模式选择位0)其中,模式选择位7和模式选择位6可以根据实际需求进行设置。
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的当前状态,并作出相应的处理。
它的各位功能请看下表:下面我们逐一介绍各位的用途CY:进位标志。
,如果做加法的话,两数位运算器只能表示到0-255中的运算器是一种8位的运算器,我们知道,88051,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。
这样就没事了。
有相加可能会超过2550CY==1;无进、借位,进、借位,CY )78H+97H(01111000+10010111例:。
c51单片机串口初值计算

c51单片机串口初值计算
单片机串口的初值计算是为了设置串口通信的波特率(Baud Rate),波特率是指串口每秒传输的位数。
在51单片机中,串口模块由SBUF(串口数据寄存器)、SCON(串口
控制寄存器)和PCON(功耗控制寄存器)组成。
串口通信的波特率设置
是通过控制SCON和PCON寄存器的相关位实现的。
以下是一种计算波特率初值的方法:
1.确定所需的波特率,例如1200。
2.计算定时器T1的初值:
其中,CPU时钟频率是指单片机的工作频率,如12MHz。
3.将T1的高8位和低8位分别存储到TH1寄存器和TL1寄存器中:
TH1=T1高8位
TL1=T1低8位
4.设置串口模式和波特率控制位:
SCON=SCON,0x50;//设置串口工作在模式1(8位数据,可变波特率)PCON=PCON,0x80;//设置波特率控制位,使能T1控制波特率
5.启动定时器T1:
TR1=1;//启动定时器T1
通过以上步骤,就可以计算并设置51单片机串口的波特率初值。
需要注意的是,由于计算初值时取整会导致一定的误差,因此实际波特率可能会略有偏差。
51单片机特殊功能寄存器

51单⽚机特殊功能寄存器51单⽚机特殊功能寄存器(SFR)介绍作者:huqin 来源:本站原创点击数: 5937 更新时间:2013年12⽉28⽇【字体:⼤中⼩】1、21个寄存器介绍51系列单⽚机内部主要有四⼤功能模块,分别是I/O⼝模块、中断模块、定时器模块和串⼝通信模块(串⾏I/O⼝),如其结构和功能如下图:图1 51单⽚机结构和功能图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^0,即P1⼝的第1位,⾄于为什么写P1^0,是因为KEIL软件规定的,然后deng1=0。
也就是P1=0xfe和deng1=0都是可以点亮第⼀个灯,后者deng1=0属于位操作,前者P1 =0xfe属于总线操作,也就是8个引脚⼀起操作。
图3 8位灯接线图下⾯再以IE寄存器为例进⾏位操作的解释。
IE寄存器为中断允许寄存器,如各位的作⽤如图4.其中第7位EA是51单⽚机5个中断的总开关,如要进⼊任何⼀个中断时,需先把EA打开,因为可以进⾏位操作,此时程序有两种写法:1)IE=0x80(假如其它位为0,即1000 0000),也可以直接写EA=1,后者EA=1即属于位操作。
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-----程序状态字。
51串口控制寄存器SCON

串行口控制寄存器(SCON)SCON就是MCS-51单片机得一个可位寻址得专用寄存器,用于串行数据通信得控制。
单元地址为98H,位地址为98H~9FH。
寄存器得内容及位地址表示如下:各位得说明如下:1) SM0 、SM1——串行口工作方式选择位其状态组合与对应工作方式为:SM0 SM1工作方式0 0 方式00 1 方式11 0 方式21 1 方式32) SM2——允许方式2、3得多机通信控制位在方式2与3中,若SM2=1且接收到得第九位数据(RB8)为1,才将接收到得前8位数据送入接收SBUF中,并置位RI产生中断请求;否则丢弃前8位数据。
若SM2=0,则不论第九位数据(RB8)为1还就是为0,都将前8位送入接收SBUF中,并产生中断请求。
方式0时,SM2必须置0。
3) REN——允许接收位REN=0 禁止接收数据REN=1 允许接收数据4) TB8——发送数据位8在方式2、3时,TB8得内容就是要发送得第9位数据,其值由用户通过软件来设置。
5) RB8——接收数据位8在方式2、3时,RB8就是接收得第9位数据。
在方式1时,RB8就是接收得停止位在方式0时,不使用RB86) TI——发送中断标志位在方式0时,发送完第8位数据后,该位由硬件置位在其它方式下,于发送停止位之后,由硬件置位。
因此,TI=1表示帧发送结束,其状态既可供软件查询使用,也可请求中断。
TI由软件清“0”。
7) RI——接收中断标志位在方式0时,接收完第8位数据后,该位由硬件置位。
在其它方式下,于接收到停止位之时,该位由硬件置位。
因此,RI=1表示帧接收结束,其状态既可供软件查询使用,也可请求中断。
RI由软件清“0”。
SCON:串行口控制寄存器寄存器地址98H,位寻址9FH~98H。
位地址9F9E9D9C9B9A9998位符号SM0SM1SM2REN TB8RB8TI RISM0、SM1:串行口工作方式选择位SM2:多机通信控制位REN:允许/禁止串行口接收得控制位TB8:在方式2与方式3中,就是被发送得第9位数据,可根据需要由软件置1或清零,也可以作为奇偶校验位,在方式1中就是停止位。
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系列所增加的特殊功能寄存器):MCS-51单片机的特殊功能寄存器带“*”的在51系列是没有的。
分别说明如下:1、ACC---是累加器,通常用A表示这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。
它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。
自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。
该标志常用作程序分枝转移的判断条件。
2、B--一个寄存器在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。
3、PSW-----程序状态字。
这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。
它的各位功能请看下表:下面我们逐一介绍各位的用途CY:进位标志。
8051中的运算器是一种8位的运算器,我们知道,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SCON是MCS-51单片机的一个可位寻址的专用寄存器,用于串行数据通信的控制。
单元地址为98H,位地址为98H~9FH。
寄存器的内容及位地址表示如下:
各位的说明如下:
1) SM0 、SM1——串行口工作方式选择位
其状态组合和对应工作方式为:
SM0 SM1工作方式
0 0 方式0
0 1 方式1
1 0 方式2
1 1 方式3
2) SM2——允许方式2、3的多机通信控制位
在方式2和3中,若SM2=1且接收到的第九位数据(RB8)为1,才将接收到的前8
位数据送入接收SBUF中,并置位RI产生中断请求;否则丢弃前8位数据。
若SM2
=0,则不论第九位数据(RB8)为1还是为0,都将前8位送入接收SBUF中,并产
生中断请求。
方式0时,SM2必须置0。
3) REN——允许接收位
REN=0 禁止接收数据
REN=1 允许接收数据
4) TB8——发送数据位8
在方式2、3时,TB8的内容是要发送的第9位数据,其值由用户通过软件来设置。
5) RB8——接收数据位8
在方式2、3时,RB8是接收的第9位数据。
在方式1时,RB8是接收的停止位
在方式0时,不使用RB8
6) TI——发送中断标志位
在方式0时,发送完第8位数据后,该位由硬件置位
在其它方式下,于发送停止位之后,由硬件置位。
因此,TI=1表示帧发送结束,其状态既可供软件查询使用,也可请求中断。
TI由软件清“0”。
7) RI——接收中断标志位
在方式0时,接收完第8位数据后,该位由硬件置位。
在其它方式下,于接收到停止位之时,该位由硬件置位。
因此,RI=1表示帧接收结束,其状态既可供软件查询使用,也可请求中断。
RI由软件清“0”。
51单片机的简介——串行口、SCON
51单片机有一个全双工串行通讯口,它即可作为UART(Universal Asynchronous Receiver/Transmitter),也可作为一个同步移位寄存器。
而且作为UART时,其具有多机通讯能力。
51单片机的串行口由发送控制、接收控制、波特率输入管理和发送/接收缓冲区SBUF(地址为99H)组成。
SBUF作为发送和接收缓冲区其实际是分开的两个器件,数据不会相互覆盖,但在对其寻址时都是99H,51单片机会根据读或者写指令操作相应的器件。
站在汇编角度来看,51单片机的串行口通讯操作体现为累加器Acc(地址E0H)和发送/接收缓冲区SBUF之间的数据传递。
当我们要发送数据时,对串行口完成初始化设置后,数据由累加器A传入SBUF,然后在发送控制器的控制下组成帧结构,并自动从TXD端口发出,发送结束后置位TI(TI是特殊功能寄存器SCON的可独立寻址位,参见SCON介绍),如果要继续发送就在指令中将TI清0。
接收数据时,相当于对串口完成初始化设置后,数据由SBUF 传入累加器Acc,在置位允许位(即设置SCON的独立寻址位REN为1)后才开始进行串行接收操作,在接收控制器控制下,通过移位寄存器将串行数据输入SBUF,接收结束后将RI(SCON 中可独立寻址位)置位,最后将数据送累加器Acc。
特殊功能寄存器SCON是串行口控制寄存器,用于存放串行口的控制和状态信息,其地址为98H,具有位寻址功能,其各位的结构如下图所示:
其中各个位的功能及含义如下:
SM0、SM1:串行口工作方式选择位,其组合含义如下图所示:
SM2:多机通讯控制位。
在方式2和方式3中用于多机通讯控制,在方式2、方式3的接收状态中,若SM2=1,当接收到的第9位(同时系统将第9位值赋予RB8)为0时,舍弃接收到的数据,RI置0;若第9位为1时,将接收到的数据送入接收SBUF中,并将RI置1;而对于方式1,接收到有效的停止位时,将RI置1。
对于方式0,SM2应该置0。
REN:允许接收位。
REN置1时允许接收数据,REN由指令置位或者复位。
TB8:第9位发送的数据。
多机通讯时(即方式2、方式3)TB8表示主机发送的是地址还是数据,TB8=0表示发送的是数据,TB8=1表示发送的是地址。
TB8由指令置位或者复位。
RB8:第9位接收的数据。
用来存储接收到的第9位数据,用于标明接收到的数据特征或者用于校验。
对于方式0,不使用RB8。
TI:发送中断标志,由硬件设置,由软件清0。
方式0串行发送完8位数据后置位,其它方式串行发送停止位后置位。
RI:接收中断标志,由硬件设置,由软件清0。
方式0接收完8位数据后置位,其它方式接收到停止位时置位。
51单片机借用了PCON的D7位作为串行波特率系数SMOD控制位,PCON不可位寻址,其地址为87H,当SMOD=1时,波特率加倍。
SMOD在PCON中的位置如下图所示:。