微机原理第七章_第1页
微机原理第七章_第2页
微机原理第七章_第3页
微机原理第七章_第4页
微机原理第七章_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

1、青海大学青海大学第七章第七章 串行口串行口 主讲教师: 司杨水利电力学院电工教研室第七章第七章 串行口串行口 p第一节第一节 串行口控制寄存器串行口控制寄存器p第二节第二节 MCS51串行接口的串行接口的4种运行模式种运行模式p第三节第三节 多机通信多机通信第一节第一节 串行口控制寄存器串行口控制寄存器p一、全双工串行接口一、全双工串行接口(UART)p二、二、51单片机的串行接口单片机的串行接口p三、串行口控制寄存器三、串行口控制寄存器SCONp四、电源控制寄存器四、电源控制寄存器 PCON串行通信的基本特征是串行通信的基本特征是数据数据逐位顺序逐位顺序进行传送进行传送串行通信的格式及约定(

2、如:同步方式、通讯速串行通信的格式及约定(如:同步方式、通讯速率、数据块格式、信号电平率、数据块格式、信号电平等)不同,形成等)不同,形成了多种串行通信的协议与接口标准。了多种串行通信的协议与接口标准。常见的有:常见的有:通用异步收发器通用异步收发器(UART)(UART)本课程介绍的串口本课程介绍的串口通用串行总线(通用串行总线(USBUSB)I2CI2C总线总线CANCAN总线总线SPISPI总线总线RS-485RS-485,RS-232CRS-232C,RS422ARS422A标准标准等等等等一、全双工串行接口一、全双工串行接口(UART)(UART)数据通信的数据通信的几个术语:几个术

3、语: 并行并行:数据各位:数据各位同时同时进行传送进行传送 串行串行:数据:数据逐位顺序逐位顺序进行传送进行传送(a) 并行通信方式并行通信方式 (b) 串行通信方式串行通信方式图图7.1 并行和串行通信方式并行和串行通信方式p根据串行通信数据传输的方向,可将串行根据串行通信数据传输的方向,可将串行通信系统传输方式分为:通信系统传输方式分为:p单工方式p半双工方式p全双工方式p1) 单工:数据传输仅能从发送设备传输到接收设备。p2) 半双工:两个串行通信设备之间只有一条数据线,数据传输可以沿两个方向,但需要分时进行。p3) 全双工:是指两个串行通信设备之间可以同时进行接收和发送。p异步串行通信

4、异步串行通信:以以字符字符为单位进行传送为单位进行传送p 同步串行通信同步串行通信:以以数据块数据块为单位进行传送为单位进行传送异步通信是以字符帧为单位进行传输。每帧数据由4部分组成:起始位(占1位)、数据位(占位)、奇偶校验位(占位,也可以没有校验位)、停止位(占1或2位)。图7.2中给出的是8位数据位、1位奇偶校验位和1位停止位,加上1位起始位,共11位组成一个传输帧图图7.2 异步通信字符帧格式异步通信字符帧格式 发送方:传送时先输出起始位“”作为联络信号,接下来的是数据位和奇偶校验位,停止位“1”表示一个字符的结束。其中,数据的低位在前,高位在后。字符之间允许有不定长度的空闲位。 接收

5、方:传送开始后,接收设备不断检测传输线的电平状态,当收到一系列的“1”(空闲位或停止位)之后,检测到一个“”,说明起始位出现,就开始接收所规定的数据位和奇偶校验位以及停止位。异步通信的特点:所需传输线少,设备开销较小,在单片机控制系统中得到广泛的应用。但每个字符要附加23位用于起止位,各帧之间还有间隔,因此传输效率不高。p波特率波特率 (bps.):单位时间传送的位数单位时间传送的位数p数据的传输速率可以用波特率表示。p单位是:(bit/s或kbit/s)。p如每秒传送240个字符,而每个字符格式包含10位这时的波特率为10位(bit)240个/s = 2400 bit/s。p在异步串行通信中

6、,接收方和发送方应使用相同的波特率,才能成功传送数据。p11.0592MHz串口通信时比较容易分频成常串口通信时比较容易分频成常见的波特率。见的波特率。 11.0592MHz = 192*57600 = 384*28800 = 576*19200 = 1152*9600 12MHz无法整除,只能依靠接收方的容错无法整除,只能依靠接收方的容错能力硬挺能力硬挺二、51单片机的串行接口SBUF(发)(发)SBUF(收)(收)发送控制器发送控制器 TI接收控制器接收控制器 RI移位寄存器移位寄存器波波特特率率发发生生器器T1 1A累累加加器器(门门)移位寄存器移位寄存器RxDTxD去申请中断去申请中断

