资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,基本概念,RS-232,接口,MCS-51,的串行接口,单片机与单片机之间的通信,编成练习,第章串行口通信技术,本章内容,Single Chip Microcomputer,1,实训目的,(1),复习掌握定时器的功能和编程使用。,(2),理解串行通信与并行通信的两种方式。,(3),掌握串行通信的重要指标:字符帧和波特率。,(4,)初步了解,MCS-51,单片机串行口的使用方法。,实训,8,单片机之间的双机通信,2,实训引入,单片机间经常需要互相传递信息通信,.,3,实训程序,甲机发送程序参考如下:,MOV TMOD,,,#20H,MOV TL1,,,#0F4H,MOV TH1,,,#0F4H,SETB TR1,MOV SCON,,,#40H,MOV R0,,,#20H,MOV R7,,,#08H,START,:,MOV A,,,R0,MOV SBUF,A,WAIT: JBC TI,CONT,AJMP WAIT,CONT,:,INC R0,DJNZ R7,START,SJMP $,乙机接收及显示程序参考如下:,MOV TMOD,,,#20H,MOV TL1,,,#0F4H,MOV TH1,,,#0F4H,SETB TR1,MOV SCON,,,#40H,MOV R0,,,#20H,MOV R7,,,#08H,SETB REN,WAIT: JBC RI,READ,AJMP WAIT,READ,:,MOV A,SBUF,MOV R0,A,INC R0,DJNZ R7,WAIT,DISP: LCALL DISPLAY,SJMP DISP,4.,实训分析与总结,分析程序可以看出,通信双方都有对单片机定时器的编程(注意发送、接收程序的前,4,条指令),而且双方对定时器的编程完全相同。这说明,,MCS-51,单片机在进行串行通信时,是与定时器的工作有关的。定时器用来设定串行通信数据的传输速度。在串行通信中,传输速度是用波特率来表征的,有关波特率与定时器的关系以及编程在节介绍。,什么是串行通信?,串行通信和并行通信,计算机1,GND,计算机2,GND,并行通信,计算机1,GND,计算机2,GND,发送,接收,串行通信,并行通信:数据的各位,同时,传送;,串行通信:数据,一位一位,顺序传送。,串行通信的分类:,异步,(Asynchronous Communication),同步,(Synchronous Communication),串行通信制式:,单工(,a),、,半双工(,b),和,全双工(,c),(simplex half duplex full duplex),发送器,A,站,接收器,B,站,单工通信,(,a,),发,收,A,站,发,收,B,站,发,收,A,站,发,收,B,站,(,b,),(,c,),MCS-51,的串行接口,概述,有一个可编程全双工串行通信接口(,UART),(Universal Asychronous Receiver/Transmitter,),管脚:,TXD,(,P3.1,)、,RXD,(,P3.0,),可同时发送、接收数据,(,Transmit/Receive),有四种工作方式,帧格式有8、10、11位。,波特率,(Baud rate),可设置,波特率:每秒钟传送二进制数码的位数,也叫比特数,单位为,b/s,,即位/秒。,MCS-51,串行接口的结构,MCS-51,串行接口寄存器,SBUF,串行口数据缓冲器,共两个:一个发送寄存器,SBUF,,一个接收,SBUF,,二者共用一个地址99,H。,SCON,串行口控制寄存器,PCON,电源及波特率选择寄存器,控制寄存器,SCON,SM0,SM1,SM2,REN,TB8,RB8,TI,RI,工作方式选择,多机通信控制位,允许串行接收位,接收数据的第9位,发送数据的第9位,接收中断标志,发送中断标志,9FH,9EH,9DH,9CH,9BH,9AH,99H,98H,SM0 SM1,工作方式,功能,波特率,0 0,方式0,8位同步移位寄存器,f,osc,/12,0 1,方式1,10位,UART,可变,1 0,方式2,11位,UART,f,osc,/64,或,f,osc,/32,1 1,方式3,11位,UART,可变,串行方式的定义,例:设串行口工作在方式1,允许接收,则指令为:,MOV SCON,#01010000B,串行通信只用该位,为1时,波特率2;为0时不变。,电源及波特率选择寄存器,PCON,SMOD,GF1,GF0,PD,IDL,87,H,串行口四种工作方式应用比较,方式的选择由,SM1、SM0,实现。,工作方式,功能,说明,波特率,方式0,8,位同步移位寄存器,常用于扩展,I/O,口,fosc/12,方式1,10,位,UART,8,位数据、起始位、结束位,可变(取决于定时器1溢出率),方式2,11,位,UART,8,位数据、起始位0、结束位1,和奇偶校验位,fosc/64,或,fosc/32,方式3,11,位,UART,数据、起始、校验、结束位,可变(取决于定时器1溢出率),波特率的设定可参见表8.2,实际无需计算。,方式0,在方式0下,串行口作同步移位寄存器用,其波特率固定为,f,osc,/12。,串行数据从,RXD(P3.0),端输入或输出,同步移位脉冲由,TXD(P3.1),送出。这种方式常用于扩展,I/O,口。,方式,0,用于扩展,I/O,口输出,方式,0,用于扩展,I/O,口输入,方式1,10位的帧格式,串行口为波特率可调的10位通用异步接口,UART。,每发送或接收的一帧信息中,包括1位起始位0,8位数据位和1位停止位1。,方式2,串行口为11位,UART,,传送波特率与,SMOD,有关。发送或接收的一帧数据中包括1位起始位0,8位数据位,1位可编程位(用于奇偶校验)和1位停止位1。,11位的帧格式,方式3,方式3为波特率可变的11位,UART,通信方式,除了波特率以外,方式3和方式2完全相同。,MCS-51,串行口的波特率,1.方式0和方式2的波特率是固定的,在方式2中,波特率取决于,PCON,中的,SMOD,值:,当,SMOD=0,时,波特率为,f,osc,/64;,当,SMOD=1,时,波特率为,f,osc,/32.,即波特率 = 。,osc,SMOD,f,64,2,在方式0中,波特率为时钟频率的1/12,即,f,osc,/12,,固定不变,2. 方式1和方式3的波特率可变,由定时器1的溢出率决定,波特率/(,b/s),f,osc,/MHz,SMOD,定时器1,C/,模式,初始值,方式0:1,M,方式2:375,k,方式1、3:62.5,k,19.2 k,9.6 k,4.8 k,2.4 k,1.2 k,137.5 k,110,110,12,12,12,11.059,11.059,11.059,11.059,11.059,11.986,6,12,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,1,FFH,FDH,FDH,FAH,F4H,E8H,1DH,72H,FEEBH,T,波特率,=,单片机之间的通信,双机异步通信接口电路,RS-422A,双机异步通信接口电路,双机通信软件编程,查询方式,1) 甲机发送,编程将甲机片外1000,H101FH,单元的数据块从串行口输出。定义方式2发送,,TB8,为奇偶校验位。发送波特率375,kb/s,,晶振为12,MHz, SMOD=1。,参考发送子程序如下:,MOV SCON,#80H ;,设置串行口为方式2,MOV PCON,#80H ;SMOD=1,MOV DPTR,#1000H ;,设数据块指针,MOV R7,#20H ;,设数据块长度,START: MOVX A,DPTR ;,取数据给,A,MOV C,P,MOV TB8,C ;,奇偶位,P,送给,TB8,MOV SBUF,A ;,数据送,SBUF,,启动发送,WAIT: JBC TI,CONT,;,判断一帧是否发送完。若送完,清,TI,,取下一个数据,AJMP WAIT ;,未完等待,CONT: INC DPTR ;,更新数据单元,DJNZ R7,START ;,循环发送至结束,RET,2) 乙机接收,编程使乙机接收甲机发送过来的数据块,并存入片内50,H6FH,单元。接收过程要求判断,RB8,,若出错置,F0,标志为1,正确则置,F0,标志为0,然后返回。,在进行双机通信时,两机应采用相同的工作方式和波特率。,参考接收子程序如下:,MOV SCON,#80H ;,设置串行口为方式2,MOV PCON,#80H ;SMOD=1MOV R0,#50H ;,设置数据块指针,MOV R7,#20H ;,设置数据块长度,SETB REN ;,启动接收,WAIT:JBC RI,READ,;,判断是否接收完一帧。若完,清,RI,,读入数据,AJMP WAIT ;,未完等待,READ:MOV A,SBUF ;,读入一帧数据,aJNB PSW.0,PZ ;,奇偶位为0则转,JNB RB8, ERR ;P=1,RB8=0,,则出错,SJMP RIGHT ;,二者全为1,则正确,PZ: JB RB8, ERR ;P=0,RB8=1,,则出错,RIGHT: MOV R0, A ;,正确,存放数据,INC R0 ;,更新地址指针,DJNZ R7, WAIT ;,判断数据块是否接收完,CLR PSW.5 ;,接收正确,且接收完清,F0,标志,RET ;,返回,ERR: SETB PSW.5 ;,出错,置,F0,标志为1,RET ;,返回,
展开阅读全文