单片机原理及智能仪表技术串行口_第1页
单片机原理及智能仪表技术串行口_第2页
单片机原理及智能仪表技术串行口_第3页
单片机原理及智能仪表技术串行口_第4页
单片机原理及智能仪表技术串行口_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 串行通信串行通信 优点优点:便于长距离传送便于长距离传送 缺点缺点:传送速度较慢传送速度较慢计算机与外界信息交换称为计算机与外界信息交换称为通信通信。通信的通信的基本方式基本方式可分为并行通信和串行通信:可分为并行通信和串行通信:并行通信并行通信是数据的各位同时发送或同时接收;是数据的各位同时发送或同时接收;串行通信串行通信是数据的各位依次逐位发送或接收。是数据的各位依次逐位发送或接收。并行通信并行通信 优点优点:传送速度快传送速度快 缺点缺点:不便长距离传送不便长距离传送n并行通信并行通信通常是将数据字节的各位用多条数据线同通常是将数据字节的各位用多条数据线同时进行传送时进行传送 。并行通

2、信并行通信控制简单、传输速度快;由于传输线较多,控制简单、传输速度快;由于传输线较多,长距离传送时成本高。长距离传送时成本高。串行通信串行通信是将数据字节分成一位一位的形式在是将数据字节分成一位一位的形式在一条传输线上逐个地传送。一条传输线上逐个地传送。串行通信的特点串行通信的特点:传输线少,成本低、易于实现,:传输线少,成本低、易于实现,可靠性高、适合远距离的数据通信,但需要收发可靠性高、适合远距离的数据通信,但需要收发双方采取同步措施。以正确区分信号中的每一位,双方采取同步措施。以正确区分信号中的每一位,区分数据的起始和结束位置,恢复正确的位序列。区分数据的起始和结束位置,恢复正确的位序列

3、。且通信速率低。且通信速率低。 比较:比较: 串行通信串行通信 并行通信并行通信 传输线数传输线数 少少 多多 成成 本本 低低 高高 通信速度通信速度 慢慢 快快 通信距离通信距离 远远 近近 可可 靠靠 性性 高高 低低 典型代表典型代表 232/485/CAN PCI/ISA232/485/CAN PCI/ISAMCS-51单片机具有单片机具有并行和串行并行和串行两种通信方式。两种通信方式。一、串行通信分类一、串行通信分类串行通信按时钟控制方式可分为串行通信按时钟控制方式可分为异步通信和同步通信异步通信和同步通信。1 1、异步通信、异步通信n 异步通信依靠起始位、停止位保持通信同步。异步

4、通信依靠起始位、停止位保持通信同步。n 异步通信数据传送按字符帧传输,异步通信数据传送按字符帧传输, 一帧数据包含起始位、数据位、校验位和停止位。一帧数据包含起始位、数据位、校验位和停止位。n 异步通信由各自独立的时钟控制数据的收发。异步通信由各自独立的时钟控制数据的收发。n 异步通信适合长距离传输,实现容易,对线路和异步通信适合长距离传输,实现容易,对线路和 收发器要求较低;但传输的效率和速度低。收发器要求较低;但传输的效率和速度低。n 在单片机中主要采用异步通信方式。在单片机中主要采用异步通信方式。8-1 8-1 串行通信基础串行通信基础2 2、同步通信、同步通信n 同步通信依靠同步字符保

5、持通信同步。同步通信依靠同步字符保持通信同步。n 同步字符可以由用户约定,也可以采用同步字符可以由用户约定,也可以采用SYNSYN代码代码16H16H。n 通信时先发送同步字符,然后是连续的数据块,通信时先发送同步字符,然后是连续的数据块, 数据之间没有间隙,也没有起始位和停止位。数据之间没有间隙,也没有起始位和停止位。n 同步通信的数据格式。同步通信的数据格式。n 同步通信要求把时钟信号同时传送,数据收发由统一同步通信要求把时钟信号同时传送,数据收发由统一 的时钟控制。的时钟控制。n 同步通信传输效率高,适合高速传输的要求;适合短同步通信传输效率高,适合高速传输的要求;适合短 距离传输;长距

6、离传输成本高,且时钟信号容易受到距离传输;长距离传输成本高,且时钟信号容易受到 噪声的干扰。噪声的干扰。 比较:比较: 异步通信异步通信 同步通信同步通信 同步方式同步方式 起始起始/ /停止位停止位 同步字符同步字符 时时 钟钟 独立独立 统一统一 传送内容传送内容 字符字符 数据块数据块 通信速度通信速度 慢慢 快快 通信距离通信距离 远远 近近 可可 靠靠 性性 高高 低低1 1、概念:、概念:每秒传送二进制数据的位数。每秒传送二进制数据的位数。2 2、单位:、单位:位位/ /秒秒(bit/s)(bit/s),常用,常用bpsbps表示。表示。3 3、波特率的计算:、波特率的计算: 假若