7、引脚引脚引脚引脚CPU内部内部串行口的结构两个同名的两个同名的接收接收/ /发送缓冲寄存器发送缓冲寄存器SBUFSBUF 指令指令 MOV SBUFMOV SBUF,A A 启动一次数据发送启动一次数据发送, ,可向可向SBUFSBUF 再发送下一个数再发送下一个数 指令指令 MOV AMOV A,SBUFSBUF 完成一次数据接收完成一次数据接收,SBUF,SBUF可再可再 接收下一个数接收下一个数接收接收/ /发送数据发送数据, ,无论是否采用中断方式无论是否采用中断方式 工作工作, ,每接收每接收/ /发送一个数据都必须用指发送一个数据都必须用指 令对令对 RI/TIRI/TI 清清0

8、0,以备下一次收,以备下一次收/ /发。发。串行口相关的SFR: 串行口控制寄存器SCON(98H) 电源控制寄存器 PCON(97H) SM0 SM1 SM2 REN TB8 RB8 TI RISCONSCON SM0 SM0,SM1SM1:串行口串行口4 4种工作方式的选择位。种工作方式的选择位。 0 0 0 0 方式方式0 0:8 8位移位寄存器位移位寄存器I/O,I/O,波特率波特率固定固定为为 f foscosc/12/12 0 1 0 1 方式方式1 1:8 8位位UARTUART(1 1+8+8+1 1位)位), 波特率波特率可变可变, ,按公式计算按公式计算 1 0 1 0 方

