51单片机SCON

合集下载

51单片机复习资料

51单片机复习资料

1、IP、IE、TCON、TMOD、SCON其中每一位的具体含义是什么?IP:中断优先寄存器(B8H);IE:中断允许寄存器(A8H);TCON:控制寄存器,控制定时/计数器的启动和益处;TMOD:方式寄存器,设定定时/计数器T0和T1的工作方式;SCON:串口控制寄存器PCON:电源控制寄存器2、MCS-51系列单片机的时钟周期、位周期、机器周期、指令周期之间的关系是什么?12个时钟周期=6个位周期=1个机器周期,1至2个机器周期=一个指令周期3、MCS-51系列单片机的特殊功能寄存器复位后的初始内容是什么?单片机复位操作使单片机进入初始化状态,初始化后PC=0000H 特殊功能寄存器的状态。

P0~P3为FFH,SP=07H,SBUF不定,IP、IE和PCON的有效位为0,其余特殊功能寄存器的状态均为00H。

4、MCS-51系列单片机的I/O口除了可以做输入输出口外还可以充当什么接口?其中哪组I/O口必须外接上拉电阻?地址/数据复用线P0口5、MCS-51系列单片机RST、EA、ALE、RD、WR引脚作用是什么?RST即为RESET,复位信号线;EA:中断允许总控位。

EA=0(低电平),屏蔽所有中断请求,EA=1(高电平),开放中断;ALE:地址锁存有效输出端;RD:读信号线;WR:写信号线。

6、MCS-51系列单片机的复位电平是高电平还是低电平?其复位电路应怎样设计?51是高电平复位。

当上电一瞬间,电容需要充电,认为电流可以流过电容,所以电容相当于短路,这是复位脚相当于接入高电平,进入上电复位状态。

当电容电量充满以后,电容不再有电流流过,相当于短路,这时复位脚就相当于通过电阻接地(低电平),单片机进入正常状态。

7、MCS-51系列单片机有几级中断?几个中断源?其优先级排序是什么?二级中断;5个中断源;排列从高到低为外部中断0;定时/计数器0;外部中断1;定时/计数器1;串行口。

8、MCS-51系列单片机的中断源标志位分别是什么?清零方式是什么样的?外中断标志是IF0,IF1 ;定时器中断标志是TF0,TF1;串口中断标志是RI,TITI,RI软件清零,其余硬件清零。

51单片机的内部资源

51单片机的内部资源
01
T1
RX TX
EX0 1 EA 1 IE0
ET0 1 TF0
EX1 1 IE1
ET1 1 TF1
RI TI ≥1
SCON
ES 1
IP
PX0 1 0
PT0 1 0
PX1 1 0
PT1 1 0
PS 1 0
硬件查询




1


级 中断入口
中断源


0




级 中断入口
中断源
三、中断请求源
51单片机的五个中断请求源 : (1)INT0—外部中断请求0,由引脚INT0 (P3.2)输入,中断
中断请求
执行主 程序
断点
继续执行 主程序
中断响应
执行 中断 处理 程序
中断返回
主程序:CPU正常情况下运行的程序称为主程序。
中断源:把向CPU提出中断申请的设备称为中断源。
中断请求:由中断源向CPU所发出的请求中断的信号称中断 请求。
中断响应:CPU在满足条件情况下接受中断申请,终止现行 程序执行转而为申请中断的对象服务称中断响应。
IE0=0,无中断请求。
IE0=1,外部中断0有中断请求。当CPU响应该中断,转向中 断服务程序时,由硬件清“0”IE0。
(3)IT1—外部中断请求1为跳沿触发方式还是电平触发方式, 意义与IT0类似。
(4)IE1—外部中断请求1的中断请求标志位,意义与IE0类似。
(5)TF0—T0溢出中断请求标志位。 T0计数后,溢出时,由硬件置“1”TF0,向CPU申请中断,
串行中断是为串行数据传送的需要而设置的。每当串行 口发送或接收一组串行数据时,就产生一个中断请求。

51单片机寄存器(个人整理)

51单片机寄存器(个人整理)

51单片机寄存器功能一览表fe51单片机的CPU中,有21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SF存储空间中,地址空间为80H-FFH,在这片SF空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位作位寻址操作(这里介绍一个技巧:其地址能被8整除的都可以位寻址)。

在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有OM,用来存放程序,有AM,用来存放中间结果,此外还有定时/计数器,串行I/O 口,中断系统,以及一个内部的时钟电路。

在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SF)。

这样的特殊功能寄存器51单片机共有21个并且都是可寻址的列表如下(其中带*号的为52系列所增加的特殊功能寄存器):MCS-51单片机的特殊功能寄存器符号地址功能介绍BF0HB寄存器ACCE0H累加器PSWD0H程序状态字TH2*CDH定时器/计数器2(高8位)TL2*CCH定时器/计数器2(低8位)CAP2H*CBH外部输入(P1.1)计数器/自动再装入模式时初值寄存器高八位CAP2L*CAH外部输入(P1.1)计数器/自动再装入模式时初值寄存器低八位T2CON*C8HT2定时器/计数器控制寄存器IPB8H中断优先级控制寄存器P3B0HP3口锁存器IEA8H中断允许控制寄存器P2A0HP2口锁存器SBUF99H串行口锁存器SCON98H串行口控制寄存器P190HP1口锁存器TH18DH定时器/计数器1(高8位)TH08CH定时器/计数器1(低8位)TL18BH定时器/计数器0(高8位)TL08AH定时器/计数器0(低8位)TMOD89HT0、T1定时器/计数器方式控制寄存器TCON88HT0、T1定时器/计数器控制寄存器DPH83H数据地址指针(高8位)DPL82H数据地址指针(低8位)SP81H堆栈指针P080HP0口锁存器PCON87H电源控制寄存器分别说明如下:1、ACC---是累加器,通常用A表示这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。