7、数据传送速率为假若数据传送速率为120120字符字符/s/s,而每一个字符帧已规,而每一个字符帧已规定为定为1010个数据位个数据位(1(1个起始位、个起始位、1 1个停止位、个停止位、8 8个数据位个数据位) ) ,则传输速率为则传输速率为12012010101200bit/s1200bit/s,即波特率为,即波特率为1200bps1200bps。4 4、常用波特率、常用波特率 串行通信常用的标准波特率在串行通信常用的标准波特率在RS-232CRS-232C标准中已有规定,标准中已有规定,如如600600、12001200、24002400、48004800、96009600、1920019

8、200等等。等等。二、波特率二、波特率三、串行通信的制式三、串行通信的制式串行通信按照数据传送方向可分为三种制式:串行通信按照数据传送方向可分为三种制式: 单工制式单工制式是指甲乙双方通信时是指甲乙双方通信时只能单向传只能单向传送数据送数据,发送方和接收方固定。,发送方和接收方固定。 1 1、单工制式(单工制式(SimplexSimplex)半双工制式半双工制式是指通信双方都具有发送器和是指通信双方都具有发送器和接收器,既可发送也可接收,但不能同时接收接收器,既可发送也可接收,但不能同时接收和发送,和发送,发送时不能接收,接收时不能发送发送时不能接收,接收时不能发送。2、半双工制式(半双工制式

9、(Half DuplexHalf Duplex) 全双工制式全双工制式是指通信双方均设有发送器和是指通信双方均设有发送器和接收器,并且信道划分为发送信道和接收信道,接收器,并且信道划分为发送信道和接收信道,因此全双工制式可实现甲乙双方因此全双工制式可实现甲乙双方同时发送和接同时发送和接收数据收数据,发送时能接收,接收时也能发送。,发送时能接收,接收时也能发送。3 3、全双工制式(全双工制式(Full DuplexFull Duplex) MCS-51 MCS-51单片机内部有一个单片机内部有一个可编程的全双工异步串行可编程的全双工异步串行接接口,利用该接口可以实现单片机之间、单片机与口,利用该

10、接口可以实现单片机之间、单片机与PCPC机之间的机之间的串行通讯。串行通讯。 所谓串行通讯就是将数据的各位一位一位地依次传送。所谓串行通讯就是将数据的各位一位一位地依次传送。所谓全双工指信息能够同时双向传送。所谓全双工指信息能够同时双向传送。 异步通讯,通常以单个字符为传送单位,每一个字符异步通讯,通常以单个字符为传送单位,每一个字符的开始和结束必须有开始位和停止位,发送的字符之间的时的开始和结束必须有开始位和停止位,发送的字符之间的时隙可以是任意的。隙可以是任意的。n RS-232CRS-232Cn RS-422 RS-422n RS-485 RS-485n 20mA 20mA电流环电流环8

11、-2 8-2 串行通信总线标准串行通信总线标准n 概述概述n 电气特性电气特性n 引脚功能引脚功能n 电平转换芯片电平转换芯片n 应用电路应用电路一、一、RS-232C总线标准总线标准 RS-232 RS-232 是用正负电压来表示逻辑状态,与是用正负电压来表示逻辑状态,与TTLTTL以高低电以高低电平表示逻辑状态的规定不同。因此,为了能够同计算机接平表示逻辑状态的规定不同。因此,为了能够同计算机接口或终端的口或终端的TTLTTL器件连接,必须在器件连接,必须在RS-232 RS-232 与与TTLTTL电路之间进电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立行电平和逻辑关系的变

12、换。实现这种变换的方法可用分立元件,也可用集成电路芯片。目前较为广泛地使用集成电元件,也可用集成电路芯片。目前较为广泛地使用集成电路转换器件,如路转换器件,如MC1488MC1488、SN75150SN75150芯片可完成芯片可完成TTLTTL电平到电平到EIAEIA电平的转换,而电平的转换,而MC1489MC1489、SN75154SN75154可实现可实现EIAEIA电平到电平到TTLTTL电平电平的转换。的转换。MAX232MAX232芯片可完成芯片可完成TTLEIATTLEIA双向电平转换。双向电平转换。 图5-9 RS-232连接的最简单形式 RS-232 RS-232通信通常采用通

13、信通常采用DB9DB9连接器来完成信号的互联。连接器来完成信号的互联。 RS-232RS-232通信最少可以使用通信最少可以使用3 3根线实现正常的串行通信根线实现正常的串行通信( (交叉互联交叉互联) ),其中引脚,其中引脚TXDTXD,RXDRXD,GNDGND用于全双工串行通用于全双工串行通信。其它握手信号用于设备之间的同步控制,可以不连。信。其它握手信号用于设备之间的同步控制,可以不连。 硬件组成:硬件组成:CPUCPU,如,如MCS51MCS51,STC12C5A60S2STC12C5A60S2等各型微处理器;等各型微处理器;电平转换芯片,如电平转换芯片,如MAX232MAX232等

14、集成电路芯片;等集成电路芯片;通信接口,如通信接口,如DB9DB9、DB25DB25等连接接口。等连接接口。n 特点特点n 常用芯片与节点数量常用芯片与节点数量n MAX485MAX485芯片介绍芯片介绍n 应用电路应用电路二、二、RS-485总线标准总线标准表表8-7 RS-485、RS-422、RS-232的主要技术参数的主要技术参数 因因RS-485接口具有良好的抗噪声干扰性,长的传输距离和多接口具有良好的抗噪声干扰性,长的传输距离和多站能力等上述优点就使其成为首选的串行接口。站能力等上述优点就使其成为首选的串行接口。 RS485接口均采接口均采用屏蔽双绞线传输。用屏蔽双绞线传输。RS4

15、85接口连接器采用接口连接器采用DB-9的的9芯插头座。芯插头座。 RS-485RS-485通信接口芯片通信接口芯片 MAX485 MAX485芯片引脚定义芯片引脚定义 485 485通信硬件系统框图通信硬件系统框图 RS485RS485通信系统由发送器、接收器和两根通信线缆通信系统由发送器、接收器和两根通信线缆A A、B B组成。组成。数据发送时,数据发送时,DE=1DE=1,发送使能;,发送使能;DIDI输入待发送的数据,若输入待发送的数据,若DI=1DI=1,则,则V VOAOAVVOBOB,且电压差,且电压差V VODOD200mV200mV,此时在,此时在RE=0RE=0条件下,接收

16、条件下,接收器接收数据器接收数据RO=1RO=1;若;若DI=0DI=0,则,则V VOAOAVVOBOB,且电压差,且电压差V VODOD-200mV-200mV,此,此时在时在RE=0RE=0条件下,接收器接收数据条件下,接收器接收数据RO=0RO=0。数据接收过程相反。数据接收过程相反。信号差分传输的优点:抑制噪声干扰、不受节点间电平差信号差分传输的优点:抑制噪声干扰、不受节点间电平差异影响。异影响。RS-485RS-485通信原理通信原理n 概述概述n MCS-51MCS-51串行口的内部结构串行口的内部结构n 与串口有关的特殊功能寄存器与串口有关的特殊功能寄存器n 工作方式工作方式n

17、 波特率波特率n 串口初始化串口初始化n 串口应用串口应用8-4 MCS-518-4 MCS-51单片机串行口单片机串行口一、串行口的内部结构及工作原理一、串行口的内部结构及工作原理图图8.9 8.9 串行口结构框图串行口结构框图MCS51单片机串行口内部有两个物理上独立地接收和发送缓冲器,可同时收、发数据。利用定时器产生串行通讯的时钟信号。在串行发送时,CPU可以通过数据总线把8位并行数据送到发送数据缓冲器,然后在发送时钟和发送控制器的控制下通过TxD线一位一位地发送出去。起始位和停止位发送时自动添加上去。发送完一帧后,产生中断,TI置1,CPU响应后可以把下一个字符发送到数据缓冲器,重复上

18、述过程;在串行接收时,UART监视RxD线,并在检测到RxD线上有一个低电平(起始位)时,利用移位寄存器开始一个字符的接收过程,连续接收到一个字节后就并行传送到接收数据缓冲器,并通过中断促使CPU从中取走所接收到的字符。 二、与串行口有关的特殊功能寄存器二、与串行口有关的特殊功能寄存器 单片机对串口的控制是通过单片机对串口的控制是通过特殊功能寄存器特殊功能寄存器来实现的,来实现的,与串口有关的特殊功能寄存器包括:与串口有关的特殊功能寄存器包括:n串行口控制寄存器串行口控制寄存器SCONSCONn电源控制寄存器电源控制寄存器PCONPCONn串行接收串行接收/ /发送缓冲器发送缓冲器SBUFSB

19、UFn定时器方式控制寄存器定时器方式控制寄存器TMODTMOD等。等。(1)(1)串口数据缓冲器串口数据缓冲器SBUFSBUF(2)(2)串行口控制寄存器串行口控制寄存器SCONSCON 1)RI1)RI:接收中断标志位:接收中断标志位 RI=1RI=1,表示一帧数据接收完毕,并申请中断,表示一帧数据接收完毕,并申请中断, ,要求要求CPUCPU从接收从接收SBUFSBUF取走数据。该位的状态也可供软件查询。取走数据。该位的状态也可供软件查询。RIRI必须由软件清必须由软件清0 0 2)TI2)TI:发送中断标志位:发送中断标志位 TI=1TI=1,表示一帧数据发送结束,可供软件查询,也,表示