9、式方式2 2:9 9位位UARTUART(1 1+8+1+8+1+1 1位)位), 波特率波特率固定固定= =f fosc osc x1/32x1/32或或1/641/64 1 1 1 1 方式方式3 3:9 9位位UARTUART(1 1+8+1+8+1+1 1位)位), 波特率波特率可变可变,按公式计算,按公式计算 SM2SM2:串行口串行口多机通信多机通信控制位控制位 (作为方式(作为方式2 2、方式、方式3 3的的附加控制位附加控制位)三、串行口控制寄存器SCON(98H) RI,TIRI,TI:串行口收串行口收/ /发数据申请中断标志位发数据申请中断标志位 1 1 申请中断;申请中断

10、; 0 0 不申请中断不申请中断 TB8TB8:方式方式2 2、3 3中,是要发送的第中,是要发送的第9 9位数据。位数据。 多机通信中多机通信中,TB8=0 ,TB8=0 表示发送的是数据;表示发送的是数据; TB8=1 TB8=1 表示发送的是地址。(奇偶校验)表示发送的是地址。(奇偶校验) RB8RB8:在方式在方式2 2、3 3中,是收到的第中,是收到的第9 9位数据。位数据。 在多机通信中在多机通信中, ,用作区别地址帧用作区别地址帧/ /数据帧的数据帧的 标志。(奇偶校验)标志。(奇偶校验) SM0 SM1 SM2 REN TB8 RB8 TI RI RENREN:串行口接收允许控

11、制位串行口接收允许控制位 = 1 = 1 表示允许接收;表示允许接收; = 0 = 0 禁止接收。禁止接收。SCONSCONSMOD GF1 GF0 PD 1DL四、电源控制寄存器 PCONPCON(97H97H)特殊功能寄存器特殊功能寄存器PCONPCON不能按位寻址不能按位寻址 1. 1.SMODSMOD:在串行口工作方式在串行口工作方式 1 1、2 2、3 3 中,中, 是是波特率加倍位波特率加倍位 =1 =1 时,波特率加倍时,波特率加倍 =0 =0 时,波特率不加倍。时,波特率不加倍。 ( (在在PCONPCON中只有这一个位与串口有关中只有这一个位与串口有关) ) 2. 2.GF1

12、,GF0GF1,GF0:用户可自行定义使用的通用标志位用户可自行定义使用的通用标志位PCONPCON 3. 3.PDPD:掉电方式控制位:掉电方式控制位 =0=0:常规工作方式。:常规工作方式。 =1=1:进入掉电方式:进入掉电方式: : 振荡器振荡器停振停振 片内片内RAMRAM和和SFRSFR的值保持不变的值保持不变 P0P0P3P3口维持原状。口维持原状。 程序程序停止停止 只有复位能使之退出掉电方式。只有复位能使之退出掉电方式。 SMOD GF1 GF0 PD IDLPCONPCON 4. 4.IDLIDL:待机方式待机方式( (空闲方式空闲方式) )控制位控制位 =0=0:常规工作方

13、式。:常规工作方式。 =1=1:进入待机方式:进入待机方式: 振荡器振荡器继续振荡继续振荡 中断中断、定时器定时器、串口串口功能继续有效功能继续有效 片内片内RAMRAM和和SFRSFR保持不变保持不变 CPUCPU状态状态保持、保持、P0P0P3P3口维持原状口维持原状 程序程序停顿停顿。 中断和复位能退出待机中断和复位能退出待机, ,继续后面的程序。继续后面的程序。SMOD GF1 GF0 PD 1DLPCONPCON PDPD:掉电控制位:掉电控制位 =0=0:常规方式。:常规方式。 =1=1:掉电方式:掉电方式: :振荡器振荡器停振停振片内片内RAMRAM和和SRFSRF不变不变P0P

14、0P3P3口维持原状口维持原状程序程序停止停止只有复位能退出掉电只有复位能退出掉电 IDLIDL:待机控制位:待机控制位 =0=0:常规方式。:常规方式。 =1=1:待机方式:待机方式:振荡器振荡器继续振荡继续振荡中断中断, ,定时器定时器, ,串口串口有效有效片内片内RAMRAM和和SRFSRF不变不变CPUCPU状态状态, ,P0P0P3P3维持原状维持原状程序程序停顿停顿。中断和复位能退出待机中断和复位能退出待机, ,继继续后面的程序。续后面的程序。SMOD GF1 GF0 PD 1DLPCONPCON5.掉电方式和待机方式的区别第二节第二节 MCS51串行接口的串行接口的4种运行模式种

15、运行模式p51串行口有串行口有4种运行模式:种运行模式:p方式0:8位移位寄存器I/O方式p方式1:8位UART(1+8+1位)波特率可变p方式2:9位UART(1+8+1+1位)两种波特率 p方式3:9位UART(1+8+1+1位) 波特率可变 一、串行口工作方式一、串行口工作方式 0 01.1.工作方式工作方式0 0:8 8位移位寄存器位移位寄存器I/OI/O方式方式发送:发送:SBUFSBUF中的串行中的串行数据数据由由RxDRxD逐位移出;逐位移出; TxDTxD输出输出移位时钟移位时钟,频率,频率=fosc1/12=fosc1/12; 每送出每送出8 8位数据位数据 TITI就自动置

16、就自动置1 1; 需要用需要用软件清零软件清零 TITI。 接收:串行接收:串行数据数据由由RxDRxD逐位移入逐位移入SBUFSBUF中;中; TxDTxD输出输出移位时钟移位时钟,频率,频率=fosc1/12=fosc1/12; 每接收每接收 8 8位数据位数据RIRI就自动置就自动置1 1; 需要用需要用软件清零软件清零 RIRI。经常配合经常配合“串入并出串入并出”“”“并入串出并入串出”移位移位 寄存器一起使用扩展接口。寄存器一起使用扩展接口。 方式方式0 0工作时,工作时,多用查询方式编程多用查询方式编程: 发送:发送:MOV SBUFMOV SBUF,A A 接收:接收:JNB

17、RIJNB RI,$ $ JNB TI JNB TI,$ $ CLR RICLR RI CLR TI CLR TI MOV A, SBUFMOV A, SBUF工作方式工作方式0 0:8 8位移位寄存器位移位寄存器I/OI/O方式方式( (续续) )复位时复位时, ,SCONSCON 已经被清零已经被清零, ,缺省值缺省值: : 方式方式0 0。接收前接收前, ,务必先置位务必先置位 REN=1 REN=1 允许接收数据允许接收数据。2.2.串行口方式串行口方式0 0的扩展应用的扩展应用经常用到经常用到串行口常用工作方式串行口常用工作方式0 0扩展出并行扩展出并行I/OI/O口,口,工作方式工

18、作方式1 1、2 2、3 3则常用于串行通信则常用于串行通信A AB BCLKCLKh g f e d c b ah g f e d c b aCLRCLRA AB BCLKCLKCLRCLRA AB BCLKCLKCLRCLR+5V+5V74LS16474LS16474LS16474LS16474LS164是是串入并出串入并出芯片;芯片;74LS16574LS165是是并入串出并入串出芯片芯片h g f e d c b ah g f e d c b ah g f e d c b ah g f e d c b a+5V+5V共阳共阳LED LED 数码管数码管VCCVCCTxDTxDRxDRx

19、D51单片机单片机共阳极共阳极h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh h共阳共阳LEDLED数码管数码管公共端公共端( (字位字位) ) 接高电平,接高电平,笔划笔划( (字段字段) ) 置为低电平置为低电平就被点亮了就被点亮了h g f e d c b ah g f e d c b a累加器累加器 A1 1 0 0 0 0 0 01 1 0 0 0 0 0 00C0H = 0C0H = “0 0”比如要显示比如要显示“0 0” 须令须令a b c d e f a b c d e f 为为“0 0” 电平,电平,g hg h为为

20、“1 1”电平。电平。再再比如要显示比如要显示“3 3” 须令须令a b c d g a b c d g 为为“0 0” 电平,电平,e f he f h为为“1 1”电平。电平。1 0 1 1 0 0 0 01 0 1 1 0 0 0 00B0H = 0B0H = “3 3”例:例:利用串行口利用串行口工作方式工作方式0 0扩展出扩展出8 8位并行位并行I/OI/O口,口,驱动驱动共阳共阳LEDLED数码管显示数码管显示0 09 9。A AB BCLKCLKh g f e d c b ah g f e d c b aCLRCLR+5V+5VVCCVCCTxDTxDRxDRxD51单片机单片机

21、74LS164共阳共阳LEDLED数码管数码管根据上图编写的通过串行口和根据上图编写的通过串行口和74LS164 74LS164 驱动共阳驱动共阳LEDLED数码管数码管( (查表查表) )显示显示0-90-9数字的子程序:数字的子程序:DSPLY:MOV DPTR, #TABLEDSPLY:MOV DPTR, #TABLE MOVC A, MOVC A, A+DPTRA+DPTR MOV SBUF, A MOV SBUF, A JNB TI, $ JNB TI, $ CLR TI CLR TI RET RETTABLE:DB 0C0H,0F9H,0A4HTABLE:DB 0C0H,0F9H,

22、0A4H DB 0B0H,99H,92H DB 0B0H,99H,92H DB 82H,0F8H,80H,90H DB 82H,0F8H,80H,90Hh g f e d c b ah g f e d c b a累加器累加器 A1 1 0 0 0 0 0 01 1 0 0 0 0 0 00C0H = 0C0H = “0 0”1 0 1 1 0 0 0 01 0 1 1 0 0 0 00B0H = 0B0H = “3 3”共阳极共阳极h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh h常用于串行通讯。除发常用于串行通讯。除发/ /收收8 8

23、位数据外,还位数据外,还 在在D0D0位前有一个位前有一个起始位起始位“0 0”; 在在D7D7位后有一个位后有一个停止位停止位“1 1”。方式方式1 1工作时:工作时: 发送端发送端自动添加自动添加一个起始位和一个停止位;一个起始位和一个停止位; 接收端接收端自动去掉自动去掉一个起始位和一个停止位。一个起始位和一个停止位。二、工作方式二、工作方式1 18 8位位UARTUART( (1 1+8+8+1 1位位) )波特率波特率可变可变波特率可变波特率可变 用定时器用定时器T1T1作波特率发生器:作波特率发生器: 公式:公式:波特率波特率 = =(2 2SMODSMOD/32/32) T1T1

24、的溢出率的溢出率波特率波特率= =(2(2SMODSMOD/32)/32) T1T1的溢出率的溢出率 溢出率:溢出率:T1T1溢出的频繁程度溢出的频繁程度 即:即:T1T1溢出一次所需时间的倒数。溢出一次所需时间的倒数。 初值初值 X = 2 2n n - - 2 2SMODSMOD fosc fosc3232 波特率波特率 1212 波特率波特率 = =2 2SMODSMOD fosc fosc3232 12(2 12(2n n - - X X) )其中:其中:X X 是定时器初值是定时器初值 初值初值 X = 2 2n n - - 2 2SMODSMOD fosc fosc32 32 波特

25、率波特率 1212 例例中中计算波特率计算波特率的部分:的部分: 题目要求用题目要求用T1T1工作于工作于方式方式2 2来产生波特率来产生波特率12001200, 已知晶振频率已知晶振频率= =6MHz6MHz。要求出。要求出T1T1的的初值初值:初值初值 X = 2 28 8 - - 2 20 0 6 6 10106 63232 1200 1200 1212= 256 - - = 256 - - 13.026 6 10106 6460800460800 243 = 0F3H 结果后面要用到结果后面要用到 表格有多种表格有多种, , 晶振也不止一种晶振也不止一种常用波特率和常用波特率和T1T1

26、初值查表初值查表串口波特率 (方式1,3)foscSMOD位(PCON中)定时器T1C/T方式初值192006MHz1020FEH96006MHz1020FDH48006MHz0020FDH24006MHz0020FAH12006MHz0020F4H6006MHz0020E8H1106MHz00272H波特率波特率/(b/s)fosc/MHzSMOD定时器定时器1C/模式模式初始值初始值方式方式0:1 M方式方式2:375 k方式方式1、3:62.5 k19.2 k9.6 k4.8 k2.4 k1.2 k137.5 k11011012121211.05911.05911.05911.05911

27、.05911.9866121110000000000000000222222221FFHFDHFDHFAHF4HE8H1DH72HFEEBHTRxDRxD引脚为引脚为接收端接收端,TxDTxD引脚为引脚为发送发送端端, ,由波特率由波特率 发生器发生器T1T1控制发送速度控制发送速度, ,不同于方式不同于方式0 0:收:收/ /发都发都 需要由需要由TxDTxD送出移位时钟送出移位时钟。 T1T1作波特率发生器时作波特率发生器时初始化包括初始化包括: : 选选定时器定时器工作方式工作方式2 2(TMOD(TMOD选选8 8位自动重装位自动重装);); 将计算将计算( (或查表或查表) )出的出

28、的初值初值X X赋给赋给TH1,TL1TH1,TL1; ; 启动启动T1T1 ( (SETB TR1SETB TR1);); 对对T1T1不要开中断不要开中断 !工作方式工作方式1 1的接收的接收/ /发送发送串行口的初始化包括串行口的初始化包括: : 对对SCONSCON选工作方式选工作方式 对对PCONPCON设波特率加倍位设波特率加倍位“SMODSMOD”( (缺省值缺省值=0)=0) 如果是接收数据如果是接收数据, ,仍要先置仍要先置“1 1”RENREN位位 MAINMAIN: ORG 0023HORG 0023H MOV TMODMOV TMOD,#20H#20H SBR1:JNB

29、 RI,SEND SBR1:JNB RI,SEND MOV TL1MOV TL1,#0F3H#0F3H LCALL LCALL SINSIN MOV TH1MOV TH1,#0F3H#0F3H SJMP NEXT SJMP NEXT SETB TR1SETB TR1 SEND:LCALL SEND:LCALL SOUTSOUT MOV SCON, MOV SCON, #50H#50H NEXT:RETI NEXT:RETI SETB EA SETB EA SIN: SIN: SETB ES SETB ES RETRET LCALL LCALL SOUTSOUT SOUT:SOUT: SJMP

30、$ SJMP $ RETRET例例:串行通信串行通信方式方式1 1应用应用 用用T1T1工作于方式工作于方式2 2,产生波特率,产生波特率12001200bpsbps发送子程序发送子程序 接收子程序接收子程序SOUTSOUT: SIN:SIN: MOV A MOV A,R0 MOV A,SBUFR0 MOV A,SBUF MOV CMOV C,P MOV C, PP MOV C, P CPL C CPL C CPL C CPL C MOVMOV A ACCCC.7.7, C, C ANL A, #7FHANL A, #7FH INC R0 MOV R1, AINC R0 MOV R1, A M

31、OV SBUF, A INC R1 MOV SBUF, A INC R1 CLR TI CLR RI CLR TI CLR RI RET RET RET RET例例 ( (续续) )删除删除删除删除由于波特率固定由于波特率固定, ,常用于常用于单片机间单片机间通讯。通讯。 数据由数据由8+8+1 1位组成,通常附加的一位位组成,通常附加的一位 (TB8/RB8)(TB8/RB8)用于用于“奇偶校验奇偶校验”。 三、工作方式三、工作方式2 2 9 9位位UARTUART( (1 1+8+1+8+1+1 1位位) )两种两种波特率波特率 方式方式2 2的波特率的波特率 = fosc = fosc

32、2 2SMODSMOD/64/64 即即: : f fosc osc 1/32 1/32 或或 f fosc osc 1/64 1/64 两种两种奇偶校验奇偶校验是检验串行通信双方传输的数据正确是检验串行通信双方传输的数据正确与否的与否的一个措施一个措施,并不能保证通信数据的传输一并不能保证通信数据的传输一定正确定正确。 换言之:如果换言之:如果奇偶校验发生错误,表明数据传奇偶校验发生错误,表明数据传输一定出错了;如果奇偶校验没有出错,输一定出错了;如果奇偶校验没有出错,绝不等绝不等于于数据传输完全正确。数据传输完全正确。奇校验:奇校验:8 8位位有效数据连同有效数据连同1 1位位附加位中,附

33、加位中, 二进制二进制“1 1”的个数的个数为为奇数奇数 偶校验:偶校验:8 8位位有效数据连同有效数据连同1 1位位附加位中,附加位中, 二进制二进制“1 1”的个数的个数为为偶数偶数约定约定接收接收采用采用奇校验奇校验 若接收到的若接收到的9 9位位数据中数据中“1 1”的个数为奇数,的个数为奇数, 则表明接收则表明接收正确正确,取出,取出8 8位有效数据即可;位有效数据即可; 若接收到的若接收到的9 9位位数据中数据中“1 1”的个数为的个数为偶数偶数, 则表明接收则表明接收出错出错!应当进行!应当进行出错处理出错处理。约定约定发送发送采用采用奇校验奇校验 若若发送发送的的8 8位有效数

34、据中位有效数据中“1 1”的个数为的个数为偶数偶数, 则要则要人为添加人为添加一个附加位一个附加位“1 1”一起发送;一起发送; 若若发送发送的的8 8位有效数据中位有效数据中“1 1”的个数为的个数为奇数奇数, 则要则要人为添加人为添加一个附加位一个附加位“0 0”一起发送。一起发送。采用采用偶校验偶校验时,处理方法与时,处理方法与奇校验奇校验相反相反 回顾: 程序状态字寄存器PSW中有一个奇偶状态位 PCYACF0RS0OVPRS1PSW.7PSW.0 P P (PSW.0):(PSW.0):奇偶状态位。奇偶状态位。 P=1 P=1 表示目前累加器中表示目前累加器中 “1 1”的个数为的个

35、数为奇数奇数 P=0 P=0 表示目前累加器中表示目前累加器中 “1 1”的个数为的个数为偶数偶数CPUCPU随时监视着随时监视着AccAcc的的“1 1”的个数的个数并自动反映在并自动反映在 P P工作方式工作方式2 2 的的奇偶校验用法奇偶校验用法 程序段程序段选用选用偶校验偶校验方式方式发送发送 PIPL: PUSH PSW ;PIPL: PUSH PSW ;保护现场保护现场 PUSH PUSH A ACC CC CLR TI ; CLR TI ;清发送中断标志以备下次发送清发送中断标志以备下次发送 MOV AMOV A, R0 ;R0 ;取由取由R0R0所指向的单元中的数据所指向的单元

36、中的数据 MOV C, P ;MOV C, P ;将奇偶标志位通过将奇偶标志位通过C C放进放进TB8TB8 MOV TB8, C ; MOV TB8, C ;一起发送出去一起发送出去 MOV SBUF,A ;MOV SBUF,A ;启动发送启动发送 INC R0 ;INC R0 ;指针指向下一个数据单元指针指向下一个数据单元 POP POP A ACC ;CC ;恢复现场恢复现场 POP PSWPOP PSW RETI ; RETI ;中断返回中断返回串口方式串口方式2 2 的的奇偶校验用法:奇偶校验用法: 程序段程序段选用选用偶校验偶校验方式方式发送发送 如果如果 A A 中的数的中的数的

37、1 1的个数是奇数(的个数是奇数(P=1P=1),), 将将TB8TB8写成写成“1 1”一起发出去;一起发出去; 反之:若(反之:若(P=0P=0)则写)则写TB8=TB8=“0 0”发出去。发出去。 程序段程序段选用选用偶校验偶校验方式方式接收接收 若收到的数中若收到的数中P=0P=0, ,且检查到且检查到RB8=0RB8=0就可能对了就可能对了 若收到的数中若收到的数中P=1P=1, ,且检查到且检查到RB8=1RB8=1就可能对了就可能对了 若若P=0P=0且且RB8=1RB8=1或或P=1P=1且且RB8=0RB8=0就一定出错了就一定出错了!串口方式串口方式2 2 的的奇偶校验用法

38、:奇偶校验用法: SM0 SM1 SM2 REN TB8 RB8 TI R1SCONSCON串行口控制寄存器串行口控制寄存器SCONSCONTB8 RB8 程序段程序段选用选用偶校验偶校验方式方式接收接收: PIPL: PUSH PSW ;PIPL: PUSH PSW ;保护现场保护现场 PUSH PUSH A ACC CC CLR RI ; CLR RI ;清发送中断标志以备下次发送清发送中断标志以备下次发送 MOV AMOV A,S SBUBUF;F;读进收到的数据读进收到的数据 MOV C, P ;MOV C, P ;奇偶标志位奇偶标志位C =JNB PC =JNB P,L1L1 JNC

39、 L1 ;C=0 JNC L1 ;C=0时转到时转到L1 L1 P=0P=0时转到时转到L1L1 JNB RB8,JNB RB8,ERRERR;P=1;P=1时转到时转到L2L2,若,若RB8=0RB8=0“出错出错” SJMP L2 ;RB8=1 SJMP L2 ;RB8=1 则表明接收正确,转则表明接收正确,转L2L2 L1: JB RB8, L1: JB RB8,ERRERR;P=0;P=0且且RB8=1RB8=1表明表明“出错出错” L2: MOV R0, A ;P=0L2: MOV R0, A ;P=0且且RB8=0RB8=0表明接收正确表明接收正确 INC R0 ;INC R0 ;

40、指针指向下一个数据单元指针指向下一个数据单元 POP POP A ACC ;CC ;恢复现场恢复现场 POP PSW POP PSW ERRERR: :出错处理出错处理 RETI ; RETI ;中断返回中断返回 RETIRETI四、工作方式四、工作方式3 3当当SM0,SM1SM0,SM1为为1111时时, ,串行口工作于方式串行口工作于方式3 3 9 9位位UARTUART( (1 1+8+1+8+1+1 1位位) ) 波特率可变波特率可变 串口方式串口方式3 3和方式和方式2 2唯一的区别是波特率机制不同唯一的区别是波特率机制不同。方式方式2 2的波特率固定为时钟周期的的波特率固定为时钟

41、周期的3232或或6464分频,分频,不可变。此工作方式与其他串行通讯设备连接困不可变。此工作方式与其他串行通讯设备连接困难,因此不常用。难,因此不常用。方式方式3 3的波特率可变,按前面的公式计算:的波特率可变,按前面的公式计算: 波特率波特率= =(2(2SMODSMOD/32)/32) T1T1的溢出率的溢出率 波特率波特率 = =2 2SMODSMOD fosc fosc3232 12(2 12(2n n - - X X) )其中:其中:X X 是定时器初值是定时器初值关于奇偶校验的关于奇偶校验的C51编程编程pSCON = 0 xD0; 选择选择11位异步收发,那么也就是有校验,但为

42、什么是位异步收发,那么也就是有校验,但为什么是偶校验?若我想做奇校偶校验?若我想做奇校 ; 验,怎样改?验,怎样改?; 于是上位机就可以设置为:数据位于是上位机就可以设置为:数据位8为,停止位为,停止位1位,偶校验位,偶校验;于是发送是这样:于是发送是这样:TB8=P;SBUF=ACC;p接收时这样:接收时这样:ACC=SBUF;if(P!=RB8) pm=0 xff; /0 xff是错误标志是错误标志else pm=ACC; /校验正确。校验正确。p五、波特率的设定五、波特率的设定p串行通信双方对发送或接收数据的波特率事先要约定好保持一致。pMCS-51单片机的波特率设置与工作方式有关,其中

43、方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率和SMOD的状态决定。p各种方式的波特率计算由以下公式确定:p 方式0的波特率= fosc /12p 方式2的波特率=(2SMOD/64)foscp 方式1的波特率=(2SMOD/32)(T1溢出率)p 方式3的波特率=(2SMOD/32)(T1溢出率)p串行通信接口标准串行通信接口标准p1.RS-232C通信接口通信接口p接口信号:接口信号:9针针D型头型头1569载波检测载波检测DCD接收数据接收数据RXD发送数据发送数据TXD数据终端就绪数据终端就绪信号地信号地GND数据装置就绪数据装置就绪请求发送请求

44、发送RTS清除发送清除发送CTS振铃指示振铃指示MCS-51系列单片机串行通信接口系列单片机串行通信接口p电气特性:电气特性:p逻辑逻辑“1”:3V15V;逻辑;逻辑“0”:3V15V。p传输距离传输距离15米。米。p最大负载电容最大负载电容2500pF。p波特率波特率20kb/s。p接受器输入阻抗:接受器输入阻抗:37k。p驱动器输出阻抗驱动器输出阻抗300。p驱动器转换速率驱动器转换速率30V/s。p输出短路电流输出短路电流0.5A。 RS232特性特性p电平转换电平转换 p单片机电平是单片机电平是TTL电平,它与电平,它与RS-232C电平不兼容,必电平不兼容,必须进行电平转换。电平转换

45、的电路很多,须进行电平转换。电平转换的电路很多,MAX232是一是一种新型的专用集成电路,类似的集成电路还很多。种新型的专用集成电路,类似的集成电路还很多。C1+C1-C2+C2-VCCV+V-电压倍增器电压倍增器+5V+10V电压反向器电压反向器+10V-10V1111+5VT1OUTT2OUTR1OUTR2OUTT1INT2INR1INR2INC1C2C3C4TTL/CMOS输入输入TTL/CMOS输出输出RS-232C输出输出RS-232C输入输入MAX232C2-V-C1+V+C1-C2+T2OUTR2INR2OUTT2INT1INR1OUTR1INT1OUTVCCG ND123456

46、78910161514131211RS232电平转换芯片电平转换芯片PC机机COM口口接接8051机机11p(TXD) 10p(RXD) PC机和单片机串口通讯的硬件电路机和单片机串口通讯的硬件电路 p RS-422A通信接口通信接口p 接口信号:接口信号:9针针D型头型头p 电气特性电气特性p电平转换电平转换p3.RS-485通信接口:将通信接口:将RS-422A的发送数据信号正端的发送数据信号正端与接收数据信号正端连起来,发送数据信号负端与接与接收数据信号正端连起来,发送数据信号负端与接收数据信号负端连起来就成为收数据信号负端连起来就成为RS-485通信接口通信接口 1569发送数据负发送

47、数据负TX发送数据正发送数据正TX+接收数据正接收数据正RX+接收数据负接收数据负RX信号地信号地GND请求发送负请求发送负RTS清除发送正清除发送正CTS+请求发送负请求发送负RTS+ +清除发送负清除发送负CTSMCS-51系列单片机串行通信接口系列单片机串行通信接口接 口性 能RS-232CRS-422ARS-485功能双向,全双工双向,全双工双向,半双工传输方式单端差分差分逻辑“0”电平3V15V2V6V1.5V6V逻辑“1”电平3V15V2V6V1.5V6V最大速率20kb/s10Mb/s10Mb/s最大距离30m1200m1200m驱动器加载输出电压5V15V2V1.5V接受器输入

48、敏感度3V0.2V0.2V接收器输入阻抗37K4K7K组态方式点对点1台驱动器:10台接收器32台驱动器:32台接收器抗干扰能力弱强强传输介质扁平或多芯电缆二对双绞线一对双绞线RS232、RS422、RS485对比对比第三节第三节 多机通信多机通信p一、主从机间的通信一、主从机间的通信1 双机串行异步通信双机串行异步通信(1)单片机与单片机间的串行异步通信接口设计两台8051直接通信如图: (2)两台)两台8031采用采用RS232C总线通信如图总线通信如图: 例 如图8751-1的工作是检查接在P1口上的 SW开关,当检测到开关的状态有变化时,就将变化后的状态读入,通过串行口将这个开关状态传