51单片机的SCON寄存器与C程序解析

51单片机的SCON寄存器与C程序解析

51 单片机的SCON 寄存器与C 程序解析
用计算机来控制单片机,进而控制继电器等其他外设,感觉不错啊,怎幺实现呢?一步步来吧。

单片机串行口通信,也就是单片机与计算机之间的通信,要实现,要明白一些基本的概念。

(1)实现之前,请确定串口正常,我之前做过串口操作,烧了不能控制,后来才发现,设备管理器里串口有叹号,驱动有问题,可能是开发实验板没有插好或是换了个USB 口造成的(我用的是串口转USB 的,笔记本用)
(2)串口初始化,这方面,最好有相关的书来的,明白消化定时器与中断,这样操作起来就容易了。

一。

设定串口的工作方式:设定SCON 寄存器。

什幺是SCON 呢?。

C51单片机引脚功能与特殊功能寄存器详解

C51单片机引脚功能与特殊功能寄存器详解

80C51单片机引脚图及引脚功能介绍首先我们来介绍一下单片机的引脚图及引脚功能(如下图所示),引脚的具体功能将在下面详细介绍单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。

⒈ 电源:⑴ VCC - 芯片电源,接+5V;⑵ VSS - 接地端;⒉ 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。

⒊ 控制线:控制线共有4根,⑴ ALE/PROG:地址锁存允许/片内EPROM编程脉冲① ALE功能:用来锁存P0口送出的低8位地址② P ROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。

⑵ PSEN:外ROM读选通信号。

⑶ RST/VPD:复位/备用电源。

① RST(Reset)功能:复位信号输入端。

② VPD功能:在Vcc掉电情况下,接备用电源。

⑷ EA/Vpp:内外ROM选择/片内EPROM编程电源。

① EA功能:内外ROM选择端。

② Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。

⒋ I/O线80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。

P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。

拿到一块单片机,想要使用它,首先必须要知道怎样去连线,我们用的一块89C51的芯片为例,我们就看一下如何给它连线。

1、电源:这当然是必不可少的了。

单片机使用的是5V电源,其中正极接40管脚,负极(地)接20管脚。

2、振蒎电路:单片机是一种时序电路,必须供给脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接18、19脚。

只要买来晶体震荡器,电容,连上就能了,按图1接上即可。

3、复位管脚:按图1中画法连好,至于复位是何含义及为何需要复要复位,在单片机功能中介绍。

4、 EA管脚:EA管脚接到正电源端。

至此,一个单片机就接好,通上电,单片机就开始工作了。

我们的第一个任务是要用单片机点亮一只发光二极管LED,显然,这个LED必须要和单片机的某个管脚相连,不然单片机就没法控制它了,那么和哪个管脚相连呢?单片机上除了刚才用掉的5个管脚,还有35个,我们将这个LED和1脚相连。

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单片机串口通信程序。。含详细例子