20、一帧数据发送结束,可供软件查询,也可申请中断。可申请中断。CPUCPU响应中断后响应中断后, ,在中断服务程序中向在中断服务程序中向SBUFSBUF写入要发送的下一帧数据。写入要发送的下一帧数据。TITI必须由软件清必须由软件清0 0。 3)RB83)RB8:接收到的第:接收到的第9 9位数据位数据 4)TB84)TB8:发送的第:发送的第9 9位数据位数据 5)REN5)REN:允许串行接收位:允许串行接收位 由软件置由软件置“1”1”或清或清“0”0”。REN=1REN=1,允许串行口接收数据。,允许串行口接收数据。REN=0REN=0,禁止串行口接收数据。,禁止串行口接收数据。 6)SM

21、26)SM2:多机通信控制位:多机通信控制位 7)SM07)SM0、SM1SM1:串行口:串行口4 4种工作方式的选择位种工作方式的选择位 SM0 SM1 SM0 SM1 方式方式 功功 能能 说说 明明 0 0 0 0 0 0 同步移位寄存器方式同步移位寄存器方式( (用于扩展用于扩展I/OI/O口口) ) 0 1 1 10 0 1 1 10位异步收发,波特率可变位异步收发,波特率可变( (由定时器控制由定时器控制) ) 1 0 2 11 1 0 2 11位异步收发,波特率为位异步收发,波特率为fosc/64fosc/64或或fosc/32fosc/32 1 1 3 11 1 1 3 11位