49、送给8751-2。当8751-2接收到这个字节后就将它输出到P1口上显示,并且也将它接收到的数据回传给8751-1以通知8751-1已经接收到数据。当8751-1接收到这个响应数据后与刚才传出去的数据比较,若不相同再发送一次,以确保将正确的数据传递给8751-2。 通信约定:双方都采用串行通信方式,波特率为9600(晶振为11.059M),采用中断方式进行发送和接收数据。8751-1程序:BUFFEREQU30H;发送数据缓冲区ECHOFLAGBIT00H;当发送与接收到的数据相同时此标志置1ERRFLAGBIT01H;当发送与接收到的数据不同时此标志置1ORG0000HSJMPSTARTOR

50、G0023H;串行口中断输入口 SJMP UART1ORG0030HSTART:MOV TMOD,#20H ;定时器1设置为方式2,作波特率发生器 ANL PCON,#7FH MOV TH1, #0FDH ;波特率为9600 MOV TL1,#0FDH SETB TR1 MOV SCON,#50H ;设置为串行方式1允许接收 MOV IE,#90H;允许串行口中断 MOV BUFFER,#00H;缓冲区清零WAIT: MOVA,P1 CJNEA,BUFFER,SWCH SJMPWAITSWCH:MOVBUFER,ATRAGIN: MOVSBUF,A;发送数据CLRECHOFLAGCLRERRF