{ P3_4=0; P3_3=1;
} void RstPro()//编程器复位 {
pw.fpProOver();//直接编程结束 SendData();//通知上位机,表示编程器就绪,可以直接用此函数因为协议号(ComBuf[0])还没被修改,下同 }
void ReadSign()//读特征字 {
} void serial () interrupt 4 using 3 //串口接收中断函数 {
if (RI) { RI = 0 ; ch=SBUF; read_flag= 1 ; //就置位取数标志 }
} main()
{ init_serialcom(); //初始化串口 while ( 1 ) { if (read_flag) //如果取数标志已置位,就将读到的数从串口发出 { read_flag= 0 ; //取数标志清 0 send_char_com(ch); } }
while(RI == 0); RI = 0; c = SBUF; // 从缓冲区中把接收的字符放入 c 中 SBUF = c; // 要发送的字符放入缓冲区 while(TI == 0); TI = 0; } }
4.//////////////// /////////////////////////////////////////////////////////
SendData(); } else break;//等待回应失败 } pw.fpProOver();//操作结束设置为运行状态 ComBuf[0]=0;//通知上位机编程器进入就绪状态 SendData(); }
void Lock()//写锁定位
{
pw.fpLock();
SendData();

c51单片机串口初值计算

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单片机寄存器功能一览表(最全)

0V:溢出标志位运算结果按补码运算理解。

有溢出,OV=1;无溢出,OV=0。

什么是溢出我们后面的章节会讲到。

P:奇偶校验位它用来表示ALU运算结果中二进制数位“1”的个数的奇偶性。

若为奇数,则P=1,否则为0。

运算结果有奇数个1,P=1;运算结果有偶数个1,P=0。

例:某运算结果是78H(01111000),显然1的个数为偶数,所以P=0。

4、DPTR(DPH、DPL)--------数据指针7、IP-----中断优先级控制寄存器8、TMOD-----定时器控制寄存器•IT0:外部中断源0触发方式控制位。

IT0=0,外部中断1程控为电平触发方式,当INT0(P3.2)输入低电平时,置位IE0。

10、SCON----串行通信控制寄存器它是一个可寻址的专用寄存器,用于串行数据的通信控制,单元地址是98H,其结构格式如下:(1)SM0、SM1:串行口工作方式控制位。

SM0,SM1 工作方式00 方式0-波特率由振荡器频率所定:振荡器频率/1201 方式1-波特率由定时器T1或T2的溢出率和SMOD所定:2SMOD ×(T1溢出率)/3210 方式2-波特率由振荡器频率和SMOD所定:2SMOD ×振荡器频率/6411 方式3-波特率由定时器T1或T2的溢出率和SMOD所定:2SMOD ×(T1溢出率)/32(2)SM2:多机通信控制位。

< br> 多机通信是工作于方式2和方式3,SM2位主要用于方式2和方式3。

接收状态,当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接受到的数据放弃。

当SM2=0时,就不管第位数据是0还是1,都难得数据送入SBUF,并发出中断申请。

工作于方式0时,SM2必须为0。

(3)REN:允许接收位。

< br> REN用于控制数据接收的允许和禁止,REN=1时,允许接收,REN=0时,禁止接收。

51单片机特殊功能寄存器

51单片机特殊功能寄存器

51单片机特殊功能寄存器一、中断控制寄存器IE功能解释:1、EA:中断总开关,如果它等于0,则所有中断不允许。

2、X:无效位;3、ET2:定时器2中断允许;4、ES:串行口中断允许;5、ET1:定时器1中断允许;6、EX1:外部中断1中断允许;7、ET0:定时器0中断允许;8、EX0:外部中断0中断允许;二、中断标志及外部中断方式选择寄存器TCON功能解释1、TF1:定时器/计数器1(T1)的溢出中断标志。

当T1从初值开始加1计数到计数满,产生溢出时,由硬件使TF1置“1”,直到CPU响应中断时有硬件复位;2、TR1:T1的运行控制位,该位置1或清0用来实现启东计数或停止计数;3、TF0:定时器/计数器0(T0)的溢出标志位,其作用同TF1;4、TR0:T0的运行控制位,该位置1或清0用来实现启东计数或停止计数;5、IE1:外部中断1中断请求标志位,如果IT1 = 1,则外部中断1引脚P3.1上的电平有1变0时,IE1由硬件置位,外部中断1请求中断。

在CPU响应该中断时由硬件清0;6、IT1:外部中断源1触发方式控制位,边沿/电平触发模式。

7、IE0:外部中断0中断请求标志位,功能同IE1;8、IT0:外部中断源0触发方式控制位,边沿/电平触发模式。

三、定时器方式控制寄存器TMOD高4位(D7-D4)用于定时器1,低四位(D3-D0)用于定时器0;1、Gate:定时器/计数器运行控制位,用来确定外部中断请求引脚(INT0,INT1)是否参与T0或T1的操作控制。

当Gate=0时,只要定时器控制寄存器TCON中的TR0(或TR1)被置1时,T0(或T1)被允许开始计数;当Gate=1时,不仅要TCON中的TR0或TR1置位,还需要P3口的P3.2或P3.3引脚为高电平,才允许计数;2、C/T:定时器方式或计数器方式选择位。

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

3、M1,M0:定时器四种工作方式选择位:4、四、UART控制寄存器SCON功能解释:1、SMO,SM1:串行口操作方式选择位,两个选择位对应四种状态。

51串口控制寄存器SCON

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单片机中的21个寄存器

51单片机中的21个寄存器

51单片机中的21个寄存器ACC 累加器B 用于辅助累加器做某些运算的寄存器PSW 程序状态字其中最高位是进/借位标志C;PSW.6 是辅助进位标志AC,用于标识加减运算中低四位向高四位的进位;PSW.4 和PSW.3 是寄存器组选择位RS1 和RS0,用于从00H--1FH 的32 个存储器单元(4 组)中选出当前准备使用的一组工作寄存器的映射地址;PSW.2 是溢出标志OV;PSW.0 是ACC 的偶校验位P;PSW 的其余位不用IP 中断优先级控制寄存器在51 中IP.0--IP.4 依次控制INT0、T0、INT1、T1、UART 中断的优先级,高三位不用IE 中断使能控制器IE.7 是所有中断的总开关EA,IE.0--IE.4 依次控制INT0、T0、INT1、T1、UART 中断功能的开放或关断P0、P1、P2、P3 这四个寄存器用于读写51 单片机的四个I/O 端口SBUF 串行数据缓冲器将数据写入SBUF,单片机就自动将数据从UART 口发送出去SCON 串行口功能控制器最高两位SM0、SM1 控制串行口工作模式;第5 位SM2 通常用于多机通信中区分地址帧和数据帧;第4 位REN 是控制串口接收数据的使能位;第3 位TB8 和第2 位RB8 分别是在串口的相关工作模式下要发送的和接收到的第9 位数据;次低位TI 和最低位RI 分别标识一个发送或接收过程已结束,这两个标志位都会触发串口中断TH0、TL0 定时器T0 的计数单元的高8 位和低8 位TH1、TL1 定时器T1 的计数单元的高8 位和低8 位TMOD 定时/计数器工作模式控制器低4 位和高4 位的内容对应相同,分别控制T0 和T1 的工作模式,次低位和最低位控制对应定时/计数器的工作模式;最高位控制定时/计数器的计数是否由外中断口线参与控制;次高位控制对应的定时器/计数器工作在定时方式还是对相应口线的脉冲进行计数的方式TCON 定时/计数器控制字TCON.0 和TCON.2 分别是外中断INT0 和INT1 的触发方式选择位IT0 和IT1;TCON.1 和TCON.3 分别是外中断INT0 和INT1 的中断触发标志位IE0 和IE1;TCON.4 和TCON.6 分别是T0 和T1 的计数开关TR0 和TR1;TCON.5 和TCON.7 分别是T0 和T1 的中断触发标志位TF0 和TF1PCON 电源模式控制器最高位SMOD 用于串行口通信的波特率加倍,低4 位用于选择不同的低功耗模式,比如空闲模式、掉电模式、时钟停止模式等,但具体每一位的用法没有找到相关资料DPH、DPL 数据指针DPTR 的高、低字节DPTR 可以用于指向程序存储器、片内RAM、片外RAM 来读取数据SP 堆栈指针堆栈都是分配在片内RAMtips:感谢大家的阅读,本文由我司收集整编。

51单片机寄存器

51单片机寄存器
定时器工作方式2
方式2 为8 位自动重装工作方式.定时器的低8 位TL0 或TL1 用来计数,高8位(TH0或TH1)用来存 放重装数值.当定时器溢出时,TH 中的数值被装入TL中.定时器0 和定时器1 在方式2 时是同样的,定 时器1 常用此方式来产生波特率.
定时器工作方式3
方式3 时,定时器0 成为两个8 位定时/计数器(TH0 和TL0 ).TH0 对应于TMOD 中定时器0 的控 制位,而TL0 占据了TMOD 中定时器1 的控制位.这样定时器1 将不能产生溢出中断了,但可用于其它 不需产生中断的场合,如作为波特率发生器或作为定时计数器被软件查询.当系统需要用定时器1 来 产生波特率,而又同时需要两个定时/计数器时,这种工作方式十分有用.当定时器1 设置为工作方式3 时,将停止工作.
处理器的状态保存在状态寄存器PSW 中,状态 字中包括进位位,用于BCD 码处理的辅助进位位, 奇偶标志位,溢出标志位,还有前面提到的用于 寄存器组选择的RS0 和RS1。0组从地址00H开始, 1组从地址08H开始,2组从地址10H开始,3组从地 址18H开始。这些地址都可通过直接或间接方式进 行寻址。
UART 模式2
模式2 的数据以11 位方式发送:1 位起始位,8 位数据位,第九位,1 位停止位.发送数据时,第九 位为SCON 中的TB8, 接收数据的第九位保存在RB8 中.第九位一般用来多机通信,仅在第九位为1 时, 单片机才接收数据.多机通信用SCON 的SM2 来控制.当SM2置位时,仅当数据的第九位为1 时才引发通 讯中断,当SM2 为0 时,只要接收完11 位就产生一次中断.第九位可在多机通讯中避免不必要的中断, 在传送地址和命令时,第九位置位,串行总线上的所有处理器都产生一个中断,处理器将决定是否继续 接收下面的数据,如果继续接收数据就清零SM2. 否则,SM2 置位,以后的数据流将不会使他产生中 断.SMOD=O 时,模式2 的波特率为1/64Osc, SMOD=1 时,波特率为1/32Osc. 因此,使用模式2, 当晶振 频率为11.059M 时,将有高达345K 的波特率.模式3 和模式2 的差别在于可变的波特率.

51单片机的2个串口分别通信的方法

51单片机的2个串口分别通信的方法

51单片机的2个串口资源分别通信的方法当使用51单片机的2个串口资源进行通信时,比如用一个串口与PLC的串口使用RS485协议通信,一个串口通过蓝牙模块和另一个单片机无线通信时,该如何处理呢?传统的51单片机只有1个串口资源,只能采用分时复用的方法。

STC的15系列增强版51单片机具有多个串口资源,本文将描述如何使用IAP15W4K58S单片机用一个串口资源与PLC的RS485有线通信,另一个串口资源与Arduino单片机通过蓝牙模块无线通信,该通讯连接过程中PLC作为主机,IAP15W4K58S作为中间机,Arduino单片机作为最低层级。

工作过程是按下启动按键,PLC发信息给IAP15W4K58S单片机发高速脉冲控制步进电机驱动的机械臂运动取走货物,当货物取走后,IAP15W4K58S单片机通过蓝牙模块通知Arduino单片机控制的小车将新货物运送过来。

连接结构示意图如下图所示。

本例程使用的单片机型号为:IAP15W4K58S,该单片机有4个采用UART 工作方式的全双工异步串行通信接口(分别为串口1、串口2、串口3和串口4),每个串行口由2个数据缓冲器、1个移位寄存器、1个串行控制寄存器和1个波特率发生器等组成。

本项目使用串行口1和串行口2。

串行口1的两个缓冲器共用寄存器SBUF (99H),串行口2的两个缓冲器共用寄存器S2BUF(9BH)。

10位(1起始位,8位数据位,1停止位)可变波特率(9600)。

串口1对应的硬件部分是TxD和RxD,串行口2对应硬件部分是TxD2和RxD2。

串口1选择引脚P3.0(RxD)和P3.1(TxD),串口2选择引脚P1.0(RxD)和P1.1(TxD)。

串口1既可以选择T1作为波特率发生器,也可以选择T2作为波特率发生器。

本文串口1提供2个选择(T1和T2),串口2只能选择T2作波特率发生器。

但是当串口1和串口2的波特率相同时,可以共用T2作为波特率发器,当T2工作在1T模式时,串行口1的波特率=SYSclk/(65536-[RL_TH2,RL_TL2])/4,SYSclk表示系统时钟频率,[RL_TH2,RL_TL2]表示T2H,T2L的定时初值设置值。

单片机常用单词全称

单片机常用单词全称

1.ROM是只读内存(Read-Only Memory)的简称,是一种只能读出事先所存数据的固态半导体存储器。

其特性是一旦储存资料就无法再将之改变或删除。

通常用在不需经常变更资料的电子或电脑系统中,资料并且不会因为电源关闭而消失。

2.RAM(随机存取存储器)RAM -random access memory 随机存储器。

存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。

这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。

按照存储信息的不同,随机存储器又分为静态随机存储器(Static RAM,SRAM)和动态随机存储器(Dynamic RAM,DRAM)。

3.UART:Universal Asynchronous Receiver/Transmitter,通用异步接收/发送装置,UART是一个并行输入成为串行输出的芯片,通常集成在主板上,多数是16550AFN芯片。

4.VCC:电源电压(双极器件);电源电压(74系列数字电路);声控载波(Voice ControlledCarrier)在电子电路中,VCC是电路的供电电压, VDD是芯片的工作电压:VCC:C=circuit 表示电路的意思, 即接入电路的电压,D=device 表示器件的意思, 即器件内部的工作电压,在普通的电子电路中,一般Vcc>Vdd ! 有些IC 同时有VCC和VDD,这种器件带有电压转换功能。

C=circuit 表示电路的意思, 即接入电路的电压,在电子电路中,VCC是电路的供电电压。

CadenceVirtual Component Co-design ,简称VCC,它是第一个为IP复用所设计的工业系统级HW/SW co-design开发平台环境。

Cadence VCC 使设计师在早期设计第一代产品和相关产品时,就可以确认HW/SW划分的临界体系结构。

Cadence VCC通过电子供给链进行交流和交换设计信息,为系统库和SOC提供必要的框架。

51单片机多机通信过程

51单片机多机通信过程

51单片机多机通信过程51单片机具有多机通信的功能,可实现一台主机于多台从机的通信。

多机通信充分利用了单片机内部的多机通信控制位SM2。

当从机SM2,1时,从机只接收主机发出的地址帧(第九位为1),对数据帧(第九位为0)不予理睬;而当SM2=0时,可接收主机发送过来的所有信息。

多机通信的过程如下:(1)所有从机SM2均置1,处于只接收地址帧状态。

(2)主机先发送一个地址帧,其中前8位数据表示地址,第9位为1表示该帧为地址帧。

(3)所有从机接收到地址帧后,进行中断处理,把接收到的地址与自身地址相比较。

地址相符时将SM2清成0,脱离多机状态,地址不相符的从机不作任何处理,即保持SM2,1。

(4)地址相符的从机SM2=0,可以接收到主机随后发来的信息,即主机发送的所有信息。

收到信息TB8=0,则表示是数据帧,而对于地址不符的从机SM2=1,收到信息TB8=0,则不予理睬,这样就实现了主机与地址相符的从机之间的双机通信。

(5)被寻址的从机通信结束后置SM2=1,恢复多机通信系统原有的状态。

主机:设置为SM2=0。

这是双机通信的形式,可以任意的发送和接收发送:以TB8=1发送,将发送到所有SM2=1的分机。

这是呼叫某个从机。

以TB8=0发送,将发送到SM2=0的分机。

这是双机通信的形式。

------从机:先设置为SM2=1。

这是多机通信的形式,只能收到RB8=1的。

接收:仅能收到RB8=1的数据,确认是呼叫本机时,令SM2=0。

设置为SM2=0后,是双机通信的形式。

追问那从机的RB8要怎么设,是需要软件设置还是单片机自己识别,在编程的时候要怎么写, 回答从机的RB8,不需要编程。

从机的RB8,是接收到的,它是主机发送出来的TB8。

想要对TB8进行控制,需要在主机中编程。

单片机多机通讯说明:该程序为多机通讯程序,最多可以挂255个从机。

该程序主机发送端与多个从机的接收端相接,主机的接收端与多个从机的发送端相接。

51单片机缩写的英文全称及中文名称

51单片机缩写的英文全称及中文名称

单片机缩写的英文全称及中文名称PC = programmer counter //程序计数器counter 计算器, 计数器, 计算者, 柜台, 筹码['kauntə]ACC = accumulate [ə'kju:mjuleit //累加器: 积累: 积聚PSW = programmer status word //程序状态字status'steitəs, 'stæ-]n. 地位;状态;情形;重要身分SP = stack point //堆栈指针stack[stæk n. 堆;堆叠vt. 使堆叠;把…堆积起来vi. 堆积,堆叠DPTR = data point register //数据指针寄存器'redʒistə寄存器IP = interrupt priority //中断优先级[,intə'rʌpt 中断[prai'ɔrəti] 优先;优先权;[数] 优先次序;优先考虑的事IE = interrupt enable // 中断使能i'neibl]使能够,使成为可能;授予权利或方法TMOD = timer mode // 定时器方式(定时器/计数器控制寄存器) ['taimə定时器,计时器mode [məud模式,方式ALE = alter (变更,可能是)['ɔ:ltə]PSEN = programmer saving enable //程序存储器使能(选择外部程序存储器的意思) EA = enable all(允许所有中断)完整应该是enable all interruptPROG = programme (程序)SFR = special funtion register //特殊功能寄存器TCON = timer control //定时器控制PCON = power control //电源控制MSB = most significant bit//最高有效位[sig'nifikənt有效的;有意义的LSB = last significant bit//最低有效位CY = carry //进位(标志)['kæri]AC = assistant carry //辅助进位[ə'sistənt n. 助手,助理,助教adj. 辅助的,助理的;有帮助的OV = overflow //溢出[,əuvə'fləu, 'əuvəfləu ORG = originally[ə'ridʒənəli //起始来源DB = define [di'fain]定义byte [bait] //字节定义EQU = equal //等于['i:kwəl]DW = define word //字定义 E = enable //使能OE = output enable //输出使能RD = read //读WR = write //写中断部分:INT0 = interrupt 0 //中断0 INT1 = interrupt 1//中断1T0 = timer 0 //定时器0 T1 = timer 1 //定时器1TF1 = timer1 flag //定时器1 标志(其实是定时器1中断标志位) [flæɡvi. 标记;衰退;枯萎vt. 标记;插旗n. 标志;旗子IE1 = interrupt exterior //(外部中断请求,可能是) ik'stiəriə]外部的IT1 = interrupt touch //(外部中断触发方式,可能是)ES = enable serial //串行使能['siəriəl, 'si:r- adj. 连续的;连载的;分期偿还的n. 电视连续剧;[图情] 期刊;连载小说serial communication [计]串行通信serial port [计]串行端口;序列埠serial interface [计]串联接口ET = enable timer //定时器使能PS = priority serial //串口优先级EX = enable exterior //外部使能(中断)[ik'stiəriə] adj. 外部的;表面的;外在的n. 外部;表面;外型;外貌PX = priority exterior //外部中断优先级PT = priority timer //定时器优先级寄存器部分:SFR:special funtion register //特殊功能寄存器(片内RAM 80H~FFH)ACC:accumulate //累加器SP:stack point //堆栈指针PSW:programmer status word //程序状态字IE:interrupt enable // 中断使能DPL,DPH:DPTR(data point register //数据指针寄存器)的低8位和高8位IP:interrupt priority //中断优先级PCON:power control //电源控制SCON:serial control //串行口控制TCON:timer control //定时器控制SBUF:serial buffer //串行数据缓冲['bʌfə] n. [计] 缓冲区;缓冲器,[车辆] 减震器vt. 缓冲TMOD:timer mode //定时器方式PSW:CY:carry (psw.7) //进位(标志)AC:auxiliary carry (psw.6) //辅助进位F0: (psw.5) //用户自定义标志位OV:overflow (psw.2) //溢出RS1,RS0:register select (psw.4,psw.3)//工作寄存器组选择位[si'lekt]挑选P:parity (psw.0) //奇偶校验位['pæriti. 平价;同等;相等IE:EA:Enable All Interrupt /CPU开/关中断控制位ET1:Enable Timer //定时器2溢出中断允许位ES:Enable Serial Port //串行口中断允许位EX:Enable External //外部中断1的中断允许位IP:PS:Priority Serial //串口优先级PT:Priority Timer //定时器优先级PX:Priority External //外部中断优先级[ik'stə:nəl] adj. 外部的;表面的;[药] 外用的;外国的;外面的n. 外部;外观;外面SCON:RI:Receive Interrupt //串行口接收中断请求标志位TI:Transmit Interrupt //串行口发送中断请求标志位[trænz'mit, træns-, trɑ:n-] vt. 传输;传播;发射;传达;遗传vi. 传输;发射信号TCON:TF1:Timer1 Overflow Flag //定时器1溢出中断请求标志TR1:Timer1 Run //定时器1启动控制位IE1:Interrupt Edge //外部中断1请求标志位[edʒ]IT1:Interrupt Type //外部中断1触发方式选择位8051引脚:RST:RESET (9)//复位,重启P3:RXD:Received eXchange [iks'tʃeindʒ Data (10,p3.0)//接收串行数据eXchange n. 交换;交流;交易所;兑换vt. 交换;交易;兑换vi. 交换;交易;兑换TXD:Transmit eXchange Data (11,p3.1)//发送串行数据INT0:interrupt 0 (12,p3.2)//中断0 INT1:interrupt 1 (13,p3.3)//中断1T0:timer 0 (14,p3.4)//定时器0 T1:timer 1 (15,p3.5)//定时器1RD:ReaD (16,p3.6)//外部数据存储器(RAM)的读信号WR:WRite (17,p3.7)//外部数据存储器(RAM)的写信号XTAL2,XTAL1:External Crystal ['kristəl晶体Oscillator ['ɔsileitə振荡器(18,19) //外部晶体振荡器PSEN:Program Store [stɔ:]Enable (29) //程序存储器(ROM)使能n. 商店;储备,贮藏;仓库vt. 贮藏,储存ALE:Address Latch Enable (30) //地址锁存Latch锁存器EA:External Address Enable (31) //外部程序存储器(ROM)地址允许其它:OE:output enable //输出使能MSB = most significant bit//最高有效位[sig'nifikənt] adj. 重大的;有效的;有意义的;值得注意的;意味深长的n. 象征;有意义的事物LSB = last significant bit//最低有效位DB = define byte //字节定义ORG = originally //起始来源EQU = equal //等于DW = define word //字定义CLKOUT:Clock out,时钟输出BUSWDITH:总线宽度Vref:参考电压(带ADC的单片机中有的)参考电压(Voltage Reference)['refərəns n. 参考,参照;HSO:High Speed Output,高速输出HSI:High Speed Input:高速输入INST:Instruction,指令READY就绪,总线中的就绪信号或引脚NMI:No Mask Interruput (Input):不可屏蔽的中断请求(输入)[mɑ:sk, mæskBHE:Bank High Enable:存储器的高位允许,如在80286系统中RAM的组织为16位的,分为高8位和低8位数据,分别的控制信号为BHE和BLE Bank n. 银行;岸;浅滩;储库vt. 将…存入银行;倾斜转弯vi. 堆积;倾斜转弯MCS-51指令(1)数据传送类指令(7种助记符)助记符英文注释功能MOV Move 对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送MOVC Move Code 读取程序存储器数据表格的数据传送MOVX Move External RAM 对外部RAM的数据传送XCH Exchange 字节交换XCHD Exchange low-order Digit ['didʒit]低半字节交换POP Pop from Stack) 出栈PUSH Push onto ['ɔntu, -tə] Stack) 入栈(2)算术运算类指令(8种助记符)ADD Addition 加法ADDC Add with Carry 带进位加法SUBB Subtract [səb'trækt] with Borrow 带借位减法vt. 减去;扣DA Decimal ['desiməl]adj. 小数的;十进位的n. 小数Adjust [ə'dʒʌst]调整十进制调整INC Increment ['inkrimənt加1 DEC Decrement 'dekrimənt]减1MUL Multiplication、Multiply 乘法[,mʌltipli'keiʃən n. [数] 乘法;增加['mʌltiplai vt. 乘;使增加;使繁殖;使相乘vi. 乘;繁殖;增加adv. 多样地;复合地adj. 多层的;多样的DIV Division[di'viʒən n. [数] 除法;部门;分割;师(军队);赛区、Divide 除法di'vaid vt. 划分;除;分开;使产生分歧vi. 分开;意见分歧n. [地理] 分水岭,分水线(3)逻辑运算类指令(10种助记符)ANL And Logic 逻辑与'lɔdʒik] n. 逻辑;逻辑学;逻辑性adj. 逻辑的ORL OR Logic 逻辑或CLR Clear kliə]清零XRL Exclusive-OR Logic 逻辑异或[ik'sklu:siv] adj. 独有的;排外的;专一的n. 独家新闻;独家经营的项目;排外者CPL Complement 取反'kɔmplimənt] n. 补语;余角;补足物vt. 补足,补助RL Rotate left 循环左移[rəu'teit, 'rəut-, 'rəuteit vi.旋转;循环vt. 使旋转;使转动;使轮流adj. [植] 辐状的RLC Rotate Left throught the Carry flag 带进位循环左移RR Rotate Right 循环右移RRC Rotate Right throught the Carry flag 带进位循环右移SWAP Swap 低4位与高4位交换[swɔp, swɔ:p n. 交换;交换之物vt. 与...交换;以...作交换vi. 交换;交易(4)控制转移类指令(17种助记符)ACALL Absolute subroutine Call 子程序绝对调用'æbsəlju:t, ,æbsə'lju:t adj. 绝对的;完全的;专制的n. 绝对;绝对事物'sʌbru:,ti:n, ,sʌbru:'ti:n] n. [计] 子程序LCALL Long subroutine Call 子程序长调用RET Return from subroutine 子程序返回RETI Return from Interruption 中断返回SJMP Short Jump 短转移JMP Jump Indirect 间接跳越[,indi'rekt, -dai-] adj. 间接的;迂回的;非直截了当的AJMP Absolute Jump 绝对转移LJMP Long Jump 长转移CJNE Compare and Jump if Not Equal 比较不相等则转移kəm'pεə] vt. 比较;对照;比喻为vi. 比较;相比n. 比较DJNZ Decrement and Jump if Not Zero 减1后不为0则转移JZ Jump if Zero 结果为0则转移JNZ Jump if Not Zero 结果不为0则转移JC Jump if the Carry flag is set 有进位则转移JNC Jump if Not Carry 无进位则转移JB Jump if the Bit is set) B位为1则转移JNB Jump if the Bit is Not set B位为0则转移JBC Jump if the Bit is set and Clear the bit 位为1则转移,并清除该位NOP No Operation 空操作[,ɔpə'reiʃən] n. 操作;经营;[外科] 手术;[数][计] 运算(5)位操作指令(1种助记符)SETB Set Bit 置位伪指令助记符英文注释功能ORG OriginDB Define ByteDW Define WordEQU EqualDATA DataXDATA External DataBIT BitEND End51外部引脚缩写英文解释中文解释RST (9)Reset 复位信号引脚[,ri:'set, 'ri:set vi. 重置;清零vt. 重置;重新设定;重新组合n. 重新设定;重新组合;重排版RxD (10--P3.0) Receive Data 串口接收端TxD (11--P3.1) Transmit Data 串口发送端INT0(————) (12--P3.2)Interrupt0 外部中断0信号输入引脚INT1(————) (13--P3.3)Interrupt1 外部中断1信号输入引脚T0 (14--P3.4) Timer0 定时/计数器0输入信号引脚T1 (15--P3.5) Timer1 定时/计数器1输入信号引脚LSB = last significant bit//最低有效位significant [sig'nifikənt有效的WR(———) (16--P3.6) write写信号引脚RD(———) (17--P3.7) read 读信号引脚PSEN(—————) (29)programmer saving enable 外部程序存储器读选通信号ALE (30)Address Latch Enable 地址锁存允许信号EA(———) (31) enable 外部ROM选择信号51内部寄存器SFR special funtion register 特殊功能寄存器ACC accumulate 累加器A PSW programmer status word 程序状态字CY (PSW.7) carry 进位标志位AC (PSW.6) assistant carry 辅助进位标志位ə'sistənt] n. 助手,助理,助教adj. 辅助的,助理的;有帮助的OE = output enable //输出使能OV (PSW.2) overflow 溢出标志位[,əuvə'fləu, 'əuvəfləu]PC programmer counter 程序计数器DPTR data point register 数据指针寄存器SP stack point 堆栈指针TCON timer control 定时器控制寄存器TF1(TCON.7)Timer1 flag T1中断标志位TR1(TCON.6)Timer1 Run T1运行控制位TF0 (TCON.5)Timer0 flag T0中断标志位TR0 (TCON.4)Timer0 Run T0运行控制位IE1 (TCON.3) Interrupt1 exterior 外部中断1中断标志位ik'stiəriə adj. 外部的;表面的;外在的n. 外部;表面;外型;外貌MSB = most significant bit//最高有效位IT1 (TCON.2)Interrupt1 touch 外部中断1 触发方式选择位IE0 (TCON.1)Interrupt0 exterior 外部中断0中断标志位IT0 (TCON.0)Interrupt0 touch 0-电平触发1-下降沿触发IE (A8H)interrupt enable 中断允许寄存器EA (IE.7) enable all interrupt 中断总允许位ES (IE.4) enable serial 串行口中断允许位['siəriəl, 'si:r-] adj. 连续的;连载的;分期偿还的n.电视连续剧;[图情] 期刊;连载小说ET0 (IE.1)enable timer 0 T0中断允许位ET1(IE.3)enable timer 1 T1中断允许位EX1 (IE.2)enable exterior 1 外部中断1中断允许位EX0 (IE.0)enable exterior 0 外部中断0中断允许位IP (B8H)interrupt priority 中断优先级寄存器PS (IP.4) priority serial 串口优先级标志位PT1 (IP.3) priority timer 1 定时器1优先级标志位PX1 (IP.2) priority exterior 1 外部中断1优先级标志位PT0 (IP.1) priority timer 0 定时器0优先级标志位PX0 (IP.0) priority exterior 0 外部中断0优先级标志位PCON (87H) power control 电源控制和波特率选择TMOD (89H)timer mode 定时器方式控制寄存器。

51单片机寄存器详解

51单片机寄存器详解

定时器/计数器的方式寄存器TMODTMOD是一个8位的特殊功能寄存器,对应的地址是89H,不可位寻址。

TMOD:工作方式控制寄存器寄存器地址89H,不可位寻址。

位序 B7 B6 B5 B4 B3 B2 B1 B0位符号GATE C/T M1 M0 GATE C/T M1 M0GATE——门控位当=0时,以运行TR0(或TR1)启动或禁止定时器、计数器当=1时,以TR0*/INT0(或TR1*/INT1)启动或禁止定时器、计数器GATE=0 以TR0(TR1)启动定时器GATE=1 以INT0(INT1)启动定时器C/T=0 定时/计数工作方式选择位M1M0——工作方式选择位T2MOD:工作方式控制寄存器寄存器地址0C9H,不可位寻址------T2OE DCENT2OE:定时器2输出允许位,当=1时,P1.0/T2引脚输出连续脉冲信号DCEN:当=1时,T2配置成向上向下计数器A 主要完成三个功能:*确T0计数溢出标志位当计数器计数溢出时,该位置“1”。

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

使用中断方式时,此位作为中断申请标志位,进入中定选择定时器还是计数器;*选择何种工作方式;*是否借用外中断控制定时器和计数器的启停;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停止计数定时器/计数器控制寄存器TCONTCON是一个8位的特殊功能寄存器,对应的地址为88H,可为寻址。

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

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中的位置如下图所示:
PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,单元地址是87H,其结构格式如下:
PCON D7 D6 D5 D4 D3 D2 D1 D0
位符号SMOD - - - GF1 GF0 PD IDL
在CHMOS型单片机中,除SMOD位外,其他位均为虚设的,SMOD是串行口波特率倍增位,当SMOD=1时,串行口波特率加倍。

系统复位默认为SMOD=0。

各位的定义:
SMOD:该位与串口通信有关。

SMOD=0; 串口方式1,2,3时,波特率正常。

SMOD=1; 串口方式1,2,3时,波特率加倍。

GF1,GF0:两个通用工作标志位,用户可以自由使用。

PD:掉电模式设定位。

PD=0 单片机处于正常工作状态。

PD=1 单片机进入掉电(Power Down)模式,可由外部中断或硬件复位模式唤醒,进入掉电模式后,外部晶振停振,CPU、定时器、串行口全部停止工作,只有外部中断工作。

IDL:空闲模式设定位。

IDL=0 单片机处于正常工作状态。

IDL=1 单片机进入空闲(Idle)模式,除CPU不工作外,其余仍继续工作,在空闲模式下可由任一个中断或硬件复位唤醒。

相关文档
最新文档