22、异步收发,波特率可变位异步收发,波特率可变( (由定时器控制由定时器控制) ) (3) (3)电源控制寄存器电源控制寄存器PCON PCON 该寄存器的字节地址为该寄存器的字节地址为87H87H,没有位寻址功能。,没有位寻址功能。PCONPCON与与串行接口有关的只有串行接口有关的只有D7D7位。位。SMODSMOD:串行口波特率加倍位。:串行口波特率加倍位。=1=1时,波特率加倍,时,波特率加倍,=0=0时,波特率不加倍。时,波特率不加倍。 (4) (4)定时器方式控制寄存器定时器方式控制寄存器TMODTMOD 用于通信波特率设置,随后详述。用于通信波特率设置,随后详述。三、三、MCS-51

23、串行口的工作方式串行口的工作方式 串行口串行口4 4种工作方式种工作方式 SM0 SM1 SM0 SM1 方式方式 功功 能能 说说 明明 0 0 0 0 0 0 同步移位寄存器方式同步移位寄存器方式( (用于扩展用于扩展I/OI/O口口) ) 0 1 1 100 1 1 10位异步收发,波特率可变位异步收发,波特率可变( (由定时器控制由定时器控制) ) 1 0 2 11 1 0 2 11位异步收发,波特率为位异步收发,波特率为fosc/64fosc/64或或fosc/32fosc/32 1 1 3 11 1 1 3 11位异步收发,波特率可变位异步收发,波特率可变( (由定时器控制由定时器

24、控制) ) 以以RXDRXD(P3.0P3.0)端作为数据移位的输入)端作为数据移位的输入/ /输出端,输出端, 以以TXDTXD(P3.1P3.1)端输出移位脉冲。)端输出移位脉冲。 移位数据的发送和接收以移位数据的发送和接收以8 8位位为一帧,不设起始位和停止为一帧,不设起始位和停止位,无论输入位,无论输入/ /输出,输出,均低位在前高位在后均低位在前高位在后。 其帧格式为:其帧格式为: 方式方式0 0可将串行输入输出数据转换成并行输入输出数据可将串行输入输出数据转换成并行输入输出数据。 数据发送数据发送 在移位时钟脉冲(在移位时钟脉冲(TXDTXD)的控制下,数据从串行口)的控制下,数据