51、LAGWAITEO: JBERRFLAG,TRAGINJNBECHOFLAG,WAITEOSJMPWAITUART1:PUSHPSWPUSHACCSETBRS0CLRRS1JBCRI,RCV1;判断是否为接收中断CLRTISJMPRETURNRCV1:MOVA,SBUFCJNEA,BUFFER, DATAERSETBECHOFLAGSJMPRETURNDATAER: SETBERRFLAGRETURN: POPACCPOPPSWRETIEND(3)单片机与)单片机与PC系列微机间的异步串行通信接口设计系列微机间的异步串行通信接口设计 8051单片机与单片机与PC系列微机是两种不同类型的机种,系

52、列微机是两种不同类型的机种,它们的硬件结构不同,具有的电气特性也不一样,因此它们的硬件结构不同,具有的电气特性也不一样,因此它们之间不能用导线直接连接,而要通过电平转换电路。它们之间不能用导线直接连接,而要通过电平转换电路。 8031单片机和单片机和PC机通过机通过RS232C总线通信接口图如下总线通信接口图如下: 二、M MCS-51多机通信原理 a我们知道,串行口以方式我们知道,串行口以方式2/32/3接收时,若接收时,若SM2=1则仅 当接收器接收到的第9位数据为1时,数据才装入接 收缓冲器SBUF并置“1”RI向CPU发中断,如果接收,如果接收 到的第到的第9 9位为位为“0”0”,则

