1、 第第5 5章章 MCS-51MCS-51单片机单片机 典型功能部件结构及应典型功能部件结构及应用用 5.1 中断系统 5.2 MCS-51单片机定时器/计数器 5.3 串行口5.1 5.1 中断系统中断系统5.1.1 5.1.1 中断的概念中断的概念 1. 1. 中断及中断源中断及中断源 中断是指在中断是指在CPUCPU正在执行某一段程序的过程中,如果外正在执行某一段程序的过程中,如果外界或内部发生了紧急事件,要求界或内部发生了紧急事件,要求CPUCPU暂停正在运行的程序暂停正在运行的程序转而去处理这个紧急事件,待处理完后再回到原来被停止转而去处理这个紧急事件,待处理完后再回到原来被停止执行
2、程序的间断点,继续执行原来被打断了的程序的过程。执行程序的间断点,继续执行原来被打断了的程序的过程。 实现这种功能的机构称为中断系统,产生中断的请求实现这种功能的机构称为中断系统,产生中断的请求源叫中断源。源叫中断源。 2. 2. 中断嵌套及优先级中断嵌套及优先级 当当CPUCPU正在处理一个优先级低的中断请求的时候,如果正在处理一个优先级低的中断请求的时候,如果发生另一个优先级比它高的中断请求,发生另一个优先级比它高的中断请求,CPUCPU暂停正在处理暂停正在处理的中断源的处理程序,转而处理优先级高的中断请求,待的中断源的处理程序,转而处理优先级高的中断请求,待处理完之后,再回到原来正在处理
3、的低级中断程序,这种处理完之后,再回到原来正在处理的低级中断程序,这种高级中断源能中断低级中断源的中断处理称为中断嵌套。高级中断源能中断低级中断源的中断处理称为中断嵌套。 5.1.2 MCS-515.1.2 MCS-51中断系统结构及中断控制中断系统结构及中断控制 1. 1. 中断源和中断请求标志中断源和中断请求标志 (1 1)中断源)中断源 MSC-51 MSC-51系列单片机的系列单片机的5 5个中断源,包括个中断源,包括2 2个外部中断源和个外部中断源和3 3个内部中断源。个内部中断源。 2 2个外部中断源是外部中断个外部中断源是外部中断0 0和外部中断和外部中断1 ; 31 ; 3个内
4、部中断源是定时器个内部中断源是定时器/ /计数器计数器0 0溢出中断、定时器溢出中断、定时器/ /计数器计数器1 1溢出中断、串行口的发送和接收中断(溢出中断、串行口的发送和接收中断(TITI和和RIRI)。)。 (2 2)TCONTCON寄存器寄存器 TCON TCON是定时器是定时器/ /计数器计数器0 0和和1 1(T0T0、T1T1)的控制寄存器,)的控制寄存器,同时也用来锁存同时也用来锁存T0T0、T1T1的溢出中断请求标志和外部中断请的溢出中断请求标志和外部中断请求标志。求标志。 (3 3)SCONSCON寄存器寄存器 SCON SCON为串行口控制寄存器,其中的低两位用作串行口中
5、为串行口控制寄存器,其中的低两位用作串行口中断请求标志。断请求标志。 TITI(SCON.1SCON.1):串行口发送中断请求标志。:串行口发送中断请求标志。 RIRI(SCON.0SCON.0):串行口接收中断请求标志。:串行口接收中断请求标志。 TCONTCON寄存器:寄存器:IE1IE1(TCON.3TCON.3):外部中断请求标志位。):外部中断请求标志位。IT1IT1(TCON.2TCON.2):外部中断触发方式控制位。由软件来置):外部中断触发方式控制位。由软件来置1 1或清或清0 0IT1=0IT1=0时,外部中断时,外部中断1 1为电平触发方式,为电平触发方式,IT1=1IT1
6、=1时,外部中断时,外部中断1 1为边沿触发方式(下降沿有效)为边沿触发方式(下降沿有效)IT0IT0(TCON.0TCON.0):外部中断):外部中断0 0()触发方式控制位,由软件()触发方式控制位,由软件置位或复位。置位或复位。IT0=1IT0=1,外部中断,外部中断0 0为边沿触发方式(下降沿为边沿触发方式(下降沿有效);有效);IT0=0IT0=0,外部中断,外部中断0 0为电平触发方式。为电平触发方式。TF0TF0(TCON.5TCON.5):定时器):定时器/ /计数器计数器0 0(T0T0)的溢出中断请求)的溢出中断请求标志。当标志。当T0T0计数产生溢出时,由硬件将计数产生溢
7、出时,由硬件将TF0TF0置置1 1TF1TF1(TCON.7TCON.7):定时器):定时器/ /计数器计数器1 1(T1T1)的溢出中断请求)的溢出中断请求标志标志IE0IE0(TCON.1TCON.1):外部中断请求标志位。当引脚():外部中断请求标志位。当引脚(P3.2P3.2)上出现中断请求信号时,由硬件置位上出现中断请求信号时,由硬件置位IE0IE0,向,向CPUCPU申请中断申请中断。 2. 2. 中断允许控制中断允许控制 在在MCS-51MCS-51单片机中断系统中,中断的允许或禁止是由单片机中断系统中,中断的允许或禁止是由片内的中断允许寄存器片内的中断允许寄存器IEIE控制的
8、。其引脚定义如下:控制的。其引脚定义如下: EAEA(IE.7IE.7):CPUCPU中断允许标志。中断允许标志。EA=0EA=0时,表示时,表示CPUCPU屏蔽所有中屏蔽所有中断;断;EA=1EA=1,表示,表示CPUCPU开放中断,但每个中断源的中断请求是允许还是开放中断,但每个中断源的中断请求是允许还是被禁止,还需由各自的允许位来确定。被禁止,还需由各自的允许位来确定。 ESES(IE.4IE.4):串行口中断允许位。:串行口中断允许位。ES=0ES=0,禁止串行口中断;,禁止串行口中断;ES=1ES=1时,允许串行口中断。时,允许串行口中断。 ET1ET1(IE.3IE.3):定时器:
9、定时器/ /计数器计数器T1T1溢出中断允许位。溢出中断允许位。ET1=1ET1=1,允许,允许T1T1中断;中断;ET1=0ET1=0,禁止,禁止T1T1中断。中断。 EX1EX1(IE.2IE.2):外部中断:外部中断1 1中断允许位。中断允许位。EX1=1EX1=1,允许外部中断,允许外部中断1 1中断;中断;EX1=0EX1=0,禁止外部中断,禁止外部中断1 1中断。中断。 ET0ET0(IE.1IE.1):定时器:定时器/ /计数器计数器T0T0溢出中断允许位,其功能同溢出中断允许位,其功能同ET1 ET1 EX0EX0(IE.0IE.0):外部中断:外部中断0 0中断允许位,功能同
10、中断允许位,功能同EX1EX1。 中断允许寄存器中断允许寄存器IEIE中各位的状态,可根据要求用软件中各位的状态,可根据要求用软件置位或清零,从而实现对于该中断源允许中断或禁止中断置位或清零,从而实现对于该中断源允许中断或禁止中断。当。当CPUCPU复位时,复位时,IEIE被清零。被清零。 3. 3. 中断优先级控制中断优先级控制 MCS-51 MCS-51系列单片机的中断优先级是由中断优先级寄存系列单片机的中断优先级是由中断优先级寄存器器IPIP控制的。控制的。 MSC-51 MSC-51单片机中的中断系统,应遵循以下基本准则:单片机中的中断系统,应遵循以下基本准则: (1) (1) 低优先
11、级中断可被高优先级中断请求所中断,高低优先级中断可被高优先级中断请求所中断,高优先级中断不能被低优先级中断请求所中断。优先级中断不能被低优先级中断请求所中断。 (2) (2) 同级的中断请求不能打断已经执行的同级中断。同级的中断请求不能打断已经执行的同级中断。 (3) (3) 中断源自然优先级顺序中断源自然优先级顺序 中断源自然优先级中断源自然优先级由高到低由高到低: 外部中断外部中断0 0 定时器定时器/ /计数器计数器0 0 外部中断外部中断1 1 定时器定时器/ /计数器计数器1 1 串行口串行口5.1.3 MCS-515.1.3 MCS-51中断响应过程中断响应过程 MCS-51 MC
12、S-51系列单片机的中断响应过程可分为中断响应、系列单片机的中断响应过程可分为中断响应、中断处理和中断返回三个阶段。中断处理和中断返回三个阶段。 1. 1. 中断响应中断响应 CPU CPU响应中断的条件主要有以下几点:响应中断的条件主要有以下几点: (1 1)有中断源发出中断请求;)有中断源发出中断请求; (2 2)中断总允许为)中断总允许为EA=1EA=1,即,即CPUCPU开中断;开中断; (3 3)请求中断的中断源的中断允许位为)请求中断的中断源的中断允许位为1 1 2. 2. 中断处理中断处理 CPU CPU从执行中断处理程序第一条指令开始到返回指令从执行中断处理程序第一条指令开始到
13、返回指令RETIRETI为止,这个过程称为中断处理或中断服务。中断处理为止,这个过程称为中断处理或中断服务。中断处理一般包括保护现场、处理中断源的请求以及恢复现场三部一般包括保护现场、处理中断源的请求以及恢复现场三部分内容。分内容。 3. 3. 中断返回中断返回 中断返回是指执行完中断处理程序的最后指令中断返回是指执行完中断处理程序的最后指令RETIRETI之之后,程序返回到断点,继续执行原来的程序。后,程序返回到断点,继续执行原来的程序。 5.1.4 5.1.4 中断响应后中断请求的撤除中断响应后中断请求的撤除 中断源提出中断申请,在中断源提出中断申请,在CPUCPU响应此中断请求后,该响应
14、此中断请求后,该中断源的中断请求在中断返回之前应当撤除,以免引起重中断源的中断请求在中断返回之前应当撤除,以免引起重复中断,被再次响应。复中断,被再次响应。 5.1.5 5.1.5 中断系统应用中断系统应用例:例:单片机读单片机读P1.0P1.0的状态,把这个状态送到的状态,把这个状态送到P1.7P1.7的指示的指示灯去,当灯去,当P1.0P1.0为高电平,指示灯亮;当为高电平,指示灯亮;当P1.0P1.0为低电平时,为低电平时,指示灯不亮。要求用中断控制这一输入指示灯不亮。要求用中断控制这一输入/ /输出过程,每请输出过程,每请求中断一次,完成一个读写过程。求中断一次,完成一个读写过程。 #
15、include#includesbit P1_0=P10;sbit P1_0=P10;sbit P1_7=P17;sbit P1_7=P17;void main()void main() IE=0 x81;IE=0 x81;/ /* * cpu cpu开中断和外部中断开中断和外部中断0 0允许允许* */ /TCON=0 x01;TCON=0 x01;/ /* * INT0 INT0设置为负边沿触发设置为负边沿触发* */ /while (1);while (1); void ex_int0(void)interrupt 0void ex_int0(void)interrupt 0 if (P
16、1_0=1)if (P1_0=1)P1_7=1;P1_7=1;elseelseP1_7=0;P1_7=0; 5.2 MCS-515.2 MCS-51单片机定时器单片机定时器/ /计数器计数器 MCS-51 MCS-51单片机内部有两个单片机内部有两个1616位定时器位定时器/ /计数器,简称计数器,简称定时器定时器0 0(T0T0)和定时器)和定时器1 1(T1T1)。它们均可用作定时器或)。它们均可用作定时器或事件计数器,为单片机系统提供计数和定时功能,还可作事件计数器,为单片机系统提供计数和定时功能,还可作为串行接口的波特率发生器为串行接口的波特率发生器 5.2.1 5.2.1 定时器定时
17、器/ /计数器概述计数器概述 定时器定时器/ /计数器实际上是加计数器实际上是加1 1计数器,当它对外部事件计数器,当它对外部事件进行计数时,由于频率不固定,此时称之为进行计数时,由于频率不固定,此时称之为计数器计数器; 当它对内部固定频率的机器周期进行计数时,称之为当它对内部固定频率的机器周期进行计数时,称之为定时器定时器。它们的工作状态及工作方式由两个特殊功能寄存器它们的工作状态及工作方式由两个特殊功能寄存器TMODTMOD和和TCONTCON的各位来决定。工作状态有定时和计数两种,由的各位来决定。工作状态有定时和计数两种,由TMODTMOD的第的第2 2位(位(T0T0)或第)或第6 6
18、位(位(T1T1)决定。工作模式共有)决定。工作模式共有0 03 3四四种,也是由种,也是由TMODTMOD其中的两位(其中的两位(1 1个定时器)来决定。个定时器)来决定。TMODTMOD和和TCONTCON的内容由软件写入。的内容由软件写入。 定时器定时器/计数器内部结构框图计数器内部结构框图 定时器定时器/ /计数器的基本结构:计数器的基本结构: TH1 TH1、TL1TL1是是T1T1的计数器,的计数器,TH0TH0、TL0TL0是是T0T0的计数器。的计数器。TH1TH1和和TL1TL1、TH0TH0和和TL0TL0分别构成两个分别构成两个1616位加法计数器位加法计数器 。5.2.
19、2 5.2.2 定时器定时器/ /计数器的控制计数器的控制 定时器定时器/ /计数器有计数器有4 4种工作模式,由种工作模式,由TMODTMOD设置并由设置并由TCONTCON控制。控制。 1. 1. 工作方式控制寄存器工作方式控制寄存器TMODTMOD 特殊功能寄存器特殊功能寄存器TMODTMOD的地址为的地址为89H89H,它不能位寻址,在,它不能位寻址,在设置时一次写入。高设置时一次写入。高4 4位用于定时器位用于定时器T1T1,低,低4 4位用于定时器位用于定时器T0 T0 M1M0 M1M0工作模式控制位工作模式控制位 M1M0 M1M0对应对应4 4种不同的二进制组合,分别对应种不
20、同的二进制组合,分别对应4 4种工作模种工作模式。式。 C/T :C/T :定时器方式和计数器方式选择控制位定时器方式和计数器方式选择控制位 为为1 1:定时:定时/ /计数器工作在计数器方式。计数器工作在计数器方式。 为为0 0:定时:定时/ /计数器工作在定时器方式。计数器工作在定时器方式。 GATE GATE定时器定时器/ /计数器运行控制位计数器运行控制位( (门控位门控位) ) 2. 2. 定时器控制寄存器定时器控制寄存器TCONTCON 定时器控制寄存器定时器控制寄存器TCONTCON除可字节寻址外,还可以位寻除可字节寻址外,还可以位寻址。址。TCONTCON的字节地址为的字节地址
21、为88H88H,位地址为,位地址为88H88H8FH8FH 。5.2.3 5.2.3 定时器定时器/ /计数器的工作模式计数器的工作模式 MCS-51 MCS-51系列单片机的定时器系列单片机的定时器/ /计数器计数器T0T0和和T1T1可由软件可由软件对特殊功能寄存器对特殊功能寄存器TMODTMOD中控制位中控制位C/C/进行设置,以选择定时进行设置,以选择定时功能或计数功能。对功能或计数功能。对M1M1和和M0M0位的设置对应于四种工作模式,位的设置对应于四种工作模式,即模式即模式0 0、模式、模式1 1、模式、模式2 2、模式、模式3 3。 1. 1. 工作模式工作模式0 0 模式模式0
22、 0是选择定时器是选择定时器/ /计数器(计数器(T0T0或或T1T1)的高)的高8 8位和低位和低5 5位组成的一个位组成的一个1313位定时器位定时器/ /计数器。其逻辑框图如图计数器。其逻辑框图如图5-45-4所所示。示。 定时器定时器/计数器计数器T0工作模式工作模式0逻辑结构框图逻辑结构框图 2. 2. 工作模式工作模式1 1 该模式对应的是一个该模式对应的是一个1616位的定时器位的定时器/ /计数器,其结构与计数器,其结构与操作几乎与模式操作几乎与模式0 0完全相同,惟一的差别是:在模式完全相同,惟一的差别是:在模式1 1中,中,寄存器寄存器TH0TH0和和TL0TL0是以全部是
23、以全部1616位参与操作。用于定时工作方位参与操作。用于定时工作方式时,定时时间为式时,定时时间为 t=(2t=(21616-T0-T0初值初值) )振荡周期振荡周期1212 用于计数工作方式时,计数最大长度为用于计数工作方式时,计数最大长度为2 216166553565535个个外部脉冲。外部脉冲。 定时器定时器/计数器计数器T0工作模式工作模式1逻辑结构框图逻辑结构框图 3. 3. 工作模式工作模式2 2 模式模式2 2把把TL0TL0(或(或TL1TL1)设置成一个可以自动重装载的)设置成一个可以自动重装载的8 8位定时器位定时器/ /计数器。计数器。 TL0 TL0计数溢出时,不仅使溢
24、出中断标志位计数溢出时,不仅使溢出中断标志位TF0TF0置置1 1,而,而且还自动把且还自动把TH0TH0中的内容重新装载到中的内容重新装载到TL0TL0中。中。TL0TL0用作用作8 8位计位计数器,数器,TH0TH0用以保存初值。用以保存初值。 用于定时工作方式时,其定时时间(用于定时工作方式时,其定时时间(TF0TF0溢出周期)为溢出周期)为 t=(2t=(28 8-TH0-TH0初值初值) )振荡周期振荡周期1212 用于计数工作方式时,用于计数工作方式时,最大计数长度为最大计数长度为2 28 8=256=256个外部脉冲。个外部脉冲。 定时器定时器/计数器计数器T0工作模式工作模式2
25、逻辑结构框图逻辑结构框图 4. 4. 工作模式工作模式3 3工作模式工作模式3 3对对T0T0和和T1T1大不相同。若将大不相同。若将T0T0设置为模式设置为模式3 3,TL0TL0和和TH0TH0被分成为两个相互独立的被分成为两个相互独立的8 8位计数器。位计数器。 定时器/计数器T0工作模式3逻辑结构框图 5. 5. 波特率发生器波特率发生器 定时器定时器T0T0和和T1T1可同时工作在不同的工作方式。在定时可同时工作在不同的工作方式。在定时器器T0T0工作在模式工作在模式3 3时,尽管时,尽管TR1TR1和和TF1TF1被被T0T0占用,但占用,但T1T1仍可仍可通过通过M0M1M0M1
26、设置其工作模式为设置其工作模式为0 02 2。此时,此时,T1T1常用作串口的常用作串口的波特率发生器。波特率发生器。5.2.4 5.2.4 定时器定时器/ /计数器的应用举例计数器的应用举例 设单片机晶振为设单片机晶振为6MHz6MHz,P1.0P1.0连接一个发光二连接一个发光二极管,利用定时器使发光二极管每极管,利用定时器使发光二极管每1s1s其状态改变其状态改变一次。一次。 由于定时器最长定时时间是有限的,因此,由于定时器最长定时时间是有限的,因此,为实现为实现1s1s的延时,可以设置定时器的延时,可以设置定时器T0T0定时时间为定时时间为100ms100ms,通过程序设置一个软件计数
27、器,对定时器,通过程序设置一个软件计数器,对定时器溢出次数(溢出次数(1010次)计数。次)计数。 计数初值的算法:计数初值的算法: 65536-100000/2 = 15536=(3CB0H)65536-100000/2 = 15536=(3CB0H) C51程序如下:#include #define uchar unsigned charsbit led = P10;void Init (void) TMOD = 0 x01;/设置T0为方式1 TH0 =0-50000 / 256;/对于16位计数器0-50000=15536, 免于计算直接装入初值 TL0 =0-50000 % 256;
28、 /装入初值(15536 mod256) TR0 = 1; led = 1;void main(void) uchar i = 0;Init ( );while(1) TH0 =0-50000 / 256;/重新装入初值 TL0 =0-50000 % 256; while(!TF0) ;/等待T0溢出 TF0 = 0;/清除溢出标志位 i +;/软件计数加1 if(i = 10) led = led;/ P1.0取反输出 i = 0;/软件计数器清0 5.3 5.3 串行口串行口 CPU CPU与外部设备的基本通信方式有两种:与外部设备的基本通信方式有两种: 并行通信,数据的各位同时进行传送。
29、其特点是传并行通信,数据的各位同时进行传送。其特点是传送速度快、效率高,数据有多少位,就需要有多少根传输送速度快、效率高,数据有多少位,就需要有多少根传输线。线。 串行通信,数据一位一位地按顺序进行传送。其特串行通信,数据一位一位地按顺序进行传送。其特点是只需一对传输线就可实现通信,当传输的数据较多、点是只需一对传输线就可实现通信,当传输的数据较多、距离较远时,它可以显著减少传输线,降低通信成本,但距离较远时,它可以显著减少传输线,降低通信成本,但是串行传送的速度慢。是串行传送的速度慢。 5.3.1 5.3.1 串行通信的基本概念串行通信的基本概念 串行通信是指计算机主机与外设之间以及主机系统
30、与串行通信是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。主机系统之间数据的串行传送。 1. 1. 异步通信和同步通信异步通信和同步通信 串行通信有两种基本通信方式:异步通信和同步通信。串行通信有两种基本通信方式:异步通信和同步通信。 (1 1)异步通信)异步通信在异步通信中,数据通常以字符(或字节)为单位组成数在异步通信中,数据通常以字符(或字节)为单位组成数据帧传送。据帧传送。 异步通信的字符帧格式异步通信的字符帧格式 (2 2)同步通信)同步通信在同步通信中,每个数据块传送开始时,采用一个或两个在同步通信中,每个数据块传送开始时,采用一个或两个同步字符作为起始标志同步字
31、符作为起始标志 ,数据在同步字符之后,个数据在同步字符之后,个数不受限制,由所需传送数不受限制,由所需传送的数据块长度确定。的数据块长度确定。同步传送的数据格式同步传送的数据格式 2. 2. 串行通信的制式串行通信的制式 在串行通信中,数据是在由通信线连接的两个工作站在串行通信中,数据是在由通信线连接的两个工作站之间传送的。按照数据传送方向,串行通信可分为单工、之间传送的。按照数据传送方向,串行通信可分为单工、半双工和全双工三种方式半双工和全双工三种方式 (1 1)单工制式)单工制式 只允许数据向一个方向传送,即一方只能发送,另一只允许数据向一个方向传送,即一方只能发送,另一方只能接收。方只能
32、接收。 (2 2)半双工制式)半双工制式 允许数据双向传送,但由于只有一根传输线,在同一允许数据双向传送,但由于只有一根传输线,在同一时刻只能一方发送,另一方接收。时刻只能一方发送,另一方接收。 (3 3)全双工制式)全双工制式 允许数据同时双向传送,由于有两根传输线,在允许数据同时双向传送,由于有两根传输线,在A A站站将数据发送到将数据发送到B B站的同时,也允许站的同时,也允许B B站将数据发送到站将数据发送到A A站。站。 3. 3. 波特率和发送波特率和发送/ /接收时钟接收时钟 (1 1)波特率)波特率 串行通信的数据是按位进行传送的,每秒钟传送的二进串行通信的数据是按位进行传送的
33、,每秒钟传送的二进制数码的位数称为波特率(也称比特数),单位是制数码的位数称为波特率(也称比特数),单位是bpsbps(bit per secondbit per second),即位),即位/ /秒。秒。 (2 2)发送)发送/ /接收时钟接收时钟 二进制数据序列在串行传送过程中以数字信号波形的二进制数据序列在串行传送过程中以数字信号波形的形式出现。无论发送或是接收,都必须有时钟信号对传送形式出现。无论发送或是接收,都必须有时钟信号对传送的数据进行定位。的数据进行定位。 在发送数据时,发送器在发送时钟的下降沿将移位寄在发送数据时,发送器在发送时钟的下降沿将移位寄存器中的数据串行移位输出;在接
34、收数据时,接收器在接存器中的数据串行移位输出;在接收数据时,接收器在接收时钟的上升沿对数据位采样。收时钟的上升沿对数据位采样。 4. 4. 奇偶校验奇偶校验 当串行通信用于远距离传送时,容易受到噪声干扰。当串行通信用于远距离传送时,容易受到噪声干扰。为保证通信质量,需要对传送的数据进行校验。对于异步为保证通信质量,需要对传送的数据进行校验。对于异步通信,常用的校验方法是奇偶校验法。通信,常用的校验方法是奇偶校验法。5.3.2 MCS-515.3.2 MCS-51单片机串行口单片机串行口 1. 1. 串行口结构串行口结构 串行口内部有两个物理上相互独立的数据缓冲器串行口内部有两个物理上相互独立的
35、数据缓冲器SBUFSBUF,一个用于发送数据,另一个用于接收数据。但发送缓冲器一个用于发送数据,另一个用于接收数据。但发送缓冲器只能写入数据,不能读出数据;而接收缓冲器只能读出数只能写入数据,不能读出数据;而接收缓冲器只能读出数据,不能写入数据,所以两个缓冲器共用一个地址据,不能写入数据,所以两个缓冲器共用一个地址(99H99H)。)。 串行口结构框图串行口结构框图 发送数据时,执行一条将数据写入发送数据时,执行一条将数据写入SBUF SBUF 的传送指令的传送指令(例如(例如 MOV SBUF,AMOV SBUF,A),即可将要发送的数据按事先设置),即可将要发送的数据按事先设置的方式和波特
36、率从引脚的方式和波特率从引脚TXDTXD串行输出。一个数据发送完毕串行输出。一个数据发送完毕后,串行口产生中断标志位,向后,串行口产生中断标志位,向CPUCPU申请中断,请求发送申请中断,请求发送下一个数据。下一个数据。 接收数据时,当检测到接收数据时,当检测到RXDRXD引脚上出现一帧数据的起始引脚上出现一帧数据的起始位后,便一位一位地将接下来的数据接收保存到位后,便一位一位地将接下来的数据接收保存到SBUFSBUF中,中,然后产生中断标志位,向然后产生中断标志位,向CPUCPU申请中断,请求申请中断,请求CPUCPU接收这一接收这一数据,数据,CPUCPU响应中断后,执行一条读响应中断后,
37、执行一条读SBUFSBUF指令指令(例如(例如 MOV A,SBUFMOV A,SBUF)就可将接收到的数据送入某个寄存)就可将接收到的数据送入某个寄存器或存储单元。为避免前后两帧数据重叠,接收器是双缓器或存储单元。为避免前后两帧数据重叠,接收器是双缓冲的。冲的。 2. 2. 串行口控制串行口控制 (1 1)串行口控制寄存器)串行口控制寄存器SCONSCON SCON SCON是是MCS-51MCS-51的一个的一个SFRSFR,串行数据通信的方式选择、,串行数据通信的方式选择、接收接收和发送控制以及串行口的状态标志都由专用寄存器和发送控制以及串行口的状态标志都由专用寄存器SCONSCON控控
38、制和指示。制和指示。SCONSCON用于控制串行口的工作方式,同时还包含用于控制串行口的工作方式,同时还包含要发送或接收到的第要发送或接收到的第9 9位数据位以及串行口中断标志位。该位数据位以及串行口中断标志位。该寄存器的字节地址为寄存器的字节地址为98H 98H 。 (2 2)电源控制寄存器)电源控制寄存器PCONPCON PCON PCON中只有最高位中只有最高位SMODSMOD与串行口工作有关,该位用于与串行口工作有关,该位用于控制串行口工作于方式控制串行口工作于方式1 1、2 2、3 3时的波特率。当时的波特率。当SMOD=1SMOD=1时,时,波特率加倍。波特率加倍。PCONPCON
39、的字节地址为的字节地址为87H87H,没有位寻址功能。单,没有位寻址功能。单片机复位时,片机复位时,SMOD=0SMOD=0。 3. 3. 串行口的工作方式串行口的工作方式 方式方式0 0主要用于扩展并行输入主要用于扩展并行输入/ /输出口,方式输出口,方式1 1、方式、方式2 2和方式和方式3 3主要用于串行通信。主要用于串行通信。 (1 1)方式)方式0 0 该方式为同步移位寄存器输入该方式为同步移位寄存器输入/ /输出方式,常用于扩输出方式,常用于扩展并行展并行I/OI/O口。口。 (2 2)方式)方式1 1 方式方式1 1为波特率可变的为波特率可变的1010位异步通信方式,由位异步通信
40、方式,由TXDTXD端发端发送数据,送数据,RXDRXD端接收数据。收发一帧数据的格式为端接收数据。收发一帧数据的格式为1 1位起始位起始位、位、8 8位数据位、一位停止位,共位数据位、一位停止位,共1010位位 。 (3 3)方式)方式2 2和方式和方式3 3 这两种方式都是这两种方式都是1111位异步通信,操作方式完全一样,位异步通信,操作方式完全一样,只有波特率不同,适用于多机通信。只有波特率不同,适用于多机通信。 4. 4. 波特率设置波特率设置 (1 1)方式)方式0 0的波特率的波特率 在方式在方式0 0下,串行口的波特率是固定的,即下,串行口的波特率是固定的,即 波特率波特率=f
41、osc /12=fosc /12 (2 2)方式)方式2 2的波特率的波特率 在方式在方式2 2下,串行口的波特率可由下,串行口的波特率可由PCONPCON中的中的SMODSMOD位控制:位控制:若使若使SMOD=0SMOD=0,则所选波特率为,则所选波特率为fosc/64fosc/64;若使;若使SMOD=1SMOD=1,则波,则波特率为特率为fosc/32fosc/32。 (3 3)方式)方式1 1和方式和方式3 3的波特率的波特率 在这两种方式下,串行口波特率由定时器在这两种方式下,串行口波特率由定时器T1T1的溢出率和的溢出率和SMODSMOD值同时决定。相应公式为:值同时决定。相应公
42、式为: 波特率波特率=2=2SMODSMODT1T1溢出率溢出率/32/325.3.3 5.3.3 串行口应用串行口应用 1. 1. 串行口方式串行口方式0 0的应用的应用 串行口方式串行口方式0 0为同步操作。为同步操作。 外接串入外接串入并出或并入并出或并入串出器件,可实现串出器件,可实现I/OI/O的扩展。的扩展。 I/O I/O口扩展有两种不同用途:一是利用串行口扩展并行口扩展有两种不同用途:一是利用串行口扩展并行输出口,此时需外接串行输入输出口,此时需外接串行输入/ /并行输出的同步移位寄存器,并行输出的同步移位寄存器,如如74LS16474LS164或或CD4094CD4094;
43、另一种是利用串行口扩展并行输入口,此时需外接并另一种是利用串行口扩展并行输入口,此时需外接并行输入行输入/ /串行输出的同步移位寄存器,如串行输出的同步移位寄存器,如74LS165/74HC16574LS165/74HC165或或CD4014CD4014。 2. 2. 串行口在其他方式下的应用串行口在其他方式下的应用 MCS-51 MCS-51单片机串行口工作在方式单片机串行口工作在方式1 1、2 2、3 3时,都用于异时,都用于异步通信,它们之间的主要差别是字符帧格式和波特率不同。步通信,它们之间的主要差别是字符帧格式和波特率不同。此时,单片机发送或接收数据可以采用查询方式或中断方此时,单片
44、机发送或接收数据可以采用查询方式或中断方式。式。 3. 3. 双机通信双机通信 双机通信也称为点对点的异步串行通信。当两个双机通信也称为点对点的异步串行通信。当两个MCS-MCS-5151系列单片机应用系统相距很近时,可将它们的串行口直系列单片机应用系统相距很近时,可将它们的串行口直接相连来实现双机通信,双机通信中通信双方处于平等地接相连来实现双机通信,双机通信中通信双方处于平等地位,不需要相互之间识别地址,因此串行口工作方式位,不需要相互之间识别地址,因此串行口工作方式1 1、2 2、3 3都可以实现双机之间的全双工异步串行通信。如果要保持都可以实现双机之间的全双工异步串行通信。如果要保持通
45、信的可靠性,还需要在收发数据前规定通信协议,包括通信的可靠性,还需要在收发数据前规定通信协议,包括对通信双方发送和接收信息的格式、差错校验与处理、波对通信双方发送和接收信息的格式、差错校验与处理、波特率设置等事项的明确约定。特率设置等事项的明确约定。 5.3.4 5.3.4 常用串行通信总线标准及接口电路常用串行通信总线标准及接口电路 常用的标准异步串行通信接口有常用的标准异步串行通信接口有RS-232CRS-232C、RS-422/485RS-422/485、USBUSB通用接口等几类。通用接口等几类。 1. RS-232C 1. RS-232C总线标准及接口电路总线标准及接口电路 (1 1
46、)RS-232CRS-232C总线标准总线标准 RS-232C RS-232C适用于短距离或带调制解调器的通信场合,设适用于短距离或带调制解调器的通信场合,设备之间的通信距离不大于备之间的通信距离不大于15m15m时,可以用时,可以用RS-232CRS-232C电缆直接电缆直接连接;对于距离大于连接;对于距离大于15m15m以上的长距离通信,需要采用调制以上的长距离通信,需要采用调制解调器才能实现。解调器才能实现。RS-232CRS-232C传输速率最大为传输速率最大为20Kbps20Kbps。 RS-232C RS-232C标准总线为标准总线为2525条信号线,采用一个条信号线,采用一个25
47、25脚的连接脚的连接器,一般使用标准的器,一般使用标准的D D型型2525芯插头座(芯插头座(DB-25DB-25)。 RS-232CRS-232C采用负逻辑,即逻辑采用负逻辑,即逻辑1 1用用5V5V15V15V表示,逻表示,逻辑辑0 0用用5V5V15V15V表示。因此,表示。因此,RS-232CRS-232C不能和不能和TTLTTL电平直电平直接相连。接相连。 (2 2)RS-232CRS-232C接口电路接口电路MAX232MAX232 MAX232 MAX232是是MAXIMMAXIM公司生产的包含两路接收器和驱动器公司生产的包含两路接收器和驱动器的专用集成电路,用于完成的专用集成电
48、路,用于完成RS-232CRS-232C电平与电平与TTLTTL电平转换。电平转换。MAX232MAX232内部有一个电源电压变换器,可以把输入的内部有一个电源电压变换器,可以把输入的5V5V电电压变换成压变换成RS-232CRS-232C输出电平所需的输出电平所需的10V10V电压。电压。 2. RS-422/485 2. RS-422/485总线标准及接口电路总线标准及接口电路 (1 1)RS-422/485RS-422/485总线标准总线标准 RS RS422422采用差分接收、差分发送工作方式,不需要采用差分接收、差分发送工作方式,不需要数字地线。它使用双绞线传输信号,根据两条传输线之
49、间数字地线。它使用双绞线传输信号,根据两条传输线之间的电位差值来决定逻辑状态。的电位差值来决定逻辑状态。RSRS422422接口电路采用高输接口电路采用高输入阻抗接收器和比入阻抗接收器和比RS-232CRS-232C驱动能力更强的发送驱动器,驱动能力更强的发送驱动器,可以在相同的传输线上连接多个接收节点,所以可以在相同的传输线上连接多个接收节点,所以RSRS422422支持点对多的双向通信。支持点对多的双向通信。 RS-485 RS-485是是RSRS422422的变型。它是多发送器的电路标准,的变型。它是多发送器的电路标准,允许双绞线上一个发送器驱动允许双绞线上一个发送器驱动3232个负载设
50、备,负载设备可个负载设备,负载设备可以是被动发送器、接收器或收发器。以是被动发送器、接收器或收发器。 RS RS422/485422/485最大传输距离为最大传输距离为1200m1200m,最大传输速率,最大传输速率为为10Mbps10Mbps。 (2 2)RS-485RS-485接口电路接口电路MAX485MAX485 MAX485 MAX485是用于是用于RSRS422/485422/485通信的差分平衡收发器,通信的差分平衡收发器,由由MAXIMMAXIM公司生产。芯片内部包含一个驱动器和一个接收公司生产。芯片内部包含一个驱动器和一个接收器,适用于半双工通信。其主要特性如下:器,适用于半