25、从串行口RXDRXD端逐位移入端逐位移入74HC164 S74HC164 SA A、S SB B端。当端。当8 8位数据全部移出后,位数据全部移出后,SCONSCON寄存器的寄存器的TITI位被自动置位被自动置1 1。其后。其后74HC16474HC164的内容即可的内容即可并行输出。并行输出。74HC164 CLR74HC164 CLR为清为清0 0端,输出时端,输出时CLRCLR必须为必须为1 1,否则否则74HC164 Q074HC164 Q0Q7Q7输出为输出为0 0。 串行口作为并行输出口使用时,要有串行口作为并行输出口使用时,要有“串入并出串入并出”的的移位寄存器配合移位寄存器配合

26、( (如如CD4094CD4094、74HC16474HC164或或74LS164)74LS164)。(2) (2) 数据接收数据接收 串行口作为并行输入口使用时,要有串行口作为并行输入口使用时,要有“并入串出并入串出”的移的移位寄存器配合位寄存器配合( (如如CD4014CD4014、74HC16574HC165或或74LS165) 74LS165) 。 74HC165 S/L74HC165 S/L端为移位端为移位/ /置入端,当置入端,当S/L=0S/L=0时,从时,从Q0Q0Q7Q7并行置入数据,当并行置入数据,当S/L=1S/L=1时,允许从时,允许从Q QH H端移出数据。在端移出数

27、据。在80C5180C51串行控制寄存器串行控制寄存器SCONSCON中的中的REN=1REN=1时,时,TXDTXD端发出移位端发出移位时钟脉冲,从时钟脉冲,从RXDRXD端串行输入端串行输入8 8位数据。当接收到第位数据。当接收到第8 8位数位数据据D7D7后,置位中断标志后,置位中断标志RIRI,表示一帧数据接收完成。,表示一帧数据接收完成。 波特率波特率方式方式0 0 波特率固定,为单片机晶振频率的十二分之一。波特率固定,为单片机晶振频率的十二分之一。 应用举例应用举例【例【例7-17-1】电路如图所示,试编制程序按下列顺序要求每隔】电路如图所示,试编制程序按下列顺序要求每隔0.50.

28、5秒循环操作。秒循环操作。 从右向左依次点亮,从右向左依次点亮,每次亮一个;每次亮一个; 从左向右依次点亮,从左向右依次点亮,每次增加一个,每次增加一个,直至全直至全部点亮;部点亮; 返回从返回从不断循环。不断循环。 8个发光二极管全部点亮;个发光二极管全部点亮; 从左向右依次灭灯,每次熄灭一个,直至全灭;从左向右依次灭灯,每次熄灭一个,直至全灭; 从左向右依次点亮,从左向右依次点亮, 每次亮一个;每次亮一个;解:编程如下:解:编程如下:TAB:TAB: DB 0FFH,7FH,3FH,1FH,0FH,07H,03H,01H,00HDB 0FFH,7FH,3FH,1FH,0FH,07H,03H

29、,01H,00H; ;从左向右依次暗灭从左向右依次暗灭, , 每次减少一个每次减少一个, ,直至全灭直至全灭; ; DB 80H,40H,20H,10H,08H,04H,02H,01H DB 80H,40H,20H,10H,08H,04H,02H,01H; ;从左向右依次点亮从左向右依次点亮, ,每次亮一个每次亮一个 DB 02H,04H,08H,10H,20H,40H,80HDB 02H,04H,08H,10H,20H,40H,80H; ;从右向左依次点亮从右向左依次点亮, ,每次亮一个每次亮一个 DB 0C0H,0E0H,0F0H,0F8H,0FCH,0FEHDB 0C0H,0E0H,0F

30、0H,0F8H,0FCH,0FEH; ;从左向右依次点亮从左向右依次点亮, , 每次增加一个每次增加一个, ,直至全部点亮直至全部点亮; ; 方式方式1 1是一帧是一帧1010位的异步串行通信方式,包括位的异步串行通信方式,包括1 1个起始位,个起始位,8 8个数据位和一个停止位。其帧格式为:个数据位和一个停止位。其帧格式为: 数据发送数据发送 发送时只要将数据写入发送时只要将数据写入SBUFSBUF,在串行口由硬件自动加,在串行口由硬件自动加入起始位和停止位,构成一个完整的帧格式。然后在移位入起始位和停止位,构成一个完整的帧格式。然后在移位脉冲的作用下,由脉冲的作用下,由TXDTXD端串行输