53、不产生,则不产生RIRI,信息将丢失。,信息将丢失。而 SM2=0时,接收到一个数据字节后,不管第9位数据 是1是0都产生RI,接收到的数据都装入SBUF。 应用这个特点,便可实现应用这个特点,便可实现MCS-51MCS-51之间的串行通信。之间的串行通信。 通常通常SM2SM2又称为又称为多机通信控制位。多机通信控制位。 b设有一个多机系统如图所示,其从机地址定义为设有一个多机系统如图所示,其从机地址定义为 00H00H,01H01H,02H02H 从机系统由从机初始化为:串行口为方式从机系统由从机初始化为:串行口为方式2/32/3 接收,且接收,且SM2=1SM2=1,允许串行口中断。,允

54、许串行口中断。 在主机和某一个从机通信之前,先将从机地址在主机和某一个从机通信之前,先将从机地址 发送给各从机,接着才传送数据。且发送给各从机,接着才传送数据。且主机发送主机发送 地址时的第地址时的第9 9位为位为1 1,发送数据时的第,发送数据时的第9 9位为位为0 0。 当主机向从机发送地址时,由于各从机接收到当主机向从机发送地址时,由于各从机接收到 的第的第9 9位信息为位信息为1 1,且从机的,且从机的SM2=1SM2=1,所以将置,所以将置 “ “1”RI1”RI,其地址信息将送入各从机,此时,各,其地址信息将送入各从机,此时,各 从机将可判断主机送来的地址是否和本系统地从机将可判断主机送来的地址是否和本系统地 址相符,若为本机地址,则置址相符,若为本机地址,则置“0”SM20”SM2,将准,将准 备接收主机的的数据(或命令),若地址不一备接收主机的的数据(或命令),若地址不一 致,则保持致,则保持S

温馨提示

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

评论

0/150

提交评论