31、出。一帧数据发送完毕,将端串行输出。一帧数据发送完毕,将SCONSCON中的中的TITI置置1 1。 数据接收数据接收 接收时,在接收时,在REN=1REN=1前提下,当采样到前提下,当采样到RXDRXD从从1 1向向0 0跳变状跳变状态时,就认定为已接收到起始位。随后在移位脉冲的控制态时,就认定为已接收到起始位。随后在移位脉冲的控制下,将下,将串行串行接收接收数据数据移入移入SBUFSBUF中。一帧数据中。一帧数据接收接收完毕,将完毕,将SCONSCON中的中的RIRI置置1 1,表示可以从,表示可以从SBUFSBUF取走接收到的一个字符。取走接收到的一个字符。 【例【例7-27-2】设甲乙

32、机以串行方式】设甲乙机以串行方式1 1进行数据传送,进行数据传送,fosc=11.0592MHzfosc=11.0592MHz,波特率为,波特率为1200b/s1200b/s。甲机发送的。甲机发送的1616个数据存在内个数据存在内RAM 40HRAM 40H4FH4FH单元中,乙机接收后单元中,乙机接收后存在内存在内RAM 50HRAM 50H为首地址的区域中为首地址的区域中。解:解: 串行方式串行方式1 1波特率取决于波特率取决于T1T1溢出率溢出率( (设设SMOD=0),SMOD=0),计算计算T1T1定时初值:定时初值: T1T1初值初值 = 256 - = 256 - = 232 =

33、 E8H = 232 = E8H323212121200120011059200110592002 20 0MOV TMOD,#20HMOV TMOD,#20H; ;置置T1T1定时器工作方式定时器工作方式2 2MOV TL1,#0E8HMOV TL1,#0E8H; ;置置T1T1计数初值计数初值MOV TH1,#0E8HMOV TH1,#0E8H; ;置置T1T1计数重装值计数重装值CLR ET1CLR ET1; ;禁止禁止T1T1中断中断SETB TR1SETB TR1;T1;T1启动启动MOV SCON,#40HMOV SCON,#40H; ;置串行方式置串行方式1,1,禁止接收禁止接收

34、MOV PCON,#00HMOV PCON,#00H; ;置置SMOD=0(SMODSMOD=0(SMOD不能位操作不能位操作) ) CLR ESCLR ES; ;禁止串行中断禁止串行中断MOV R0,#40HMOV R0,#40H; ;置发送数据区首地址置发送数据区首地址MOV R2,#16MOV R2,#16; ;置发送数据长度置发送数据长度MOVMOVA,R0A,R0; ;读一个数据读一个数据MOVMOVSBUF,ASBUF,A; ;发送发送JNBJNBTI,$TI,$; ;等待一帧数据发送完毕等待一帧数据发送完毕CLRCLRTITI; ;清发送中断标志清发送中断标志INCINCR0R0

35、; ;指向下一字节单元指向下一字节单元DJNZDJNZR2,TRSAR2,TRSA; ;判判1616个数据发完否个数据发完否? ?未完继续未完继续RET RET ; ;TXDA:TXDA:TRSA:TRSA:乙机接收子程序:乙机接收子程序:RXDB:RXDB:RDSB:RDSB:发送或接收一帧信息为发送或接收一帧信息为1111位:位:1 1位起始位(位起始位(0 0)、)、8 8位数位数据位据位( (低位在前低位在前) ) 、1 1位可编程位和位可编程位和1 1位停止位(位停止位(l l)。发送)。发送时可编程位时可编程位TB8TB8可设置为可设置为1 1或或0 0,接收时可编程位进入,接收时

36、可编程位进入SCONSCON寄存器的寄存器的RB8RB8位。位。方式方式2 2的波特率是固定的,为振荡器频率的的波特率是固定的,为振荡器频率的1/321/32或或1/641/64。方式方式3 3的波特率则由的波特率则由T1T1和和T2T2的溢出决定,可用程序设定。的溢出决定,可用程序设定。 方式方式2 2是是1111位的串行通信方式,即位的串行通信方式,即1 1个起始位,个起始位,8 8个数个数据位,据位,1 1个可编程位个可编程位TB8/RB8TB8/RB8和和1 1个停止位,个停止位, 其帧格式为:其帧格式为:波特率波特率=2=2SMOD SMOD fosc/64 fosc/64 可编程位

37、可编程位TB8/RB8TB8/RB8既可作奇偶校验位用,也可作既可作奇偶校验位用,也可作控制位(多机通信)用,其功能由用户确定。控制位(多机通信)用,其功能由用户确定。 数据发送和接收与方式数据发送和接收与方式1 1基本相同,区别在于方式基本相同,区别在于方式2 2把发送把发送/ /接收到的第接收到的第9 9位内容送入位内容送入TB8/RB8TB8/RB8。 波特率:方式波特率:方式2 2波特率固定,即波特率固定,即fosc/32fosc/32和和fosc/64fosc/64。即:。即: 方式方式3 3同样是一帧同样是一帧1111位的串行通信方式,其位的串行通信方式,其通信过程与方式通信过程与

38、方式2 2完全相同,所不同的仅在于波完全相同,所不同的仅在于波特率。方式特率。方式2 2的波特率只有固定的两种,而方式的波特率只有固定的两种,而方式3 3的波特率则与方式的波特率则与方式1 1相同,即通过设置相同,即通过设置T1T1的初值的初值来设定波特率。来设定波特率。 SM2SM2:多处理机通信位:多处理机通信位。 当串行口以方式当串行口以方式2 2或方式或方式3 3接收时,若接收时,若SM2SM21 1,只有当接,只有当接收到的第收到的第9 9位数据位数据RB8RB8为为1 1时,才将数据送入接收缓冲器时,才将数据送入接收缓冲器SBUFSBUF,并使并使RIRI置置1 1,申请中断,否则

39、数据将丢失;若,申请中断,否则数据将丢失;若SM2SM20 0,则无,则无论第论第9 9位数据位数据RB8RB8是是1 1还是还是0 0,都能将数据装入,都能将数据装入SBUFSBUF,并且发中,并且发中断。断。 利用这一特性,便可实现主机与多个从机之间的串行通利用这一特性,便可实现主机与多个从机之间的串行通信。下图为多机通信连线示意图,系统中左边的信。下图为多机通信连线示意图,系统中左边的80C5180C51为主为主机,其余的为机,其余的为1 1n n号从机,并保证每台从机在系统中的编号号从机,并保证每台从机在系统中的编号是惟一的。是惟一的。80C5180C51多机分布式系统示意图多机分布式

40、系统示意图 1 1、系统初始化时,将所有从机中的、系统初始化时,将所有从机中的SM2SM2位均设置为位均设置为1 1,并处于并处于允许允许串行口中断接收状态。串行口中断接收状态。 2 2、主机欲与某从机通信,先向所有从机发出所选从机、主机欲与某从机通信,先向所有从机发出所选从机的地址,从机地址符合后,接着才发送命令或数据。的地址,从机地址符合后,接着才发送命令或数据。 在主机发地址时,置第在主机发地址时,置第9 9位数据(位数据(RB8RB8)为)为1 1,表示主,表示主机发送的是地址帧;机发送的是地址帧; 当主机呼叫某从机联络正确后,主机发送命令或数据当主机呼叫某从机联络正确后,主机发送命令

41、或数据帧时,将第帧时,将第9 9位数据(位数据(RB8RB8)清)清0 0。 3 3、各从机由于、各从机由于SM2SM2置置1 1,将响应主机发来的第,将响应主机发来的第9 9位数位数据(据(RB8RB8)为)为1 1的地址信息。从机响应中断后,有两种不同的地址信息。从机响应中断后,有两种不同的操作:的操作: 若从机的地址与主机点名的地址不相同,则该从机若从机的地址与主机点名的地址不相同,则该从机将继续维持将继续维持SM2SM2为为l l,从而拒绝接收主机后面发来的命令或,从而拒绝接收主机后面发来的命令或数据信息,等待主机的下一次点名。数据信息,等待主机的下一次点名。 若从机的地址与主机点名的

42、地址相同,该从机将本若从机的地址与主机点名的地址相同,该从机将本机的机的SM2SM2清清0 0,继续接收主机发来的命令或数据,响应中断。,继续接收主机发来的命令或数据,响应中断。 四、四、MCS-51串行口的波特率串行口的波特率n波特率的地位:收发双方波特率必须相同,是波特率的地位:收发双方波特率必须相同,是通信的基础;通信的基础;n方式方式0 0的波特率:固定不变,的波特率:固定不变,f foscosc/12/12;n方式方式2 2的波特率:固定不变,的波特率:固定不变,2 2SMODSMODf foscosc/64/64;n方式方式1 1和方式和方式3 3的波特率:可变,由定时器的波特率:

43、可变,由定时器T1T1的的溢出率和溢出率和SMODSMOD共同决定,即共同决定,即2 2SMODSMODf foscosc/32/32n n;n定时器定时器T1T1的溢出率的溢出率n n的计算;的计算;n波特率的计算;波特率的计算;n常用波特率表。常用波特率表。五、串行口初始化设置五、串行口初始化设置 在使用串行口之前,应对它进行编程初始化,主要是在使用串行口之前,应对它进行编程初始化,主要是设置产生波特率的定时器设置产生波特率的定时器T1T1、串行口控制和中断控制等。、串行口控制和中断控制等。具体步骤如下:具体步骤如下: 1)1)确定定时器确定定时器T1T1的工作方式的工作方式-编程编程TM

44、ODTMOD寄存器;寄存器; 2)2)计算定时器计算定时器T1T1的初值的初值-装载装载TH1TH1、TL1TL1; 3)3)启动定时器启动定时器T1-T1-编程编程TCONTCON中的中的TR1TR1位;位; 4)4)确定串行口的控制确定串行口的控制-编程编程SCONSCON; 5)5)打开打开CPUCPU和串口中断和串口中断-编程编程IEIE寄存器。寄存器。 ANL PCON, #7FH ; ANL PCON, #7FH ;按位与,最高位清按位与,最高位清0 0,串口波特率不倍速,串口波特率不倍速 MOV SCON, #50H ;MOV SCON, #50H ;串口设置为方式串口设置为方式

45、1,REN=1,1,REN=1,允许接收允许接收 MOV TMOD, #20H ;MOV TMOD, #20H ;定时器定时器1 1为方式为方式2 2 初值自动装入产生波特率初值自动装入产生波特率 MOV TH1, #0FAH ;MOV TH1, #0FAH ;设置定时器初值设置定时器初值 MOV TL1, #0FAH MOV TL1, #0FAH SETB TR1 ; SETB TR1 ;定时器定时器T1T1运行运行 SETB ES ;SETB ES ;使能串口接收中断使能串口接收中断 SETB EA ;SETB EA ;打开所有中断打开所有中断 ORG 0000H ORG 0000H AN

46、L PCON, #7FH ;ANL PCON, #7FH ;按位与,最高位清按位与,最高位清0 0,串口波特率不倍速,串口波特率不倍速 MOV TMOD,#20H ;T1MOV TMOD,#20H ;T1设置为模式设置为模式2 2,初值自动装载,初值自动装载 MOV TL1,#0FAH ;MOV TL1,#0FAH ;定时器初值定时器初值 MOV TH1,#0FAH ;MOV TH1,#0FAH ;溢出时,溢出时,TH1TH1值自动装载值自动装载TL1TL1,重新计数,重新计数 MOV SCON,#50H ;MOV SCON,#50H ;串口设置为方式串口设置为方式1 1,REN=1REN=1

47、 SETB TR1 ; SETB TR1 ;启动启动T1T1STA: MOV P1,#00H ;STA: MOV P1,#00H ;送亮灯信号送亮灯信号 ACALL DELAY ;ACALL DELAY ;调延时子程序调延时子程序 MOV A,#0FFH ;MOV A,#0FFH ;准备灭灯信号准备灭灯信号 CLR TI ;CLR TI ;清发送标志,准备发送清发送标志,准备发送 MOV SBUF,A ;MOV SBUF,A ;发送灭灯信号发送灭灯信号JXFS:JNB TI,JXFS ;JXFS:JNB TI,JXFS ;等待发送结束等待发送结束JXJS:JNB RI,JXJS ;JXJS:J

48、NB RI,JXJS ;接收等待接收等待 CLR RI ;CLR RI ;清接收标志清接收标志 MOV A,SBUF ;MOV A,SBUF ;读取接收数据读取接收数据 MOV P1,A ;MOV P1,A ;接收的灭灯信号送接收的灭灯信号送P1P1口口 ACALL DELAY ;ACALL DELAY ;调延时子程序调延时子程序 SJMP STA ;SJMP STA ;循环循环 END ;END ;结束结束 ORG 0000H ORG 0000HSTA:STA: ANL PCON, #7FH ;ANL PCON, #7FH ;按位与,最高位清按位与,最高位清0 0,串口波特率不倍速,串口波特率不倍速 MOV TMOD,#20H ;T1MOV TMOD,#20H ;T1设置为模式设置为模式2 2,初值自动装载,初值自动装载 MOV TL1,#0FAH ;MOV TL1,#0FAH ;定时器初值定时器初值 MOV TH1,#0FAH ;MOV TH1,#0FAH ;溢出时,溢出时,TH1TH1值自动装载值自动装载TL1TL1,重新计数,重新计数 M

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论